Browse Documentation

Guides / provider access

Connect once. Keep secrets out of the lifecycle.

A provider profile binds one provider credential and its non-secret connection context to the authenticated Wildflower project. Later lifecycle calls resolve that profile automatically.

Connect a profile

The generated TypeScript CLI reads the provider credential from an environment variable. It never accepts the secret as a command argument or prints it in the returned profile.

terminal
export WILDFLOWER_URL="http://localhost:8080"export WILDFLOWER_API_KEY="<your-wildflower-api-key>"export E2B_API_KEY="<your-e2b-api-key>"corepack pnpm buildnode sdks/typescript/dist/cli.js provider connect e2bnode sdks/typescript/dist/cli.js provider test e2bnode sdks/typescript/dist/cli.js provider verify e2bnode sdks/typescript/dist/cli.js provider list
Safe test is intentionally narrow

provider test proves only that Wildflower can decrypt the stored profile and resolve its adapter. It makes no provider request. A newly connected profile remains unverified and reports provider authentication asnot_run.

Deep verification creates a billable resource

provider verify creates a provider sandbox, gets it, executes an exact command, and deletes it. It can incur provider charges. The operation matrix is persisted: missing optional usage data degrades the profile without disabling verified lifecycle operations, while unproven cleanup marks it unsafe and blocks later creates.

Use the HTTP control-plane route

Pipe JSON from jq so the provider secret does not enter shell history as a literal. The response contains redacted metadata, never the stored key.

terminal
jq -n --arg apiKey "$E2B_API_KEY" '{apiKey: $apiKey}' |  curl -fsS "$WILDFLOWER_URL/v1/provider-profiles/e2b" \    -H "Authorization: Bearer $WILDFLOWER_API_KEY" \    -H "Content-Type: application/json" \    --data-binary @-

Provider-specific connection context

ProviderCreate fieldsConnection fields
AWS AgentCoretimeoutbridgeUrl
Blaxelimage, timeoutworkspace
ASCII BoxtimeoutNone
Cloudflare SandboxNonebridgeUrl
E2Bimage, timeoutNone
Novita Agent Sandboximage, timeoutNone
Daytonaimage, timeoutNone
Modalimage, timeoutbridgeUrl
Runloopimage, timeoutNone
Smol Machinesimage, timeoutNone
Fly.io SpritesNoneNone
Vercel Sandboximage, timeoutteamId, projectId

Partial keys degrade by operation

Wildflower does not reject a useful lifecycle key merely because it lacks separate account-billing scope. A deep check recordscreate, get, exec,delete, and optional usage independently. Once a requested operation is known to be failed or unavailable, Wildflower rejects it locally with a provider-neutral reason and remediation instead of redispatching a failure every time.

Successful deep-verification evidence expires after 24 hours. Reconnecting or disconnecting while a deep check is still running wins over that stale result. An ambiguous create or failed cleanup marks the profileunsafe, blocks future creates, and returns reconciliation details. During normal lifecycle use, authentication failure invalidates only the affected operation; temporary transport failures do not erase readiness evidence.

See provider cost, usage, and benchmark coverage for every provider’s current billing-signal gap.

Storage boundaries

Static local mode

Without DATABASE_URL, the deployment-wide Wildflower key identifies one in-memory project. Connected profiles disappear when the process restarts.

PostgreSQL mode

Project keys identify durable projects. Provider credentials are encrypted with the stable WILDFLOWER_PROVIDER_PROFILE_KEY; responses expose only non-secret metadata.

Inline override

A typed provider credential sent with one client remains ephemeral and overrides the connected profile for that request context.

Disconnected profile

Removing a profile prevents fresh processes from resolving it. Existing provider sandboxes are not migrated or deleted automatically.

Disconnect

terminal
node sdks/typescript/dist/cli.js provider disconnect e2b