Compliance
Audit-ready diagrams, every day of the year.
Network and data-flow diagrams drawn from your infrastructure code, kept current by a check in CI.
Evidence for
Passed17 Oct 2026, 06:43 UTC
ok: 1 diagram(s) checked, 0 drifted, 0 error(s)Diagrams go stale between audits
A drawing made for audit week is wrong by the next merge. A check on every merge keeps it right.
Redrawn by hand
- Audit weekRedrawn
- A new subnetOut of date
- A new queueOut of date
- Next auditRedrawn again
With Plotwork
- Audit weekChecked
- A new subnetRedrawn in the pull request
- A new queueRedrawn in the pull request
- Next auditAlready current
What auditors ask for
The diagrams these frameworks commonly request, and how Plotwork keeps each current.
SOC 2
- DC 200
- CC8.1
Auditors ask forSystem and data-flow diagrams, and proof changes are reviewed.
Plotwork keeps it currentRedrawn on every change, merged through review.
ISO/IEC 27001:2022
- A 5.9
- A 8.20
Auditors ask forThe assets in scope and how their networks are separated.
Plotwork keeps it currentEvery declared resource, nested in its network.
PCI DSS v4.0
- 1.2.3
- 1.2.4
Auditors ask forAn accurate network diagram and data-flow diagram.
Plotwork keeps it currentCI fails the change that leaves them behind.
HIPAA Security Rule
- 164.308(a)(1)(ii)(A)
Auditors ask forWhere electronic health information is stored and moves.
Plotwork keeps it currentData flows drawn from services and schemas.
NIST CSF 2.0
- ID.AM-03
Auditors ask forMaintained maps of network communication and data flows.
Plotwork keeps it currentDrawn from the code that defines them.
GDPR
- Art. 30
- Art. 35
Auditors ask forData-flow maps for the processing record and impact assessments.
Plotwork keeps it currentFlows drawn from your services and schemas.
Plotwork is a tool for producing diagram evidence; your auditor decides what satisfies a control. Plotwork itself is not certified against these frameworks.
Evidence you can hand over
One merge leaves all of this behind, from a real run.
- Failedinfra: add the session cache
failed: 1 diagram(s) checked, 1 drifted, 0 error(s) - Passeddocs: regenerate diagrams from their sources
ok: 1 diagram(s) checked, 0 drifted, 0 error(s)
drift: docs/infra.diagram (infra, terraform from infra/**/*.tf) Added 1 node (sessions) and 1 edge (web -> sessions). ~ header: desc changed: "4" became "5" + node sessions + edge web -> sessionsfailed: 1 diagram(s) checked, 1 drifted, 0 error(s)From a real run of plotwork generate in a test repository.
How it works in CI
Make the check required, and the pull request that leaves a diagram behind cannot merge.
1Name the sources
The files each diagram is made from.
{ "sources": [ { "name": "infra", "from": "infra/**/*.tf", "format": "terraform", "out": "docs/infra.diagram" } ]}2Fail on drift
The check says which diagram drifted and how.
drift: docs/infra.diagram (infra, terraform from infra/**/*.tf) Added 1 node (sessions) and 1 edge (web -> sessions). ~ header: desc changed: "4" became "5" + node sessions + edge web -> sessionsfailed: 1 diagram(s) checked, 1 drifted, 0 error(s)3Merge the redraw
The Action opens a pull request with the new diagram.
docs: regenerate diagrams from their sourcesOpen
plotwork/diagramsdocs/infra.diagramdocs/infra.svgdocs/infra.dark.svg
Built for the security review
What a reviewer asks about a tool that reads your infrastructure code.
No diagram source stored
Source is drawn in memory and never stored or logged.
On every plan
Privacy policy (opens in a new tab)- Diagram source storedNo
- Diagram source loggedNo
- A picture you publish keptYes
Check mode makes no network request
The check runs in your CI runner and reads no secret.
On every plan
Enterprise rollout (opens in a new tab)- Runs in your CI runnerYes
- Reads a secretNo
- Makes a network requestNo
Releases you can verify and pin
Signed build provenance for the Action, npm provenance, SHA-256 checksums, and the Action pinned to a commit.
On every plan
Pinning and updates (opens in a new tab)uses: plotwork-official/plotwork-action@78d7acaf4b673e10187eb9174a60a3da6949ee8a # v1.0.0- npm provenance
- dist/checksums.txt
- Dependabot
Audit log
Organisation audit log, events kept 30 days. Enterprise: audit log export as CSV or JSON Lines, and audit events and drift sent to Datadog, Dynatrace, Splunk, Microsoft Sentinel or a webhook as they happen.
Pro and Enterprise
Audit log (opens in a new tab)Drift dashboard
Drift dashboard across repositories, runs kept 90 days.
Pro and Enterprise
The drift dashboard (opens in a new tab)Reports your tools read
JSON, SARIF and JUnit from the same run.
On every plan
Outputs (opens in a new tab)Roles and locks
Owner, admin, member and reader, and diagrams nobody can move.
On every plan
Organisations (opens in a new tab)Self-hosting
One container, no outbound request. A self-hosting licence, as an add-on.
Enterprise
Self-hosting (opens in a new tab)Single sign-on
Single sign-on with OpenID Connect, with domains proved by DNS and every sign-in in the audit log. Single sign-on with SAML.
Enterprise
Keep diagrams current between audits
Roll the drift check out across your repositories.