Skip to content

[CLO-538] Add access control docs and rewrite MFA guide for WorkOS - #972

Merged
stktung merged 2 commits into
masterfrom
timurnugaev/clo-538-documentation-update
Jul 29, 2026
Merged

stktung merged 2 commits into
masterfrom
timurnugaev/clo-538-documentation-update

Conversation

@aqaliarept

Copy link
Copy Markdown
Contributor

Add a new Access Control section covering members, groups, policies, single sign-on (SAML/OIDC), and service accounts. Rewrite the MFA setup guide to match the new WorkOS-based flow and refresh the screenshots. Point the introduction at the new section and reorder the cloud sidebar to fit it in.

Add a new Access Control section covering members, groups, policies,
single sign-on (SAML/OIDC), and service accounts. Rewrite the MFA
setup guide to match the new WorkOS-based flow and refresh the
screenshots. Point the introduction at the new section and reorder
the cloud sidebar to fit it in.
@aqaliarept
aqaliarept requested a review from a team as a code owner July 29, 2026 12:32
@linear-code

linear-code Bot commented Jul 29, 2026

Copy link
Copy Markdown

CLO-538

@github-actions

github-actions Bot commented Jul 29, 2026 •

Copy link
Copy Markdown

@qodo-code-review

Copy link
Copy Markdown
Contributor

PR Summary by Qodo

Add Access Control docs and update WorkOS MFA guide

📝 Documentation ⚙️ Configuration changes 🕐 20-40 Minutes

Grey Divider

AI Description

• Add a new Access Control docs section covering members, groups, policies, SSO, and service
 accounts.
• Rewrite the MFA setup guide to match the WorkOS-based UI flow and screenshots.
• Update Cloud docs navigation ordering and point the introduction to the new section.
Diagram

graph TD
  Intro["docs/cloud/introduction.md"] --> AC["docs/cloud/access-control/README.md"] --> SSO["docs/cloud/access-control/sso.md"]
  AC --> SA["docs/cloud/access-control/service-accounts.md"]
  AC --> MFA["docs/cloud/ops/account-security.md"]
  Nav["Cloud sidebar order"] --> AC
  SSO --> Shots("Updated screenshots")
  SA --> Shots
  MFA --> Shots
Loading
High-Level Assessment

The PR’s approach (introduce a dedicated Access Control section and align MFA docs/screenshots with the current WorkOS UI) is the most maintainable option for reducing duplication and keeping security guidance discoverable. Alternatives like keeping MFA/SSO scattered across existing sections were implicitly avoided and would make navigation and future updates harder.

Files changed (21) +372 / -53 · 10 not counted

Documentation (15) +366 / -47
README.mdAdd Access Control section index and conceptual overview +63/-0

Add Access Control section index and conceptual overview

• Introduces a new Access Control documentation section with a landing page describing members, invitations, groups, policies, service accounts, SSO, and MFA settings. Includes cross-links to the new SSO and service account guides and to the MFA requirement section in Ops.

docs/cloud/access-control/README.md

service-accounts.mdDocument service account lifecycle: scopes, auth, rotation, and automation usage +153/-0

Document service account lifecycle: scopes, auth, rotation, and automation usage

• Adds a full guide for creating and managing service accounts, including scoped permissions model, OAuth client-credentials authentication, and secret rotation/revocation guidance. Includes usage notes for esc CLI and recommends service accounts for Terraform/Pulumi automation.

docs/cloud/access-control/service-accounts.md

sso.mdAdd SSO setup guide for SAML/OIDC with domain verification flow +136/-0

Add SSO setup guide for SAML/OIDC with domain verification flow

• Adds documentation for configuring organization-level SSO via SAML 2.0 or OIDC, including prerequisite admin access and a two-step domain verification + IdP configuration process. Covers sign-in behavior, related invite/MFA settings, and troubleshooting tips.

docs/cloud/access-control/sso.md

account-security.mdRewrite MFA instructions to match WorkOS flow and new screenshots +11/-40

Rewrite MFA instructions to match WorkOS flow and new screenshots

• Updates user MFA steps to reflect the current “Set up MFA” dialog flow and replaces older multi-step screenshots with refreshed ones. Updates organization-wide MFA requirement instructions to direct users to Access Control → Settings and clarifies enforcement behavior.

docs/cloud/ops/account-security.md

introduction.mdPoint introduction access-control overview to the new Access Control section +3/-7

Point introduction access-control overview to the new Access Control section

• Condenses the access control description and replaces detailed inline instructions with a link to the new Access Control docs. Keeps a brief explanation of default admin groups and project admin inheritance.

docs/cloud/introduction.md

