Use managed auth or your own credentials
For a supported OAuth service, you can use a Managed service instead of creating and storing a provider client pair. Fused holds the application’s client secret; your selected bucket still owns the encrypted user connections. Use the steps below for your own provider application or other authentication schemes.One app, different buckets per service
An SDK or MCP server declares one defaultbucket: at the top level. Any service may override it with its own bucket:, so a single app can route different services’ credentials through different buckets:
bucket: resolves through the app’s top-level default. A local ${bucket.auth...} reference joins services in the same bucket. A managed ${fused.bucket.auth...} reference selects Fused’s broker application. Webhook signing-secret references explicitly name their bucket independently of the app.
Pick a bucket before you write to one
Set up or edit provider credentials
Runconnect with the service name. --bucket defaults to default; pass another bucket name or UUID when needed.
The picker also appears when only one method matches or when you supply values. It uses metadata only: existing secrets are never displayed or prefilled. Secret entry is masked, and cancelling leaves credentials unchanged.
Supply values for automation
Pass one quoted"name=value, name=value" argument and --no-input. Your shell can expand environment variables inside the argument. A single-value method uses its exact authentication scheme name, which you can inspect with fused-cli service show --registry stripe --json:
= and ; characters. Use interactive setup when a value contains a literal comma. Supply both members of a credential pair together; Basic methods that allow an empty password accept password=.
With --no-input, CI, or --json, a sole matching method is selected automatically. If several methods match, narrow the selection with --type or --auth-name. Supplied field names do not infer an authentication type. Without those non-interactive modes, the picker remains available even when you pass values.
Saving through
connect takes effect immediately, with no plan or apply step. Selecting a configured method or supplying new values replaces its credentials. In non-interactive mode, omitting values reports an already configured method’s status; missing credentials require explicit input.connect flags
When a stored secret’s expiry has passed, Engine blocks requests that require it before contacting the provider. Expiry does not rotate credentials automatically. The picker marks expired credentials so you can replace them with
fused-cli connect <service> --bucket <bucket>.
Store named secrets, environment values, and certificates
Usebucket secret, bucket env, or bucket cert for named entries that belong to the bucket rather than a provider authentication scheme. Each supports set, get, and remove; --bucket defaults to default.
set splits each assignment at its first = and preserves the rest of the value. Environment values can be explicitly empty (NAME=). Certificates accept public X.509 PEM certificates or chains; private keys belong to a provider’s mTLS credential pair through connect.
Environment entries are non-secret bucket-wide values. A service-specific value with the same key takes precedence. A shell variable such as $API_URL supplies its current local value at command invocation; the saved bucket entry is a value, not a reference to that shell variable.
Inspect or retrieve secrets
list returns metadata only. Generic secret get uses the audited retrieval endpoint and requires both export opt-in and credentials.reveal. It never enables retrieval automatically. Generic secret writes also support --expires-at.
For an API key stored by connect, use its opaque metadata ID to opt into retrieval:
connect resets its export policy to disabled.
Store a non-secret value
Some providers need a non-secret piece of configuration, like a tenant ID that appears in the host name.bucket value set takes five positional arguments, and only the third comes from a fixed set:
env namespace here is the bucket’s own value store — it does not read an operating-system environment variable.
Inject a bucket value into a request
An SDK or MCP service can pull those values into the outgoing request at dispatch time, so a tenant ID or account prefix never has to be hardcoded per environment. Usually you will not write these by hand —fused-cli init generates them for whichever server-template variables your selected operations declare, leaving you to supply the value.
bucket: override when one is set, otherwise the app’s top-level bucket:. There is no way to name an arbitrary third bucket in a reference, unlike a kind: webhook secret. An ordinary injection value may also mix a tag with surrounding text, such as "Bearer ${bucket.secrets.API_KEY}".
location: server_variable is stricter than the rest. Its value must be a complete ${bucket.env.KEY} or ${bucket.values.KEY} reference — never a literal, never interpolated, never a secret — because host routing has to stay non-secret and reviewable. Plan checks name against the service and operation server templates and rejects an undeclared one.
Which value wins
An omitted
mode canonicalizes to force.
Inspect a bucket
Permissions
Connect a user's account
Static credentials cover one identity. OAuth covers one per end user.