agentSandbox.broker¶
48 options, generated from the kubenix modules — this page cannot drift from the code.
agentSandbox.broker.aws.accounts¶
The account registry: alias -> { account_id, broker_role_arn, enabled, description?, allowed_policy?, allowed_managed_policies?, region?, approvers?, auto_approve_read_only?, auto_allowed_policy?, auto_allowed_managed_policies? }. Rendered into a ConfigMap mounted at /etc/agent-broker/accounts.json.
description is a human-written summary of what the account is for. The
agent reads it (via scooter-aws accounts → GET /aws/accounts) to pick
the RIGHT account to request access to — set it on every account.
Set auto_approve_read_only = true on an account to grant purely
read-only requests (all actions Get/List/Describe*/… ; no managed-policy
ARNs) immediately, WITHOUT a human approver — recorded as approved_by
"system:auto-approve-read-only". Anything with a write action or a managed
ARN still needs a human. Default off (every request needs approval).
auto_allowed_policy (+ auto_allowed_managed_policies) is the general
form: an OPT-IN glob superset of grants auto-approved with no human — same
fnmatch shape as allowed_policy (Action+Resource statements; managed-ARN
fnmatch patterns). e.g. pre-approve assuming deploy roles:
auto_allowed_policy.Statement = [{
Action = [ "sts:AssumeRole" ];
Resource = [ "arn:aws:iam::123456789012:role/deploy-*" ];
}];
A request FULLY covered by it (every action+resource, every managed ARN)
skips approval; anything in allowed_policy but NOT in the auto tier still
needs a human. Checked AFTER the ceiling, so auto ⊆ allowed by construction.
Example: accounts.readonly-sandbox = { account_id = "123456789012"; broker_role_arn = "arn:aws:iam::123456789012:role/agent-token-broker-base"; enabled = true; description = "Sandbox account for safe read-only exploration (S3, logs)."; auto_approve_read_only = true; };
Type: attribute set of attribute set of anything
Default:
{ }
Declared in: modules/broker.nix
agentSandbox.broker.aws.agentHostUrl¶
Agent-host URL — the broker notifies it to raise the approval interrupt.
Type: string
Default:
"http://agent-host.agent-sandbox.svc.cluster.local:8080"
Declared in: modules/broker.nix
agentSandbox.broker.aws.approverClaim¶
Which identity claim authorizes an approver — must match how the FGA
approver tuples are seeded (accounts..approvers, conventionally
emails). The agent-host sends the answering user's {id, email, name}; the
broker checks THIS claim. "email" (default) suits ALB-OIDC (where the id
is an opaque sub); use "id" for header-auth that already carries emails.
Type: one of "email", "id", "name"
Default:
"email"
Declared in: modules/broker.nix
agentSandbox.broker.aws.brokerPrincipalArn¶
The broker's IRSA role ARN — the principal the dynamic roles trust.
Type: string
Default:
""
Declared in: modules/broker.nix
agentSandbox.broker.aws.enable¶
Enable the AWS permissions provider (request/approve/provision dynamic IAM roles).
Type: boolean
Default:
false
Declared in: modules/broker.nix
agentSandbox.broker.aws.externalId¶
STS ExternalId used when the broker assumes each account's base role.
Type: string
Default:
"agent-permissions-broker"
Declared in: modules/broker.nix
agentSandbox.broker.aws.fga.apiUrl¶
OpenFGA HTTP API URL.
Type: string
Default:
"http://openfga.agent-sandbox.svc.cluster.local:8080"
Declared in: modules/broker.nix
agentSandbox.broker.aws.fga.authorizationModelId¶
OpenFGA authorization-model id (optional; latest used if empty).
Type: string
Default:
""
Declared in: modules/broker.nix
agentSandbox.broker.aws.fga.enable¶
Enforce per-account approver authorization via OpenFGA. Deploys an openfga server.
Type: boolean
Default:
false
Declared in: modules/broker.nix
agentSandbox.broker.aws.fga.image¶
OpenFGA server image.
Type: string
Default:
"openfga/openfga:latest"
Declared in: modules/broker.nix
agentSandbox.broker.aws.fga.storeId¶
OpenFGA store id (created out-of-band or by a seed step).
Type: string
Default:
""
Declared in: modules/broker.nix
agentSandbox.broker.aws.region¶
AWS region.
Type: string
Default:
"us-east-1"
Declared in: modules/broker.nix
agentSandbox.broker.aws.roleTtlHours¶
Dynamic-role TTL (refresh window).
Type: signed integer
Default:
12
Declared in: modules/broker.nix
agentSandbox.broker.aws.serviceAccountRoleArn¶
IRSA role ARN annotated on the broker SA (eks.amazonaws.com/role-arn). Usually == brokerPrincipalArn.
Type: string
Default:
""
Declared in: modules/broker.nix
agentSandbox.broker.datadog.apiKeySecret¶
Secret holding the Datadog API key. Injected as DATADOG_API_KEY. The secret must exist in the broker namespace.
Type: submodule
Declared in: modules/broker.nix
agentSandbox.broker.datadog.apiKeySecret.key¶
Secret key holding the Datadog API key.
Type: string
Default:
"DATADOG_API_KEY"
Declared in: modules/broker.nix
agentSandbox.broker.datadog.apiKeySecret.name¶
Secret name (in the broker namespace).
Type: string
Declared in: modules/broker.nix
agentSandbox.broker.datadog.appKeySecret¶
Secret holding the Datadog application key. Injected as DATADOG_APP_KEY. The secret must exist in the broker namespace.
Type: submodule
Declared in: modules/broker.nix
agentSandbox.broker.datadog.appKeySecret.key¶
Secret key holding the Datadog application key.
Type: string
Default:
"DATADOG_APP_KEY"
Declared in: modules/broker.nix
agentSandbox.broker.datadog.appKeySecret.name¶
Secret name (in the broker namespace).
Type: string
Declared in: modules/broker.nix
agentSandbox.broker.datadog.enable¶
Enable the Datadog provider (http-proxy to api.
Type: boolean
Default:
false
Declared in: modules/broker.nix
agentSandbox.broker.datadog.site¶
Datadog site/region host suffix (datadoghq.com | datadoghq.eu | us3.datadoghq.com | us5.datadoghq.com | ap1.datadoghq.com | ddog-gov.com). Upstream is https://api.
Type: string
Default:
"datadoghq.com"
Declared in: modules/broker.nix
agentSandbox.broker.enable¶
Deploy the credential broker.
Type: boolean
Default:
false
Declared in: modules/broker.nix
agentSandbox.broker.githubApp.appId¶
GitHub App ID (GITHUB_APP_ID).
Type: string
Default:
""
Declared in: modules/broker.nix
agentSandbox.broker.githubApp.enable¶
Enable the GitHub provider, backed by a GitHub App (vends installation tokens for git/HTTPS + the API).
Type: boolean
Default:
false
Declared in: modules/broker.nix
agentSandbox.broker.githubApp.installationId¶
GitHub App installation ID (GITHUB_APP_INSTALLATION_ID).
Type: string
Default:
""
Declared in: modules/broker.nix
agentSandbox.broker.githubApp.privateKeySecret¶
Secret holding the GitHub App private key (PEM). The secret must exist in the broker namespace.
Type: submodule
Declared in: modules/broker.nix
agentSandbox.broker.githubApp.privateKeySecret.key¶
Secret key holding the PEM.
Type: string
Default:
"private-key"
Declared in: modules/broker.nix
agentSandbox.broker.githubApp.privateKeySecret.name¶
Secret name (in the broker namespace).
Type: string
Declared in: modules/broker.nix
agentSandbox.broker.gitlab.enable¶
Enable the GitLab provider (transparent http-proxy to gitlab.com with the token injected).
Type: boolean
Default:
false
Declared in: modules/broker.nix
agentSandbox.broker.gitlab.tokenSecret¶
Secret holding the GitLab token (glpat-…). Injected as GITLAB_TOKEN. The secret must exist in the broker namespace.
Type: submodule
Declared in: modules/broker.nix
agentSandbox.broker.gitlab.tokenSecret.key¶
Secret key holding the GitLab token.
Type: string
Default:
"GITLAB_TOKEN"
Declared in: modules/broker.nix
agentSandbox.broker.gitlab.tokenSecret.name¶
Secret name (in the broker namespace).
Type: string
Declared in: modules/broker.nix
agentSandbox.broker.grafana.enable¶
Enable the Grafana provider (http-proxy to a Grafana stack with a service-account token injected).
Type: boolean
Default:
false
Declared in: modules/broker.nix
agentSandbox.broker.grafana.tokenSecret¶
Secret holding a Grafana service-account token. Injected as GRAFANA_TOKEN. The secret must exist in the broker namespace.
Type: submodule
Declared in: modules/broker.nix
agentSandbox.broker.grafana.tokenSecret.key¶
Secret key holding the Grafana service-account token.
Type: string
Default:
"GRAFANA_TOKEN"
Declared in: modules/broker.nix
agentSandbox.broker.grafana.tokenSecret.name¶
Secret name (in the broker namespace).
Type: string
Declared in: modules/broker.nix
agentSandbox.broker.grafana.url¶
Base URL of the Grafana stack. Upstream for /grafana/*; a trailing slash is stripped.
Type: string
Default:
""
Example:
"https://myorg.grafana.net"
Declared in: modules/broker.nix
agentSandbox.broker.image¶
OCI ref of the broker image.
Type: string
Default:
"${registryPrefix}agent-broker:latest"
Declared in: modules/broker.nix
agentSandbox.broker.jiraSiteUrl¶
The Jira SITE base URL, used to build a human /browse/{KEY} link when the
broker auto-links an issue an agent creates via the Jira proxy (the
create-issue API response carries no human URL). Empty -> auto-link uses
the API self URL instead.
Type: string
Default:
""
Example:
"https://acme.atlassian.net"
Declared in: modules/broker.nix
agentSandbox.broker.shares.enable¶
Enable static-share publishing (/shares + /s/broker DB.
Type: boolean
Default:
false
Declared in: modules/broker.nix
agentSandbox.broker.shares.frameAncestors¶
CSP frame-ancestors allowlist for embedding a served share in an