Skip to content

Settings

Every section of AppSettings, read from interloper.yaml and the environment (see Configuration).

runner

Runner settings: the runner type and its own configuration. Prefix INTERLOPER_RUNNER_.

Field Type Default Description
type str 'async' Registry key of the runner: async, serial, or one another package registers.
config dict[str, Any] {} Keyword arguments for the runner class.

otel

OpenTelemetry settings: OTLP traces and metrics. Prefix INTERLOPER_OTEL_.

Field Type Default Description
enabled bool False The single master switch; the SDK is never activated from the standard OTEL_* variables alone.
endpoint str '' OTLP endpoint; empty falls through to OTEL_EXPORTER_OTLP_ENDPOINT.
protocol str 'grpc' OTLP protocol: grpc or http/protobuf.
headers str '' OTLP headers as key=value pairs; empty falls through to OTEL_EXPORTER_OTLP_HEADERS.
service_name str '' Reported service name; empty reports interloper.
traces bool True Export traces.
metrics bool True Export metrics.
sample_ratio float 1.0 Fraction of traces sampled, parent-based.
metric_export_interval int 60 Seconds between metric exports.

log

How the commands write their log records to stderr. Prefix INTERLOPER_LOG_.

Field Type Default Description
format Literal['text', 'json'] 'text' text for a terminal; json writes one object per line with the record's trace and span ids, for a log collector to parse.

catalog

INTERLOPER_CATALOG, list[str]. Import paths of the enabled components; empty enables everything installed.

secrets

Secrets used to protect sensitive data at rest. Prefix INTERLOPER_.

Field Type Default Description
encryption_key str '' Fernet key encrypting stored resource payloads; required by the platform to persist resources.

postgres

PostgreSQL connection settings. Prefix INTERLOPER_POSTGRES_.

Field Type Default Description
host str 'localhost' Database host.
port int 5432 Database port.
user str '' Database user.
password str '' Database password.
database str 'interloper' Database name.
statement_timeout float | None None Seconds after which the server cancels a statement of the process engine, sent as the libpq statement_timeout option; unset leaves the server's own setting untouched.

auth

Authentication settings: Google OAuth and the session cookie. Prefix INTERLOPER_AUTH_.

Field Type Default Description
google_client_id str '' Google OAuth web client id.
google_client_secret str '' Google OAuth web client secret.
google_redirect_uri str '' Redirect URI registered on the Google OAuth client (/api/auth/google/callback).
cookie_secure bool True Send the session cookie over HTTPS only.
session_expiry_days int 30 Days a session stays valid.
super_admin_emails list[str] [] Google emails promoted to platform-wide super-admin by interloper db init and on login; promotion only, removing an email never demotes.
allowed_domains list[str] [] Email domains allowed to sign up; empty keeps signup open. Configured super-admins, pending invitations and existing profiles always pass.

server

HTTP server settings: the API and the app. Prefix INTERLOPER_SERVER_.

Field Type Default Description
enabled bool True Serve the API and the app.
host str '0.0.0.0' Bind host.
port int 3000 Bind port.
external_url str '' Public base URL of the app (https://app.example.com), for links built outside a browser request such as the setup hand-off an MCP tool returns; empty means the deployment has none.

cron

Cron controller settings. Prefix INTERLOPER_CRON_.

Field Type Default Description
enabled bool True Run the cron controller.
reconcile_interval int 10 Seconds between reconciliations.
max_execution_delay int 3600 Seconds a due job may still fire after its slot, so a scheduler restart doesn't drop it; at least the reconcile interval.
batch_size int 50 Due jobs dispatched per reconciliation.

renewal

Renewal controller settings: connection credential renewal (singleton). Prefix INTERLOPER_RENEWAL_.

Field Type Default Description
enabled bool True Run the renewal controller.
reconcile_interval int 60 Seconds between reconciliations.
batch_size int 50 Connections renewed per reconciliation.

worker

Queue worker settings. Prefix INTERLOPER_WORKER_.

Field Type Default Description
enabled bool True Run the queue worker.
poll_interval int 5 Seconds between queue polls.

reaper

Run liveness: the heartbeat an executing run records, and the reaper that fails silent or overdue runs. Prefix INTERLOPER_REAPER_.

Field Type Default Description
enabled bool True Run the reaper.
poll_interval int 15 Seconds between sweeps.
startup_timeout int 600 Seconds a dispatched run may take to start before the reaper fails it.
heartbeat_interval int 10 Seconds between an executing run's heartbeats.
heartbeat_timeout int 90 Seconds a running run may go without a heartbeat before the reaper fails it as lost; a run that cannot record one for half of it stops itself first.
run_timeout int | None 43200 Seconds a run may take when its job declares no timeout; unset lets those runs run without a deadline.

launcher

Launcher settings: the launcher type and its own configuration. Prefix INTERLOPER_LAUNCHER_.

Field Type Default Description
type str 'in_process' Registry key of the launcher: in_process, docker or kubernetes.
config dict[str, Any] {} Keyword arguments for the launcher class.

smtp

SMTP settings for sending invitation emails. Prefix INTERLOPER_SMTP_.

Field Type Default Description
host str '' SMTP host; sending is enabled once host, user and password are set.
port int 587 SMTP port.
user str '' SMTP user.
password str '' SMTP password.
from_addr str 'noreply@interloper.dev' Sender address of invitation emails.

agent

AI agent settings: the chat assistant the API serves. Prefix INTERLOPER_AGENT_.

Field Type Default Description
enabled bool True Serve the agent; off leaves the installation untouched.
model str 'google:gemini-2.5-flash' pydantic-ai provider:model name (google:gemini-2.5-flash, google-cloud:gemini-2.5-flash for Vertex, anthropic:claude-sonnet-4-5, openai:gpt-5); provider credentials come from the provider's standard environment variables.

mcp

MCP server settings (interloper-mcp). Prefix INTERLOPER_MCP_.

Field Type Default Description
host str '0.0.0.0' Bind host.
port int 3001 Bind port.
external_url str '' Public base URL of the hosted server (https://mcp.example.com), fed to the OAuth protected-resource metadata so clients discover the auth requirements.
token str '' Personal access token the stdio transport authenticates with.
org_id str '' Organisation the stdio transport is scoped to without a token; local development only.

quota

Default per-organisation quota limits; unset means unlimited. Prefix INTERLOPER_QUOTA_.

Field Type Default Description
max_sources int | None None Sources an organisation may hold.
max_assets_per_source int | None None Assets a source may enable.
max_successful_runs_per_month int | None None Successful runs an organisation may complete per UTC month.
max_backfill_partitions int | None None Partitions one backfill may span.