You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/architecture.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -68,6 +68,7 @@ Each provider file auto-registers with its registry on import (side-effect regis
68
68
-**Phase 4.5: Authorization** (optional) -- invoke external policy engine (OPA, Cedar, Topaz) when an authorization block is configured. Decisions: `permit`, `deny`, `require-escalation`. Skipped entirely when no authorization block resolves for the task.
69
69
-**Phase 5: Execution** -- run the tool, capture stdout/stderr/exit code/duration, compute hashes.
-**Phase 6.5: Post-exec Verify** (optional) -- run `workflow.verify` / `task.verify` after a successful command. This is an operator-local postcondition check recorded separately from evidence; verify failures can still fail the task or downgrade to warnings according to `verify.on_failure`.
71
72
-**Phase 7: Audit** -- write structured append-only audit record with declared/resolved identity, authorization proof summary, delegation chain, trust level, authorization decision, and runtime instance attribution.
Copy file name to clipboardExpand all lines: docs/execution-identity.md
+8Lines changed: 8 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1722,6 +1722,14 @@ Evidence verification occurs after execution (Phase 5) has already completed. A
1722
1722
- when `verify.required` is `false`, a verification failure is recorded as a warning but does not affect the exit code
1723
1723
- the evidence envelope (including the failed verification status) is always written to the audit record so that operators can investigate
1724
1724
1725
+
### Phase 6.5: Post-execution Verify
1726
+
1727
+
- only enter this phase when the main command exited successfully and a workflow/task `verify` block resolves
1728
+
- run the declared verify shell in the task's effective execution context
1729
+
- treat `verify` as an operator-local postcondition separate from evidence attestation; the attested evidence payload reflects the main command result, not the later verify shell outcome
1730
+
- when `verify.on_failure` is `error`, return a non-zero status after cleanup and audit
1731
+
- when `verify.on_failure` is `warn`, record the verify failure as a warning without changing the exit code
|`child_credential_policy`| string | No |`none`, `inherit`, `downscope`, `independent`| Controls how a child task receives or derives credentials relative to its parent. Workflow-level values act as defaults for tasks. |
276
276
277
+
`child_credential_policy: "downscope"` is validated as a capability warning when a backend lacks `credential_handoff`: the scheduler can still persist the job, but child narrowing will not be enforceable at dispatch. This is intentionally softer than `identity.presentation.handoff != "none"`, which is a hard compatibility requirement because the active runtime/backend must advertise explicit handoff semantics up front.
278
+
277
279
---
278
280
279
281
## Task Verify Fields
280
282
281
283
Runs a shell command after the main task succeeds. Workflow-level `verify` acts as the default for tasks; a task-level `verify` replaces the workflow block and omitted optional fields fall back to built-in defaults.
282
284
285
+
In the v0.2 execution pipeline, `verify` runs after evidence generation. Evidence and attestation therefore describe the main command result; the `verify` outcome is recorded separately and can still flip the final task status according to `on_failure`. If operators need end-to-end proof that includes the verification step, model that requirement in the evidence payload rather than assuming `verify` is part of the attested result.
286
+
283
287
| Field | Type | Required | Values | Description |
|`shell`| string | Yes | -- | Shell command to run after a successful task execution. |
@@ -346,6 +350,8 @@ Runs a shell command after the main task succeeds. Workflow-level `verify` acts
346
350
|`cleanup`| string | No |`always`, `on-success`, `on-failure`, `never`| When credential cleanup runs. |
347
351
|`default_redaction`| boolean | No | -- | Whether credential values are redacted by default in audit output. |
348
352
353
+
`identity.presentation.handoff` is stricter than `child_credential_policy`: any non-`none` handoff mode requires explicit `credential_handoff` support from the active runtime/backend during capability negotiation, because the handoff boundary itself must be modeled first-class.
354
+
349
355
### Identity Presentation Bindings
350
356
351
357
Each element in the `bindings` array is an object with these fields:
0 commit comments