Node Environment Variables
This is the consolidated reference for node environment variables used by node-core.
Prefix Configuration
The default environment variable prefix is TWIN_, so variables look like TWIN_PORT and
TWIN_ENTITY_STORAGE_CONNECTOR_TYPE.
The prefix is configurable for custom node implementations:
- Set
envPrefixin node options when callingrun(...). - Or pass the CLI option
--env-prefix <PREFIX>.
When you change the prefix, all variables in this document use your custom prefix instead of
TWIN_.
Core Runtime Variables
| Variable | Possible Values | Default | Notes |
|---|---|---|---|
TWIN_DEBUG | true, false | false | Enables engine debug mode. |
TWIN_SILENT | true, false | false | Suppresses console output. |
TWIN_STRICT_ENV | error, warn, ignore | error | error throws on unrecognised TWIN_* variables; warn logs a warning; ignore skips validation. Any other value is rejected at startup. |
TWIN_ENV_ALLOW_LIST | Comma-separated names | None | Env var names exempt from the unknown-key check. Supports wildcard patterns with a * suffix (e.g. TWIN_MY_EXTENSION_SECRET, TWIN_MY_EXT_*). |
TWIN_STORAGE_FILE_ROOT | File system path | None | Root directory for file-based state and storage. |
TWIN_STATE_FILENAME | File name or path | engine-state.json (when storage root is set) | State file used by node state storage. |
TWIN_TENANT_ENABLED | true, false | false | Enables tenant-scoped flow. |
TWIN_SCHEMA_MIGRATION_ENABLED | true, false | true | Enables automatic schema migration at startup. Set to false to disable schema version migration. |
TWIN_EXTENSIONS | Comma-separated module list | None | Extension modules to load. Supports local, npm:, and https: entries. |
Bootstrap Dev Variables
These variables are only read when running the bootstrap-dev CLI command. They are not used during normal server startup.
| Variable | Possible Values | Default | Notes |
|---|---|---|---|
TWIN_FEATURES | Comma-separated list | admin-user,wallet | Features to enable during bootstrap (e.g. admin-user). |
TWIN_NODE_IDENTITY | DID string | Generated | Node identity DID. Generated if not provided. |
TWIN_NODE_MNEMONIC | Mnemonic string | Generated | Node identity mnemonic. Generated if not provided. |
TWIN_TENANT_ID | UUID string | Generated | Default tenant ID. |
TWIN_TENANT_API_KEY | String | Generated | Default tenant API key. |
TWIN_ORGANIZATION_IDENTITY | DID string | Generated | Organisation identity DID. Generated if not provided. |
TWIN_ORGANIZATION_MNEMONIC | Mnemonic string | Generated | Organisation identity mnemonic. Generated if not provided. |
TWIN_ADMIN_USER_IDENTITY | DID string | Generated | Admin user identity DID. Only used when admin-user feature is enabled. |
TWIN_ADMIN_USER_MNEMONIC | Mnemonic string | Generated | Admin user mnemonic. Only used when admin-user feature is enabled. |
TWIN_ADMIN_USER_NAME | Email or string | admin@tenant (multi-tenant) or admin@node (single tenant) | Admin user name. Only used when admin-user feature is enabled. |
TWIN_ADMIN_USER_PASSWORD | String | Generated | Admin user password. Only used when admin-user feature is enabled. |
TWIN_ADMIN_USER_SCOPE | Comma-separated list | tenant-admin,user-admin (multi-tenant) or user-admin (single-tenant) | Admin user permission scopes. Only used when admin-user feature is enabled. |
Server Variables
| Variable | Possible Values | Default | Notes |
|---|---|---|---|
TWIN_PORT | Integer | 3000 (web server fallback) | API server port. |
TWIN_HOST | Host name or IP | localhost (web server fallback) | API server host. |
TWIN_PUBLIC_ORIGIN | URL | None | Public API origin, for example https://api.example.com:443. |
TWIN_CORS_ORIGINS | Comma-separated origins | * (if not set by runtime config) | CORS allow list. |
TWIN_HTTP_METHODS | Comma-separated HTTP methods | GET,POST,PUT,DELETE,OPTIONS | CORS methods. |
TWIN_HTTP_ALLOWED_HEADERS | Comma-separated headers | Runtime dependent | CORS allowed headers. |
TWIN_HTTP_EXPOSED_HEADERS | Comma-separated headers | Runtime dependent | CORS exposed headers. |
TWIN_HTTP_BODY_LIMITS | Comma-separated name=bytes pairs | Runtime dependent | Named request body limits for REST routes, e.g. default=2097152,large=26214400. Unset keeps the 1 MiB default and the 25 MiB large built-in. |
Connector and Component Selection Variables
| Variable | Possible Values | Default | Notes |
|---|---|---|---|
TWIN_ENTITY_STORAGE_CONNECTOR_TYPE | file, memory, aws-dynamodb, azure-cosmosdb, gcp-firestoredb, scylladb, mysql, mongodb, postgresql | None | Comma-separated list allowed. |
TWIN_ENTITY_STORAGE_CONNECTOR_DEFAULT | Any configured entity storage type | First configured type | Default entity storage connector. |
TWIN_BLOB_STORAGE_CONNECTOR_TYPE | memory, file, ipfs, aws-s3, azure-storage, gcp-storage | None | Comma-separated list allowed. |
TWIN_BLOB_STORAGE_CONNECTOR_DEFAULT | Any configured blob storage type | First configured type | Default blob storage connector. |
TWIN_VAULT_CONNECTOR | entity-storage, hashicorp | None | Selects vault backend. |
TWIN_LOGGING_CONNECTOR | console, entity-storage, otel, file | None | Comma-separated list allowed. |
TWIN_LOGGING_BATCH_SIZE | Integer | None | Logging batch size. Set to 1 to disable batching. |
TWIN_LOGGING_SILENT_COMPONENTS | Comma-separated list of component class names | None | A list of components to exclude from logging. |
TWIN_LOGGING_BATCH_FLUSH_INTERVAL | Integer seconds | 5 | Logging batch flush interval. |
TWIN_LOGGING_RETAIN_FOR | Integer minutes | 2880 | Age-based retention window for entity-storage logging. Set to 0 to disable age-based retention. |
TWIN_LOGGING_MAX_ENTRIES | Integer | 10000 | Count-based retention limit for entity-storage logging. Set to 0 to disable count-based retention. |
TWIN_LOGGING_RETENTION_INTERVAL | Integer minutes | 5 | How often retention cleanup runs for entity-storage logging. Set to 0 to disable periodic cleanup. |
TWIN_LOGGING_RETENTION_BATCH_SIZE | Integer | 1000 | Maximum entries deleted per retention cleanup batch for entity-storage logging. |
TWIN_LOGGING_FILE_DIRECTORY | Directory path | None | Directory to write log files into. Required when TWIN_LOGGING_CONNECTOR includes file. |
TWIN_LOGGING_FILE_FILENAME | String | app.log | Log filename. Only used when TWIN_LOGGING_CONNECTOR includes file. |
TWIN_LOGGING_FILE_MAX_FILE_SIZE_BYTES | Integer bytes | 10485760 | Max log file size before rotation. Set to 0 to disable rotation. Only used when TWIN_LOGGING_CONNECTOR includes file. |
TWIN_LOGGING_FILE_MAX_RETAINED_FILES | Integer | 5 | Number of rotated log files to retain. Set to 0 to keep all. Only used when TWIN_LOGGING_CONNECTOR includes file. |
TWIN_EVENT_BUS_CONNECTOR | local | None | Selects event bus connector. |
TWIN_EVENT_BUS_COMPONENT | service | None | Selects event bus component implementation. |
TWIN_MESSAGING_EMAIL_CONNECTOR | entity-storage, aws | None | Messaging email connector type. |
TWIN_MESSAGING_SMS_CONNECTOR | entity-storage, aws | None | Messaging SMS connector type. |
TWIN_MESSAGING_PUSH_NOTIFICATION_CONNECTOR | entity-storage, aws | None | Messaging push connector type. |
TWIN_TELEMETRY_CONNECTOR | entity-storage, open-telemetry, silent (comma-separated for multiple) | None | Telemetry connector type. When multiple values are provided, a multi-connector is created automatically as the default. |
TWIN_TELEMETRY_METRICS_PRODUCERS | system, process (comma-separated) | system,process | Metrics producer types to enable. |
TWIN_TELEMETRY_SILENT_COMPONENTS | Comma-separated list of component class names | None | A list of components to exclude from telemetry. |
TWIN_TRACING_CONNECTOR | entity-storage, open-telemetry, silent (comma-separated for multiple) | None | Tracing connector type. When multiple values are provided, a multi-connector is created automatically as the default. |
TWIN_TRACING_SILENT_COMPONENTS | Comma-separated list of component class names | None | A list of components to exclude from tracing. |
TWIN_FAUCET_CONNECTOR | entity-storage, iota | None | Faucet connector type. |
TWIN_WALLET_CONNECTOR | entity-storage, iota | None | Wallet connector type. |
TWIN_NFT_CONNECTOR | entity-storage, iota | None | NFT connector type. |
TWIN_NFT_PACKAGE_ID | String | None | Custom deployed package id for the NFT contract. |
TWIN_NOTARIZATION_CONNECTOR | entity-storage, iota | None | Notarization connector type. |
TWIN_IDENTITY_CONNECTOR | entity-storage, iota | None | Identity connector type. |
TWIN_IDENTITY_RESOLVER_CONNECTOR | entity-storage, iota, universal | None | Identity resolver connector type. |
TWIN_IDENTITY_PROFILE_CONNECTOR | entity-storage | None | Identity profile connector type. |
TWIN_ATTESTATION_CONNECTOR | nft | None | Attestation connector type. |
TWIN_DATA_CONVERTER_CONNECTORS | json, xml | None | Comma-separated list allowed. |
TWIN_DATA_EXTRACTOR_CONNECTORS | json-path | None | Comma-separated list allowed. |
TWIN_AUTOMATION_ACTION_TYPES | fetch | None | Automation action types to register. |
TWIN_FEDERATED_CATALOGUE_FILTERS | filter-by-metadata | None | Federated catalogue filters. |
TWIN_TRUST_GENERATORS | jwt-verifiable-credential | None | Trust generator registrations. |
TWIN_TRUST_VERIFIERS | jwt-verifiable-credential | None | Trust verifier registrations. |
TWIN_RIGHTS_MANAGEMENT_POLICY_ARBITERS | pass-through, default | None | Rights policy arbiter registrations. |
TWIN_RIGHTS_MANAGEMENT_POLICY_ENFORCEMENT_PROCESSORS | pass-through, default | None | Rights policy enforcement processor registrations. |
TWIN_RIGHTS_MANAGEMENT_POLICY_EXECUTION_ACTIONS | logging | None | Rights policy execution action registrations. |
TWIN_RIGHTS_MANAGEMENT_POLICY_INFORMATION_SOURCES | identity, static, identity-profile | None | Rights policy information source registrations. |
TWIN_RIGHTS_MANAGEMENT_POLICY_NEGOTIATORS | pass-through | None | Rights policy negotiator registrations. |
TWIN_RIGHTS_MANAGEMENT_POLICY_OBLIGATION_ENFORCERS | pass-through | None | Rights policy obligation enforcer registrations. |
TWIN_RIGHTS_MANAGEMENT_POLICY_REQUESTERS | pass-through | None | Rights policy requester registrations. |
Feature Toggle and Behaviour Variables
| Variable | Possible Values | Default | Notes |
|---|---|---|---|
TWIN_ATTESTATION_VERIFICATION_METHOD_ID | Method id string | attestation-assertion | Default injected by node defaults. |
TWIN_AUDITABLE_ITEM_GRAPH_ENABLED | true, false | false | Enables auditable item graph. Also enabled automatically when notarization is configured. |
TWIN_AUDITABLE_ITEM_STREAM_ENABLED | true, false | false | Enables auditable item stream. Also enabled automatically when notarization is configured. |
TWIN_BLOB_STORAGE_ENABLE_ENCRYPTION | true, false | false | Enables blob encryption in blob storage component flow. |
TWIN_DATA_PROCESSING_ENABLED | true, false | false | Enables data processing. |
TWIN_DATASPACE_ACTIVITY_LOGS_CLEANUP_INTERVAL | Integer seconds | 3600 | Dataspace clean-up interval. |
TWIN_DATASPACE_AGREEMENT_CACHE_TTL | Integer ms | Connector default | TTL for caching dataspace agreements in the control plane service. |
TWIN_DATASPACE_AGREEMENT_CACHE_MUTEX_TIMEOUT | Integer ms | Connector default | Mutex timeout for the dataspace agreement cache in the control plane service. |
TWIN_DATASPACE_AGREEMENT_SWEEP_INTERVAL | Integer ms | Connector default | Interval between agreement sweep runs in the data plane service. |
TWIN_DATASPACE_AGREEMENT_UNUSED_THRESHOLD | Integer ms | Connector default | Time after which an unused agreement is eligible for removal in the data plane service. |
TWIN_DATASPACE_PUSH_RETRY_COUNT | Integer | Connector default | Maximum HTTP retry attempts per push delivery task execution in the data plane service. |
TWIN_DATASPACE_PUSH_RETRY_BASE_DELAY | Integer ms | Connector default | Base delay for exponential backoff between push HTTP retries in the data plane service. |
TWIN_DATASPACE_PUSH_SUBSCRIPTION_CLEANUP_INTERVAL | Integer ms | Connector default | Interval between orphaned push subscription cleanup scans in the data plane service. |
TWIN_DATASPACE_PUSH_TIMEOUT | Integer ms | Connector default | Timeout for each push delivery HTTP POST request in the data plane service. |
TWIN_DATASPACE_RETRY_COUNT | Integer | Connector default | Number of times to retry failed data plane tasks. |
TWIN_DATASPACE_AUTO_START_TRANSFERS | true, false | false | Provider auto-starts transfers on request; when false the provider must call transferStarted explicitly. |
TWIN_DATASPACE_CALLBACK_PATH | Path | dataspace-control-plane | Path under which the dataspace control plane is mounted; combined with the public origin to build the consumer's advertised callback address. |
TWIN_DATASPACE_DATA_PLANE_PATH | Path | None | Base route path for the data plane service (mount-point prefix only, not full URL). Combined with public origin for PULL/PUSH transfers. Do not append sub-paths such as /entities or /inbox. Required for PULL or PUSH transfers. |
TWIN_DATASPACE_ENABLED | true, false | false | Enables dataspace features. |
TWIN_DATASPACE_RETAIN_ACTIVITY_LOGS_FOR | Integer seconds, -1 | 600 | Dataspace activity retention period. |
TWIN_DATASPACE_STALLED_NEGOTIATION_TIMEOUT | Integer seconds | 30 | Time before a stalled negotiation is timed out. |
TWIN_DATASPACE_STALLED_TRANSFER_TIMEOUT | Integer seconds | 30 | Time before a stalled consumer-initiated transfer is timed out. |
TWIN_DATASPACE_PROVIDER_TRANSFER_IDLE_TIMEOUT | Integer seconds | None | Idle window for provider-managed transfers before the idle policy marks the transfer as stalled. |
TWIN_DATASPACE_PROVIDER_TRANSFER_POLICY_SWEEP_INTERVAL | Integer seconds | None | Sweep interval for the provider idle transfer policy. |
TWIN_DOCUMENT_MANAGEMENT_ENABLED | true, false | false | Enables document management. |
TWIN_FEDERATED_CATALOGUE_ENABLED | true, false | false | Enables federated catalogue features. |
TWIN_FEDERATED_CATALOGUE_REMOTE_ENDPOINT | URL | None | Uses a remote federated catalogue REST client. |
TWIN_FEDERATED_CATALOGUE_REST_CLIENT_PATH_PREFIX | String | catalog | Path prefix used by the REST client when forwarding requests to the remote endpoint. Only used when TWIN_FEDERATED_CATALOGUE_REMOTE_ENDPOINT is set. |
TWIN_HEALTH_ENABLED | true, false | false | Enables health components. |
TWIN_HEALTH_INTERVAL | Integer seconds | 60 | Interval between health checks. |
TWIN_HEALTH_STARTUP_INTERVAL | Integer seconds | 2 | Initial delay before the first health check runs. |
TWIN_HEALTH_APPLICATION_INTERVAL | Integer seconds | 300 | Interval between application health lifecycle runs (init, application, teardown). |
TWIN_IDENTITY_WALLET_ADDRESS_INDEX | Integer | 0 | Wallet address index used by identity workflows. |
TWIN_IDENTITY_DID_RESOLUTION_CACHE_TTL | Integer ms | Connector default | TTL for caching resolved DIDs. Only used when TWIN_IDENTITY_CONNECTOR=iota. |
TWIN_IDENTITY_DID_RESOLUTION_CACHE_CAPACITY | Integer | Connector default | Maximum number of DID documents to hold in the resolution cache. Only used when TWIN_IDENTITY_CONNECTOR=iota and caching is enabled. |
TWIN_IDENTITY_DID_RESOLUTION_CACHE_MUTEX_TIMEOUT | Integer ms | Connector default | Mutex timeout for the DID resolution cache. Only used when TWIN_IDENTITY_CONNECTOR=iota and caching is enabled. |
TWIN_IDENTITY_DID_RESOLUTION_RETRIES | Integer | 10 | Number of times to retry resolving a DID after a write operation (create, update, or delete) to confirm propagation. Only used when TWIN_IDENTITY_CONNECTOR=iota. |
TWIN_IDENTITY_DID_RESOLUTION_RETRY_DELAY | Integer ms | 500 | Delay between DID resolution retries after a write operation. Only used when TWIN_IDENTITY_CONNECTOR=iota. |
TWIN_IMMUTABLE_PROOF_VERIFICATION_METHOD_ID | Method id string | immutable-proof-assertion | Default injected by node defaults. |
TWIN_IMMUTABLE_PROOF_TASK_RETRY_COUNT | Integer | 5 | Number of times to retry a proof task before abandoning it. Set to 0 to disable retries. |
TWIN_IMMUTABLE_PROOF_TASK_RETRY_INTERVAL | Integer seconds | 5 | Interval in seconds between proof task retries. |
TWIN_IMMUTABLE_PROOF_TASK_FAILURE_RETAIN_FOR | Integer minutes | 10080 | How long to retain the record of a failed proof task. Set to -1 to retain failures forever. Default is 7 days. |
TWIN_IMMUTABLE_PROOF_SWEEP_INTERVAL | Integer minutes | 30 | How often the immutable proof reconciliation sweep runs. Minimum 1. |
TWIN_IMMUTABLE_PROOF_SWEEP_STALE_THRESHOLD | Integer minutes | 180 | Minimum age before a proof with no notarization is considered stale and eligible for sweep. Minimum 1. |
TWIN_IMMUTABLE_PROOF_SWEEP_MAX_ATTEMPTS | Integer | 5 | Maximum sweep attempts before parking a proof. Minimum 1. |
TWIN_IMMUTABLE_PROOF_SWEEP_BATCH_LIMIT | Integer | 10 | Maximum number of proofs re-enqueued per tenant per sweep cycle. Minimum 1. |
TWIN_IMMUTABLE_PROOF_SWEEP_BACKOFF | Integer minutes | 60 | Minimum delay between sweep attempts for the same proof, with exponential backoff up to 24 hours. Minimum 1. |
TWIN_IMMUTABLE_PROOF_SWEEP_ASSUME_RETRYABLE_BEFORE | ISO 8601 date or date-time | None | Proofs created before this timestamp with no interpretable task record are treated as retryable instead of parked. Date-only values are interpreted as midnight UTC. |
TWIN_MESSAGING_ENABLED | true, false | false | Enables messaging components. |
TWIN_RIGHTS_MANAGEMENT_CALLBACK_PATH | Path | None | Callback path used by rights management. |
TWIN_TASK_SCHEDULER_ENABLED | true, false | false | Forces the task scheduler on regardless of which other features require it. |
TWIN_TELEMETRY_BATCH_FLUSH_INTERVAL | Integer seconds | 5 | How often the telemetry connector flushes its write-ahead cache to storage. Set to 0 to disable timer-based flushing. |
TWIN_TELEMETRY_BATCH_SIZE | Integer | 10 | Number of metric values to accumulate before flushing to storage. Set to 1 to disable size-based flushing. |
TWIN_TELEMETRY_MAX_CACHE_SIZE | Integer | 1000 | Maximum number of metric values held in the write-ahead cache. When the limit is reached the oldest entries are evicted. Set to 0 for unlimited. |
TWIN_TELEMETRY_METRIC_DEFINITION_CACHE_CAPACITY | Integer | 100 | Maximum number of metric definitions held in the in-memory definition cache for the entity-storage telemetry connector. |
TWIN_TELEMETRY_METRIC_DEFINITION_CACHE_TTI_MS | Integer ms | 3600000 | Time-to-idle in milliseconds for cached metric definitions in the entity-storage telemetry connector. |
TWIN_TELEMETRY_METRICS_COLLECTOR_INTERVAL | Integer seconds | 60 | Polling interval between metrics collection runs. |
TWIN_TELEMETRY_METRICS_PRODUCER_MAX_HISTORY | Integer | 1440 | Maximum number of values retained per metric. |
TWIN_TRUST_IDENTITIES_ALLOW | Comma-separated list | None | Allow list for trust identity verification. |
TWIN_TRUST_IDENTITIES_DENY | Comma-separated list | None | Deny list for trust identity verification. |
TWIN_TRUST_JWT_TTL | Integer seconds | None | Leave unset for non-expiring JWT generation. |
TWIN_TRUST_VERIFICATION_METHOD_ID | Method id string | trust-assertion | Default injected by node defaults. |
Hosting Variables
| Variable | Possible Values | Default | Notes |
|---|---|---|---|
TWIN_AUTH_ADMIN_PROCESSOR_TYPE | entity-storage | None | Authentication admin processor type. |
TWIN_AUTH_PROCESSOR_TYPE | entity-storage | None | Authentication processor type. |
TWIN_AUTH_SIGNING_KEY_ID | Vault key identifier | auth-signing | Key used for auth signing operations. |
TWIN_AUTH_API_KEY_HEADER | Header name string | x-api-key | HTTP header name for the API key on requests. |
TWIN_MIME_TYPE_PROCESSORS | Comma-separated processor types | None | Additional MIME processor registrations. |
TWIN_ROUTE_LOGGING_INCLUDE_BODY | true, false | Uses debug value | Includes body in route logging. |
TWIN_ROUTE_LOGGING_FULL_BASE64 | true, false | false | Includes full base64 payloads in route logging. |
TWIN_ROUTE_LOGGING_OBFUSCATE_PROPERTIES | Comma-separated property names | None | Properties to obfuscate in route logs. |
TWIN_ROUTE_METRICS_EXCLUDE_PATHS | Comma-separated path prefixes | None | URL path prefixes excluded from metrics recording. Useful for suppressing health-check or scrape endpoints. Only applies when telemetry is enabled. |
TWIN_ROUTE_TRACING_EXCLUDE_PATHS | Comma-separated path prefixes | None | URL path prefixes excluded from tracing. Useful for suppressing health-check or scrape endpoints. Only applies when tracing is enabled. |
REST Path Overrides
The URL path for any REST component can be overridden at startup using variables in the form:
TWIN_REST_PATH_<COMPONENT>=<path>
<COMPONENT> is the UPPER_SNAKE_CASE component type name with the Component suffix removed.
| Variable | Example Value | Notes |
|---|---|---|
TWIN_REST_PATH_LOGGING | /my-logs | Overrides the logging component REST path. |
TWIN_REST_PATH_DATASPACE_CONTROL_PLANE | /dsp-ctrl | Overrides the dataspace control plane path. |
TWIN_REST_PATH_DATASPACE_DATA_PLANE | /dsp-data | Overrides the dataspace data plane path. |
TWIN_REST_PATH_TENANT_ADMIN | /my-tenants | Overrides the tenant admin component path. |
The pattern extends to any component that has a default REST path configured. The variable name is derived by taking the component type identifier, removing the Component suffix, converting to UPPER*SNAKE_CASE, and prepending TWIN_REST_PATH*.
Because the set of components is open-ended, these variables are validated as a prefix group. To allow custom TWIN_REST_PATH_* variables when using TWIN_ENV_ALLOW_LIST, include the wildcard entry:
TWIN_ENV_ALLOW_LIST=restPath*
Mutex Timeout Variables
| Variable | Possible Values | Default | Notes |
|---|---|---|---|
TWIN_MUTEX_TIMEOUT_DEFAULT | Integer ms | 5000 | Global default mutex timeout. Used when no component-specific value is set. |
TWIN_AUDITABLE_ITEM_GRAPH_MUTEX_TIMEOUT | Integer ms | None | Mutex timeout for the auditable item graph component. |
TWIN_AUDITABLE_ITEM_STREAM_MUTEX_TIMEOUT | Integer ms | None | Mutex timeout for the auditable item stream component. |
TWIN_FEDERATED_CATALOGUE_MUTEX_TIMEOUT | Integer ms | None | Mutex timeout for the federated catalogue component. |
TWIN_DOCUMENT_MANAGEMENT_MUTEX_TIMEOUT | Integer ms | None | Mutex timeout for the document management component. |
TWIN_LOGGING_MUTEX_TIMEOUT | Integer ms | None | Mutex timeout for the logging component. |
TWIN_ENTITY_STORAGE_MUTEX_TIMEOUT | Integer ms | None | Shared mutex timeout for the memory and file entity storage connectors. |
TWIN_RIGHTS_MANAGEMENT_MUTEX_TIMEOUT | Integer ms | None | Mutex timeout for the rights management component. |
TWIN_TELEMETRY_MUTEX_TIMEOUT | Integer ms | None | Mutex timeout for the telemetry connector. |
TWIN_TRACING_MUTEX_TIMEOUT | Integer ms | None | Mutex timeout for the tracing connector. |
Extension Module Loading Variables
| Variable | Possible Values | Default | Notes |
|---|---|---|---|
TWIN_EXTENSIONS_MAX_SIZE_MB | Integer MB | 10 | Maximum HTTPS extension download size. |
TWIN_EXTENSIONS_CLEAR_CACHE | true, false | false | Clears extension cache on startup. |
TWIN_EXTENSIONS_CACHE_DIRECTORY | Relative or absolute path | .tmp | Root cache directory for extension modules. |
TWIN_EXTENSIONS_CACHE_TTL_HOURS | Integer hours | 24 | HTTPS extension cache TTL. |
TWIN_EXTENSIONS_FORCE_REFRESH | true, false | false | Forces extension cache refresh. |
Provider and Backend Variables
| Variable | Possible Values | Default | Notes |
|---|---|---|---|
TWIN_ENTITY_STORAGE_TABLE_PREFIX | String | None | Prefix for entity-storage tables. |
TWIN_BLOB_STORAGE_PREFIX | String | None | Prefix for blob paths/keys. |
TWIN_BLOB_STORAGE_ENCRYPTION_KEY_ID | Vault key identifier | blob-encryption | Blob encryption key identifier. |
TWIN_VAULT_PREFIX | String | None | Prefix prepended to vault entries. |
TWIN_HASHICORP_VAULT_TOKEN | Token string | None | HashiCorp Vault token. |
TWIN_HASHICORP_VAULT_ENDPOINT | URL | None | HashiCorp Vault endpoint. |
TWIN_AWS_DYNAMODB_AUTH_MODE | credentials, pod | None | DynamoDB auth mode. |
TWIN_AWS_DYNAMODB_ACCESS_KEY_ID | String | None | DynamoDB access key id. |
TWIN_AWS_DYNAMODB_SECRET_ACCESS_KEY | String | None | DynamoDB secret key. |
TWIN_AWS_DYNAMODB_REGION | Region string | None | DynamoDB region. |
TWIN_AWS_DYNAMODB_ENDPOINT | URL | None | DynamoDB endpoint. |
TWIN_AWS_DYNAMODB_CONNECTION_TIMEOUT | Integer ms | None | DynamoDB timeout. |
TWIN_AZURE_COSMOSDB_ENDPOINT | URL | None | Cosmos DB endpoint. |
TWIN_AZURE_COSMOSDB_KEY | String | None | Cosmos DB key. |
TWIN_AZURE_COSMOSDB_DATABASE_ID | String | None | Cosmos DB database id. |
TWIN_AZURE_COSMOSDB_CONTAINER_ID | String | None | Cosmos DB container id. |
TWIN_GCP_FIRESTORE_PROJECT_ID | String | None | Firestore project id. |
TWIN_GCP_FIRESTORE_CREDENTIALS | String or @json: file expansion | None | Firestore credentials. |
TWIN_GCP_FIRESTORE_DATABASE_ID | String | None | Firestore database id. |
TWIN_GCP_FIRESTORE_COLLECTION_NAME | String | None | Firestore collection name. |
TWIN_GCP_FIRESTORE_ENDPOINT | URL | None | Firestore API endpoint. |
TWIN_SCYLLADB_HOSTS | Comma-separated hosts | None | Scylla hosts list. |
TWIN_SCYLLADB_LOCAL_DATA_CENTER | String | None | Scylla local data centre. |
TWIN_SCYLLADB_KEYSPACE | String | None | Scylla keyspace. |
TWIN_SCYLLADB_PORT | Integer | None | Scylla port. |
TWIN_SCYLLADB_POOL_CORE_CONNECTIONS_PER_HOST | Integer | 1 | Scylla pool: connections per local host. |
TWIN_SCYLLADB_POOL_MAX_REQUESTS_PER_CONNECTION | Integer | 1024 | Scylla pool: maximum requests per connection. |
TWIN_MY_SQL_HOST | String | None | MySQL host. |
TWIN_MY_SQL_PORT | Integer | None | MySQL port. |
TWIN_MY_SQL_USER | String | None | MySQL user. |
TWIN_MY_SQL_PASSWORD | String | None | MySQL password. |
TWIN_MY_SQL_DATABASE | String | None | MySQL database. |
TWIN_MY_SQL_POOL_CONNECTION_LIMIT | Integer | 10 | MySQL pool: maximum connections. |
TWIN_MY_SQL_POOL_MAX_IDLE | Integer | 10 | MySQL pool: maximum idle connections. |
TWIN_MY_SQL_POOL_IDLE_TIMEOUT | Integer ms | 60000 | MySQL pool: milliseconds before an idle connection is removed. |
TWIN_MY_SQL_POOL_ENABLE_KEEP_ALIVE | true, false | true | MySQL pool: enable TCP keep-alive. |
TWIN_MY_SQL_POOL_WAIT_FOR_CONNECTIONS | true, false | true | MySQL pool: queue requests when pool is full instead of failing immediately. |
TWIN_MY_SQL_POOL_QUEUE_LIMIT | Integer | 0 | MySQL pool: maximum queued requests. 0 means unlimited. |
TWIN_MONGO_DB_HOST | String | None | MongoDB host. |
TWIN_MONGO_DB_PORT | Integer | None | MongoDB port. |
TWIN_MONGO_DB_USER | String | None | MongoDB user. |
TWIN_MONGO_DB_PASSWORD | String | None | MongoDB password. |
TWIN_MONGO_DB_DATABASE | String | None | MongoDB database. |
TWIN_MONGO_DB_POOL_MAX_POOL_SIZE | Integer | 100 | MongoDB pool: maximum connections. |
TWIN_MONGO_DB_POOL_MIN_POOL_SIZE | Integer | 0 | MongoDB pool: minimum connections to maintain. |
TWIN_MONGO_DB_POOL_MAX_IDLE_TIME | Integer ms | None | MongoDB pool: milliseconds a connection can remain idle before removal. |
TWIN_MONGO_DB_POOL_WAIT_QUEUE_TIMEOUT | Integer ms | None | MongoDB pool: milliseconds to wait for a connection before throwing. |
TWIN_POSTGRE_SQL_HOST | String | None | PostgreSQL host. |
TWIN_POSTGRE_SQL_PORT | Integer | None | PostgreSQL port. |
TWIN_POSTGRE_SQL_USER | String | None | PostgreSQL user. |
TWIN_POSTGRE_SQL_PASSWORD | String | None | PostgreSQL password. |
TWIN_POSTGRE_SQL_DATABASE | String | None | PostgreSQL database. |
TWIN_POSTGRE_SQL_POOL_MAX | Integer | 10 | PostgreSQL pool: maximum connections. |
TWIN_POSTGRE_SQL_POOL_IDLE_TIMEOUT | Integer seconds | None | PostgreSQL pool: seconds a connection can remain idle before being closed. |
TWIN_POSTGRE_SQL_POOL_CONNECT_TIMEOUT | Integer seconds | 30 | PostgreSQL pool: seconds to wait when establishing a connection. |
TWIN_POSTGRE_SQL_POOL_MAX_LIFETIME | Integer seconds | None | PostgreSQL pool: maximum seconds a connection can remain open. |
TWIN_IPFS_API_URL | URL | None | IPFS API URL. |
TWIN_IPFS_BEARER_TOKEN | String | None | IPFS bearer token. |
TWIN_AWS_S3_AUTH_MODE | credentials, pod | credentials | AWS S3 auth mode. |
TWIN_AWS_S3_ACCESS_KEY_ID | String | None | AWS S3 access key id. |
TWIN_AWS_S3_SECRET_ACCESS_KEY | String | None | AWS S3 secret key. |
TWIN_AWS_S3_REGION | Region string | None | AWS S3 region. |
TWIN_AWS_S3_BUCKET_NAME | String | None | AWS S3 bucket name. |
TWIN_AWS_S3_ENDPOINT | URL | None | AWS S3 endpoint. |
TWIN_AZURE_STORAGE_ACCOUNT_NAME | String | None | Azure Storage account name. |
TWIN_AZURE_STORAGE_ACCOUNT_KEY | String | None | Azure Storage account key. |
TWIN_AZURE_STORAGE_CONTAINER_NAME | String | None | Azure Storage container name. |
TWIN_AZURE_STORAGE_ENDPOINT | URL | None | Azure Storage endpoint. |
TWIN_GCP_STORAGE_PROJECT_ID | String | None | GCP Storage project id. |
TWIN_GCP_STORAGE_CREDENTIALS | String or @json: file expansion | None | GCP Storage credentials. |
TWIN_GCP_STORAGE_BUCKET_NAME | String | None | GCP Storage bucket name. |
TWIN_GCP_STORAGE_ENDPOINT | URL | None | GCP Storage endpoint. |
TWIN_AWS_SES_AUTH_MODE | credentials, pod | credentials | AWS SES auth mode. |
TWIN_AWS_SES_ACCESS_KEY_ID | String | None | AWS SES access key id. |
TWIN_AWS_SES_SECRET_ACCESS_KEY | String | None | AWS SES secret key. |
TWIN_AWS_SES_REGION | Region string | None | AWS SES region. |
TWIN_AWS_SES_ENDPOINT | URL | None | AWS SES endpoint. |
TWIN_AWS_MESSAGING_PUSH_NOTIFICATION_APPLICATIONS | JSON string or @json: file expansion | None | Push notification application definitions. |
TWIN_IOTA_NODE_ENDPOINT | URL | None | IOTA node endpoint. |
TWIN_IOTA_FAUCET_ENDPOINT | URL | None | IOTA faucet endpoint. |
TWIN_IOTA_NETWORK | Network name | None | IOTA network identifier. |
TWIN_IOTA_COIN_TYPE | Integer | None | IOTA coin type. |
TWIN_IOTA_EXPLORER_ENDPOINT | URL | None | IOTA explorer endpoint. |
TWIN_IOTA_GAS_STATION_ENDPOINT | URL | None | IOTA gas station endpoint. |
TWIN_IOTA_GAS_STATION_AUTH_TOKEN | String | None | IOTA gas station auth token. |
TWIN_IOTA_GAS_BUDGET | Integer | None | IOTA gas budget, in nanos. |
TWIN_IOTA_GAS_RESERVATION_DURATION | Integer | None | IOTA gas reservation duration, in seconds. |
TWIN_IOTA_IDENTITY_PACKAGE_ID | String | None | Custom deployed package id for the IOTA identity contract. |
TWIN_UNIVERSAL_RESOLVER_ENDPOINT | URL | None | Universal resolver endpoint. |
TWIN_OPEN_TELEMETRY_METER_NAME | String | twin-node | OpenTelemetry meter name. Only used when TWIN_TELEMETRY_CONNECTOR=open-telemetry. |
TWIN_OPEN_TELEMETRY_METER_VERSION | String | 1.0.0 | OpenTelemetry metrics specification version. Only used when TWIN_TELEMETRY_CONNECTOR=open-telemetry. |
TWIN_OPEN_TELEMETRY_READER | prometheus | None | OpenTelemetry metric reader type. Only used when TWIN_TELEMETRY_CONNECTOR=open-telemetry. |
TWIN_OPEN_TELEMETRY_PROMETHEUS_PORT | Integer | 9464 | Port for the Prometheus metrics server. Only used when reader is prometheus. |
TWIN_OPEN_TELEMETRY_LOGGING_LOGGER_NAME | String | twin-logging | Logger name reported in emitted OTLP log records. Only used when TWIN_LOGGING_CONNECTOR=otel. |
TWIN_OPEN_TELEMETRY_LOGGING_LOGGER_VERSION | String | 1.0.0 | Logger version reported in emitted OTLP log records. Only used when TWIN_LOGGING_CONNECTOR=otel. |
TWIN_OPEN_TELEMETRY_LOGGING_PROMETHEUS_ENDPOINT | URL | None | OTLP HTTP endpoint to push log records to, for example http://localhost:4318/v1/logs. Required when TWIN_LOGGING_CONNECTOR=otel. |
TWIN_OPEN_TELEMETRY_LOGGING_PROCESSOR | batch, simple | batch | Log record processor. Use simple for local development; batch for production. Only used when TWIN_LOGGING_CONNECTOR=otel. |
TWIN_OPEN_TELEMETRY_TRACING_TRACER_NAME | String | twin-node | OpenTelemetry tracer name. Only used when TWIN_TRACING_CONNECTOR=open-telemetry. |
TWIN_OPEN_TELEMETRY_TRACING_TRACER_VERSION | String | 1.0.0 | OpenTelemetry tracing specification version. Only used when TWIN_TRACING_CONNECTOR=open-telemetry. |
TWIN_OPEN_TELEMETRY_TRACING_ENDPOINT | URL | None | OTLP HTTP endpoint to push spans to, for example http://localhost:4318/v1/traces. Required when TWIN_TRACING_CONNECTOR=open-telemetry. |
TWIN_OPEN_TELEMETRY_TRACING_PROCESSOR | batch, simple | batch | Span processor. Use simple for local development; batch for production. Only used when TWIN_TRACING_CONNECTOR=open-telemetry. |