{
  "schemaVersion": "1.0",
  "title": "Twenty connector configuration",
  "description": "This reference describes the product settings accepted by aip-host-twenty at the reviewed source revision. A complete deployment combines them with the shared connector-host identity, PostgreSQL, routing, signing, lifecycle, and optional ca",
  "canonical": "https://getaip.org/docs/connectors/twenty/reference/configuration",
  "route": "/docs/connectors/twenty/reference/configuration",
  "source": "docs/connectors/twenty/reference/configuration.md",
  "protocol": "Agent Interoperability Protocol",
  "protocolVersion": "1.0",
  "section": "Connectors",
  "documentType": "Connector",
  "language": "en",
  "downloads": {
    "md": "/docs/download/connectors/twenty/reference/configuration.md",
    "txt": "/docs/download/connectors/twenty/reference/configuration.txt",
    "json": "/docs/download/connectors/twenty/reference/configuration.json",
    "pdf": "/docs/download/connectors/twenty/reference/configuration.pdf"
  },
  "content": {
    "format": "text/markdown",
    "markdown": "---\ntitle: Twenty connector configuration\ndescription: >-\n  Look up Twenty host settings, defaults, limits, allowlisting, readiness, and\n  reload ownership\nkind: reference\naudience: operator\nappliesTo: \"1.x\"\nwritingStandard: \"aip-docs/1.0\"\nlastReviewedRevision: \"97be86e9efedf07ecf1783b03800f683f107fb04\"\nconnector: twenty\naliases:\n  - Twenty environment variables\n  - Twenty host settings\n  - Twenty connector limits\n---\n\n# Twenty connector configuration\n\nThis reference describes the product settings accepted by `aip-host-twenty`\nat the reviewed source revision. A complete deployment combines them with the\nshared connector-host identity, PostgreSQL, routing, signing, lifecycle, and\noptional callback or event-publication settings.\n\nTwenty product settings are read when the host process starts. Only the shared\nnon-secret credential-revision policy is re-read before provider side effects.\n\n## Configuration identity\n\n| Property | Value |\n|---|---|\n| Host binary | `aip-host-twenty` |\n| AIP workspace version | `1.0.0` |\n| Reviewed AIP source | `97be86e9efedf07ecf1783b03800f683f107fb04` |\n| Connector ID | `twenty` |\n| Connector profile | `aip.connector.twenty.v1` |\n| Provider mapping revision | `96a24563674313a3071d359bfccaf33d5e130ab8` |\n| Capability prefix | `cap:twenty:` |\n\nThe provider revision identifies the source used to derive the fixed mapping.\nIt does not establish compatibility with an unpinned provider deployment.\n\n## Configure the Twenty host\n\n| Environment variable | Command-line flag | Required | Default | Meaning |\n|---|---|---:|---|---|\n| `AIP_TWENTY_BASE_URL` | `--base-url` | Yes | None | Fixed provider origin |\n| `AIP_TWENTY_WORKSPACE_ID` | `--workspace-id` | Yes | None | Fixed workspace UUID |\n| `AIP_TWENTY_API_TOKEN_FILE` | `--api-token-file` | Yes | None | Owner-controlled provider token file |\n| `AIP_TWENTY_WEBHOOK_SECRET_FILE` | `--webhook-secret-file` | No | None | Owner-controlled webhook HMAC secret; omission disables ingress |\n| `AIP_TWENTY_ALLOW_INSECURE_HTTP` | `--allow-insecure-http` | No | `false` | Permit HTTP for an explicitly trusted private network |\n| `AIP_TWENTY_MAX_RESPONSE_BYTES` | `--max-response-bytes` | No | `67108864` | Maximum accepted provider response |\n| `AIP_TWENTY_OPERATIONS_FILE` | `--operations-file` | No | All 22 operations | JSON array of admitted capability suffixes |\n\nAll command-line forms are process arguments. Prefer environment values and\nfile-backed secrets in deployment configuration; never pass secret bytes as a\ncommand-line value.\n\n## Validate the provider origin\n\nThe base URL must contain a host and no username, password, path other than\nempty or `/`, query, or fragment. HTTPS is required by default.\n\nLoopback HTTP is accepted without the explicit private-network switch. Other\nHTTP origins require `AIP_TWENTY_ALLOW_INSECURE_HTTP=true`. The switch does not\ndisable host validation or enable provider redirects.\n\nThe connector joins only fixed route templates to this origin. Configure an\norigin rather than an application path prefix.\n\n## Validate the workspace and token\n\n`AIP_TWENTY_WORKSPACE_ID` accepts a canonical 36-character RFC 4122 UUID with\nversion 1 through 5 and an RFC variant nibble. The value scopes deterministic\ncreate IDs and must match each accepted webhook payload's `workspaceId`.\n\nThe API token file is read through the shared bounded-secret reader:\n\n- regular files only;\n- no symlinks;\n- no group or world permission bits on Unix;\n- same inspected and opened file identity;\n- non-empty UTF-8 after surrounding ASCII whitespace is trimmed;\n- maximum 16 KiB;\n- temporary string zeroization after connector construction.\n\nThe connector adds the token as a provider `Authorization: Bearer` header.\nCapability input cannot override it.\n\n## Restrict the operation catalogue\n\nThe optional operations file is a JSON array of capability suffix strings. It\nis read as non-secret configuration with a 128 KiB ceiling.\n\n```json\n[\n  \"record.list\",\n  \"record.get\",\n  \"record.create\",\n  \"openapi.core\"\n]\n```\n\nEvery suffix must be one of the connector's 22 operations. Unknown values fail\nstartup. Duplicate values collapse into one set, while an empty resulting set\nis invalid.\n\nOmission enables all 22 operations in the connector instance. Registry policy\ncan narrow routing further, but it cannot make the process execute an operation\nabsent from this file.\n\nChanging the file does not change a running host. Replace the replica and\nre-admit the resulting manifest and route identity.\n\n## Set the response bound\n\n`AIP_TWENTY_MAX_RESPONSE_BYTES` accepts `1` through `268435456`. Omission uses\n`67108864` bytes.\n\nThe connector rejects a declared `Content-Length` above the bound and stops\naccumulating a streamed response when the bound would be exceeded. An empty\nresponse becomes JSON `null`; non-empty bytes must decode as JSON.\n\nThe configured response limit is published in the connector manifest. It does\nnot increase provider request, webhook body, native envelope, PostgreSQL, or\ningress limits.\n\n## Configure webhook ingress\n\nWebhook ingress is disabled when `AIP_TWENTY_WEBHOOK_SECRET_FILE` is absent.\nWhen present, the host also requires `AIP_CONNECTOR_HOST_EVENT_ENDPOINT` and\nconstructs the route `/webhooks/twenty`.\n\nThe webhook secret uses the 16 KiB shared secret-file bound. The ingress body\nlimit is fixed at 4 MiB. Clock skew is fixed at 300,000 ms, and the durable\nreplay window holds at most 100,000 live nonces.\n\nRelevant common event settings are:\n\n| Setting | Default | Role |\n|---|---|---|\n| `AIP_CONNECTOR_HOST_EVENT_ENDPOINT` | None | Fixed central connector-event ingress |\n| `AIP_CONNECTOR_HOST_EVENT_ALLOW_HTTP` | `false` | Permit controlled HTTP callback transport |\n| `AIP_CONNECTOR_HOST_EVENT_ALLOW_PRIVATE` | `false` | Permit a controlled private destination |\n\nThe product secret alone is insufficient. Event publication also depends on\nshared host signing, identity, durable outbox, and central ingress policy.\n\n## Apply shared host identity and route settings\n\nThe global host reference owns the exhaustive common matrix. These groups are\nrequired for Twenty behavior.\n\n### Identity and admission\n\n| Setting | Role |\n|---|---|\n| `AIP_CONNECTOR_HOST_PUBLIC_ENDPOINT` | Reachable native endpoint ending in `/aip/v1/messages` |\n| `AIP_CONNECTOR_HOST_TYPE_ID` | Admitted Twenty connector type |\n| `AIP_CONNECTOR_HOST_VERSION_ID` | Immutable admitted version |\n| `AIP_CONNECTOR_HOST_INSTANCE_ID` | Logical runtime and webhook replay scope |\n| `AIP_CONNECTOR_HOST_REPLICA_ID` | Concrete process identity |\n| `AIP_CONNECTOR_HOST_TENANT_ID` | Verified tenant owned by the instance |\n| `AIP_CONNECTOR_HOST_MEMBERSHIP_ID` | Stable membership assertion |\n| `AIP_CONNECTOR_HOST_ARTIFACT_DIGEST` | Exact host artifact digest |\n| `AIP_CONNECTOR_HOST_SECRET_PROVIDER_REF` | Non-secret provider reference |\n| `AIP_CONNECTOR_HOST_CONFIG_REVISION` | Monotonic configuration revision; default `1` |\n\nOptional external-account ID and system must appear together. The common host\ndoes not compare the external-account ID with the Twenty workspace UUID.\n\n### PostgreSQL, signing, and lifecycle\n\n| Setting | Required or default |\n|---|---|\n| `AIP_CONNECTOR_HOST_BIND` | Default `0.0.0.0:8081` |\n| `AIP_CONNECTOR_HOST_DATABASE_URL_FILE` | Required owner-controlled PostgreSQL URL |\n| `AIP_CONNECTOR_HOST_SIGNING_SEED_FILE` | Required owner-controlled Ed25519 seed |\n| `AIP_CONNECTOR_HOST_CONTROL_ENDPOINT` | Required lifecycle endpoint |\n| `AIP_CONNECTOR_HOST_CONTROL_DID` or `_FILE` | Exactly one control-plane DID source |\n| `AIP_CONNECTOR_HOST_GATEWAY_PRINCIPAL_ID` | Required trusted gateway principal |\n| `AIP_CONNECTOR_HOST_GATEWAY_DID` or `_FILE` | Exactly one gateway DID source |\n| `AIP_CONNECTOR_HOST_TRUST_DOMAIN` | Required trust domain |\n| `AIP_CONNECTOR_HOST_TLS_CA_FILE` | Optional private-PKI root |\n| `AIP_CONNECTOR_HOST_MAX_IN_FLIGHT` | Default `32` |\n| `AIP_CONNECTOR_HOST_LEASE_TTL_MS` | Default `30000` |\n| `AIP_CONNECTOR_HOST_HEARTBEAT_MS` | Default `10000` |\n| `AIP_CONNECTOR_HOST_DRAIN_TIMEOUT_MS` | Default `30000` |\n| `AIP_CONNECTOR_HOST_HEALTH_TIMEOUT_MS` | Default `2000` |\n| `AIP_CONNECTOR_HOST_CONTROL_TIMEOUT_MS` | Default `5000` |\n\nShared credential ID, issuer, scopes, revision, and revision-policy settings\nare optional as one complete unit. They fence route authorization but do not\nreplace the Twenty API token or webhook secret.\n\n### Topology and callbacks\n\n| Setting | Default |\n|---|---|\n| `AIP_CONNECTOR_HOST_REGION` | `global` |\n| `AIP_CONNECTOR_HOST_ZONE` | `default` |\n| `AIP_CONNECTOR_HOST_CAPACITY_CLASS` | `standard` |\n| `AIP_CONNECTOR_HOST_CALLBACK_ENDPOINT` | None |\n| `AIP_CONNECTOR_HOST_CALLBACK_ALLOW_HTTP` | `false` |\n| `AIP_CONNECTOR_HOST_CALLBACK_ALLOW_PRIVATE` | `false` |\n\nThe connector exposes synchronous, non-streaming operations. A stream callback\nis not required by the Twenty operation contracts at this revision.\n\n## Use the effective limits\n\n| Boundary | Reviewed value |\n|---|---:|\n| Provider HTTP connect timeout | 10 seconds |\n| Provider HTTP total timeout | 120 seconds |\n| Provider request JSON | 16 MiB |\n| Provider response, default | 64 MiB |\n| Provider response, maximum | 256 MiB |\n| Webhook request body | 4 MiB |\n| Webhook timestamp skew | 300,000 ms |\n| Live webhook replay nonces | 100,000 |\n| Operation configuration file | 128 KiB |\n| API-token or webhook-secret file | 16 KiB |\n| Bulk record count | 200 |\n| Object identifier | 128 bytes |\n| Query entries | 64 |\n| Query value | 32 KiB |\n| Mutation idempotency key | 1 through 1,024 ASCII graphic bytes |\n\nThe effective ceiling is the smallest applicable bound. Raising the response\nlimit does not enlarge requests, webhook bodies, record batches, query values,\nnative envelopes, or shared host limits.\n\n## Understand readiness\n\nThe connector sends authenticated `GET /rest/open-api/core` to the configured\norigin. Any successful HTTP status reports the provider workspace API as\nreachable; transport or non-success status fails the connector health check.\n\nCommon host readiness also depends on PostgreSQL, the registry lease,\nlifecycle state, route identity, and other shared controls.\n\nReadiness does not verify every admitted operation, mutation permission,\nidempotency behavior, webhook signature, event publication, replay recovery,\ncustom object schema, or provider revision.\n\n## Know startup and reload ownership\n\n| Value | Read |\n|---|---|\n| Origin, workspace, API token, webhook secret | Host startup |\n| Response limit and operation file | Host startup |\n| Shared identity, storage, endpoints, and lifecycle limits | Host startup |\n| Webhook replay scope | Constructed from instance ID at startup |\n| Credential-revision policy file | Startup, then before provider side effects |\n\nChange startup-owned values through a controlled replica replacement. Editing\na mounted operation, token, secret, or identity file does not update a running\nconnector, manifest, replay scope, or route assignment.\n\n## Diagnose configuration failures\n\n| Failure | First decision |\n|---|---|\n| Origin is rejected | Supply an allowed origin with no credentials, path, query, or fragment |\n| Workspace is rejected | Supply a canonical RFC 4122 UUID version 1 through 5 |\n| Token or webhook file is rejected | Check regular-file type, permissions, UTF-8, size, and content without printing it |\n| Response limit is rejected | Choose `1` through `268435456` bytes |\n| Operation file is rejected | Check its 128 KiB bound, JSON array shape, known suffixes, and non-empty set |\n| Webhook secret is configured but startup fails | Configure an authorized central event endpoint and its trust material |\n| Host remains unready | Check authenticated core OpenAPI reachability, PostgreSQL, lease, and lifecycle state |\n| Provider returns a redirect | Correct the fixed origin or provider routing; redirects are disabled |\n| Credential revision is denied | Repair policy or roll to an authorized revision before enabling provider work |\n\n## Related documentation\n\n- [Twenty connector overview](../README.md)\n- [Authentication and workspace isolation](../getting-started/authentication-and-workspace-isolation.md)\n- [Connector host configuration](../../../reference/connector-host-configuration.md)\n- [Connector host lifecycle](../../../guides/connector-host-lifecycle.md)\n- [Environment variables](../../../reference/environment-variables.md)\n",
    "text": "Twenty connector configuration\n\nThis reference describes the product settings accepted by aip-host-twenty\nat the reviewed source revision. A complete deployment combines them with the\nshared connector-host identity, PostgreSQL, routing, signing, lifecycle, and\noptional callback or event-publication settings.\n\nTwenty product settings are read when the host process starts. Only the shared\nnon-secret credential-revision policy is re-read before provider side effects.\n\nConfiguration identity\n\n| Property | Value |\n\n| Host binary | aip-host-twenty |\n| AIP workspace version | 1.0.0 |\n| Reviewed AIP source | 97be86e9efedf07ecf1783b03800f683f107fb04 |\n| Connector ID | twenty |\n| Connector profile | aip.connector.twenty.v1 |\n| Provider mapping revision | 96a24563674313a3071d359bfccaf33d5e130ab8 |\n| Capability prefix | cap:twenty: |\n\nThe provider revision identifies the source used to derive the fixed mapping.\nIt does not establish compatibility with an unpinned provider deployment.\n\nConfigure the Twenty host\n\n| Environment variable | Command-line flag | Required | Default | Meaning |\n\n| AIPTWENTYBASEURL | --base-url | Yes | None | Fixed provider origin |\n| AIPTWENTYWORKSPACEID | --workspace-id | Yes | None | Fixed workspace UUID |\n| AIPTWENTYAPITOKENFILE | --api-token-file | Yes | None | Owner-controlled provider token file |\n| AIPTWENTYWEBHOOKSECRETFILE | --webhook-secret-file | No | None | Owner-controlled webhook HMAC secret; omission disables ingress |\n| AIPTWENTYALLOWINSECUREHTTP | --allow-insecure-http | No | false | Permit HTTP for an explicitly trusted private network |\n| AIPTWENTYMAXRESPONSEBYTES | --max-response-bytes | No | 67108864 | Maximum accepted provider response |\n| AIPTWENTYOPERATIONSFILE | --operations-file | No | All 22 operations | JSON array of admitted capability suffixes |\n\nAll command-line forms are process arguments. Prefer environment values and\nfile-backed secrets in deployment configuration; never pass secret bytes as a\ncommand-line value.\n\nValidate the provider origin\n\nThe base URL must contain a host and no username, password, path other than\nempty or /, query, or fragment. HTTPS is required by default.\n\nLoopback HTTP is accepted without the explicit private-network switch. Other\nHTTP origins require AIPTWENTYALLOWINSECUREHTTP=true. The switch does not\ndisable host validation or enable provider redirects.\n\nThe connector joins only fixed route templates to this origin. Configure an\norigin rather than an application path prefix.\n\nValidate the workspace and token\n\nAIPTWENTYWORKSPACEID accepts a canonical 36-character RFC 4122 UUID with\nversion 1 through 5 and an RFC variant nibble. The value scopes deterministic\ncreate IDs and must match each accepted webhook payload's workspaceId.\n\nThe API token file is read through the shared bounded-secret reader:\n• regular files only;\n• no symlinks;\n• no group or world permission bits on Unix;\n• same inspected and opened file identity;\n• non-empty UTF-8 after surrounding ASCII whitespace is trimmed;\n• maximum 16 KiB;\n• temporary string zeroization after connector construction.\n\nThe connector adds the token as a provider Authorization: Bearer header.\nCapability input cannot override it.\n\nRestrict the operation catalogue\n\nThe optional operations file is a JSON array of capability suffix strings. It\nis read as non-secret configuration with a 128 KiB ceiling.\n\n[\n  \"record.list\",\n  \"record.get\",\n  \"record.create\",\n  \"openapi.core\"\n]\n\nEvery suffix must be one of the connector's 22 operations. Unknown values fail\nstartup. Duplicate values collapse into one set, while an empty resulting set\nis invalid.\n\nOmission enables all 22 operations in the connector instance. Registry policy\ncan narrow routing further, but it cannot make the process execute an operation\nabsent from this file.\n\nChanging the file does not change a running host. Replace the replica and\nre-admit the resulting manifest and route identity.\n\nSet the response bound\n\nAIPTWENTYMAXRESPONSEBYTES accepts 1 through 268435456. Omission uses\n67108864 bytes.\n\nThe connector rejects a declared Content-Length above the bound and stops\naccumulating a streamed response when the bound would be exceeded. An empty\nresponse becomes JSON null; non-empty bytes must decode as JSON.\n\nThe configured response limit is published in the connector manifest. It does\nnot increase provider request, webhook body, native envelope, PostgreSQL, or\ningress limits.\n\nConfigure webhook ingress\n\nWebhook ingress is disabled when AIPTWENTYWEBHOOKSECRETFILE is absent.\nWhen present, the host also requires AIPCONNECTORHOSTEVENTENDPOINT and\nconstructs the route /webhooks/twenty.\n\nThe webhook secret uses the 16 KiB shared secret-file bound. The ingress body\nlimit is fixed at 4 MiB. Clock skew is fixed at 300,000 ms, and the durable\nreplay window holds at most 100,000 live nonces.\n\nRelevant common event settings are:\n\n| Setting | Default | Role |\n\n| AIPCONNECTORHOSTEVENTENDPOINT | None | Fixed central connector-event ingress |\n| AIPCONNECTORHOSTEVENTALLOWHTTP | false | Permit controlled HTTP callback transport |\n| AIPCONNECTORHOSTEVENTALLOWPRIVATE | false | Permit a controlled private destination |\n\nThe product secret alone is insufficient. Event publication also depends on\nshared host signing, identity, durable outbox, and central ingress policy.\n\nApply shared host identity and route settings\n\nThe global host reference owns the exhaustive common matrix. These groups are\nrequired for Twenty behavior.\n\nIdentity and admission\n\n| Setting | Role |\n\n| AIPCONNECTORHOSTPUBLICENDPOINT | Reachable native endpoint ending in /aip/v1/messages |\n| AIPCONNECTORHOSTTYPEID | Admitted Twenty connector type |\n| AIPCONNECTORHOSTVERSIONID | Immutable admitted version |\n| AIPCONNECTORHOSTINSTANCEID | Logical runtime and webhook replay scope |\n| AIPCONNECTORHOSTREPLICAID | Concrete process identity |\n| AIPCONNECTORHOSTTENANTID | Verified tenant owned by the instance |\n| AIPCONNECTORHOSTMEMBERSHIPID | Stable membership assertion |\n| AIPCONNECTORHOSTARTIFACTDIGEST | Exact host artifact digest |\n| AIPCONNECTORHOSTSECRETPROVIDERREF | Non-secret provider reference |\n| AIPCONNECTORHOSTCONFIGREVISION | Monotonic configuration revision; default 1 |\n\nOptional external-account ID and system must appear together. The common host\ndoes not compare the external-account ID with the Twenty workspace UUID.\n\nPostgreSQL, signing, and lifecycle\n\n| Setting | Required or default |\n\n| AIPCONNECTORHOSTBIND | Default 0.0.0.0:8081 |\n| AIPCONNECTORHOSTDATABASEURLFILE | Required owner-controlled PostgreSQL URL |\n| AIPCONNECTORHOSTSIGNINGSEEDFILE | Required owner-controlled Ed25519 seed |\n| AIPCONNECTORHOSTCONTROLENDPOINT | Required lifecycle endpoint |\n| AIPCONNECTORHOSTCONTROLDID or FILE | Exactly one control-plane DID source |\n| AIPCONNECTORHOSTGATEWAYPRINCIPALID | Required trusted gateway principal |\n| AIPCONNECTORHOSTGATEWAYDID or FILE | Exactly one gateway DID source |\n| AIPCONNECTORHOSTTRUSTDOMAIN | Required trust domain |\n| AIPCONNECTORHOSTTLSCAFILE | Optional private-PKI root |\n| AIPCONNECTORHOSTMAXINFLIGHT | Default 32 |\n| AIPCONNECTORHOSTLEASETTLMS | Default 30000 |\n| AIPCONNECTORHOSTHEARTBEATMS | Default 10000 |\n| AIPCONNECTORHOSTDRAINTIMEOUTMS | Default 30000 |\n| AIPCONNECTORHOSTHEALTHTIMEOUTMS | Default 2000 |\n| AIPCONNECTORHOSTCONTROLTIMEOUTMS | Default 5000 |\n\nShared credential ID, issuer, scopes, revision, and revision-policy settings\nare optional as one complete unit. They fence route authorization but do not\nreplace the Twenty API token or webhook secret.\n\nTopology and callbacks\n\n| Setting | Default |\n\n| AIPCONNECTORHOSTREGION | global |\n| AIPCONNECTORHOSTZONE | default |\n| AIPCONNECTORHOSTCAPACITYCLASS | standard |\n| AIPCONNECTORHOSTCALLBACKENDPOINT | None |\n| AIPCONNECTORHOSTCALLBACKALLOWHTTP | false |\n| AIPCONNECTORHOSTCALLBACKALLOWPRIVATE | false |\n\nThe connector exposes synchronous, non-streaming operations. A stream callback\nis not required by the Twenty operation contracts at this revision.\n\nUse the effective limits\n\n| Boundary | Reviewed value |\n\n| Provider HTTP connect timeout | 10 seconds |\n| Provider HTTP total timeout | 120 seconds |\n| Provider request JSON | 16 MiB |\n| Provider response, default | 64 MiB |\n| Provider response, maximum | 256 MiB |\n| Webhook request body | 4 MiB |\n| Webhook timestamp skew | 300,000 ms |\n| Live webhook replay nonces | 100,000 |\n| Operation configuration file | 128 KiB |\n| API-token or webhook-secret file | 16 KiB |\n| Bulk record count | 200 |\n| Object identifier | 128 bytes |\n| Query entries | 64 |\n| Query value | 32 KiB |\n| Mutation idempotency key | 1 through 1,024 ASCII graphic bytes |\n\nThe effective ceiling is the smallest applicable bound. Raising the response\nlimit does not enlarge requests, webhook bodies, record batches, query values,\nnative envelopes, or shared host limits.\n\nUnderstand readiness\n\nThe connector sends authenticated GET /rest/open-api/core to the configured\norigin. Any successful HTTP status reports the provider workspace API as\nreachable; transport or non-success status fails the connector health check.\n\nCommon host readiness also depends on PostgreSQL, the registry lease,\nlifecycle state, route identity, and other shared controls.\n\nReadiness does not verify every admitted operation, mutation permission,\nidempotency behavior, webhook signature, event publication, replay recovery,\ncustom object schema, or provider revision.\n\nKnow startup and reload ownership\n\n| Value | Read |\n\n| Origin, workspace, API token, webhook secret | Host startup |\n| Response limit and operation file | Host startup |\n| Shared identity, storage, endpoints, and lifecycle limits | Host startup |\n| Webhook replay scope | Constructed from instance ID at startup |\n| Credential-revision policy file | Startup, then before provider side effects |\n\nChange startup-owned values through a controlled replica replacement. Editing\na mounted operation, token, secret, or identity file does not update a running\nconnector, manifest, replay scope, or route assignment.\n\nDiagnose configuration failures\n\n| Failure | First decision |\n\n| Origin is rejected | Supply an allowed origin with no credentials, path, query, or fragment |\n| Workspace is rejected | Supply a canonical RFC 4122 UUID version 1 through 5 |\n| Token or webhook file is rejected | Check regular-file type, permissions, UTF-8, size, and content without printing it |\n| Response limit is rejected | Choose 1 through 268435456 bytes |\n| Operation file is rejected | Check its 128 KiB bound, JSON array shape, known suffixes, and non-empty set |\n| Webhook secret is configured but startup fails | Configure an authorized central event endpoint and its trust material |\n| Host remains unready | Check authenticated core OpenAPI reachability, PostgreSQL, lease, and lifecycle state |\n| Provider returns a redirect | Correct the fixed origin or provider routing; redirects are disabled |\n| Credential revision is denied | Repair policy or roll to an authorized revision before enabling provider work |\n\nRelated documentation\n• Twenty connector overview (../README.md)\n• Authentication and workspace isolation (../getting-started/authentication-and-workspace-isolation.md)\n• Connector host configuration (../../../reference/connector-host-configuration.md)\n• Connector host lifecycle (../../../guides/connector-host-lifecycle.md)\n• Environment variables (../../../reference/environment-variables.md)\n"
  },
  "integrity": {
    "algorithm": "sha256",
    "sourceDigest": "16fca32d34cb50137f184010c2700215e5bca63fcffe3d64d6e81a56c89f29b0"
  }
}
