# Configuration file reference

This reference documents **198 fields** accepted by the current `probod` configuration schema. It is generated from [`pkg/probodconfig`](https://github.com/getprobo/probo/tree/main/pkg/probodconfig), so every serialized field is included.

JSON and YAML use the same field names and hierarchy. Array paths use `[]`; map paths use `{name}` to represent a user-defined key.

The serialization column describes whether an empty value can be omitted from generated files. It does not by itself indicate whether a value is operationally required.

## Unit

| Field                         | Type    | Serialization      | Description | Source                                                                                   |
| ----------------------------- | ------- | ------------------ | ----------- | ---------------------------------------------------------------------------------------- |
| `unit.metrics.addr`           | string  | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/config.go#L39) |
| `unit.tracing.addr`           | string  | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/config.go#L44) |
| `unit.tracing.max-batch-size` | integer | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/config.go#L45) |
| `unit.tracing.batch-timeout`  | integer | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/config.go#L46) |
| `unit.tracing.export-timeout` | integer | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/config.go#L47) |
| `unit.tracing.max-queue-size` | integer | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/config.go#L48) |

## Core application

| Field                   | Type    | Serialization      | Description | Source                                                                                   |
| ----------------------- | ------- | ------------------ | ----------- | ---------------------------------------------------------------------------------------- |
| `probod.base-url`       | string  | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/config.go#L58) |
| `probod.encryption-key` | string  | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/config.go#L59) |
| `probod.chrome-dp-addr` | string  | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/config.go#L81) |
| `probod.branding`       | boolean | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/config.go#L85) |

## PostgreSQL

| Field                                        | Type    | Serialization      | Description | Source                                                                                      |
| -------------------------------------------- | ------- | ------------------ | ----------- | ------------------------------------------------------------------------------------------- |
| `probod.pg.addr`                             | string  | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/pg_config.go#L32) |
| `probod.pg.username`                         | string  | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/pg_config.go#L33) |
| `probod.pg.password`                         | string  | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/pg_config.go#L34) |
| `probod.pg.database`                         | string  | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/pg_config.go#L35) |
| `probod.pg.pool-size`                        | integer | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/pg_config.go#L36) |
| `probod.pg.min-pool-size`                    | integer | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/pg_config.go#L37) |
| `probod.pg.max-conn-idle-time-seconds`       | integer | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/pg_config.go#L38) |
| `probod.pg.max-conn-lifetime-seconds`        | integer | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/pg_config.go#L39) |
| `probod.pg.max-conn-lifetime-jitter-seconds` | integer | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/pg_config.go#L40) |
| `probod.pg.health-check-period-seconds`      | integer | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/pg_config.go#L41) |
| `probod.pg.ca-cert-bundle`                   | string  | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/pg_config.go#L42) |
| `probod.pg.debug`                            | boolean | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/pg_config.go#L43) |

## API

| Field                                       | Type     | Serialization      | Description | Source                                                                                       |
| ------------------------------------------- | -------- | ------------------ | ----------- | -------------------------------------------------------------------------------------------- |
| `probod.api.addr`                           | string   | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/api_config.go#L47) |
| `probod.api.proxy-protocol.trusted-proxies` | string[] | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/api_config.go#L32) |
| `probod.api.cors.allowed-origins`           | string[] | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/api_config.go#L24) |
| `probod.api.extra-header-fields`            | object   | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/api_config.go#L50) |
| `probod.api.graphql.parser-token-limit`     | integer  | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/api_config.go#L40) |
| `probod.api.graphql.complexity-limit`       | integer  | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/api_config.go#L41) |
| `probod.api.graphql.query-cache-size`       | integer  | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/api_config.go#L42) |
| `probod.api.graphql.disable-suggestion`     | boolean  | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/api_config.go#L43) |

## Auth

| Field                                                   | Type           | Serialization      | Description | Source                                                                                         |
| ------------------------------------------------------- | -------------- | ------------------ | ----------- | ---------------------------------------------------------------------------------------------- |
| `probod.auth.cookie.domain`                             | string         | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/auth_config.go#L84)  |
| `probod.auth.cookie.secret`                             | string         | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/auth_config.go#L85)  |
| `probod.auth.cookie.duration`                           | integer        | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/auth_config.go#L86)  |
| `probod.auth.cookie.name`                               | string         | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/auth_config.go#L87)  |
| `probod.auth.cookie.secure`                             | boolean        | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/auth_config.go#L88)  |
| `probod.auth.cookie.same-site`                          | CookieSameSite | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/auth_config.go#L89)  |
| `probod.auth.password.iterations`                       | integer        | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/auth_config.go#L119) |
| `probod.auth.password.pepper`                           | string         | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/auth_config.go#L120) |
| `probod.auth.disable-signup`                            | boolean        | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/auth_config.go#L57)  |
| `probod.auth.invitation-confirmation-token-validity`    | integer        | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/auth_config.go#L58)  |
| `probod.auth.password-reset-token-validity`             | integer        | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/auth_config.go#L59)  |
| `probod.auth.magic-link-token-validity`                 | integer        | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/auth_config.go#L60)  |
| `probod.auth.email-confirmation-token-validity`         | integer        | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/auth_config.go#L61)  |
| `probod.auth.saml.session-duration`                     | integer        | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/saml_config.go#L28)  |
| `probod.auth.saml.cleanup-interval-seconds`             | integer        | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/saml_config.go#L29)  |
| `probod.auth.saml.certificate`                          | string         | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/saml_config.go#L30)  |
| `probod.auth.saml.domain-verification-interval-seconds` | integer        | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/saml_config.go#L32)  |
| `probod.auth.saml.domain-verification-resolver-addr`    | string         | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/saml_config.go#L33)  |
| `probod.auth.google.client-id`                          | string         | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/oidc_config.go#L24)  |
| `probod.auth.google.client-secret`                      | string         | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/oidc_config.go#L25)  |
| `probod.auth.google.enabled`                            | boolean        | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/oidc_config.go#L26)  |
| `probod.auth.microsoft.client-id`                       | string         | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/oidc_config.go#L24)  |
| `probod.auth.microsoft.client-secret`                   | string         | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/oidc_config.go#L25)  |
| `probod.auth.microsoft.enabled`                         | boolean        | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/oidc_config.go#L26)  |
| `probod.auth.oauth2-server.signing-keys[].kid`          | string         | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/auth_config.go#L79)  |
| `probod.auth.oauth2-server.signing-keys[].active`       | boolean        | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/auth_config.go#L80)  |
| `probod.auth.oauth2-server.access-token-duration`       | integer        | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/auth_config.go#L70)  |
| `probod.auth.oauth2-server.refresh-token-duration`      | integer        | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/auth_config.go#L71)  |
| `probod.auth.oauth2-server.authorization-code-duration` | integer        | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/auth_config.go#L72)  |
| `probod.auth.oauth2-server.device-code-duration`        | integer        | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/auth_config.go#L73)  |
| `probod.auth.oauth2-server.cimd-allowed-client-ids`     | string[]       | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/auth_config.go#L74)  |

## Identity Federation

| Field                                                    | Type    | Serialization      | Description                                                                                                                                                                                                                                                                                                                                                | Source                                                                                                       |
| -------------------------------------------------------- | ------- | ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| `probod.identity-federation.enabled`                     | boolean | Always emitted     | —                                                                                                                                                                                                                                                                                                                                                          | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/identity_federation_config.go#L27) |
| `probod.identity-federation.issuer-base-url`             | string  | Omitted when empty | IssuerBaseURL is the base of the advertised issuer, for example https://proboidentity.com. It defaults to \{base-url\}/federation, so a self-hosted deployment needs no second domain. This value becomes immutable the moment a customer registers it with their cloud provider: changing it requires every customer to redeploy infrastructure they own. | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/identity_federation_config.go#L35) |
| `probod.identity-federation.signing-keys[].kid`          | string  | Always emitted     | —                                                                                                                                                                                                                                                                                                                                                          | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/identity_federation_config.go#L50) |
| `probod.identity-federation.signing-keys[].active`       | boolean | Always emitted     | —                                                                                                                                                                                                                                                                                                                                                          | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/identity_federation_config.go#L51) |
| `probod.identity-federation.cloudformation-template-url` | string  | Omitted when empty | CloudFormationTemplateURL is the public S3 HTTPS URL used to build the AWS console quick-create link for the audit role.                                                                                                                                                                                                                                   | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/identity_federation_config.go#L39) |
| `probod.identity-federation.terraform-module-source`     | string  | Omitted when empty | TerraformModuleSource is the module address copied into the Terraform install snippet.                                                                                                                                                                                                                                                                     | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/identity_federation_config.go#L42) |

## ITAM

| Field                                          | Type    | Serialization  | Description | Source                                                                                        |
| ---------------------------------------------- | ------- | -------------- | ----------- | --------------------------------------------------------------------------------------------- |
| `probod.itam.device-enrollment-token-validity` | integer | Always emitted | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/itam_config.go#L24) |

## Compliance portal

| Field                                                | Type                    | Serialization      | Description | Source                                                                                       |
| ---------------------------------------------------- | ----------------------- | ------------------ | ----------- | -------------------------------------------------------------------------------------------- |
| `probod.trust-center.http-addr`                      | string                  | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/config.go#L91)     |
| `probod.trust-center.https-addr`                     | string                  | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/config.go#L92)     |
| `probod.trust-center.base-domain`                    | string                  | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/config.go#L93)     |
| `probod.trust-center.tls-mode`                       | CompliancePortalTLSMode | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/config.go#L94)     |
| `probod.trust-center.proxy-protocol.trusted-proxies` | string[]                | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/api_config.go#L32) |

## Object storage

| Field                          | Type    | Serialization      | Description | Source                                                                                       |
| ------------------------------ | ------- | ------------------ | ----------- | -------------------------------------------------------------------------------------------- |
| `probod.aws.region`            | string  | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/aws_config.go#L24) |
| `probod.aws.bucket`            | string  | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/aws_config.go#L25) |
| `probod.aws.access-key-id`     | string  | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/aws_config.go#L26) |
| `probod.aws.secret-access-key` | string  | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/aws_config.go#L27) |
| `probod.aws.endpoint`          | string  | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/aws_config.go#L28) |
| `probod.aws.use-path-style`    | boolean | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/aws_config.go#L29) |

## Notifications

| Field                                             | Type    | Serialization      | Description                                                                                                                                                                                                                                                                               | Source                                                                                                 |
| ------------------------------------------------- | ------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
| `probod.notifications.mailer.mailer-interval`     | integer | Always emitted     | —                                                                                                                                                                                                                                                                                         | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/mailer_config.go#L24)        |
| `probod.notifications.mailer.sender-name`         | string  | Omitted when empty | —                                                                                                                                                                                                                                                                                         | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/mailer_config.go#L25)        |
| `probod.notifications.mailer.sender-email`        | string  | Omitted when empty | —                                                                                                                                                                                                                                                                                         | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/mailer_config.go#L26)        |
| `probod.notifications.mailer.smtp.addr`           | string  | Omitted when empty | —                                                                                                                                                                                                                                                                                         | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/mailer_config.go#L31)        |
| `probod.notifications.mailer.smtp.user`           | string  | Omitted when empty | —                                                                                                                                                                                                                                                                                         | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/mailer_config.go#L32)        |
| `probod.notifications.mailer.smtp.password`       | string  | Omitted when empty | —                                                                                                                                                                                                                                                                                         | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/mailer_config.go#L33)        |
| `probod.notifications.mailer.smtp.tls-required`   | boolean | Always emitted     | —                                                                                                                                                                                                                                                                                         | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/mailer_config.go#L34)        |
| `probod.notifications.mailer.smtp.hello-name`     | string  | Omitted when empty | —                                                                                                                                                                                                                                                                                         | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/mailer_config.go#L35)        |
| `probod.notifications.slack.sender-interval`      | integer | Always emitted     | —                                                                                                                                                                                                                                                                                         | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/slack_config.go#L24)         |
| `probod.notifications.slack.signing-secret`       | string  | Omitted when empty | —                                                                                                                                                                                                                                                                                         | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/slack_config.go#L25)         |
| `probod.notifications.webhook.sender-interval`    | integer | Always emitted     | —                                                                                                                                                                                                                                                                                         | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/notifications_config.go#L31) |
| `probod.notifications.webhook.request-timeout`    | integer | Always emitted     | —                                                                                                                                                                                                                                                                                         | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/notifications_config.go#L32) |
| `probod.notifications.webhook.cache-ttl`          | integer | Always emitted     | —                                                                                                                                                                                                                                                                                         | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/notifications_config.go#L33) |
| `probod.notifications.webhook.stale-after`        | integer | Always emitted     | —                                                                                                                                                                                                                                                                                         | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/notifications_config.go#L34) |
| `probod.notifications.webhook.retry-base`         | integer | Always emitted     | —                                                                                                                                                                                                                                                                                         | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/notifications_config.go#L35) |
| `probod.notifications.webhook.retry-max`          | integer | Always emitted     | —                                                                                                                                                                                                                                                                                         | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/notifications_config.go#L36) |
| `probod.notifications.webhook.max-concurrency`    | integer | Always emitted     | —                                                                                                                                                                                                                                                                                         | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/notifications_config.go#L37) |
| `probod.notifications.document.interval`          | integer | Always emitted     | Interval is how often the worker scans for pending requests.                                                                                                                                                                                                                              | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/notifications_config.go#L44) |
| `probod.notifications.document.debounce-delay`    | integer | Always emitted     | DebounceDelay is how long a request must have been pending before its first notification is sent.                                                                                                                                                                                         | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/notifications_config.go#L47) |
| `probod.notifications.document.reminder-interval` | integer | Always emitted     | ReminderInterval is the base reminder cadence in seconds. Reminders are sent at 1x, 2x and 3x this interval after the previous email, then stop. Reminder sends that fall on Saturday or Sunday are deferred to Monday at the same clock time; the first (debounced) notice is unchanged. | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/notifications_config.go#L52) |

## Connectors

| Field                          | Type                   | Serialization      | Description | Source                                                                                             |
| ------------------------------ | ---------------------- | ------------------ | ----------- | -------------------------------------------------------------------------------------------------- |
| `probod.connectors[].provider` | string                 | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/connector_config.go#L33) |
| `probod.connectors[].protocol` | connector.ProtocolType | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/connector_config.go#L34) |
| `probod.connectors[].config`   | object                 | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/connector_config.go#L36) |
| `probod.connectors[].settings` | object                 | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/connector_config.go#L38) |

## Connector Endpoints

| Field                                        | Type   | Serialization      | Description                                                                                                                                                                                                                                                                                                    | Source                                                                                             |
| -------------------------------------------- | ------ | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| `probod.connector-endpoints.{name}.auth`     | string | Omitted when empty | —                                                                                                                                                                                                                                                                                                              | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/connector_config.go#L67) |
| `probod.connector-endpoints.{name}.token`    | string | Omitted when empty | —                                                                                                                                                                                                                                                                                                              | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/connector_config.go#L68) |
| `probod.connector-endpoints.{name}.probe`    | string | Omitted when empty | —                                                                                                                                                                                                                                                                                                              | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/connector_config.go#L69) |
| `probod.connector-endpoints.{name}.identity` | string | Omitted when empty | Identity is the host a provider's driver resolves its real data host from, for providers that split the two. It must move together with Probe — probod refuses to start on a mismatch, because a moved probe with a stale identity host reports healthy while every data call still reaches the real provider. | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/connector_config.go#L75) |
| `probod.connector-endpoints.{name}.api-base` | string | Omitted when empty | —                                                                                                                                                                                                                                                                                                              | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/connector_config.go#L76) |

## AI providers and agents

| Field                                                  | Type    | Serialization      | Description                      | Source                                                                                        |
| ------------------------------------------------------ | ------- | ------------------ | -------------------------------- | --------------------------------------------------------------------------------------------- |
| `probod.llm.providers.{name}.type`                     | string  | Always emitted     | "openai", "anthropic", "bedrock" | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L27)  |
| `probod.llm.providers.{name}.api-key`                  | string  | Omitted when empty | for OpenAI and Anthropic         | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L28)  |
| `probod.llm.defaults.provider`                         | string  | Omitted when empty | key into AgentsConfig.Providers  | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L34)  |
| `probod.llm.defaults.model-name`                       | string  | Omitted when empty | —                                | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L35)  |
| `probod.llm.defaults.temperature`                      | number  | Omitted when empty | —                                | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L36)  |
| `probod.llm.defaults.max-tokens`                       | integer | Omitted when empty | —                                | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L37)  |
| `probod.llm.probo.provider`                            | string  | Omitted when empty | key into AgentsConfig.Providers  | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L34)  |
| `probod.llm.probo.model-name`                          | string  | Omitted when empty | —                                | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L35)  |
| `probod.llm.probo.temperature`                         | number  | Omitted when empty | —                                | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L36)  |
| `probod.llm.probo.max-tokens`                          | integer | Omitted when empty | —                                | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L37)  |
| `probod.llm.evidence-describer.provider`               | string  | Omitted when empty | key into AgentsConfig.Providers  | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L34)  |
| `probod.llm.evidence-describer.model-name`             | string  | Omitted when empty | —                                | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L35)  |
| `probod.llm.evidence-describer.temperature`            | number  | Omitted when empty | —                                | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L36)  |
| `probod.llm.evidence-describer.max-tokens`             | integer | Omitted when empty | —                                | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L37)  |
| `probod.llm.third-party-vetter.provider`               | string  | Omitted when empty | key into AgentsConfig.Providers  | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L34)  |
| `probod.llm.third-party-vetter.model-name`             | string  | Omitted when empty | —                                | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L35)  |
| `probod.llm.third-party-vetter.temperature`            | number  | Omitted when empty | —                                | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L36)  |
| `probod.llm.third-party-vetter.max-tokens`             | integer | Omitted when empty | —                                | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L37)  |
| `probod.llm.third-party-disambiguation.provider`       | string  | Omitted when empty | key into AgentsConfig.Providers  | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L34)  |
| `probod.llm.third-party-disambiguation.model-name`     | string  | Omitted when empty | —                                | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L35)  |
| `probod.llm.third-party-disambiguation.temperature`    | number  | Omitted when empty | —                                | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L36)  |
| `probod.llm.third-party-disambiguation.max-tokens`     | integer | Omitted when empty | —                                | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L37)  |
| `probod.llm.tracker-mapping.provider`                  | string  | Omitted when empty | key into AgentsConfig.Providers  | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L34)  |
| `probod.llm.tracker-mapping.model-name`                | string  | Omitted when empty | —                                | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L35)  |
| `probod.llm.tracker-mapping.temperature`               | number  | Omitted when empty | —                                | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L36)  |
| `probod.llm.tracker-mapping.max-tokens`                | integer | Omitted when empty | —                                | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L37)  |
| `probod.llm.tracker-enrichment.provider`               | string  | Omitted when empty | key into AgentsConfig.Providers  | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L34)  |
| `probod.llm.tracker-enrichment.model-name`             | string  | Omitted when empty | —                                | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L35)  |
| `probod.llm.tracker-enrichment.temperature`            | number  | Omitted when empty | —                                | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L36)  |
| `probod.llm.tracker-enrichment.max-tokens`             | integer | Omitted when empty | —                                | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L37)  |
| `probod.llm.common-third-party-enrichment.provider`    | string  | Omitted when empty | key into AgentsConfig.Providers  | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L34)  |
| `probod.llm.common-third-party-enrichment.model-name`  | string  | Omitted when empty | —                                | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L35)  |
| `probod.llm.common-third-party-enrichment.temperature` | number  | Omitted when empty | —                                | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L36)  |
| `probod.llm.common-third-party-enrichment.max-tokens`  | integer | Omitted when empty | —                                | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L37)  |
| `probod.llm.slackbot.provider`                         | string  | Omitted when empty | key into AgentsConfig.Providers  | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L34)  |
| `probod.llm.slackbot.model-name`                       | string  | Omitted when empty | —                                | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L35)  |
| `probod.llm.slackbot.temperature`                      | number  | Omitted when empty | —                                | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L36)  |
| `probod.llm.slackbot.max-tokens`                       | integer | Omitted when empty | —                                | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L37)  |
| `probod.llm.tools.firecrawl-api-key`                   | string  | Omitted when empty | —                                | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L104) |

## Evidence Describer

| Field                                       | Type    | Serialization  | Description                        | Source                                                                                       |
| ------------------------------------------- | ------- | -------------- | ---------------------------------- | -------------------------------------------------------------------------------------------- |
| `probod.evidence-describer.interval`        | integer | Always emitted | seconds between polls              | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L44) |
| `probod.evidence-describer.stale-after`     | integer | Always emitted | seconds before a claim is recycled | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L45) |
| `probod.evidence-describer.max-concurrency` | integer | Always emitted | —                                  | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L46) |

## Third Party Vetting Worker

| Field                                               | Type    | Serialization  | Description                        | Source                                                                                       |
| --------------------------------------------------- | ------- | -------------- | ---------------------------------- | -------------------------------------------------------------------------------------------- |
| `probod.third-party-vetting-worker.interval`        | integer | Always emitted | seconds between polls              | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L53) |
| `probod.third-party-vetting-worker.stale-after`     | integer | Always emitted | seconds before a claim is recycled | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L54) |
| `probod.third-party-vetting-worker.max-concurrency` | integer | Always emitted | —                                  | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L55) |

## Tracker Mapping Worker

| Field                                                        | Type    | Serialization  | Description                        | Source                                                                                       |
| ------------------------------------------------------------ | ------- | -------------- | ---------------------------------- | -------------------------------------------------------------------------------------------- |
| `probod.tracker-mapping-worker.interval`                     | integer | Always emitted | seconds between polls              | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L66) |
| `probod.tracker-mapping-worker.max-concurrency`              | integer | Always emitted | —                                  | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L67) |
| `probod.tracker-mapping-worker.stale-after`                  | integer | Always emitted | seconds before a claim is recycled | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L68) |
| `probod.tracker-mapping-worker.agent-timeout`                | integer | Always emitted | seconds, single agent run          | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L69) |
| `probod.tracker-mapping-worker.agent-max-turns`              | integer | Always emitted | —                                  | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L70) |
| `probod.tracker-mapping-worker.disambiguation-agent-timeout` | integer | Always emitted | seconds, single disambiguation run | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L71) |

## Common Pattern Enrichment Worker

| Field                                                     | Type    | Serialization  | Description                        | Source                                                                                       |
| --------------------------------------------------------- | ------- | -------------- | ---------------------------------- | -------------------------------------------------------------------------------------------- |
| `probod.common-pattern-enrichment-worker.interval`        | integer | Always emitted | seconds between polls              | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L78) |
| `probod.common-pattern-enrichment-worker.max-concurrency` | integer | Always emitted | —                                  | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L79) |
| `probod.common-pattern-enrichment-worker.stale-after`     | integer | Always emitted | seconds before a claim is recycled | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L80) |
| `probod.common-pattern-enrichment-worker.agent-timeout`   | integer | Always emitted | seconds, single agent run          | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L81) |
| `probod.common-pattern-enrichment-worker.agent-max-turns` | integer | Always emitted | —                                  | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L82) |

## Common Third Party Enrichment Worker

| Field                                                              | Type    | Serialization  | Description                        | Source                                                                                       |
| ------------------------------------------------------------------ | ------- | -------------- | ---------------------------------- | -------------------------------------------------------------------------------------------- |
| `probod.common-third-party-enrichment-worker.interval`             | integer | Always emitted | seconds between polls              | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L92) |
| `probod.common-third-party-enrichment-worker.max-concurrency`      | integer | Always emitted | —                                  | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L93) |
| `probod.common-third-party-enrichment-worker.stale-after`          | integer | Always emitted | seconds before a claim is recycled | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L94) |
| `probod.common-third-party-enrichment-worker.agent-timeout`        | integer | Always emitted | seconds, single agent run          | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L95) |
| `probod.common-third-party-enrichment-worker.agent-max-turns`      | integer | Always emitted | —                                  | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L96) |
| `probod.common-third-party-enrichment-worker.confidence-threshold` | number  | Always emitted | —                                  | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L97) |
| `probod.common-third-party-enrichment-worker.max-attempts`         | integer | Always emitted | —                                  | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/llm_config.go#L98) |

## Custom Domains

| Field                                      | Type    | Serialization      | Description | Source                                                                                                  |
| ------------------------------------------ | ------- | ------------------ | ----------- | ------------------------------------------------------------------------------------------------------- |
| `probod.custom-domains.renewal-interval`   | integer | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/custom_domains_config.go#L24) |
| `probod.custom-domains.provision-interval` | integer | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/custom_domains_config.go#L25) |
| `probod.custom-domains.resolver-addr`      | string  | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/custom_domains_config.go#L26) |
| `probod.custom-domains.cname-target`       | string  | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/custom_domains_config.go#L27) |
| `probod.custom-domains.caa-issuer-domain`  | string  | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/custom_domains_config.go#L28) |
| `probod.custom-domains.acme.directory`     | string  | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/custom_domains_config.go#L33) |
| `probod.custom-domains.acme.email`         | string  | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/custom_domains_config.go#L34) |
| `probod.custom-domains.acme.key-type`      | string  | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/custom_domains_config.go#L35) |
| `probod.custom-domains.acme.root-ca`       | string  | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/custom_domains_config.go#L39) |

## SCIM Bridge

| Field                              | Type    | Serialization  | Description | Source                                                                                               |
| ---------------------------------- | ------- | -------------- | ----------- | ---------------------------------------------------------------------------------------------------- |
| `probod.scim-bridge.sync-interval` | integer | Always emitted | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/scim_bridge_config.go#L24) |
| `probod.scim-bridge.poll-interval` | integer | Always emitted | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/scim_bridge_config.go#L25) |

## Electronic signatures

| Field                  | Type   | Serialization      | Description | Source                                                                                   |
| ---------------------- | ------ | ------------------ | ----------- | ---------------------------------------------------------------------------------------- |
| `probod.esign.tsa-url` | string | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/config.go#L53) |

## Slackbot

| Field                            | Type    | Serialization      | Description | Source                                                                                            |
| -------------------------------- | ------- | ------------------ | ----------- | ------------------------------------------------------------------------------------------------- |
| `probod.slackbot.enabled`        | boolean | Always emitted     | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/slackbot_config.go#L24) |
| `probod.slackbot.signing-secret` | string  | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/slackbot_config.go#L25) |
| `probod.slackbot.client-id`      | string  | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/slackbot_config.go#L26) |
| `probod.slackbot.client-secret`  | string  | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/slackbot_config.go#L27) |
| `probod.slackbot.redirect-uri`   | string  | Omitted when empty | —           | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/slackbot_config.go#L28) |

## Connector configuration variants

`probod.connectors[].config` depends on the connector protocol:

| Variant         | Field                                         | Type   | Serialization      | Source                                                                                              |
| --------------- | --------------------------------------------- | ------ | ------------------ | --------------------------------------------------------------------------------------------------- |
| OAuth 2.0       | `probod.connectors[].config.client-id`        | string | Always emitted     | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/connector_config.go#L80)  |
| OAuth 2.0       | `probod.connectors[].config.client-secret`    | string | Always emitted     | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/connector_config.go#L81)  |
| OAuth 2.0       | `probod.connectors[].config.integration-slug` | string | Omitted when empty | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/connector_config.go#L86)  |
| Managed API key | `probod.connectors[].config.api-key`          | string | Always emitted     | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/connector_config.go#L104) |
| Managed API key | `probod.connectors[].config.resource-id`      | string | Omitted when empty | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/connector_config.go#L105) |
| GitHub App      | `probod.connectors[].config.app-id`           | string | Always emitted     | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/connector_config.go#L90)  |
| GitHub App      | `probod.connectors[].config.client-id`        | string | Always emitted     | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/connector_config.go#L91)  |
| GitHub App      | `probod.connectors[].config.client-secret`    | string | Always emitted     | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/connector_config.go#L92)  |
| GitHub App      | `probod.connectors[].config.slug`             | string | Always emitted     | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/connector_config.go#L93)  |
| GitHub App      | `probod.connectors[].config.private-key`      | string | Always emitted     | [View field](https://github.com/getprobo/probo/blob/main/pkg/probodconfig/connector_config.go#L94)  |

Connector `settings` is a provider-specific object and therefore has no fixed set of child fields in the shared configuration schema.
