[Security] Resolve automated executions against current principal authorization #15

Closed
opened 2026-07-28 14:02:52 +02:00 by zemion · 2 comments
Owner

Automated Dataflow and Workflow execution must resolve an explicit automation actor against current authorization rather than replaying a stale session or permission snapshot.

Acceptance criteria:

  • versioned automation-principal capability accepts tenant, account/membership or service-account reference, and authorization artifact reference
  • execution rechecks active account, membership, tenant, groups, roles, functions, delegations, and current scopes
  • no session cookie, API key secret, bearer token, or raw credential is persisted in a trigger
  • requested grants are intersected with current authorization and the trigger grant ceiling
  • revocation, suspension, tenant removal, and missing providers fail closed and leave explainable evidence
  • audit provenance distinguishes trigger owner, current automation principal, event actor, and operator override
  • service-account management can replace delegated-user automation without changing domain trigger contracts
Automated Dataflow and Workflow execution must resolve an explicit automation actor against current authorization rather than replaying a stale session or permission snapshot. Acceptance criteria: - versioned automation-principal capability accepts tenant, account/membership or service-account reference, and authorization artifact reference - execution rechecks active account, membership, tenant, groups, roles, functions, delegations, and current scopes - no session cookie, API key secret, bearer token, or raw credential is persisted in a trigger - requested grants are intersected with current authorization and the trigger grant ceiling - revocation, suspension, tenant removal, and missing providers fail closed and leave explainable evidence - audit provenance distinguishes trigger owner, current automation principal, event actor, and operator override - service-account management can replace delegated-user automation without changing domain trigger contracts
Author
Owner

Implemented delegated-user automation resolution in govoplan-core@26ae034 and govoplan-access@fdfcfbb.

Completed:

  • versioned auth.automation_principal capability
  • no token/session/credential persistence; triggers retain owner IDs, authorization artifact reference, and a least-privilege scope ceiling
  • current account, membership, tenant, roles, groups, functions, delegations, and scopes are rebuilt for every delivery
  • trigger grants are intersected with current authorization
  • inactive/moved/missing owners and revoked scopes fail closed with provenance
  • Dataflow delivery evidence records the resolution result

Remaining before closure:

  • first-class service-account owner references and management
  • complete event-actor/operator-override provenance model

Verification: Access 38 tests pass; consolidated focused suite passes.

Implemented delegated-user automation resolution in govoplan-core@26ae034 and govoplan-access@fdfcfbb. Completed: - versioned auth.automation_principal capability - no token/session/credential persistence; triggers retain owner IDs, authorization artifact reference, and a least-privilege scope ceiling - current account, membership, tenant, roles, groups, functions, delegations, and scopes are rebuilt for every delivery - trigger grants are intersected with current authorization - inactive/moved/missing owners and revoked scopes fail closed with provenance - Dataflow delivery evidence records the resolution result Remaining before closure: - first-class service-account owner references and management - complete event-actor/operator-override provenance model Verification: Access 38 tests pass; consolidated focused suite passes.
Author
Owner

Implemented and pushed in Core 13893c8, Access 6b0dd8b, and Dataflow fa013ea.

The v1 automation-principal contract now explicitly supports delegated users and managed service accounts. Access re-resolves active tenant/account/membership state and current role/group/function/delegation scopes for every execution, applies a bounded service-account scope ceiling, and fails closed on revocation, suspension, tenant mismatch, missing backing identity, or reduced grants. Service accounts are non-login identities with no password, API key, session, or bearer artifact; their CRUD/retirement API is permission-gated and audited.

Execution provenance now distinguishes the trigger owner, current resolved principal, event actor, operator override, authorization artifact, trigger, and delivery. Dataflow seals that evidence into the immutable run request. Both release/dev migrations passed; Core contract tests, all 44 Access tests, and all 56 Dataflow tests pass.

Implemented and pushed in Core 13893c8, Access 6b0dd8b, and Dataflow fa013ea. The v1 automation-principal contract now explicitly supports delegated users and managed service accounts. Access re-resolves active tenant/account/membership state and current role/group/function/delegation scopes for every execution, applies a bounded service-account scope ceiling, and fails closed on revocation, suspension, tenant mismatch, missing backing identity, or reduced grants. Service accounts are non-login identities with no password, API key, session, or bearer artifact; their CRUD/retirement API is permission-gated and audited. Execution provenance now distinguishes the trigger owner, current resolved principal, event actor, operator override, authorization artifact, trigger, and delivery. Dataflow seals that evidence into the immutable run request. Both release/dev migrations passed; Core contract tests, all 44 Access tests, and all 56 Dataflow tests pass.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan-access#15