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:
parent
0c3131de48
commit
a51039330c
2 changed files with 59 additions and 8 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue