Diagrams from your code, behind your single sign-on
On every pull request, GitHub Actions redraws your diagrams from the code and publishes them to your private library. No stored keys.
Once, in the portal under Keys and CI, an admin adds a trusted publisher: GitHub Actions, the repository parcelpoint/checkout and its workflow file diagrams.yml, able to publish diagrams and report drift. It is added and valid.
- GitHub ActionsAsks GitHub for a signed OpenID Connect token. No secret in the repository.
- PlotworkChecks the repository by its GitHub id, and gives a token that lives 15 minutes.
- Your libraryDiagrams land in folders only the roles and people you choose can open.
One workflow file, no key to rotate
Name the repository and its workflow file once in the portal. Every run after that signs itself in.
- Pinned to the repositoryGitHub's numeric ids for the repository and its owner are pinned, so a repository made again under the same name is refused.
- Scoped to what you allowPublish to the library, report drift, or both. Never read the audit log. Narrow it to a deployment environment or a branch.
- Short-lived by designEach token lives 15 minutes. Plotwork keeps only a SHA-256 of it, never the token and no secret of yours.
name: diagramson: pull_request: push: branches: [main]permissions: contents: read id-token: writejobs: diagrams: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 with: persist-credentials: false # Sign in as a trusted publisher: the second tab, until Action v1.2.0 - uses: plotwork-official/plotwork-action@86ae8278fa771a422d9df60185182f14b8be4db9 # v1.1.0 with: command: generate mode: check report-drift: trueAction v1.1.0 needs one step to sign in. From v1.2.0 it signs in by itself and the step goes.
What your platform and security teams get
Each one is a setting in the portal, written to the audit log when it changes.
- No stored secrets (opens in a new tab)
GitHub's OpenID Connect token for a Plotwork token that lives 15 minutes. Nothing to rotate, nothing to leak.
Plan: Pro and Enterprise - Single sign-on and SCIM (opens in a new tab)
SAML or OpenID Connect from Okta, Entra ID or Google Workspace. A person your provider removes loses access at once.
Plan: Enterprise - Library only, never public (opens in a new tab)
Require every member's publish to go to the private library, so no diagram reaches a public link.
Plan: Pro and Enterprise
And around it
- A required check on every pull request (opens in a new tab)The Action redraws each diagram from its files and fails the check when one has drifted, naming what changed.Plan: Every plan
- Redrawn for you (opens in a new tab)In write mode the Action opens one pull request with the diagrams brought up to date, or commits to the branch.Plan: Every plan
- Classification and approval (opens in a new tab)Public, Internal or Confidential on every diagram, and a publish held until an approver lets it through.Plan: Every plan
- Drift across every repository (opens in a new tab)One dashboard of which repositories have diagrams out of step with their code, and who owns them.Plan: Pro and Enterprise
- Approved patterns (opens in a new tab)Agents and teams start from the organisation's own architecture patterns, such as a firewall in front of every API.Plan: Enterprise
- Audit log to your SIEM (opens in a new tab)Who changed what, from which network, sent as it happens to Datadog, Splunk, Sentinel or a signed webhook.Plan: Enterprise
A library your organisation controls
Everything CI publishes goes to the organisation, not to a public link. Single sign-on decides who is in it, and roles decide what each person can do.
How organisations work (opens in a new tab)| Action | Owner | Admin | Member | Reader |
|---|---|---|---|---|
| See the library and download a diagram | Yes | Yes | Yes | Yes |
| Publish a diagram | Yes | Yes | Yes | No |
| Approve held publishes | Yes | Yes | If chosen | No |
| Make the organisation's keys | Yes | Yes | No | No |
| Set up single sign-on and send audit events to your tools | Yes | Yes | No | No |
| Change a member's role | Yes | No | No | No |
Roll it out across every repository
One reusable workflow, a required check, and a library behind your identity provider. Tell us how many repositories you run.