Verifiable provisioning records for agent-driven infrastructure
The point is not to make PEAC a provisioning system. The point is to make provisioning observable as a portable record when a resource, credential, domain, budget, or deployment target changes across systems.
Provisioning used to be a human workflow.
A developer created an account, opened a dashboard, copied keys into .env, configured a database, wired auth, added analytics, and deployed the app. Some of that work lived in Git. Some lived in provider dashboards. Some lived in shell history. A lot lived nowhere durable at all.
That model is changing.
Coding agents can now set up more of the application stack directly. They can initialize projects, provision databases, attach auth, create analytics projects, rotate credentials, and sync environment variables. Stripe Projects is one visible example of this shift: a CLI workflow for adding third-party services, managing credentials, handling upgrades, and giving coding agents the same command path humans use.
That is useful. It is also a new audit problem.
When an agent provisions infrastructure, teams need to answer simple questions later:
- What changed?
- Which service was added?
- Which credential flow happened?
- Which local project state changed?
- What did the CLI report?
- What can be verified without reopening every provider dashboard?
Logs help, but logs usually stay where they were produced. They are often local, partial, mutable, or tied to a specific vendor's system.
Provisioning needs a portable record layer.
What PEAC does not do
- PEAC does not store credentials, secrets, or runtime tokens.
- PEAC does not run vendor accounts, replace cloud control planes, or take over CLIs.
- PEAC does not orchestrate provisioning, retry failed operations, or roll back changes.
- PEAC does not assert that a provisioning action was authorized, only that it was observed.
- PEAC does not replace your provider's audit log; it produces a portable signed record alongside it.
What PEAC adds
PEAC is the open standard for verifiable interaction records across agent, tool, API, and cross-runtime systems.
For provisioning workflows, PEAC does one narrow thing: it records what was observed.
A PEAC provisioning record can bind to the local artifacts around a workflow: command output, project state, environment sync metadata, credential rotation events, generated LLM context, or other sanitized evidence. The record can then be signed, exported, and verified later without depending on the original runtime.
That distinction matters.
- PEAC does not provision resources.
- PEAC does not store credentials.
- PEAC does not become a vault.
- PEAC does not approve actions.
- PEAC does not decide whether a provider state is legally or operationally final.
It records what the issuer observed in a provisioning flow, and makes that record portable.
The first concrete example: Stripe Projects
We added a PEAC example and integration kit for Stripe Projects provisioning records.
The example is intentionally small. It does not wrap Stripe Projects. It does not claim a Stripe partnership. It does not introduce a new PEAC package or a new protocol surface.
It shows a pattern:
- run a provisioning workflow through Stripe Projects
- capture sanitized local artifacts
- issue signed PEAC records for the observed steps
- verify those records offline
- reconstruct a small audit trail from portable artifacts
The fixture-backed example covers four observed events:
- project initialization
- service addition
- credential rotation
- LLM context generation
Each record binds to observed artifacts from the workflow. The example uses experimental, illustrative type names. They are not registry commitments. That is deliberate. The goal is to show the shape of the record, not freeze a vendor-specific vocabulary too early.
Why this matters for agents
Agent-driven provisioning creates a boundary problem.
- The agent may run locally.
- The CLI may talk to Stripe.
- Stripe may coordinate with a provider.
- The provider may create a resource.
- Credentials may be synced into local files.
- The app may later run somewhere else.
No single system naturally owns the full story.
That is exactly where signed records are useful. They let each boundary emit or preserve a verifiable statement about what it observed, without forcing one platform to become the control plane for everything.
For developers, this helps answer:
- "Did the agent actually add the database?"
- "What changed after that command?"
- "Which project state was the app built against?"
- "Can another teammate verify the same setup trail?"
- "Can we review the workflow without exposing secrets?"
For teams, it creates a cleaner audit habit: keep logs local, but let signed records travel.
What the kit does not claim
This is important enough to say plainly.
The Stripe Projects kit records provisioning and credential workflow observations. It does not infer settlement, legal acceptance, provider-side finality, or production deployment state from CLI artifacts.
For example, a local state change can show what the CLI observed. It does not, by itself, prove every downstream provider system completed exactly as intended. A billing or upgrade flow can show delegation-related evidence. It does not automatically become payment settlement evidence.
That conservative boundary is the point.
Why not just use logs?
Logs are necessary. They are not enough.
A log is usually tied to the system that produced it. A signed interaction record is designed to leave that system.
That makes a difference when work crosses teams, vendors, agents, and runtimes. A provisioning trail may begin in a local CLI session, pass through provider APIs, affect environment files, and later become relevant during security review, incident response, onboarding, or compliance work.
The useful question is not "can we log this?"
The useful question is:
That is the gap PEAC is built for.
A pattern, not a one-off
Stripe Projects is the first concrete example here because it is a clear, current provisioning workflow with agent support, local project state, credential sync, and provider coordination.
But the category is broader.
The same pattern applies to:
- cloud project creation
- API token issuance
- database provisioning
- auth setup
- sandbox creation
- environment sync
- managed runtime setup
- agent tool installation
- provider dashboard changes exported into local workflows
The protocol category is not "Stripe Projects records."
The category is verifiable provisioning records.
Stripe Projects is simply a good place to show the pattern. The Stripe Projects providers directory already shows the shape of a broader app-stack provisioning surface, not just a Stripe-internal tool.
Where provisioning records apply
Stripe Projects shows the shape of a broader category: agents and CLIs increasingly provision services across app stacks. PEAC does not replace those providers. It gives teams portable signed records of what changed, which tool observed it, and what another party can verify later.
- AgentMailAgent messagingExample provisioning eventcreate inbox, route, or API key for an agent mail surfacePEAC record valuesigned record of which agent provisioned which mail surface and key
- AlgoliaSearchExample provisioning eventcreate application, index, or API keyPEAC record valuesigned record of search-index provisioning by an agent
- AmplitudeProduct analyticsExample provisioning eventcreate project, API key, or event sourcePEAC record valuesigned record of analytics workspace setup tied to an agent session
- Auth0 / OktaIdentityExample provisioning eventcreate tenant, application, or admin grantPEAC record valuesigned record of identity-provider configuration by an agent or operator
- BrowserbaseBrowser automationExample provisioning eventcreate project, session pool, or API keyPEAC record valuesigned record of browser-runtime provisioning tied to an agent workflow
- ChromaVector databaseExample provisioning eventcreate database, collection, or tokenPEAC record valuesigned record of vector-store provisioning tied to an agent session
- ClerkIdentityExample provisioning eventcreate application, configure social connection, issue API keysPEAC record valuesigned record of auth setup, including which agent configured which app
- CloudflareEdge and DNSExample provisioning eventcreate Worker, KV namespace, R2 bucket, or DNS recordPEAC record valuesigned record of edge resource provisioning, including which tool ran the change
- DaytonaDev environmentsExample provisioning eventcreate workspace, runtime, or access tokenPEAC record valuesigned record of remote dev-environment provisioning by an agent
- ElevenLabsVoice and audioExample provisioning eventcreate project, voice, or API keyPEAC record valuesigned record of voice-platform setup events
- FirecrawlWeb dataExample provisioning eventcreate project, crawler job, or API keyPEAC record valuesigned record of crawl-platform provisioning by an agent or operator
- Fly.ioHostingExample provisioning eventcreate app, allocate machine, set secretPEAC record valuesigned record of app + region provisioning by an agent session
- GitLabSource and CIExample provisioning eventcreate project, runner, or deploy tokenPEAC record valuesigned record of which agent provisioned which CI surface
- Hugging FaceModel hostingExample provisioning eventcreate space, model repo, or access tokenPEAC record valuesigned record of model-repo and token provisioning
- InngestBackground jobsExample provisioning eventcreate environment, function, or signing keyPEAC record valuesigned record of background-job platform setup by an agent
- MixpanelProduct analyticsExample provisioning eventcreate project, service account, or tokenPEAC record valuesigned record of analytics-platform provisioning events
- NeonDatabaseExample provisioning eventcreate project, branch, role, or API keyPEAC record valuesigned record of agent-driven Postgres branch and credential setup
- NetlifyHostingExample provisioning eventcreate site, environment variable, or deploy hookPEAC record valuesigned record of site + environment setup tied to an agent or developer session
- OpenRouterModel routingExample provisioning eventcreate workspace, API key, or routing rulePEAC record valuesigned record of model-routing provisioning tied to an agent workflow
- PlanetScaleDatabaseExample provisioning eventcreate database, branch, or service tokenPEAC record valuesigned record of branch lifecycle and token issuance
- PostHogProduct analyticsExample provisioning eventcreate project, API key, or feature flagPEAC record valuesigned record of analytics workspace setup by an agent
- PrivyAuth and walletsExample provisioning eventcreate app, configure login methods, issue API keysPEAC record valuesigned record of auth and wallet-surface setup by an agent or operator
- RailwayHostingExample provisioning eventcreate project, service, or environment variablePEAC record valuesigned record of project bootstrap and environment wiring
- RenderHostingExample provisioning eventcreate service, environment, or deploy hookPEAC record valuesigned record of which agent provisioned which service tier
- RunloopAgent runtimesExample provisioning eventcreate devbox, snapshot, or runtime tokenPEAC record valuesigned record of agent-runtime provisioning tied to an agent session
- SentryError trackingExample provisioning eventcreate organization, project, or DSNPEAC record valuesigned record of error-tracking surface provisioning by an agent
- SquarespaceDomains and sitesExample provisioning eventregister or connect a domain, configure DNS, issue API accessPEAC record valuesigned record of domain-surface provisioning attributable to an agent session
- SupabaseDatabase and authExample provisioning eventcreate project, schema, RLS policy, or API keyPEAC record valuesigned record of agent-driven project setup and key issuance
- TursoDatabaseExample provisioning eventcreate database, group, or auth tokenPEAC record valuesigned record of edge-SQLite provisioning by an agent or CLI
- TwilioMessaging and voiceExample provisioning eventprovision phone number, messaging service, or API keyPEAC record valuesigned record of which agent allocated which number for which app
- UpstashDatabaseExample provisioning eventcreate Redis or Kafka, set credentials, configure regionPEAC record valuesigned record of serverless data-surface provisioning by an agent
- VercelHostingExample provisioning eventcreate project, deploy preview, set environment variablePEAC record valuesigned record of project and environment setup tied to an agent or developer session
- WorkOSIdentity and SSOExample provisioning eventcreate organization, configure SSO connection, issue API keyPEAC record valuesigned record of identity-platform setup actions by an agent or operator
Provider names are included to explain where provisioning records can apply. This does not imply that any listed provider uses, endorses, or integrates PEAC.
Try it
The PEAC repo now includes:
- a runnable Stripe Projects provisioning records example
- sanitized fixtures
- offline verification
- an integration kit for teams that want to adapt the pattern
Start with the example. Read the kit. Then adapt the observer pattern to your own provisioning workflow.
The goal is not to replace your CLI, cloud provider, agent framework, or deployment system.
The goal is simpler: