Skip to content

Commit a5b4e30

Browse files
Document nested workflow permission boundary
1 parent 0e737e8 commit a5b4e30

1 file changed

Lines changed: 8 additions & 0 deletions

File tree

  • docs/content/specification/workflow-triggers

docs/content/specification/workflow-triggers/design.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,10 @@ The framework namespace is `Process-PSModule-${{ github.workflow }}`. One stable
8787

8888
Each group belongs to the router's `uses` job, not to `Plan`, each matrix leg, or every nested workflow. [Reusable-workflow calling jobs support concurrency][reusable]. The processing workflow does not reacquire the router's group. Only one track job is eligible per invocation.
8989

90+
With a default-deny workflow permission floor, every router job calling a nested reusable workflow MUST declare the
91+
least-privilege permissions its child requires. A nested workflow can restrict, but cannot elevate, its caller's
92+
`GITHUB_TOKEN`. This is independent of any scoped GitHub App token minted inside the child.
93+
9094
For example, this production-job excerpt depends on the preflight job; its reusable target contains the complete processing DAG:
9195

9296
```yaml
@@ -100,6 +104,10 @@ jobs:
100104
group: Process-PSModule-${{ github.workflow }}-production
101105
queue: max
102106
cancel-in-progress: false
107+
permissions:
108+
contents: read
109+
pages: write
110+
id-token: write
103111
uses: ./.github/workflows/Process.yml
104112
secrets:
105113
PSGALLERY_API_KEY: ${{ secrets.PSGALLERY_API_KEY }}

0 commit comments

Comments
 (0)