Кто действует и что ему можно
Идентичность, точный scope, live-ревокация, RBAC, Root, Agents, federation и политика раскрытия данных.
- не авторизует бизнес-ресурс за модуль;
- не импортирует роли и политики peer-а.
Разделы
Быстрые виды
Выберите сценарий на карте системы.
шаг 0/0Единый источник инженерной правды
Один Go-бинарник и PostgreSQL. Пять композиций из одинаковых байтов. Ядро решает платформенный допуск; продуктовые данные и окончательная бизнес-авторизация остаются у модулей.
Честная граница этого документаСхемы отражают замороженный код v1.0.0, публичные контракты и подтверждённый PROD-профиль. Будущие возможности помечены как roadmap и не изображаются как готовые.
Простыми словамиCore проверяет вход и платформенные ограничения. Product Module всё равно решает, можно ли этому субъекту работать именно с этим бизнес-объектом.
internal/; Atlas следует коду, хотя исходный план упоминал 29Это не обязательные микросервисы. Это владельцы решений и состояния, собранные в компактном профиле в одном процессе.
Идентичность, точный scope, live-ревокация, RBAC, Root, Agents, federation и политика раскрытия данных.
Подписанный manifest, deployment digest, enablement, workload identity, capability grants, UI contributions и readiness.
Facts с outbox/inbox и Work с lease, fencing, retry, cancellation, DLQ, idempotency и bounded backpressure.
Ключи, append-only Audit, миграции, backup/restore, health, диагностика, Cell lifecycle и capacity evidence.
Выбор выполняет PLATFORM_COMPOSITION; каждая композиция допускает только закрытый набор process roles и владельцев данных.
| Composition | Основное состояние | Служит | Явная граница |
|---|---|---|---|
autonomous | Authority + ModuleRuntime + Administration | локальная Installation, API/worker/maintenance | loopback listener за trusted ingress; без Provider |
provider-manager | Provider Control | Tenant/Cell placement, move, quota, lifecycle | не хранит identity и tenant product data |
provider-realm | Provider Realm | операторская identity и Tenant admission evidence | не принимает Cell-local resource decisions |
cell | Cell Authority + ModuleRuntime + Administration + Capacity | bounded multi-tenant execution cell | таблиц password/passkey/external identity в композиции нет |
provider-router | подписанная placement projection | mTLS ingress, route и bounded full-response proxy | не является Authority и не выбирает Tenant из caller header |
Стрелка означает вызов или доставку. Владелец продуктовых данных всегда остаётся за пределами Core.
Фильтр ищет по имени, ответственности и классу. Тестовые и поддерживающие пакеты показаны честно, а не выданы за runtime-владельцев.
| Модуль | Поверхность | Ответственность | Класс |
|---|---|---|---|
administration | Administration | Audit, trust, keys, recovery, exports, Cell operations | Core owner |
authority | Authority | Scopes, RBAC, Root, Human/Agent, federation, data governance | Core owner |
backup | Administration | Encrypted bundle, verify, restore, recovery anchors | Operations |
capacity | Administration | Probes, quota, reservation, capacity admission | Operations |
cellrecovery | Administration | Authority-free restored-Cell locking and reconciliation contract | Contract |
conformance | ModuleRuntime | Neutral Reference Module for contract proof | Reference |
controlcontract | Administration | Signed Provider/Cell control documents | Contract |
corecontract | Authority | Principal, scope, security-governance and data-use semantics | Contract |
dbtest | Cross-cutting | Disposable PostgreSQL and topology helpers | Test only |
encryptedstream | Integration | Bounded authenticated chunk streams | Security support |
federationcontract | Authority | Bilateral trust, exposure, assertion, epoch and signatures | Contract |
identityadapter | Authority | Out-of-process OIDC/provisioning Adapter runtime | Optional process |
identityadaptercontract | Authority | Portable identity Adapter seam | Contract |
identityrealm | Authority | Authentication, sessions, recovery and step-up | Core owner |
integration | Integration | Facts, Work, retry/DLQ, leases and queue controls | Core owner |
m8testsupport | Cross-cutting | Canonical load/scale measurement harness | Test only |
maintenancecredentialfile | Administration | Maintenance credential file validation | Security support |
migration | Administration | Ordered owner waves, adoption and role policy | Operations |
modruntime | ModuleRuntime | Admission, enablement, workload and Tenant-local lifecycle | Core owner |
modulecontract | ModuleRuntime | Manifest, Connector, deployment and scope operations | Contract |
modulekit | ModuleRuntime | Local/remote/MCP adapters and conformance helpers | Internal kit |
moduleprotocol | ModuleRuntime | One-use admission tickets, discovery, signed authority contexts | Portable protocol |
offlineregister | Administration | Offline trust/recovery anchors and successor rotation | Security support |
platform | Cross-cutting | Composition root, HTTP ingress, gateways, roles and shell | Runtime shell |
privatefile | Administration | No-follow reads resistant to symlink swaps | Security support |
providercontrol | Administration | Tenant/Cell placement, move, quota, retirement, support relay | SaaS control |
providerrealm | Authority | Provider operator identity, evidence and Tenant admission | SaaS control |
providerrouter | Integration | Signed placement projection, bounded proxy, readiness | SaaS data |
runtimehealth | Administration | Truthful bounded readiness/liveness tracking | Runtime support |
storage | Cross-cutting | Scope-safe execution, role pools and maintenance fences | Storage adapter |
telemetry | Administration | Bounded observations; never authoritative state | Runtime support |
Два HTTPS-адреса ведут только к автономному read-only HTML. Публичного router-а к Core API нет: продуктовый интерфейс и login boundary будут спроектированы отдельно.
platform-api — 127.0.0.1:18080;platform-maintenance — 127.0.0.1:18081;127.0.0.1:55434;https://2chalks.com и https://platform.2chalks.com;2chalks.com · platform.2chalks.comv1.0.0 · binary SHA-256 b542e1c95cd4c83ea62cca15bb86a8018bd27e6c66c98b1b4320d1fda5e4056dЖивой каталог замороженного PROD
Один PostgreSQL, но не одна всесильная runtime-роль: отдельные схемы, закрытые права, forced RLS и отсутствие межсхемных внешних ключей.
Снимок каталогаPostgreSQL 17.10, автономная композиция, 27 августа 2026. Числа ниже получены запросами к pg_catalog, не подсчётом строк документации.
Identity, password, passkey, external identity и session state находятся в композиции владельца идентичности.
Identity-таблиц физически нет. Cell получает provider evidence и хранит только локально допущенные tenant-scoped authority данные.
Public содержит только четыре таблицы версий миграций. Идентичность физически отсутствует в Cell-манифесте, а не фильтруется одним предикатом.
| Схема | Таблицы | Индексы | RLS forced | Функции | Линия миграций |
|---|---|---|---|---|---|
authority | 83 | 164 | 68 / 68 | 20 | 31 |
administration | 42 | 88 | 36 / 36 | 34 | 16 |
module_runtime | 16 | 22 | 13 / 13 | 8 | 4 |
foundation | 1 | 1 | 0 | 0 | 2 |
public | 4 ledgers | 4 | 0 | 0 | goose metadata |
Каждый слой закрывает отдельный класс ошибки. Ни один из них не считается достаточным в одиночку.
Не только сильные стороны: здесь зафиксированы исправленные узкие места и честные пределы текущего профиля.
| Runtime role | Схема | Таблиц | Фактические классы прав |
|---|---|---|---|
authority_runtime | authority | 83 | SELECT, INSERT, UPDATE, DELETE — только через owner API и forced RLS |
administration_runtime | administration | 35 | SELECT, INSERT, UPDATE; append-only Audit не получает DELETE |
administration_api_runtime | administration | 6 | SELECT |
administration_maintenance_runtime | administration | 6 | SELECT, INSERT |
administration_portability_runtime | administration | 10 | SELECT |
module_runtime_runtime | module_runtime | 14 | SELECT, INSERT; lifecycle mutation выполняют закрытые owner functions |
module_runtime_recovery | module_runtime | 3 | SELECT |
PUBLIC на EXECUTE.search_path.pg_monitor.reference/00016.SKIP LOCKED.Только то, что реализовано в коде
Два точных root scope обмениваются подписанным transcript. Они не объединяют базы, каталоги пользователей, роли, политики или деревья ресурсов.
Главное правилоPeer доказывает, кто он и что запросил. Разрешение всегда заново вычисляет локальная сторона — по своей exposure, RBAC, data-use policy и правилу владельца ресурса.
Worker повторяет те же canonical bytes после рестарта. Каждое изменение привязано к точному trust epoch и локальному владельцу.
Все семь проверок — пересечение, а не импорт чужого allow. Любой deny закрывает путь.
federation.access.request на текущей policy revision.federated_guest.Permit-only, default-deny
Core принимает платформенное решение и контролирует выход защищённых данных. Модуль всё равно принимает окончательное доменное решение.
Исправлено в remediationМногострочная data-use policy теперь не зависит от порядка правил; Cell и Installation одинаково перевалидируют полный Agent run и не используют stale evidence.
Только после последнего шага владелец эффекта получает sealed admission. Caller не может прислать собственные classification, decision или policy revision.
Authentication ≠ authorization
Способ входа доказывает личность и assurance. Права возникают только после отдельной live-проверки scope, Membership, роли, capability, epoch и текущей policy revision.
Текущая federation-модельPeer assertion создаёт только federated_guest. Он не получает чужую роль, не становится workload и не может выдавать транзитивные assertions.
| Principal | Как аутентифицируется | Как ограничивается | Не может |
|---|---|---|---|
| Human | Password/Argon2, WebAuthn/passkey, OIDC через Adapter, session | Membership, roles, scope epoch, AAL/step-up | выбрать trusted scope заголовком |
| Workload | отдельный bound credential; Remote Module дополнительно private mTLS | deployment, grant, audience, credential epoch | использовать human cookie |
| Agent | sponsor + workload execution grant + exact run evidence | ceiling, delegation, credential epoch, expiry, live access revision | самостоятельно расширять полномочия |
| Federated guest | one-use peer-signed access assertion | trust epoch ∩ exposure ∩ local admission ∩ module rule | импортировать peer role или chain federation |
| Support / maintenance | purpose-bound operational credential and ceremony | time window, exact action/scope, audit, process role | ambient unrestricted access |
Portable RequestAuthorityContext — результат доверенного resolver-а, а не JSON, которому верят на входе.
CheckPlatform проверяет RBAC, capability, target и step-up.Remote Module Protocol v1
JSON Schema, OpenAPI, canonical fixtures, contract-set digests и независимый consumer формируют language-neutral boundary для отдельного репозитория и любого языка.
Не завышать контрактFacts, Work и data-governance — owner-port contracts, а не выдуманные публичные HTTP endpoints. OpenAPI описывает только реально обслуживаемые admission/discovery routes.
internal/ в независимом consumerCore session cookie остаётся в Core. Module backend предъявляет свой workload credential на отдельном private listener.
| Семейство | Машиночитаемая форма | Что гарантирует | Доступность |
|---|---|---|---|
| Manifest + Connector | JSON Schema + fixtures | identity, artifact digest, capabilities, operations, egress binding | public contract |
| Admission + authority context | Schema + OpenAPI + signatures | single-use human handoff без утечки cookie | served |
| Capabilities | Schema + OpenAPI | runtime discovery без ложной рекламы SAML/SCIM/OAuth | served |
| Facts | JSON Schema + fixtures | outbox/inbox, receipts, retry, DLQ, reconciliation | owner port |
| Work | JSON Schema + fixtures | claim, lease/fence, checkpoint, cancellation, terminal receipt | owner port |
| Data governance | JSON Schema + fixtures | classification/disclosure evidence без возможности подделать verified value | owner port |
| UI + lifecycle | JSON Schema + fixtures | immutable contributions, readiness, credential rotation | contract |
| Federation | отдельный contract-set + OpenAPI | bilateral peer trust и convergence | separate protocol |
После заморозки v1.0.0
Принятый и воспроизводимый Core release уже заморожен и запущен в закрытом PROD. Следом — frontend shell и один вертикальный Product Module, который докажет контракты на реальном сценарии.
Правило roadmapПопулярность технологии и запас «на будущее» не являются триггером. Новая инфраструктура появляется только после измеренного предела или конкретного customer requirement.
DB bootstrap, data policy, security admin, federation convergence, Remote Module Protocol, queue/router bounds, evidence tooling и закрытый PROD.
Normal/race, retained M8, deep assurance, reproducible bytes, final PROD smoke, evidence index и private GitHub Release.
Domain-neutral navigation, session/scope UX, module slots, accessible design system и typed client только к опубликованным Core APIs.
Отдельный owner schema/role, manifest, workload, UI contribution, Facts/Work, final resource policy и protected-data path.
Внешний PostgreSQL failover/fencing, backup schedule, restore drills и fault-domain evidence на точной конфигурации.
SAML/SCIM, OAuth clients, HSM/KMS, delegated Tenant admin, broker/cache/service extraction — только по отдельным измеримым триггерам.
autonomous-core · loopback API/maintenance · PostgreSQL TLS 1.32chalks.com · platform.2chalks.com; no public Core API router