Consume authoritative workload reference contract

Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a0291a-1e87-7151-9934-fcbfe3f65eb1
This commit is contained in:
tegwick 2026-08-22 14:07:01 +02:00
parent 0c3131de48
commit a51039330c
2 changed files with 59 additions and 8 deletions

View file

@ -37,12 +37,13 @@ Conformance is **accuracy, not altitude**. A lower zone declared with evidence
is conformant. A stricter zone that the workload cannot evidence is not. is conformant. A stricter zone that the workload cannot evidence is not.
Changing membership to evade a control is not an exception mechanism. Changing membership to evade a control is not an exception mechanism.
The workload is the sole policy subject. It includes independently governed The workload is the sole **zone** policy subject. It includes independently
application, automation, maintenance, and operational/control-plane execution governed application, automation, maintenance, and operational/control-plane
units. SSH access, tunnel operation, credential brokering, policy machinery, execution units. The workload executing a tunnel, credential broker, policy
and maintenance work therefore require workload identities even when they have service, or maintenance operation requires identity; the tunnel, grant, lane,
no `rapp`. Human and agent identities remain caller context and cannot be the pattern, action, human, or agent does not become a workload merely because a
sole workload binding. control observes it. Those retain native typed identity and caller/resource
context.
## 3. Resolution is authoritative ## 3. Resolution is authoritative
@ -52,14 +53,20 @@ MUST NOT infer membership from repository ownership, paths, lane types, actor
classes, environment, criticality, reefs, organization posture, or naming classes, environment, criticality, reefs, organization posture, or naming
conventions. conventions.
Resolution returns both the declaration and its admission result: For a managed deployable, the authoritative cross-repository reference is the
Repo Manager v1 tuple `(rapp_id, workload_identity.name)`, optionally narrowed
by `deployable`. A catalog also declares whether its subject is workload
applicable. Resolution returns both the reference result and admission result:
- `satisfied` — the workload has an authoritative identity and evidence meeting - `satisfied` — the workload has an authoritative identity and evidence meeting
the declared zone's floor; `effective_zone` is the declared zone; the declared zone's floor; `effective_zone` is the declared zone;
- `unsatisfied` — identity and membership are declared, but evidence is below - `unsatisfied` — identity and membership are declared, but evidence is below
the admission floor; `effective_zone` is `unknown`; the admission floor; `effective_zone` is `unknown`;
- `unknown` — identity, membership, or a required floor/evidence input cannot be - `unknown` — identity, membership, or a required floor/evidence input cannot be
resolved; `effective_zone` is `unknown`. resolved for a workload-applicable subject; `effective_zone` is `unknown`;
- `not-applicable` — the owning catalog explicitly establishes that the subject
is an action, actor, lane, pattern, or resource rather than a workload; no
zone is resolved and the control uses that subject's native identity.
`unknown` is a result, not a zone. A control MUST declare an explicit treatment `unknown` is a result, not a zone. A control MUST declare an explicit treatment
for it. That treatment may deny, escalate, or use a reviewed build-stage rule; for it. That treatment may deny, escalate, or use a reviewed build-stage rule;
@ -166,6 +173,15 @@ For a single-service declaration, `zones:` is a sibling of `tenancy:` and
`zones` occur inside the same service entry. A multi-service file MUST NOT use a `zones` occur inside the same service entry. A multi-service file MUST NOT use a
top-level `zones:` block. top-level `zones:` block.
Every managed running deployable has an authoritative
`rapp-*/declarations/rapp.yaml`. Its `workload_identity.declaration_ref` points
to that declaration, and consuming catalogs reference it using the Repo Manager
v1 tuple. A pre-rapp deployable is migration debt and resolves `unknown`. An
independently governed operational execution unit that is not a managed
deployable may declare directly in its responsible repo's `tenancy.yaml`; this
does not turn a human action or infrastructure resource into a fictional rapp or
workload.
```yaml ```yaml
schema_version: "0.1" schema_version: "0.1"
framework: netkingdom-tenancy-posture framework: netkingdom-tenancy-posture
@ -218,6 +234,11 @@ contains:
```yaml ```yaml
workload_id: ops-bridge-tunnel workload_id: ops-bridge-tunnel
workload_ref:
applicability: applicable
rapp_id: null # required for a managed deployable
name: ops-bridge-tunnel
deployable: null # optional for a managed deployable
identity_binding: ssh-certificate/ops-warden/agt-ops-bridge identity_binding: ssh-certificate/ops-warden/agt-ops-bridge
declared_zone: z3-continuity declared_zone: z3-continuity
admission: satisfied admission: satisfied
@ -243,6 +264,22 @@ and any active exception id and expiry. This is the machine-readable answer to
“which zone is this workload in, and what applies there?” It may be compiled “which zone is this workload in, and what applies there?” It may be compiled
into existing consumer artifacts; it is not a synchronous zone-engine lookup. into existing consumer artifacts; it is not a synchronous zone-engine lookup.
For managed deployables, compilation consumes the exact Repo Manager reference
projection:
```yaml
workload_ref:
applicability: applicable
rapp_id: rapp-issue-core
name: issue-core
deployable: issue-core # optional
```
The owning catalog uses `applicability: not-applicable` for a native non-workload
subject. Absence of either applicability or an expected reference is `unknown`,
not `not-applicable`. Zone-engine consumes these outcomes; it does not parse a
path or repository name to repair them.
For flex-auth's pre-sign control, the governed workload is the target of the For flex-auth's pre-sign control, the governed workload is the target of the
certificate or grant, so the compiler writes `workload_id`, `security_zone`, certificate or grant, so the compiler writes `workload_id`, `security_zone`,
`security_zone_admission`, and `security_zone_revision` on the resource `security_zone_admission`, and `security_zone_revision` on the resource

