/** * One credential policy for every place the Agent can run. * * Operator credentials are hidden attended input and are never persisted as a * plaintext source. Physical-metal credentials are fixed host identities loaded * only by systemd. Platform computes may use an explicitly installed bootstrap * credential only before Vault activation. Tenant computes are Vault-authoritative * from enrolment and never downgrade a missing Vault value to a host credential. */ export declare const AGENT_CREDENTIAL_LOCATIONS: readonly ["operator", "metal", "platform-compute", "tenant-compute"]; export type AgentCredentialLocation = (typeof AGENT_CREDENTIAL_LOCATIONS)[number]; /** * Stable logical names shared by operator input, Vault fields and systemd. * * `CF_TUNNEL_TOKEN` is the broad attended/tenant-control credential that may * create Tunnels and reconcile one exact DNS hostname. It is attended input * before custody and Vault-only for the post-operational platform controller; * it is never loaded by cloudflared. cloudflared receives only the connector * returned for its own Tunnel. * * `CF_API_TOKEN` is the exact-account runtime/control credential used for * Workers KV and the existing Worker's secret bindings. Durable Object * application messages still go through that Worker's binding and use the * separate REALTIME_PUBLISH_SECRET; a Cloudflare REST token is not a Durable * Object invocation credential. */ export declare const CLOUDFLARE_CREDENTIAL_NAMES: { readonly api: "CF_API_TOKEN"; readonly tunnel: "CF_TUNNEL_TOKEN"; readonly connector: "CF_TUNNEL_CONNECTOR_TOKEN"; readonly realtimePublish: "REALTIME_PUBLISH_SECRET"; readonly realtimeTicket: "REALTIME_TICKET_SECRET"; readonly realtimeProducerIdentity: "REALTIME_PRODUCER_IDENTITY"; readonly realtimeEdgePublicKeys: "REALTIME_EDGE_PUBLIC_KEYS"; }; export declare const CLOUDFLARE_CREDENTIAL_SCHEMA: { readonly CF_TUNNEL_TOKEN: { readonly permissions: readonly ["Account:Cloudflare Tunnel Write", "Account:Cloudflare One Connector: WARP Write", "Account:Cloudflare One Networks Write", "Account:Zero Trust Write", "Zone:DNS Write"]; readonly platformBootstrap: "hidden-prompt-to-systemd"; readonly platformRuntime: "vault"; readonly tenantControl: "vault"; }; readonly CF_API_TOKEN: { readonly permissions: readonly ["Account:Workers KV Storage Write", "Account:Workers Scripts Write"]; readonly platformBootstrap: "hidden-prompt-to-systemd"; readonly platformRuntime: "vault"; readonly tenantControl: "vault"; }; readonly CF_TUNNEL_CONNECTOR_TOKEN: { readonly permissions: readonly ["one named Tunnel connector"]; readonly platformBootstrap: "derived"; readonly platformRuntime: "systemd"; readonly tenantControl: "derived"; }; readonly REALTIME_PUBLISH_SECRET: { readonly permissions: readonly ["Worker realtime publish endpoint"]; readonly platformBootstrap: "generated-and-installed-worker-secret"; readonly platformRuntime: "vault"; readonly tenantControl: "vault"; }; readonly REALTIME_TICKET_SECRET: { readonly permissions: readonly ["Worker realtime subscription tickets"]; readonly platformBootstrap: "generated-and-installed-worker-secret"; readonly platformRuntime: "vault"; readonly tenantControl: "vault"; }; readonly REALTIME_PRODUCER_IDENTITY: { readonly permissions: readonly ["Sign realtime v3 batches as the platform API publisher"]; readonly platformBootstrap: "derived-to-systemd"; readonly platformRuntime: "vault"; readonly tenantControl: "unavailable"; }; readonly REALTIME_EDGE_PUBLIC_KEYS: { readonly permissions: readonly ["Verify Worker subscription-delta requests"]; readonly platformBootstrap: "derived-public-catalogue"; readonly platformRuntime: "vault"; readonly tenantControl: "unavailable"; }; }; export declare const AGENT_CREDENTIAL_POLICY: { readonly operator: { readonly vault: false; readonly systemdFallback: false; readonly hiddenInput: true; }; readonly metal: { readonly vault: false; readonly systemdFallback: true; readonly hiddenInput: false; }; readonly 'platform-compute': { readonly vault: true; readonly systemdFallback: false; readonly hiddenInput: false; }; readonly 'tenant-compute': { readonly vault: true; readonly systemdFallback: false; readonly hiddenInput: false; }; }; export interface DeploymentCredentialBinding { /** Exact logical name requested by an attended bootstrap pipeline step. */ name: string; /** Local bootstrap cache key; never a Vault coordinate or secret value. */ cacheKey: string; /** Same name exposed by systemd, or absent when no fallback was installed. */ systemdCredential?: string; } export interface DeploymentCredentialSchema { version: 2; location: 'platform-compute' | 'tenant-compute'; /** * This bootstrap-only descriptor deliberately has no remote Vault coordinate. * A native release receives a V3 opaque binding map in its fenced claim and * never derives a realm, Deployment, environment or entry from a name. */ credentials: readonly DeploymentCredentialBinding[]; } /** Build the local bootstrap credential allow-list; it is not a Vault binding. */ export declare function deploymentCredentialSchema(input: { realm: 'platform' | 'tenant'; systemdCredentials?: Iterable; }): DeploymentCredentialSchema; export declare function credentialBinding(schema: DeploymentCredentialSchema, name: string): DeploymentCredentialBinding; /** Fixed host credentials are schema entries too, but can never enter a deploy step. */ export declare const METAL_SYSTEMD_CREDENTIALS: { readonly identity: "metal-agent-seed"; };