Skip to content

[1.18] WorkflowAccessPolicy#5114

Open
JoshVanL wants to merge 10 commits into
dapr:v1.18from
JoshVanL:workflow-access-policy
Open

[1.18] WorkflowAccessPolicy#5114
JoshVanL wants to merge 10 commits into
dapr:v1.18from
JoshVanL:workflow-access-policy

Conversation

@JoshVanL
Copy link
Copy Markdown
Contributor

Implementation based on dapr/dapr#9790

Implementation based on dapr/dapr#9790

Signed-off-by: joshvanl <me@joshvanl.dev>
@JoshVanL JoshVanL requested review from a team as code owners April 13, 2026 21:36
Copilot AI review requested due to automatic review settings April 13, 2026 21:36
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds documentation for the preview WorkflowAccessPolicy feature, including a CRD schema reference and operational guidance, and links it from existing workflow/security docs.

Changes:

  • Introduces new docs pages for WorkflowAccessPolicy (how-to + resource spec schema).
  • Adds WorkflowAccessPolicy to the preview-features list.
  • Cross-links the feature from workflow overview, multi-app workflow docs, and security concepts.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
daprdocs/content/en/reference/resource-specs/workflow-access-policy-schema.md New CRD/spec reference page for WorkflowAccessPolicy.
daprdocs/content/en/operations/support/support-preview-features.md Adds WorkflowAccessPolicy to the preview feature table.
daprdocs/content/en/operations/security/workflow-access-policy.md New how-to page describing semantics, setup, and examples.
daprdocs/content/en/developing-applications/building-blocks/workflow/workflow-overview.md Adds a “Workflow security” section pointing to the new how-to.
daprdocs/content/en/developing-applications/building-blocks/workflow/workflow-multi-app.md Adds a security section + example policy for multi-app workflows.
daprdocs/content/en/concepts/security-concept.md Adds a workflow access control subsection linking to the how-to.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread daprdocs/content/en/operations/security/workflow-access-policy.md Outdated
Comment thread daprdocs/content/en/operations/security/workflow-access-policy.md Outdated
Comment thread daprdocs/content/en/concepts/security-concept.md Outdated
Signed-off-by: joshvanl <me@joshvanl.dev>
Reflect the policy reshape from dapr/dapr#9850, #9870, and #9838:
- Schema now uses separate workflows/activities blocks; workflows have
  an operations list (schedule, terminate, raise, pause, resume, purge,
  get, rerun). No defaultAction, no per-rule action; rules are a pure
  allow-list.
- Self-calls (caller appID == target appID) are always allowed. The
  multi-app example no longer needs the target to list itself in callers.
- Remove the WorkflowAccessPolicy feature flag entry from the preview
  features page and drop the "enable the feature flag" instructions; the
  gate was deleted upstream.
- Update the security concept page and CRD reference doc to match.

Signed-off-by: joshvanl <me@joshvanl.dev>
Copy link
Copy Markdown
Contributor

@nelson-parente nelson-parente left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pre-review for @marcduiker handoff: LGTM — large but well-structured.
This is a substantial new feature (376 lines across 5 files) covering WorkflowAccessPolicy for v1.18. Key observations:

  • New CRD spec page (workflow-access-policy.md) is thorough: allow-list semantics, self-call bypass, SPIFFE identity note, glob patterns, all 8 operations documented.
  • Security concept page and workflow-overview/multi-app pointers are consistently updated.
  • The scopes field behavior (empty = applies to all apps) is correctly noted with the backward-compat implication.
  • The note that mTLS must be active for cross-app enforcement is present.
  • The new resource-specs schema page is a nice addition.
    Nit: with no rules and policies loaded, all cross-app calls are denied in the spec fields table contradicts the earlier prose that says with no policies loaded, all calls are allowed — these are different conditions (no rules vs. no policies) and the distinction matters for users. @JoshVanL — could you clarify: if a policy exists but has empty rules, are all calls denied? If yes, a concrete example would help readers avoid an accidental deny-all.
    Nothing else blocking — Marc, your call on whether the contradiction needs resolution first.

Copy link
Copy Markdown
Member

@msfussell msfussell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My comments. Mostly this is providing additional clarity.
I always love having a diagram where possible. Can we have a diagram that shows policies being loaded and applied to an application?


## Self-hosted setup

In self-hosted mode, place the workflow access policy YAML in the resources directory (default: `$HOME/.dapr/components`, or the path passed via `--resources-path`).
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should this not be

Suggested change
In self-hosted mode, place the workflow access policy YAML in the resources directory (default: `$HOME/.dapr/components`, or the path passed via `--resources-path`).
In self-hosted mode, place the workflow access policy YAML in the resources directory (default: `$HOME/.dapr/resources`, or the path passed via `--resources-path`).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, components is the right directory

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

? Do we still create a components directory then on Dapr install?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes-

$ find .dapr -maxdepth 1
.dapr
.dapr/components
.dapr/bin
.dapr/config.yaml

Comment thread daprdocs/content/en/operations/security/workflow-access-policy.md
Comment thread daprdocs/content/en/operations/security/workflow-access-policy.md
Comment thread daprdocs/content/en/operations/security/workflow-access-policy.md Outdated
Comment thread daprdocs/content/en/reference/resource-specs/workflow-access-policy-schema.md Outdated
Signed-off-by: joshvanl <me@joshvanl.dev>
@JoshVanL JoshVanL force-pushed the workflow-access-policy branch from 389934d to cf98d00 Compare May 26, 2026 18:38
@JoshVanL
Copy link
Copy Markdown
Contributor Author

@msfussell @nelson-parente please can you take another look? All the feedback should be addressed.

I have also updated the docs to only focus on the schedule operation, which is the only operation we support in v1.18. A note has been added that operation exists for adding support for the other operations in the next/future release.

Comment thread daprdocs/content/en/operations/security/workflow-access-policy.md Outdated
JoshVanL and others added 3 commits May 27, 2026 03:05
Co-authored-by: Mark Fussell <markfussell@gmail.com>
Signed-off-by: Josh van Leeuwen <me@joshvanl.dev>
Signed-off-by: joshvanl <me@joshvanl.dev>
Signed-off-by: joshvanl <me@joshvanl.dev>
Copy link
Copy Markdown
Member

@msfussell msfussell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants