SnapFlow Docs

Overview

Infrastructure & Targets (route /infra) is the single place to see everything about the systems SnapFlow manages: a visual map of what's actually out there, which providers are connected, the deploy "boundaries" (environments) and how much autonomy each grants, and the credential vault for services SnapFlow installs on your behalf. Four tabs: Topology, Connections, Boundaries, Secrets.

Topology

/infra?tab=topology
S /acme-devops
Guarded
⌘K Search or type / for commands…
πŸ•
πŸ””
A
Infrastructure & Targets
TopologyConnectionsBoundariesSecrets
Needs attention2 issues found β€” review the suggested fixes below.
86Score
142Resources
12Repos
3Environments
πŸ” Search resources… Β· All providers Β· ⚠️ Issues only
Your Infrastructure
☁️ AWS
EC2 Β· 8 instances
S3 Β· 2 public buckets
RDS Β· 1 instance
πŸ™ GitHub
12 repositories
◐ Recreated illustration β€” The Topology tab β€” the Infrastructure Overview band and the infra map beneath it.

Two stacked panels. First, an Infrastructure Overview band (once you have any resources): a colored state banner β€” Healthy Needs attention Critical β€” a numeric score, and count tiles for resources, repos, workflows, environments, and connected clouds. Below that, an issues list: each row has a severity tag, title, description, a suggested fix, and β€” where SnapFlow can act on it directly β€” a button that either navigates you to the fix or dispatches the fix as a new mission.

Second, the Infra Mind-Map β€” an interactive, deliberately static (non-drifting) diagram: "Your Infrastructure" at the root, branching into provider clusters (AWS, GCP, Azure, Kubernetes, DigitalOcean, GitHub, Servers), then services, then individual resources. A toolbar lets you search resources, filter by provider, toggle "⚠️ Issues only", and "↻ Rescan" everything connected. Click any node to open its detail panel. Empty state: "No infrastructure discovered yet" with a "Run discovery" button.

The node detail panel

Click any node to slide open its property page. The panel is deep-linkable β€” the URL gains ?inspect=infra:<resource id>, so you can share a link straight to one resource, and the browser back button closes it.

It shows everything discovery captured about that resource, grouped so a long list stays readable: Security first (encryption, versioning, public-access settings, permissions), then Network, Configuration, Timestamps, and anything else. Click any value to copy it. Below that: relationships (what it belongs to, what belongs to it), any issues affecting it, and its tags.

Acting on a resource

Each node offers the operations you would perform on it in your provider's own console β€” start, stop, resize and tag an instance; block public access or enable versioning on a bucket; restrict a firewall rule; restart a container or service; run, enable or disable a workflow. A repository additionally offers "Deploy to cloud…": pick AWS, GCP, Azure or DigitalOcean and SnapFlow works out how the repo builds, provisions what it needs there, deploys it, and verifies the result responds.

An action is a mission, not a button that calls your cloud

Clicking an action does not reach into your account directly. It composes the request and runs it as an ordinary mission β€” so it is planned, risk-classified, gated for approval where that applies, executed in an isolated container, verified, and settled under the same "only pay for what works" rule as anything else you ask for. You can watch it in Mission Control like any other run.

Destructive actions β€” terminating an instance, emptying or deleting a bucket, deleting a role, network or environment β€” are separated into their own Danger zone block at the bottom of the panel and marked Destructive. Before one can be dispatched you must type the resource's name to confirm. That is on top of, never instead of, the normal approval gate: a delete is always treated as critical, so it stops for a human decision in every permission mode.

Every action is scoped to the one resource you opened

An action never fans out across your estate. The request names only the selected resource, so "delete bucket" means that bucket β€” this is why the panel is the only place these operations are offered.

Connections

Connect and manage every cloud and CI/CD integration β€” AWS, GCP, Azure, Kubernetes, GitHub, DigitalOcean, and locally-enrolled servers.

Founder-only

Only agency founders can connect or disconnect providers. Everyone else sees a notice: "Only founders can connect or disconnect providers."

/infra?tab=connections
S /acme-devops
Guarded
⌘K Search or type / for commands…
πŸ•
πŸ””
A
Infrastructure & Targets 4 connected
TopologyConnectionsBoundariesSecrets
☁️ Amazon Web ServicesConnected
πŸ™ GitHubConnected
Connect Amazon Web Services
Connect with OIDC Trust Recommended
One click, no access keys stored.
Legacy: Access Keys
◐ Recreated illustration β€” The Connections tab, with the AWS connect modal open.

Connecting GitHub

