proposed edits to github actions guide page - #2347
Merged
ssveta7ak merged 1 commit intoAug 13, 2026
Merged
Conversation
✅ Deploy Preview for pomerium-docs ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Greptile SummaryThe PR streamlines the GitHub Actions OIDC guide and separates token acquisition from the protected-route request.
Confidence Score: 4/5The PR is not yet safe to merge because the previously reported missing-token checkpoint still gives readers the wrong expected response. The current guide continues to expect 403 for a bearer route with no token, while the repository's bearer-token reference specifies 401 Unauthorized, so a correctly configured deployment can fail the documented checkpoint. Files Needing Attention: content/docs/guides/github-actions.mdx
|
| Filename | Overview |
|---|---|
| content/docs/guides/github-actions.mdx | Reworks the guide's structure and changes the sample workflow to acquire and consume the OIDC token in separate steps. |
Sequence Diagram
sequenceDiagram
participant W as GitHub Actions
participant G as GitHub OIDC
participant P as Pomerium
participant U as Upstream
W->>G: Request OIDC token
G-->>W: Return signed JWT
W->>W: Store token in GITHUB_ENV
W->>P: Request with Bearer token
P->>P: Verify token and policy
P->>U: Proxy authorized request
Reviews (2): Last reviewed commit: "revisions to github actions guide page" | Re-trigger Greptile
Reorder and streamline the introduction, reduce some duplication, and remove some details that might be more confusing than helpful.
kenjenkins
force-pushed
the
kenjenkins/docs-jwt-access-edits
branch
from
August 12, 2026 23:14
aa05a72 to
6442f5c
Compare
ssveta7ak
approved these changes
Aug 13, 2026
ssveta7ak
added a commit
that referenced
this pull request
Aug 13, 2026
* docs(bearer-tokens): document machine-to-machine access with bearer tokens & JWTs
Add a cohesive capabilities page introducing how clients present an
Authorization: Bearer token to Pomerium to reach upstreams without an
interactive sign-in, covering all four bearer_token_format modes
(default, idp_access_token, idp_identity_token, jwt) as a single feature.
- New capabilities page with Kubernetes service account example
- New reference pages for jwt_allowed_issuers and jwt_allowed_audiences
- Document the new jwt option on the bearer-token-format reference
- Register the capabilities page in the sidebar
* docs(bearer-tokens): tighten prose style on capabilities page
Reduce emphasis to structural labels, thin em-dashes, de-bold inline
HTTP status codes, and recast the two parallel no-X-no-Y-no-Z fragments.
Prose-only; no content or link changes.
* docs(bearer-tokens): reframe JWT bearer acceptance as identity_providers
The JWT bearer-token feature shipped with a consolidated identity_providers
map rather than the flat jwt_allowed_issuers + jwt_allowed_audiences settings
these pages originally documented. Rewrite the pages to match:
- identity_providers is a map keyed by provider name; audiences are
per-provider (required, non-empty, fail-closed). Drop the old 'name' field.
- Routes select providers via an optional per-route identity_providers
allowlist; bearer_token_format: jwt remains the gate.
- Document the identity model: session idp_id = provider name, user id =
<provider-name>/<sub>, sub required, session TTL capped to
min(token exp, cookie_expire), raw JWT not persisted.
- supported_algs rejects none/HS*; JWKS TLS reuses the global
certificate_authority_file.
Replace reference/jwt-allowed-issuers with reference/identity-providers
("JWT Identity Providers"), delete reference/jwt-allowed-audiences, and add
reference/routes/identity-providers for the per-route allowlist.
* docs(bearer-tokens): consolidate format coverage into the reference
The capabilities page split format coverage: it pointed to Bearer Token
Format for the IdP formats while covering the jwt format itself, a false
symmetry since the reference is the setting's home for all four formats.
Move the format-agnostic mechanics and the four-format table to the
Bearer Token Format reference, and the caller-identity behavior to JWT
Identity Providers. The capabilities page becomes a pure jwt/M2M workflow
guide that references those, collapsing duplication that already existed
between it and the identity_providers reference.
* docs(bearer-tokens): add mermaid diagrams for JWT verification & format dispatch
* docs(guides): add GitHub Actions JWT bearer token guide
Add a guide for letting a GitHub Actions workflow call a Pomerium-protected
route with the OIDC token GitHub issues to each job, verified against the
trusted issuer declared in identity_providers on a route using
bearer_token_format: jwt, and authorized on the token's claims.
AI usage disclosure (AI_POLICY.md): drafted and revised with Claude Code.
The workflow, config, status codes, and log output were verified against a
live Pomerium deployment and the Pomerium source before publishing.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* docs(guides): show the bare token request and route call (#2346)
* proposed edits to github actions guide page (#2347)
revisions to github actions guide page
Reorder and streamline the introduction, reduce some duplication, and
remove some details that might be more confusing than helpful.
* docs(guides): mark github-actions guide non-sealable for fixture validation (#2346)
The fixture harness seals a guide into Docker Compose with an in-network
Keycloak. Neither half of this flow survives that: a GitHub Actions OIDC
token can only be minted inside a runner, where GitHub injects the
ACTIONS_ID_TOKEN_REQUEST_* variables, and Pomerium must reach
token.actions.githubusercontent.com for the issuer's JWKS.
Add validate/SKIP with that reason and the manual validation record, plus
validate/screenshots-skip, which the media policy requires because the
guide references no screenshot.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Denis Mishin <dmishin@pomerium.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Kenneth Jenkins <51246568+kenjenkins@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Proposed edits to #2346:
Reorder and streamline the introduction, reduce some duplication, and remove some details that might be more confusing than helpful.
Split the example workflow into two steps: I think this might be more representative of real-world use. It seems likely to me that you might want to make multiple requests using the OIDC token, so we can show how to store it into an environment variable that GitHub will make available in other steps.