Skip to content

Conversation

@rosieyohannan
Copy link
Contributor

@rosieyohannan rosieyohannan commented Nov 25, 2025

Description

Improvements to OIDC Documentation

This PR addresses user feedback and improves clarity throughout the OpenID Connect tokens documentation.

Key changes:

1. Streamlined identity provider setup

  • Removed redundant explanations about setting up identity providers
  • Added clear explanation of what identity providers are and why they're needed
  • Moved setup instructions to provider-specific sections to avoid duplication

2. AWS section improvements

  • Reorganized "Advanced usage" section to be AWS-specific (was incorrectly positioned as generic)
  • Clarified that no manual credentials file setup is needed - the aws-cli/setup orb handles everything automatically

3. GCP section clarifications

  • Clarified that the GCP config file can be either downloaded once and committed, OR generated dynamically in each job
  • Fixed misleading language about the audience field "not being set up yet" - now clearly explains these are placeholders to customize
  • Added explanation of both $CIRCLE_OIDC_TOKEN and $CIRCLE_OIDC_TOKEN_V2 options
  • Improved NOTE about dynamic config generation (removed undermining language like "attempt to")

4. General improvements

  • Better section headings and structure throughout
  • Improved step-by-step flow for GCP setup
  • Added context link for CircleCI contexts
  • Improve linter checker for table titles

What This Addresses:

Original feedback: "Documentation was lacking information on how to set up the credentials file in the CircleCI environment"

Original feedback: "Documentation was missing how to define specific roles within projects"

Reasons

General refresh and avoid confusion

Content Checklist

Please follow our style when contributing to CircleCI docs. Our style guide is here: https://circleci.com/docs/style/style-guide-overview.

Please take a moment to check through the following items when submitting your PR (this is just a guide so will not be relevant for all PRs):

  • Break up walls of text by adding paragraph breaks.
  • Consider if the content could benefit from more structure, such as lists or tables, to make it easier to consume.
  • Keep the title between 20 and 70 characters.
  • Consider whether the content would benefit from more subsections (h2-h6 headings) to make it easier to consume.
  • Check all headings h1-h6 are in sentence case (only first letter is capitalized).
  • Include relevant backlinks to other CircleCI docs/pages.

@rosieyohannan rosieyohannan marked this pull request as ready for review November 26, 2025 13:13
@rosieyohannan rosieyohannan requested review from a team as code owners November 26, 2025 13:13
| `exp`
| The expiration time. Its value is one hour after the time of issuance.
| `$CIRCLE_OIDC_TOKEN`
| The default OIDC token. See <<format-of-the-openid-connect-id-token>> for full details.

Choose a reason for hiding this comment

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

I'd maybe not use the word "default", as it implies that this is the one customers should be using (unless they have other needs that the V2 token fulfils) when actually either token is probably fine (and maybe we actually want people using the V2).

| The time of issuance. This is the time the token was created, which is shortly before the job starts.

| `exp`
| The expiration time. Its value is one hour after the time of issuance.

Choose a reason for hiding this comment

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

This can also be customised (via the APIs), which might be worth mentioning (maybe on the other page, and maybe out of scope for this update).

`"org/<organization_id>/project/<project_id>/user/<user_id>/vcs-origin/<vcs_origin>/vcs-ref/<vcs_ref>"`, a string, where `organization_id`, `project_id`, and `user_id` are UUIDs that identify the CircleCI organization, project, and user, respectively. The user is the CircleCI user that caused this job to run. `vcs_origin` and `vcs_ref` are strings that identify the repository URL and reference to the change that caused the job to run.

| `aud`
| The audience. By default, this is `ORGANIZATION_ID`, a string containing a UUID that identifies the job's project's organization. To customize the audience you can generate an OIDC token with a custom audience. See xref:oidc-tokens-with-custom-claims.adoc[OIDC Tokens With Custom Claims] for more information.

Choose a reason for hiding this comment

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

Might be beyond the scope of this change but I think the OIDC Tokens With Custom Claims page only makes reference to the use of the subcommand to generate a one-time customised token, but there's also the APIs which allow for permanent customisation

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.

3 participants