Clicking Connect first shows a permissions preview modal, then either Proceed (installs SnapFlow's shared GitHub App) or Create your own app (choose specific permission scopes and create a dedicated app). Once connected, a panel shows repository access scope β€” No repositories All repositories Selected repositories β€” a "Manage on GitHub β†—" link, granted permission scopes, and a "Sync permissions" button.

Connecting AWS, GCP, or Azure

A chooser modal offers two paths:

PathWhat it means
OIDC / Federated trust β€” RecommendedOne click deploys a trust role (e.g. a CloudFormation stack for AWS); no access keys are ever stored. An expandable "Why OIDC?" note explains the tradeoff.
Legacy: Access Keys / Service Account Key / Client SecretA plain credential form, explicitly labeled "Legacy."

AWS specifically adds a "What should SnapFlow be able to do?" permission-scope picker β€” a toggle list of service categories (compute, storage, database, etc). Read-only access is always included; anything you check additionally grants provisioning/change rights in that area. Reconnecting an already-linked AWS account updates the existing role in place rather than creating a new one.

Kubernetes diagnostics

Once connected, click "Open diagnostics" for a modal with four modes β€” Overview, Rollout, Traffic, RBAC β€” fields for namespace/deployment/service/service-account, and a Run button that returns findings, a risk level (low/medium/high), and recommended next steps.

Other providers & servers

Providers without a dedicated flow use a generic credential form (text/password/textarea fields), saved either directly or as a reference to an existing environment variable or Vault path. Locally-enrolled/on-prem servers get their own section near the top of the page. Anything without connect support yet appears, dimmed, under "Coming soon."

At the bottom, a collapsible Agent readiness strip shows how many of the fleet's capabilities are fully operational vs. blocked given your current connections β€” expand it to see, per capability, which providers back it and, if blocked, which one it's still waiting on.

Boundaries

Environments define how much autonomy agents get in a given part of your infrastructure β€” every environment decides its own approval policy, and a production environment always requires approval for something.

/infra?tab=boundaries
S /acme-devops
Guarded
⌘K Search or type / for commands…
πŸ•
πŸ””
A
Infrastructure & Targets
TopologyConnectionsBoundariesSecrets
production prod
Gate every mutation
Provider: AWS Β· Auto-revert: On
staging default
Auto
Provider: AWS Β· Auto-revert: Off
◐ Recreated illustration β€” The Boundaries tab, showing environment cards including a "prod"-tagged one.

Click "+ New environment":

FieldWhat it means
Namee.g. "staging".
ProviderAWS, GCP, or Azure.
Approval policy"Auto β€” gate only flagged steps", "Gate every mutation", or "Gate every step (reads too)".
OIDC role suffix (optional)Free text.
This is a production environmentCheckbox. A production environment can't use the "Auto" policy β€” SnapFlow blocks Create and explains why until you pick a stricter policy.
Auto-revert on a critical incident after deployCheckbox, on by default for production environments.

Each environment in the list shows its policy as a status chip (Auto Gate mutations Gate all), a "prod" tag if production, a "default" tag on the one un-deletable default environment, and its provider/policy/OIDC role/auto-revert details.

"Change-as-PR"

When configured, a mission that provisions resources also opens a pull request in the repo you specify, with Terraform import blocks β€” so every change is a reviewable artifact your own team owns, not just something SnapFlow did quietly. Requires a connected GitHub integration. Fields: Owner, Repository, Base branch (default "main"), Path prefix (optional). Buttons: Connect repo / Update repo, and Disconnect once set up.

Secrets

Not the same as Connections

This vault is for credentials of services SnapFlow itself installs and runs for you β€” for example a database it stands up. Credentials for connecting your own AWS/GCP/Azure/GitHub accounts live under the Connections tab instead.

/infra?tab=secrets
S /acme-devops
Guarded
⌘K Search or type / for commands…
πŸ•
πŸ””
A
Infrastructure & Targets
TopologyConnectionsBoundariesSecrets
Stored credentials (3)
REDIS_PASSWORDGenerated
DATADOG_API_KEYHost-scoped
Add a credential you already own
Name
DATADOG_API_KEY
Value
β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’
◐ Recreated illustration β€” The Secrets tab β€” stored credentials and the "add a credential" form.

Agents reference these secrets by name β€” the values are injected into the command at run time and never appear in a prompt, a task payload, or the flight log.

Service setup (recommended)

Pick your install preferences for a catalog of installable services; SnapFlow generates the required passwords itself, stores them encrypted, and injects them when the install runs β€” nobody types them and no model ever sees them. Click Configure on a service, fill in its settings, review the box listing exactly which credential slots will be generated vs. already present, then Save & generate credentials.

Bring your own credential

For values SnapFlow can't generate itself β€” an existing service account, a license key:

FieldWhat it means
NameForced to UPPER_SNAKE_CASE β€” this becomes the variable name agents reference.
ValuePassword-masked. Leave blank to have SnapFlow generate a strong value instead.
DescriptionFree text, for your own reference.
Write-only, on purpose

Once saved, a credential's value is never displayed again β€” not even to you. "Stored encrypted and write-only: it is never displayed again, including to you."

Every stored credential shows a masked preview, a "Generated" or "Host-scoped" tag, when it was last used (or "never used"), and a Delete button. This entire tab is founder-only.