View file

@ -302,6 +302,15 @@ returns `unknown` without manufacturing a zone. The unresolved `public`
DataClassification floor is handled honestly as `unknown` pending DataClassification floor is handled honestly as `unknown` pending
info-tech-canon's ruling; it no longer blocks the model. info-tech-canon's ruling; it no longer blocks the model.
Repo-manager subsequently accepted `RMGR-ADR-004` and the v1 workload-reference
contract. Managed deployables resolve through the explicit
`(rapp_id, workload_identity.name)` pair with optional `deployable`; catalog
owners distinguish workload-applicable subjects from native `not-applicable`
actors, actions, lanes, patterns, and resources. This sharpens rather than
reopens canon's ruling: the executing unit is the workload, while the action or
resource it handles is not. All omitted or unresolved applicable references
remain `unknown`.
**Operator direction 2026-08-19 — defaults derive from maturity, not from **Operator direction 2026-08-19 — defaults derive from maturity, not from
nothing.** An ungraded lane must not inherit the safest-for-the-tool default; it nothing.** An ungraded lane must not inherit the safest-for-the-tool default; it
should inherit the default its *maturity context* implies. Early or experimental should inherit the default its *maturity context* implies. Early or experimental
@ -661,6 +670,11 @@ flex-auth was asked to accept or amend the pre-sign stance rows before adding
them to a policy package. Adoption evidence, implementation, and the required them to a policy package. Adoption evidence, implementation, and the required
fresh caller-identity check remain open. fresh caller-identity check remain open.
Repo-manager adoption/proof is linked as `RMGR-WP-0010-T07` to this task
(`ZONE-WP-0001-T07`, State Hub task
`c7ea24df-8aa9-4ead-ba3a-033aa5201c21`). Its accepted v1 tuple and explicit
`unknown`/`not-applicable` distinction are now consumed by the draft.
## Related ## Related
- ops-warden `ADR-0006` — enforcement is zone-scoped, never a global flag - ops-warden `ADR-0006` — enforcement is zone-scoped, never a global flag