Skip to main content
Connectors are never configured by flags or files. Inputs and config arrive on Execute and through environment variables injected by the worker.

Reading inputs in Execute

Your adapter receives inputs map[string]any directly as an argument. Read values from it — do not read INPUT_* yourself unless you need the env defaults.

The INPUT_* defaults

env.LoadInputs() reads every INPUT_* environment variable and returns them as a map. Keys are lowercased with the prefix stripped.
Precedence: per-job inputs provided by the worker override INPUT_* environment defaults. The inputs map your adapter receives already has both merged, with the worker winning.
The runtime merges the two sources before calling your adapter, so you rarely need env.LoadInputs() in production code. It is useful when running the connector manually outside a worker.

The config profile (OASM_CONFIG)

configSchema values are delivered as a JSON string in the OASM_CONFIG environment variable. Read it at execution time, not at startup.
A container reused for a second job gets its OASM_CONFIG replaced around each execution. Reading it in main or a package-level init gives you stale config — always read it inside Execute.
Use pointers for optional numeric or boolean fields so you can tell “absent” from a zero value, and fall back to the manifest’s default when a field is nil.

Environment variables

Connection variables (WORKER_GRPC_ADDR, WORKER_TOKEN, mTLS paths) are injected by the worker and consumed entirely by the SDK. Your adapter never reads or sets them.

manifest.yaml

Declare inputsSchema and configSchema.

Adapter

Where inputs and config are consumed.