sso-settings.jpgAdd/replace screenshot for Access Control SSO settings page not counted

Add/replace screenshot for Access Control SSO settings page

• Adds or refreshes the SSO settings screenshot used in the SSO guide.

docs/cloud/access-control/images/sso-settings.jpg

sso-verify-domain.jpgAdd/replace screenshot for SSO domain verification wizard not counted

Add/replace screenshot for SSO domain verification wizard

• Adds or refreshes the domain verification screenshot used in the SSO guide.

docs/cloud/access-control/images/sso-verify-domain.jpg

service-account-empty.jpgAdd/replace service account empty state screenshot not counted

Add/replace service account empty state screenshot

• Adds or refreshes the service account empty state screenshot used in the service accounts guide.

docs/cloud/access-control/images/service-account-empty.jpg

service-account-new.jpgAdd/replace screenshot for creating a new service account not counted

Add/replace screenshot for creating a new service account

• Adds or refreshes the create service account screenshot used in the service accounts guide.

docs/cloud/access-control/images/service-account-new.jpg

service-account-scopes.jpgAdd/replace screenshot for service account scope matrix not counted

Add/replace screenshot for service account scope matrix

• Adds or refreshes the scopes matrix screenshot used in the service accounts guide.

docs/cloud/access-control/images/service-account-scopes.jpg

service-account-authentication.jpgAdd/replace screenshot for service account authentication tab not counted

Add/replace screenshot for service account authentication tab

• Adds or refreshes the authentication tab screenshot showing client ID/secret details.

docs/cloud/access-control/images/service-account-authentication.jpg

service-account-authorization.jpgAdd/replace screenshot for service account authorization tab not counted

Add/replace screenshot for service account authorization tab

• Adds or refreshes the authorization tab screenshot used when editing service account scopes.

docs/cloud/access-control/images/service-account-authorization.jpg

mfa-preferences.jpgAdd/replace screenshot for MFA preferences section not counted

Add/replace screenshot for MFA preferences section

• Adds or refreshes the MFA preferences screenshot referenced by the updated MFA instructions.

docs/cloud/ops/images/mfa-preferences.jpg

mfa-setup.jpgAdd/replace screenshot for Set up MFA dialog not counted

Add/replace screenshot for Set up MFA dialog

• Adds or refreshes the Set up MFA dialog screenshot referenced by the updated MFA instructions.

docs/cloud/ops/images/mfa-setup.jpg

mfa-org-settings.jpgAdd/replace screenshot for organization MFA settings not counted

Add/replace screenshot for organization MFA settings

• Adds or refreshes the organization MFA settings screenshot referenced by the updated org-level MFA requirement instructions.

docs/cloud/ops/images/mfa-org-settings.jpg

Other (6) +6 / -6
README.mdReorder sidebar: move Operations down after adding Access Control +1/-1

Reorder sidebar: move Operations down after adding Access Control

• Adjusts the Operations section ordering to accommodate the new Access Control section in the Cloud sidebar navigation.

docs/cloud/ops/README.md

README.mdReorder sidebar: shift Networking section order +1/-1

Reorder sidebar: shift Networking section order

• Updates the Networking section order value to maintain consistent sidebar ordering after inserting Access Control.

docs/cloud/networking/README.md

tutorials.mdReorder sidebar: shift Tutorials page order +1/-1

Reorder sidebar: shift Tutorials page order

• Updates the Tutorials page order to maintain Cloud docs sidebar sequence after inserting Access Control.

docs/cloud/tutorials.md

README.mdReorder sidebar: shift Automations section order +1/-1

Reorder sidebar: shift Automations section order

• Updates the Automations section order value to maintain consistent sidebar ordering after inserting Access Control.

docs/cloud/automation/README.md

README.mdReorder sidebar: shift Integrations section order +1/-1

Reorder sidebar: shift Integrations section order

• Updates the Integrations section order value to maintain consistent sidebar ordering after inserting Access Control.

docs/cloud/integrations/README.md

README.mdReorder sidebar: shift Guides section order +1/-1

Reorder sidebar: shift Guides section order

• Updates the Guides section order value to maintain consistent sidebar ordering after inserting Access Control.

docs/cloud/guides/README.md

@github-actions

Copy link
Copy Markdown

@qodo-code-review

Copy link
Copy Markdown
Contributor

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider

Great, no issues found!

Qodo reviewed your code and found no material issues that require review

Grey Divider

To customize comments, go to the Qodo configuration screen, or learn more in the docs.

Qodo Logo

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 29, 2026 •

Copy link
Copy Markdown

Deploying documentation with  Cloudflare Pages  Cloudflare Pages

Latest commit: 653546e
Status:⚡️  Build in progress...

View logs

@stktung stktung left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Review of the new access control docs and the WorkOS MFA rewrite. The structure and
writing read well, and the sidebar ordering is coherent (introduction 1 → getting-started 2
→ access-control 3 → ops 4 → tutorials 5 → networking 6 → automation 7 → integrations 8 →
guides 9, no collisions). I also checked that none of the eight deleted enable-mfa-*.png
images are still referenced anywhere — they are not.

Two inline findings below, plus one stale line just outside the diff that I have raised as a
separate general comment. The Terraform/Pulumi one needs a product answer before we pick the
right fix.

Comment thread docs/cloud/introduction.md Outdated
### Access control

Each organization has its own access control, which includes the list of users who have access to the organization, groups, roles, policies, and identity providers.
Each organization has its own access control, covering the members who can access the organization, the groups, roles, and policies that govern what they can do, single sign-on through your own identity provider, and service accounts for automation.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This sentence mentions roles, but the new Access Control section doesn't document a role concept — the pages cover members/invitations, groups, policies, SSO, and service accounts, and there's no roles page or Roles UI described anywhere in docs/cloud/access-control/. As written it sends readers looking for something the docs never explain.

Suggest dropping the term:

Suggested change
Each organization has its own access control, covering the members who can access the organization, the groups, roles, and policies that govern what they can do, single sign-on through your own identity provider, and service accounts for automation.
Each organization has its own access control, covering the members who can access the organization, the groups and policies that govern what they can do, single sign-on through your own identity provider, and service accounts for automation.

If roles are still a real part of the product, then the opposite fix applies — the new section needs a roles page to link to.

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.

fixed

Comment on lines +148 to +153
Service accounts are the recommended identity for infrastructure automation.
Configure the [Terraform](../automation/terraform.md) or
[Pulumi](../automation/pulumi.md) provider with a service account's credentials
so that plans and applies run under an identity that is not tied to a single
person. See the [Automations](../automation/README.md) section for provider
setup.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This recommends configuring the Terraform and Pulumi providers with service account credentials, but neither provider's setup docs support that path today:

  • docs/cloud/automation/terraform.md:64 — "The Kurrent Cloud provider must be configured with an access token."
  • docs/cloud/automation/pulumi.md:36 — eventstorecloud:token is "a valid refresh token for an Kurrent Cloud account with admin access".

Neither mentions a client ID/secret. So a reader who follows this section lands on provider setup that only documents user tokens.

Question before we pick a fix: do the providers already accept service account credentials (client credentials grant)? If they do, the provider docs are the stale ones and should be updated instead of this page. If they don't, I'd narrow the claim here so we're not promising something unsupported:

Suggested change
Service accounts are the recommended identity for infrastructure automation.
Configure the [Terraform](../automation/terraform.md) or
[Pulumi](../automation/pulumi.md) provider with a service account's credentials
so that plans and applies run under an identity that is not tied to a single
person. See the [Automations](../automation/README.md) section for provider
setup.
Service accounts are well suited to infrastructure automation, where plans and
applies should run under an identity that is not tied to a single person. Note
that the [Terraform](../automation/terraform.md) and
[Pulumi](../automation/pulumi.md) providers are currently configured with a
token rather than with service account credentials — see the
[Automations](../automation/README.md) section for each provider's setup.

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.

fixed

@stktung

stktung commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

One stale line just outside this PR's diff, in the same section the access-control rewrite touches — docs/cloud/introduction.md:56:

Within the organization's scope, you also have the list of users and roles, billing information, alerts, etc.

Same dead "roles" concept as line 62, six lines above it. It pre-dates this PR, but since the PR is what establishes the new members/groups/policies terminology, it'd be odd to leave the old wording sitting directly above the rewritten paragraph. Suggested wording:

Within the organization's scope, you also have the organization's members and groups, billing information, alerts, etc.

(Posting this as a general comment rather than inline because the line isn't part of the diff, so GitHub won't anchor a review comment to it.)

…th for Terraform

- introduction.md: replace "users and roles" with members/groups wording;
  drop "roles" from the access control overview since the docs don't
  document a role concept
- service-accounts.md: state provider support accurately — Terraform
  supports service account credentials from v3.1.0, Pulumi is still
  token-configured
- terraform.md: document client_id/client_secret (ESC_CLIENT_ID /
  ESC_CLIENT_SECRET) provider options and add a section on
  authenticating as a service account
@stktung
stktung merged commit bdc8286 into master Jul 29, 2026
2 of 3 checks passed
@stktung
stktung deleted the timurnugaev/clo-538-documentation-update branch July 29, 2026 17:36
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