Configuration

Overview

The following sections provide a comprehensive reference documentation of the available settings for configuring the io.Manager Server via the configuration object for initializing the @interopio/manager library and via the respective environment variables, depending on your deployment approach.

ℹ️ For full examples on configuring io.Manager and its various features via the Config object for initializing the @interopio/manager library and via environment variables, see the io.Manager Examples repository on GitHub.

Configuration Object

The start() method of the @interopio/manager library accepts a Config object with settings for initializing the io.Manager Server.

⚠️ Note that if you provide initialization settings for the io.Manager Server via the configuration object passed to the start() method, the settings provided via environment variables will be ignored.

The following example demonstrates basic configuration for initializing the @interopio/manager library:

import { start } from "@interopio/manager";

const config: Config = {
    // Name for the io.Manager Server. Used for logging purposes.
    name: "my-server",
    // Port on which the io.Manager Server will listen.
    port: 4242,
    // Base path for the io.Manager REST API.
    base: "api",
    // It's required to provide a valid license key for io.Manager.
    licenseKey: "my-license-key",
    // It's required to provide settings for one of the supported database stores to use.
    store: {
        // Using MongoDB as a database store.
        type: "mongo",
        // MongoDB connection string.
        connection: "mongodb://localhost:27017/my_db"
    },
    // It's required to provide settings for the token used for communicating with
    // the io.Connect platform clients connected to io.Manager.
    token: {
        // Symmetric key for signing a JWT.
        secret: "my-secret"
    },
    // Settings for Basic authentication.
    auth_method: "basic",
    auth_basic: {
        // List of users in the `user-id:password` format. The specified users will be created in the database,
        // will be granted administrative privileges, and will have access to the Admin UI.
        predefinedUsers: ["admin:admin"],
        // Configuring the user session length for the Admin UI.
        sessionLifetime: 7200
    },
    // Session cookies are enabled by default when using Basic authentication,
    // which means that it's required to specify CORS options.
    cors: {
        credentials: true,
        origin: "http://localhost:3000"
    }
};

const server = await start(config);

Top-Level Keys

The following table describes all top-level keys of the Config object for initializing the @interopio/manager library:

Property Type Description
audit object Configuration for the audit service of the io.Manager Server. This service creates audit logs for the various entities and entity-related operations in io.Manager. Accepts an AuditConfig object as a value.
audit_custom object Custom audit service implementation. Accepts an AuditService object as a value.
auth_auth0 object Configuration for Auth0 authentication. Accepts an Auth0Options object as a value. Valid only if the auth_method property is set to "auth0".
auth_basic object Configuration for Basic authentication. Accepts an AuthBasicConfig object as a value. Valid only if the auth_method property is set to "basic".
auth_custom object Custom authentication implementation. Accepts a CustomAuthenticator object as a value. Valid only if the auth_method property is set to "custom".
auth_exclusive_users string[] List of users that will be granted the GLUE42_SERVER_ADMIN role. This role is required to access the io.Manager Admin UI. The users must already exist in the database. Defaults to [].
auth_method "auth0" | "okta" | "none" | "basic" | "custom" Authentication method. Defaults to "none".
auth_none object Configuration for None authentication. Accepts an AuthNoneConfig object as a value. Valid only if the auth_method property is set to "none".
auth_okta object Configuration for Okta authentication. Accepts an OktaConfiguration object as a value. Valid only if the auth_method property is set to "okta".
auth_timeout number Interval in milliseconds to wait for the authentication process request to complete before rejecting it. Defaults to 120000. Available since io.Manager Server 2.0.
base string Base path for the API that will be added to the io.Manager Server origin. If you set this to "api", the server will listen on <origin>/api (e.g., http://localhost:4242/api). Defaults to "".
cors object CORS options. Required when session cookies are enabled. Accepts a CorsOptions object as a value. Available since io.Manager Server 2.0.
expose_stop boolean If true, will expose a GET /<base>/stop endpoint that shuts down the io.Manager Server. Defaults to false.
groups_service object Accepts a custom GroupsService implementation.
healthEndpoints object Configuration for the health check endpoints exposed by the io.Manager Server. Accepts a HealthEndpointsConfig object as a value.
interceptProcessSignals boolean If true, io.Manager will listen for the following signals: SIGINT, SIGTERM, SIGHUP, SIGBREAK, and SIGQUIT. When any of these signals has been received, io.Manager will shut itself down gracefully. Defaults to false. Available since io.Manager Server 2.0.
licenseKey string Required. Valid license key for io.Manager.
monitoring object Monitoring tool to be used. Accepts a NoneMonitoringConfig or a SentryMonitoringConfig object as a value. Defaults to { type: "none" }.
name string Name for the io.Manager Server. Used for logging purposes. Defaults to "local".
openApi object Configuration for the OpenAPI support provided by io.Manager. Accepts an OpenAPIConfig object as a value. Available since io.Manager Server 2.0.
otel object Configuration for the OpenTelemetry support provided by io.Manager. Accepts an OtelConfig object as a value. Available since io.Manager Server 1.7.
port string | number Port to use for the io.Manager Server. If set to a string that can't be converted to a number, it will be treated as a path. Defaults to 4356.
purge object Configuration for database size management. Accepts a PurgeConfig object as a value.
schemas object Schema validation configuration. Accepts a SchemasConfig object as a value.
serverConfig object HTTP/HTTPS protocol configuration for the io.Manager Server. Accepts a WebServerConfig object as a value.
sessions object Configuration for the sessions between the io.Connect platform clients and the io.Manager Server. Accepts a SessionsConfig object as a value. Available since io.Manager Server 2.1.
skipProcessExitOnStop boolean If true, won't call process.exit() on shutdown. Defaults to true.
store object Required. Configuration for the database store to be used by the io.Manager Server. Accepts a MongoStoreConfig, a PostgreSQLStoreConfig, or an MSSQLStoreConfig object as a value.
token object Required. Configuration for the token used for communicating with the io.Connect platform clients connected to io.Manager. Accepts a TokenConfig object as a value.
username_case_sensitive boolean If true, username comparison will be case-sensitive. Defaults to false.

AuditConfig

Configuration for the audit service of the io.Manager Server.

Property Type Description
enabled boolean If true, will enable the default service for generating audit logs used by the io.Manager Server. Defaults to true.
types object Object with settings for enabling or disabling audit log generation per entity type (e.g., { application: true, layout: false }). Audit log generation can be additionally controlled per entity-related operation (e.g., { application: { delete: false } }). Defaults to { session: false, user: false }.

Audit Log Entities & Operations

The types property of the AuditConfig object accepts as a value an object with properties representing the entity types (e.g., application, layout, sessions, and more) for which to control the audit log generation. Each property can be set to a Boolean value or to an object with properties representing the entity-related operations for which to control the audit log generation:

  • To enable or disable audit log generation for all operations related to a specific entity type, use a Boolean value (e.g., { application: true, layout: false }).

  • To control audit log generation per entity-related operation, use an object value (e.g., { application: { delete: false } }).

The types object has the following properties:

Property Type Description
application boolean | object Controls audit log generation for app entities. Defaults to true.
app-prefs boolean | object Controls audit log generation for app preferences entities. Defaults to true.
audit-log boolean | object Controls audit log generation for audit log entities. Defaults to true.
command boolean | object Controls audit log generation for command entities. Defaults to true.
crash boolean | object Controls audit log generation for crash report entities. Defaults to true.
feedback boolean | object Controls audit log generation for feedback report entities. Defaults to true.
glue42config boolean | object Controls audit log generation for platform configuration entities. Defaults to true.
group boolean | object Controls audit log generation for user group entities. Defaults to true.
layout boolean | object Controls audit log generation for Layout entities.
machine boolean | object Controls audit log generation for machine entities. Defaults to true.
session boolean | object Controls audit log generation for session entities. Defaults to false.
user boolean | object Controls audit log generation for user entities. Defaults to false.

Each audit log entity in the types object can be set to an object with the following properties representing the entity-related operations for which to control the audit log generation:

Property Type Description
close boolean If true, will enable audit log generation for close operations.
closeMany boolean If true, will enable audit log generation for bulk close operations.
create boolean If true, will enable audit log generation for create operations.
delete boolean If true, will enable audit log generation for delete operations.
deleteAll boolean If true, will enable audit log generation for delete all operations.
deleteMany boolean If true, will enable audit log generation for bulk delete operations.
import boolean If true, will enable audit log generation for import operations.
open boolean If true, will enable audit log generation for open operations.
setDefaultLayout boolean If true, will enable audit log generation for set default Global Layout operations.
update boolean If true, will enable audit log generation for update operations.

The following table shows the valid operations for each entity:

Entity Operations
application create, delete, deleteAll, import, update
app-prefs create, delete, deleteMany, update
audit-log deleteAll, deleteMany
command create, delete, deleteMany, update
crash create, delete, deleteMany, update
feedback create, delete, deleteMany, update
glue42config create, delete, update
group create, delete, deleteAll
layout create, delete, deleteAll, deleteMany, setDefaultLayout, update
machine deleteMany
session close, closeMany, delete, deleteMany, open
user create, delete, deleteAll, import, update

AuditService

Custom implementation of an audit service to be used by the io.Manager Server.

Property Type Description
add() function Function with the following signature: (builder: AuditBuilder) => Promise<void>. Adds an audit log entry.
clean() function Function with the following signature: (request: CleanAuditLogRequest, audit: AuditBuilder, user: User | undefined) => Promise<void>. Cleans audit log entries based on the provided request.
get() function Function with the following signature: (id: string) => Promise<AuditLog>. Retrieves a single audit log entry by its ID.
getAll() function Function with the following signature: (request?: DataRequest) => Promise<AuditLogDataResult>. Retrieves all audit log entries.

Auth0Options

Configuration for Auth0 authentication.

Property Type Description
audience string URL pointing to the resource that will consume the access token.
issuer string URL pointing to the issuer to be used for validation of access tokens. Unnecessary if issuerBaseURL is provided.
issuerBaseURL string Base URL of the issuer to be used for validation of access tokens. Unnecessary if issuer and jwksUri are provided.
jwksUri string URL pointing to a JSON Web Key Set. Unnecessary if issuerBaseURL is provided.
tokenSigningAlg string Algorithm for signing the access tokens.

⚠️ Note that it's required to provide either only issuerBaseURL or issuer and jwksUri together.

AuthBasicConfig

Configuration for Basic authentication.

Property Type Description
predefinedUsers string[] List of predefined users that will be created and added to the database and will be granted the GLUE42_SERVER_ADMIN role. This role is required to access the io.Manager Admin UI. Accepts an array of strings in the format user-id:password.
sessionLifetime number Interval in seconds at which the session will expire and the user will be logged out of the io.Manager Admin UI. Valid only if useSessionCookie is set to true and the CORS options are configured properly via the cors property. Defaults to 3600. Available since io.Manager Server 2.1.
useSessionCookie boolean If true (default), io.Manager will use a signed JWT stored in a session cookie to manage the Admin UI user sessions. Set to false to disable session cookies. If session cookies are enabled, it's required to specify CORS options via the cors property. Available since io.Manager Server 2.1.

AuthNoneConfig

Configuration for None authentication.

Property Type Description
allowOnlyKnownUsers boolean If true, only the users that are already in the io.Manager database will be allowed to connect. If false, all users will be allowed to connect and new users will be automatically added to the database. Defaults to false.

HealthEndpointsConfig

Configuration for the health check endpoints exposed by the io.Manager Server.

Property Type Description
customDatabaseHealthCheckRoute string If present, an additional database health check endpoint will be available on the specified route. The health check behaves exactly the same as when invoking the GET /db-connectivity endpoint. Available since io.Manager Server 1.8.
customHealthCheckRoute string If present, an additional health check endpoint will be available on the specified route. The health check behaves exactly the same as when invoking the GET / endpoint. Available since io.Manager Server 1.8.
databaseHealthCheckStatus string The string that the database connectivity health check will return as a successful response. Defaults to "OK". Available since io.Manager Server 1.8.1.
dbConnectivityTimeout number Interval in milliseconds to wait for a response from the database when performing a database connectivity health check. Defaults to 2000.
healthCheckStatus string String that will be passed as a value to the "status" field in the health check response. Defaults to "OK". Available since io.Manager Server 1.8.1.

⚠️ Note that when providing custom health check routes via the customHealthCheckRoute and the customDatabaseHealthCheckRoute properties, the base API path specified in the base property of the configuration object for initializing the io.Manager Server won't be taken into account.

MetricDefinition

The MetricDefinition type is a union of different metric types. All metric types share common base properties and each available metric type may have additional specific properties.

Available Metric Types

The io.Manager Server exports the following metrics:

Metric Instrument Type Description
"http.server.active_requests" UpDownCounter Number of active HTTP server requests.
"http.server.request.body.size" Histogram Size of HTTP server request bodies.
"http.server.request.duration" Histogram Duration of HTTP server requests.
"http.server.response.body.size" Histogram Size of HTTP server response bodies.
"io_manager.active_sessions" Gauge Total number of sessions that have made requests within a past interval. This interval is defined by the inactiveSessionTimeout metric property, it's measured in seconds and is configurable.

Base Properties

All metric types have the following properties:

Property Type Description
description string Description for the metric.
enabled boolean If true, will enable publishing the metric. Defaults to the value of the defaultMetricsEnabled property of the OtelMetricsConfig object.
name string Name for the metric. Defaults to the value of type.
type string Required. The metric type. Must be set to one of the available metric types.
unit string Unit for the metric values.

Histogram Metrics

Metrics of instrument type Histogram have the following additional properties:

Property Type Description
buckets number[] Histogram bucket boundaries.

Active Sessions Metric

The "io_manager.active_sessions" metric has the following additional properties:

Property Type Description
inactiveSessionTimeout number Interval in seconds after which a session is considered inactive. Must be set to the same value as the fetchInterval property of the server object in the platform configuration (io.Connect Desktop or io.Connect Browser) for io.Manager. Defaults to 30.
publishAtStartupEnabled boolean If true (default), the io.Manager Server will publish the metric at startup.
publishInterval number Interval in milliseconds at which to publish the metric. Defaults to 60000.

MongoStoreConfig

Configuration for using a MongoDB database as a data store for the io.Manager Server.

Property Type Description
connection string Required. MongoDB connection URL.
type string Required. Type of the data store. Must be set to "mongo" when using a MongoDB database.

MSSQLStoreConfig

Configuration for using a Microsoft SQL Server database as a data store for the io.Manager Server.

Property Type Description
createDatabaseAndTables boolean If true (default), will automatically create and initialize the database and the tables necessary for io.Manager. Set to false if you want to do this separately. For more details on database schema creation and migration, see the Database Schema section.
dbName string Database name for the Microsoft SQL Server connection URL. Defaults to "test".
domain string Windows domain for login.
driver string Microsoft SQL Server driver name as used in the Knex.js library.
options object Additional Microsoft SQL Server connection options.
password string Password for authentication.
poolConfig object Knex.js pool configuration. For more details, see the official Knex.js documentation.
port number Port for the Microsoft SQL Server connection URL.
server string Required. Host for the Microsoft SQL Server connection URL.
type string Required. Type of the data store. Must be set to "mssql" when using a Microsoft SQL Server database.
userName string Username for authentication.

NoneMonitoringConfig

Configuration for when a monitoring tool isn't used in the io.Manager Server.

Property Type Description
type string Required. Monitoring tool type. Must be set to "none" when a monitoring tool isn't used.

OktaConfiguration

Configuration for Okta authentication.

Property Type Description
audiences string[] Required. List of URLs pointing to the resources that will consume the access token.
groupsClaimsName string The name of the JWT claim from which to retrieve the Okta user groups. Defaults to "groups".
verifierOptions object Required. Object with options passed to the constructor of the OktaJwtVerifier class exposed by the @okta/jwt-verifier library. The only required property is issuer.

OpenAPIConfig

Configuration for the OpenAPI support provided by io.Manager.

Property Type Description
customSecurityScheme object SecuritySchemeObject object. If present and if a custom authenticator is used, will be set as the security scheme. This allows making requests via the Swagger UI when custom authentication is used. For more details, see the OpenAPI specification.
enableSwaggerUI boolean If true (default), io.Manager will serve the Swagger UI.
processOpenAPIObject function Function with the following signature: (doc: OpenAPIObject) => OpenAPIObject. Providing this function enables you to gain full control over the OpenAPI document described by the OpenAPIObject object.
swaggerCustomOptions object Partial<SwaggerCustomOptions> object. Custom options for the Swagger UI. This will be merged into an object that will be passed as an argument to the setup() method of the SwaggerModule instance.
swaggerUIRoute string Route on which io.Manager will serve the Swagger UI. Defaults to "swagger".

OtelConfig

Configuration for the OpenTelemetry support provided by io.Manager.

Property Type Description
diagnosticLoggerLevel enum DiagLogLevel enumeration specifying the logging level for the OpenTelemetry diagnostic logger. This is only used to diagnose issues with the OpenTelemetry setup or SDK. Defaults to DiagLogLevel.WARN.
enabled boolean If true, will enable publishing OpenTelemetry data. Defaults to false.
logs object Settings for publishing OpenTelemetry logs. Accepts an OtelLoggingConfig object as a value.
metrics object Settings for publishing OpenTelemetry metrics. Accepts an OtelMetricsConfig object as a value.
resource object Required. OpenTelemetry resource configuration. Accepts an OtelResourceConfig object as a value.
traces object Settings for publishing OpenTelemetry traces. Accepts an OtelTracingConfig object as a value.

OtelLoggingConfig

Settings for publishing OpenTelemetry logs.

Property Type Description
customExporter object LogRecordExporter instance of a custom log exporter to be used instead of the default log exporter. Ignored when a custom log processor is used.
customProcessor object LogRecordProcessor instance of a custom log processor to be used instead of the default log processor.
enabled boolean If true, will enable publishing OpenTelemetry logs. Defaults to false.
maxLevel "ALL" | "MARK" | "TRACE" | "DEBUG" | "INFO" | "WARN" | "ERROR" | "FATAL" | "OFF" The maximum event level to emit via the OpenTelemetry SDK. Defaults to "FATAL".
minLevel "ALL" | "MARK" | "TRACE" | "DEBUG" | "INFO" | "WARN" | "ERROR" | "FATAL" | "OFF" The minimum event level to emit via the OpenTelemetry SDK. Defaults to "INFO".
publishInterval number Interval in milliseconds between two consecutive log exports. Passed to the BatchLogRecordProcessor constructor. This is the default log processor used by the io.Manager Server. Ignored when a custom log processor is used. Defaults to 5000.
url string URL pointing to an OpenTelemetry Collector where the generated logs will be sent via HTTP. Passed to the OTLPLogExporter constructor. This is the default log exporter used by the io.Manager Server. Required if using the default log exporter and log processor. Ignored when either a custom log exporter or a custom log processor is used.

OtelMetricsConfig

Settings for publishing OpenTelemetry metrics.

Property Type Description
customExporter object PushMetricExporter instance of a custom metrics exporter to be used instead of the default metrics exporter. Ignored when a custom metrics reader is used.
customReader object MetricReader instance of a custom metrics reader to be used instead of the default metrics reader.
defaultMetricsEnabled boolean If true (default), will enable publishing of all available metrics.
enabled boolean If true, will enable publishing OpenTelemetry metrics. Defaults to false.
metrics object[] List of metric definition objects with configuration for the available metrics.
publishInterval number Interval in milliseconds at which the metrics reader will collect metrics. Passed to the PeriodicExportingMetricReader constructor. This is the default metrics reader used by the io.Manager Server. Ignored when a custom metrics reader is used. Defaults to 5000.
url string URL pointing to an OpenTelemetry Collector where the generated metrics will be sent via HTTP. Passed to the OTLPMetricExporter constructor. This is the default metrics exporter used by the io.Manager Server. Required if using the default metrics exporter and metrics reader. Ignored when either a custom metrics exporter or a custom metrics reader is used.

OtelResourceConfig

OpenTelemetry resource configuration.

Property Type Description
customAttributes object An Attributes object representing a set of custom attributes that will be applied to the resource.
deploymentEnvironment string Value for the deployment.environment.name resource attribute. Name of the deployment environment.
serviceInstanceID string Value for the service.instance.id resource attribute. Must be unique for each service.namespace and service.name pair. The instance ID helps to distinguish instances of the same service that exist at the same time (e.g., instances of a horizontally scaled service).
serviceName string Required. Value for the service.name resource attribute. Logical name of the service. Must be the same for all instances of horizontally scaled services.
serviceNamespace string Value for the service.namespace resource attribute. Namespace for the service.name attribute. This should be a value that will help distinguish a group of services semantically from other groups of services - e.g., the name of the team that owns the group of services. The value of each service.name attribute within the same namespace must be unique. If a service.namespace attribute isn't specified for the resource, then the service.name attribute must be unique among all services without an explicitly defined namespace (an unspecified namespace is simply one more valid namespace). A zero-length string value for a namespace equals an unspecified namespace.

OtelTracingConfig

Settings for publishing OpenTelemetry traces.

Property Type Description
customExporter object SpanExporter instance of a custom trace exporter to be used instead of the default trace exporter. Ignored when a custom trace span processor is used.
customContextManager object ContextManager instance of a custom context manager. Available since io.Manager Server 2.0.
customProcessor object SpanProcessor instance of a custom trace span processor to be used instead of the default span processor.
customPropagator object TextMapPropagator instance of a custom context propagator. Available since io.Manager Server 2.0.
customSampler object Sampler instance of a custom trace sampler to be used instead of the default trace sampler. When using a custom trace sampler, the settings specified in the sampling and default properties will be ignored.
default object Default trace settings to be applied to all traces not matched by any of the rules specified in the sampling array.
enabled boolean If true, will enable publishing OpenTelemetry traces. Defaults to false.
publishInterval number Interval in milliseconds between two consecutive trace exports. Passed to the BatchSpanProcessor constructor. This is the default span processor used by the io.Manager Server. Ignored when a custom trace span processor is used. Defaults to 5000.
sampling object[] List of objects each describing rules for matching trace spans. Each object also specifies a rate to be used for sampling the matched trace spans. Ignored when a custom trace sampler is used.
url string URL pointing to an OpenTelemetry Collector where the generated traces will be sent via HTTP. Passed to the OTLPTraceExporter constructor. This is the default trace exporter used by the io.Manager Server. Required if using the default trace exporter and trace span processor. Ignored when either a custom trace exporter or a custom trace span processor is used.

The default object has the following properties:

Property Type Description
sample number Specifies the rate to be used by the default trace sampler for sampling all trace spans that don't match the rules specified in the sampling array. Accepts as a value a number greater than 0 and less than or equal to 1 denoting the probability percentage for sampling traces (e.g., a value of 0.15 means that all trace spans not matched by any rules will have a 15% probability of being sampled). Ignored when a custom trace sampler is used. Defaults to 1.

Each object in the sampling array has the following properties:

Property Type Description
attributes object Collection of type { [key: string]: string | number | boolean } containing attribute names and values to be used for matching trace spans. If a string value starts with #, it will be treated as a case-insensitive regular expression.
name string String value for matching one or more spans by name. If the string value starts with #, it will be treated as a case-insensitive regular expression.
sample number Specifies the rate to be used by the default trace sampler for sampling the matched trace spans. Accepts as a value a number greater than 0 and less than or equal to 1 denoting the probability percentage for sampling a trace (e.g., a value of 0.15 means that all trace spans matched by any of the rules will have a 15% probability of being sampled). Ignored when a custom trace sampler is used.

PostgreSQLHostConfig

Configuration for connecting to PostgreSQL hosts when using a PostgreSQL database.

Property Type Description
connection string Required. PostgreSQL connection URL.
dbName string Database name for the PostgreSQL connection URL. Defaults to "test".
failoverTimeout number Interval in milliseconds to wait for a response from the PostgreSQL host before proceeding to the next one. Defaults to 2000.
isReadOnly boolean If true, io.Manager won't attempt to execute write operations on this host. Defaults to false.
native boolean If true, will use the pg-native implementation. Defaults to false.
⚠️ Note that pg-native isn't a dependency of the @interopio/manager package and must be installed separately.
poolConfig object Knex.js pool configuration. For more details, see the official Knex.js documentation.
schemaName string PostgreSQL schema name. Defaults to "public".

PostgreSQLStoreConfig

Configuration for using a PostgreSQL database as a data store for the io.Manager Server.

Property Type Description
connection string Required. PostgreSQL connection URL.
⚠️ Note that this property is required only if the hosts property isn't populated.
createDatabaseAndTables boolean If true (default), will automatically create and initialize the database and the tables necessary for io.Manager. Set to false if you want to do this separately. For more details on database schema creation and migration, see the Database Schema section.
dbName string Database name for the PostgreSQL connection URL. Defaults to "test".
hosts object[] List of PostgreSQL hosts to which to connect. Hosts will be tried in the order they are provided.
⚠️ Note that if this property is populated, all other properties, except type, will be ignored.
native boolean If true, will use the pg-native implementation. Defaults to false.
⚠️ Note that pg-native isn't a dependency of the @interopio/manager package and must be installed separately.
poolConfig object Knex.js pool configuration. For more details, see the official Knex.js documentation.
schemaName string PostgreSQL schema name. Defaults to "public".
type "postgresql" Required. Type of the data store. Must be set to "postgresql" when using a PostgreSQL database.

PurgeConfig

Configuration for the database size management.

Property Type Description
enabled boolean If true (default), will enable data purging.
purgeAtStartupEnabled boolean If true (default), the data purging operation will be performed on startup of the io.Manager Server. Available since io.Manager Server 1.7.
purgeAuditLogsAfterDays number Number of days after which an audit log becomes eligible for purging. Set to -1 to disable purging of audit logs. Defaults to 90.
purgeCommandsAfterDays number Number of days after which an executed command and the respective command result become eligible for purging. Set to -1 to disable purging of commands and command results. Defaults to 90. Available since io.Manager Server 2.0.
purgeCrashesAfterDays number Number of days after which a crash report becomes eligible for purging. Set to -1 to disable purging of crash reports. Defaults to 90.
purgeFeedbackReportsAfterDays number Number of days after which a feedback report becomes eligible for purging. Set to -1 to disable purging of feedback reports. Defaults to 90.
purgeInactiveSessionsAfterDays number Number of days of inactivity after which a session becomes eligible for purging. All machine entries that aren't referenced by any sessions will also be purged. Set to -1 to disable purging of sessions and machine information. Defaults to 90.
scheduledTaskInterval number Interval in milliseconds at which to run the periodic data purging operation. Defaults to 86400000 (1 day). Available since io.Manager Server 2.0.

SchemasConfig

Schema validation configuration.

Property Type Description
path string Custom path to a schema definition. If provided, will be used as a base path for schema definition lookup. Defaults to "./schemas" (if such directory exists).

SentryMonitoringConfig

Configuration for using Sentry as a monitoring tool in the io.Manager Server.

Property Type Description
sentryClient object Accepts a SentryClient object as a value. Use to provide an already initialized Sentry client. Useful if you want to initialize Sentry manually before starting io.Manager. For more details, see the Sentry for Node.js guide in the official Sentry documentation. Available since io.Manager Server 2.0.
sentryOptions object Accepts a SentryOptions object as a value. Passed to the Sentry.init() method. Ignored when a Sentry client is provided via the sentryClient property. For more details, see the Configuration Options section in the official Sentry documentation. Available since io.Manager Server 2.0.
type string Required. Monitoring tool type. Must be set to "sentry" when using Sentry as a monitoring tool.

⚠️ Note that you can provide either sentryClient or sentryOptions, but not both.

SessionsConfig

Configuration for the sessions between the io.Connect platform clients and the io.Manager Server.

Property Type Description
inactiveSessionTimeoutInSeconds number Interval in seconds after which an io.Connect platform client session is considered inactive. Sessions are considered active if the connected platform has fetched data within the specified timeout. Must be set to the same value as the "fetchInterval" property of the "server" object in the io.Connect Desktop platform configuration, or the fetchInterval property of the manager object in the io.Connect Browser platform configuration respectively. Defaults to 30.

TokenConfig

Configuration for the token used for communicating with the io.Connect platform clients connected to io.Manager.

Property Type Description
expiresInSeconds number JWT expiry time in seconds. Defaults to 2592000 (30 days).
secret string Required. A symmetric key for signing a JWT. The JWT represents an ongoing session with an io.Connect platform client.

WebServerConfig

HTTP/HTTPS protocol configuration for the io.Manager Server.

Property Type Description
options object Server options passed to the Node.js HTTP/HTTPS server. Accepts an HttpServerOptions object (server options from the Node.js http module) or an HttpsServerOptions object (server options from the Node.js https module) as a value depending on the value of the secure property.
secure boolean Required. If true, the server will use HTTPS protocol. If false, the server will use the HTTP protocol.

Environment Variables

The io.Manager Server can be configured via environment variables. Environment variables are taken into account only if you don't pass a configuration object to the start() method of the @interopio/manager library. The io.Manager Server will attempt to read environment variables from .env and .env.local files if such exist in the current working directory. The settings specified in a .env.local file will override the settings in a .env file.

⚠️ Note that using environment variables is the only supported option for configuring the io.Manager Server when using Docker images to deploy io.Manager (e.g., when using the basic scenario via the template repository approach).

The following example demonstrates basic configuration for the io.Manager Server via environment variables:

# Name for the io.Manager Server. Used for logging purposes.
API_NAME=my-server
# Port on which the io.Manager Server will listen.
API_PORT=4242
# Base path for the io.Manager REST API.
API_BASE=api

# It's required to provide a valid license key for io.Manager.
API_LICENSE_KEY=my-license-key

# It's required to provide settings for one of the supported database stores to use.
API_STORE_TYPE=mongo
API_STORE_MONGO=mongodb://localhost:27017/my_db

# It's required to provide settings for the token used for communication with the platform clients.
# Symmetric key for signing a JWT.
API_TOKEN_SECRET=my-secret

# Settings for Basic authentication.
API_AUTH_METHOD=basic
# List of users in the `user-id:password` format. The specified users will be created in the database,
# will be granted administrative privileges, and will have access to the Admin UI.
API_AUTH_METHOD_BASIC_USERS=["admin:admin"]

# Configuring the user session length for the Admin UI.
API_AUTH_METHOD_BASIC_SESSION_LIFETIME=7200
# Session cookies are enabled by default when using Basic authentication,
# so it's required to specify CORS options.
API_CORS_OPTIONS={"credentials": true, "origin": "http://localhost:3000"}

Primary Configuration

Environment variables for the primary configuration of the io.Manager Server.

Environment Variable Description
API_APP_ACCESS_LOG_FILE Path to the access log file. Defaults to logs/access.log.
API_APP_LOG_FILE Path to the app log file. Defaults to logs/application.log.
API_BASE Base path for the API that will be added to the io.Manager Server origin. If you set this to api, the server will listen on <origin>/api (e.g., http://localhost:4242/api). Defaults to "".
API_CORS_OPTIONS CORS options. Required when session cookies are enabled via the API_AUTH_METHOD_BASIC_USE_SESSION_COOKIE environment variable. Available since io.Manager Server 2.0.
API_EXPOSE_STOP If true, will expose a GET /<base>/stop endpoint that shuts down the io.Manager Server. Defaults to false.
API_INTERCEPT_PROCESS_SIGNALS If true, io.Manager will listen for the following signals: SIGINT, SIGTERM, SIGHUP, SIGBREAK, and SIGQUIT. When any of these signals has been received, io.Manager will shut itself down gracefully. Defaults to false. Available since io.Manager Server 2.0.
API_LICENSE_KEY Required. Valid license key for io.Manager.
API_LOG_LEVEL Logging level. Defaults to info. Available since io.Manager Server 2.0.
API_NAME Name for the io.Manager Server. Used for logging purposes. Defaults to local.
API_PORT Port to use for the io.Manager Server. If set to a string that can't be converted to a number, it will be treated as a path. Defaults to 4356.
API_SCHEMAS_PATH Custom path to a schema definition. If provided, will be used as a base path for schema definition lookup. Defaults to ./schemas.
API_SKIP_PROCESS_EXIT_ON_STOP If true, won't call process.exit() on shutdown. Defaults to true.
API_TOKEN_EXPIRES_IN JWT expiry time in seconds. Defaults to 2592000 (30 days).
API_TOKEN_SECRET Required. A symmetric key for signing a JWT. The JWT represents an ongoing session with an io.Connect platform client.

Authentication

Environment variables for configuring the authentication mechanism to be used by the io.Manager Server.

The following environment variables are used for all authentication mechanisms:

Environment Variable Description
API_AUTH_EXCLUSIVE_USERS List of users that will be granted the GLUE42_SERVER_ADMIN role. This role is required to access the io.Manager Admin UI. The users must already exist in the database.
API_AUTH_METHOD Type of the authentication mechanism. Set this to none, basic, auth0, or okta to use one of the supported authentication mechanisms. Defaults to none.
API_AUTH_TIMEOUT Interval in milliseconds to wait for the authentication process request to complete before rejecting it. Defaults to 120000. Available since io.Manager Server 2.0.
API_USERNAME_CASE_SENSITIVE If true, username comparison will be case-sensitive. Defaults to false.

None

Environment variables for configuring None authentication.

Environment Variable Description
API_AUTH_NONE_ALLOW_ONLY_KNOWN_USERS If true, only the users that are already in the io.Manager database will be allowed to connect. If false, all users will be allowed to connect and new users will be automatically added to the database. Defaults to false.

Basic

Environment variables for configuring Basic authentication.

Environment Variable Description
API_AUTH_METHOD_BASIC_SESSION_LIFETIME Interval in seconds at which the session will expire and the user will be logged out of the io.Manager Admin UI. Valid only if API_AUTH_METHOD_BASIC_USE_SESSION_COOKIE is set to true and the CORS options are configured properly via the API_CORS_OPTIONS environment variable. Defaults to 3600. Available since io.Manager Server 2.1.
API_AUTH_METHOD_BASIC_USE_SESSION_COOKIE If true (default), io.Manager will use a signed JWT stored in a session cookie to manage the Admin UI user sessions. Set to false to disable session cookies. If session cookies are enabled, it's required to specify CORS options via the API_CORS_OPTIONS environment variable. Available since io.Manager Server 2.1.
API_AUTH_METHOD_BASIC_USERS List of predefined users that will be created in the database and will be granted the GLUE42_SERVER_ADMIN role. This role is required to access the io.Manager Admin UI. Accepts an array of strings in the format user-id:password.

Auth0

Environment variables for configuring Auth0 authentication.

Environment Variable Description
API_AUTH_AUTH0_AUDIENCE URL pointing to the resource that will consume the access token.
API_AUTH_AUTH0_ISSUER URL pointing to the issuer to be used for validation of access tokens. Unnecessary if API_AUTH_AUTH0_ISSUER_BASE_URL is provided.
API_AUTH_AUTH0_ISSUER_BASE_URL Base URL of the issuer to be used for validation of access tokens. Unnecessary if API_AUTH_AUTH0_ISSUER and API_AUTH_AUTH0_JWKSURI are provided. Available since io.Manager Server 1.7.
API_AUTH_AUTH0_JWKSURI URL pointing to a JSON Web Key Set. Unnecessary if API_AUTH_AUTH0_ISSUER_BASE_URL is provided.

⚠️ Note that it's required to provide either API_AUTH_AUTH0_ISSUER_BASE_URL or API_AUTH_AUTH0_ISSUER and API_AUTH_AUTH0_JWKSURI together.

Okta

Environment variables for configuring Okta authentication.

Environment Variable Description
API_AUTH_OKTA_AUDIENCES Required. Comma-delimited string with URLs pointing to the resources that will consume the access token.
API_AUTH_OKTA_CLIENT_ID Okta client ID.
API_AUTH_OKTA_GROUPS_CLAIMS_NAME The name of the JWT claim from which to retrieve the Okta user groups. Defaults to groups.
API_AUTH_OKTA_ISSUER Required. URL pointing to the issuer to be used for validation of access tokens.
API_AUTH_OKTA_JWKS_URI URL pointing to a JSON Web Key Set.

Databases

Environment variables for configuring the database store to be used by the io.Manager Server.

The following environment variables are used for all database store types:

Environment Variable Description
API_STORE_TYPE Required. Type of the database. Set to mongo, postgresql, or mssql to use one of the supported databases.

MongoDB

Environment variables for configuring a MongoDB database as a data store for the io.Manager Server.

The following environment variables are available when API_STORE_TYPE is set to mongo:

Environment Variable Description
API_STORE_MONGO Required. MongoDB connection URL.

PostgreSQL

Environment variables for configuring a PostgreSQL database as a data store for the io.Manager Server.

The following environment variables are available when API_STORE_TYPE is set to postgresql:

Environment Variable Description
API_STORE_POSTGRESQL Required. PostgreSQL connection URL.
API_STORE_POSTGRESQL_CREATE_DB If true (default), will automatically create and initialize the database and the tables necessary for io.Manager. Set to false if you want to do this separately. For more details on database schema creation and migration, see the Databases > PostgreSQL > Database Schema section.
API_STORE_POSTGRESQL_DB_NAME Required. Database name for the PostgreSQL connection URL.
API_STORE_POSTGRESQL_NATIVE_PG_DRIVER If true, will use the pg-native implementation. Defaults to false.
⚠️ Note that pg-native isn't a dependency of the @interopio/manager package and must be installed separately.
API_STORE_POSTGRESQL_SCHEMA_NAME PostgreSQL schema name. Defaults to public.

Microsoft SQL Server

Environment variables for configuring a Microsoft SQL Server database as a data store for the io.Manager Server.

The following environment variables are available when API_STORE_TYPE is set to mssql:

Environment Variable Description
API_STORE_MSSQL_CREATE_DB If true (default), will automatically create and initialize the database and the tables necessary for io.Manager. Set to false if you want to do this separately. For more details on database schema creation and migration, see the Databases > Microsoft SQL Server > Database Schema section.
API_STORE_MSSQL_DB_NAME Required. Database name for the Microsoft SQL Server connection URL.
API_STORE_MSSQL_DOMAIN Windows domain for login.
API_STORE_MSSQL_PASSWORD Required. Password for authentication.
API_STORE_MSSQL_PORT Port for the Microsoft SQL Server connection URL.
API_STORE_MSSQL_SERVER Host for the Microsoft SQL Server connection URL.
API_STORE_MSSQL_USERNAME Required. Username for authentication.

Data Purge

Environment variables for configuring the database size management.

Environment Variable Description
API_PURGE_AT_STARTUP_ENABLED If true (default), the data purging operation will be performed on startup of the io.Manager Server. Available since io.Manager Server 1.7.
API_PURGE_AUDIT_LOGS_AFTER_DAYS Number of days after which an audit log becomes eligible for purging. Set to -1 to disable purging of audit logs. Defaults to 90.
API_PURGE_COMMANDS_AFTER_DAYS Number of days after which an executed command and the respective command result become eligible for purging. Set to -1 to disable purging of commands and command results. Defaults to 90. Available since io.Manager Server 2.0.
API_PURGE_CRASH_REPORTS_AFTER_DAYS Number of days after which a crash report becomes eligible for purging. Set to -1 to disable purging of crash reports. Defaults to 90.
API_PURGE_ENABLED If true (default), will enable data purging.
API_PURGE_FEEDBACK_REPORTS_AFTER_DAYS Number of days after which a feedback report becomes eligible for purging. Set to -1 to disable purging of feedback reports. Defaults to 90.
API_PURGE_INACTIVE_SESSIONS_AFTER_DAYS Number of days of inactivity after which a session becomes eligible for purging. All machine entries that aren't referenced by any sessions will also be purged. Set to -1 to disable purging of sessions and machine information. Defaults to 90.
API_PURGE_SCHEDULED_TASK_INTERVAL Interval in milliseconds at which to run the periodic data purging operation. Defaults to 86400000 (1 day). Available since io.Manager Server 2.0.

Health Endpoints

Environment variables for configuring the health check endpoints exposed by the io.Manager Server.

Environment Variable Description
API_HEALTH_ENDPOINTS_CUSTOM_DB_CONNECTIVITY_HEALTHCHECK_ROUTE If present, an additional database health check endpoint will be available on the specified route. The health check behaves exactly the same as when invoking the GET /db-connectivity endpoint. Available since io.Manager Server 1.8.
API_HEALTH_ENDPOINTS_CUSTOM_DB_CONNECTIVITY_STATUS The string that the database connectivity health check will return as a successful response. Defaults to OK. Available since io.Manager Server 1.8.1.
API_HEALTH_ENDPOINTS_CUSTOM_HEALTHCHECK_ROUTE If present, an additional health check endpoint will be available on the specified route. The health check behaves exactly the same as when invoking the GET / endpoint. Available since io.Manager Server 1.8.
API_HEALTH_ENDPOINTS_CUSTOM_HEALTHCHECK_STATUS String that will be passed as a value to the "status" field in the health check response. Defaults to OK. Available since io.Manager Server 1.8.1.
API_HEALTH_ENDPOINTS_DB_CONNECTIVITY_TIMEOUT Interval in milliseconds to wait for a response from the database when performing a database connectivity health check. Defaults to 2000.

⚠️ Note that when providing custom health check routes via the API_HEALTH_ENDPOINTS_CUSTOM_HEALTHCHECK_ROUTE and the API_HEALTH_ENDPOINTS_CUSTOM_DB_CONNECTIVITY_HEALTHCHECK_ROUTE environment variables, the base API path specified in the API_BASE environment variable won't be taken into account.

Monitoring

Environment variables for configuring the monitoring tool to be used by the io.Manager Server.

Environment Variable Description
API_MONITORING Monitoring tool to be used. Use sentry to enable Sentry monitoring. Defaults to none.
API_MONITORING_SENTRY_DSN Sentry DSN connection string. Required when using Sentry monitoring. Available since io.Manager Server 1.7.

OpenAPI / Swagger UI

Available since io.Manager Server 2.0.

Environment variables for configuring the OpenAPI support provided by io.Manager.

Environment Variable Description
API_OPEN_API_ENABLE_SWAGGER_UI If true (default), io.Manager will serve the Swagger UI.
API_OPEN_API_SWAGGER_UI_ROUTE Route on which io.Manager will serve the Swagger UI. Defaults to swagger.

OpenTelemetry

Available since io.Manager Server 1.7.

Environment variables for configuring the OpenTelemetry support provided by io.Manager.

The following environment variables are available for configuring the general OpenTelemetry settings:

Environment Variable Description
API_OTEL_DIAGNOSTIC_LOGGER_LEVEL Logging level for the OpenTelemetry diagnostic logger. Defaults to WARN.
API_OTEL_ENABLED If true, will enable publishing OpenTelemetry data. Defaults to false.
API_OTEL_RESOURCE_DEPLOYMENT_ENVIRONMENT Value for the deployment.environment.name resource attribute. Name of the deployment environment.
API_OTEL_RESOURCE_INSTANCE_ID Value for the service.instance.id resource attribute. Must be unique for each service.namespace and service.name pair. The instance ID helps to distinguish instances of the same service that exist at the same time (e.g., instances of a horizontally scaled service).
API_OTEL_RESOURCE_SERVICE_NAME Value for the service.name resource attribute. Logical name of the service. Must be the same for all instances of horizontally scaled services. Required if API_OTEL_ENABLED is set to true.
API_OTEL_RESOURCE_SERVICE_NAMESPACE Value for the service.namespace resource attribute. Namespace for the service.name attribute. This should be a value that will help distinguish a group of services semantically from other groups of services - e.g., the name of the team that owns the group of services. The value of each service.name attribute within the same namespace must be unique. If a service.namespace attribute isn't specified for the resource, then the service.name attribute must be unique among all services without an explicitly defined namespace (an unspecified namespace is simply one more valid namespace). A zero-length string value for a namespace equals an unspecified namespace.

Metrics

Environment variables for publishing OpenTelemetry metrics.

Environment Variable Description
API_OTEL_METRICS_DEFAULT_METRICS_ENABLED If true (default), will enable publishing of all available metrics.
API_OTEL_METRICS_ENABLED If true, will enable publishing OpenTelemetry metrics. Defaults to false.
API_OTEL_METRICS_PUBLISH_INTERVAL Interval in milliseconds at which the metrics reader will collect metrics. Passed to the PeriodicExportingMetricReader constructor. This is the default metrics reader used by the io.Manager Server. Ignored when a custom metrics reader is used. Defaults to 5000.
API_OTEL_METRICS_URL URL pointing to an OpenTelemetry Collector where the generated metrics will be sent via HTTP. Passed to the OTLPMetricExporter constructor. This is the default metrics exporter used by the io.Manager Server. Required if using the default metrics exporter and metrics reader. Ignored when either a custom metrics exporter or a custom metrics reader is used.

Metric Definition

Environment variables for configuring the available metrics published by io.Manager.

The following environment variables are available for configuring the "http.server.active_requests" metric:

Environment Variable Description
API_OTEL_METRICS_DEFINITIONS_HTTP_ACTIVE_REQUESTS_DESCRIPTION Description for the metric. Defaults to "Number of active HTTP server requests.".
API_OTEL_METRICS_DEFINITIONS_HTTP_ACTIVE_REQUESTS_ENABLED If true, will enable publishing the metric. Defaults to the value of the API_OTEL_METRICS_DEFAULT_METRICS_ENABLED environment variable.
API_OTEL_METRICS_DEFINITIONS_HTTP_ACTIVE_REQUESTS_NAME Name for the metric. May be used in visualization tools. Defaults to http.server.active_requests.
API_OTEL_METRICS_DEFINITIONS_HTTP_ACTIVE_REQUESTS_UNIT Unit for the metric values. Defaults to {request}.

The following environment variables are available for configuring the "http.server.request.body.size" metric:

Environment Variable Description
API_OTEL_METRICS_DEFINITIONS_HTTP_REQUEST_BODY_SIZE_BUCKETS Histogram bucket boundaries. Defaults to [1024, 10240, 102400, 1048576, 10485760, 104857600].
API_OTEL_METRICS_DEFINITIONS_HTTP_REQUEST_BODY_SIZE_DESCRIPTION Description for the metric. Defaults to "Size of HTTP server request bodies.".
API_OTEL_METRICS_DEFINITIONS_HTTP_REQUEST_BODY_SIZE_ENABLED If true, will enable publishing the metric. Defaults to the value of the API_OTEL_METRICS_DEFAULT_METRICS_ENABLED environment variable.
API_OTEL_METRICS_DEFINITIONS_HTTP_REQUEST_BODY_SIZE_NAME Name for the metric. May be used in visualization tools. Defaults to http.server.request.body.size.
API_OTEL_METRICS_DEFINITIONS_HTTP_REQUEST_BODY_SIZE_UNIT Unit for the metric values. Defaults to By.

The following environment variables are available for configuring the "http.server.request.duration" metric:

Environment Variable Description
API_OTEL_METRICS_DEFINITIONS_HTTP_REQUEST_DURATION_BUCKETS Histogram bucket boundaries. Defaults to [0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10].
API_OTEL_METRICS_DEFINITIONS_HTTP_REQUEST_DURATION_DESCRIPTION Description for the metric. Defaults to "Duration of HTTP server requests.".
API_OTEL_METRICS_DEFINITIONS_HTTP_REQUEST_DURATION_ENABLED If true, will enable publishing the metric. Defaults to the value of the API_OTEL_METRICS_DEFAULT_METRICS_ENABLED environment variable.
API_OTEL_METRICS_DEFINITIONS_HTTP_REQUEST_DURATION_NAME Name for the metric. May be used in visualization tools. Defaults to http.server.request.duration.
API_OTEL_METRICS_DEFINITIONS_HTTP_REQUEST_DURATION_UNIT Unit for the metric values. Defaults to s.

The following environment variables are available for configuring the "http.server.response.body.size" metric:

Environment Variable Description
API_OTEL_METRICS_DEFINITIONS_HTTP_RESPONSE_BODY_SIZE_BUCKETS Histogram bucket boundaries. Defaults to [1024, 10240, 102400, 1048576, 10485760, 104857600].
API_OTEL_METRICS_DEFINITIONS_HTTP_RESPONSE_BODY_SIZE_DESCRIPTION Description for the metric. Defaults to "Size of HTTP server response bodies.".
API_OTEL_METRICS_DEFINITIONS_HTTP_RESPONSE_BODY_SIZE_ENABLED If true, will enable publishing the metric. Defaults to the value of the API_OTEL_METRICS_DEFAULT_METRICS_ENABLED environment variable.
API_OTEL_METRICS_DEFINITIONS_HTTP_RESPONSE_BODY_SIZE_NAME Name for the metric. May be used in visualization tools. Defaults to http.server.response.body.size.
API_OTEL_METRICS_DEFINITIONS_HTTP_RESPONSE_BODY_SIZE_UNIT Unit for the metric values. Defaults to By.

The following environment variables are available for configuring the "io_manager.active_sessions" metric:

Environment Variable Description
API_OTEL_METRICS_DEFINITIONS_ACTIVE_SESSIONS_DESCRIPTION Description for the metric. Defaults to "Total number of sessions that made requests in the past 'inactiveSessionTimeout' seconds.".
API_OTEL_METRICS_DEFINITIONS_ACTIVE_SESSIONS_ENABLED If true, will enable publishing the metric. Defaults to the value of the API_OTEL_METRICS_DEFAULT_METRICS_ENABLED environment variable.
API_OTEL_METRICS_DEFINITIONS_ACTIVE_SESSIONS_INACTIVE_SESSION_TIMEOUT Interval in seconds after which a session is considered inactive. Must be set to the same value as the fetchInterval property of the server object in the platform configuration (io.Connect Desktop or io.Connect Browser) for io.Manager. Defaults to 30.
API_OTEL_METRICS_DEFINITIONS_ACTIVE_SESSIONS_NAME Name for the metric. May be used in visualization tools. Defaults to io_manager.active_sessions.
API_OTEL_METRICS_DEFINITIONS_ACTIVE_SESSIONS_PUBLISH_AT_STARTUP_ENABLED If true (default), the io.Manager Server will publish the metric at startup.
API_OTEL_METRICS_DEFINITIONS_ACTIVE_SESSIONS_PUBLISH_INTERVAL Interval in milliseconds at which to publish the metric. Defaults to 60000.
API_OTEL_METRICS_DEFINITIONS_ACTIVE_SESSIONS_UNIT Unit for the metric values. Defaults to {session}.

Traces

Environment variables for publishing OpenTelemetry traces.

Environment Variable Description
API_OTEL_TRACES_DEFAULT_SAMPLE Specifies the rate to be used by the default trace sampler for sampling all traces that don't match the rules specified in the sampling property of the traces object in the configuration object for initializing the io.Manager Server. Accepts as a value a number greater than 0 and less than or equal to 1 denoting the probability percentage for sampling trace spans (e.g., a value of 0.15 means that all trace spans not matched by any rules will have a 15% probability of being sampled). Ignored when a custom trace sampler is used. Defaults to 1.
API_OTEL_TRACES_ENABLED If true, will enable publishing OpenTelemetry traces. Defaults to false.
API_OTEL_TRACES_PUBLISH_INTERVAL Interval in milliseconds between two consecutive traces exports. Passed to the BatchSpanProcessor constructor. This is the default span processor used by the io.Manager Server. Ignored when a custom trace span processor is used. Defaults to 5000.
API_OTEL_TRACES_URL URL pointing to an OpenTelemetry Collector where the generated traces will be sent via HTTP. Passed to the OTLPTraceExporter constructor. This is the default trace exporter used by the io.Manager Server. Required if using the default trace exporter and trace span processor. Ignored when either a custom trace exporter or a custom trace span processor is used.

Logs

Environment variables for publishing OpenTelemetry logs.

Environment Variable Description
API_OTEL_LOGS_ENABLED If true, will enable publishing OpenTelemetry logs. Defaults to false.
API_OTEL_LOGS_MAX_LEVEL The maximum event level to emit via the OpenTelemetry SDK. Possible values are ALL, MARK, TRACE, DEBUG, INFO, WARN, ERROR, FATAL and OFF. Defaults to FATAL.
API_OTEL_LOGS_MIN_LEVEL The minimum event level to emit via the OpenTelemetry SDK. Possible values are ALL, MARK, TRACE, DEBUG, INFO, WARN, ERROR, FATAL and OFF. Defaults to INFO.
API_OTEL_LOGS_PUBLISH_INTERVAL Interval in milliseconds between two consecutive log exports. Passed to the BatchLogRecordProcessor constructor. This is the default log processor used by the io.Manager Server. Ignored when a custom log processor is used. Defaults to 5000.
API_OTEL_LOGS_URL URL pointing to an OpenTelemetry Collector where the generated logs will be sent via HTTP. Passed to the OTLPLogExporter constructor. This is the default log exporter used by the io.Manager Server. Required if using the default log exporter and log processor. Ignored when either a custom log exporter or a custom log processor is used.

Sessions

Available since io.Manager Server 2.1.

Environment variables for configuring the sessions between the io.Connect platform clients and the io.Manager Server.

Environment Variable Description
API_SESSIONS_INACTIVE_SESSION_TIMEOUT Interval in seconds after which an io.Connect platform client session is considered inactive. Sessions are considered active if the connected platform has fetched data within the specified timeout. Must be set to the same value as the "fetchInterval" property of the "server" object in the io.Connect Desktop platform configuration, or the fetchInterval property of the manager object in the io.Connect Browser platform configuration respectively. Defaults to 30.

Docker Image

The io.Manager Server can be deployed via the manager Docker image (e.g., when using the basic scenario via the template repository approach). The manager Docker image can be configured via environment variables.

The following example demonstrates providing settings for the manager Docker image:

# Health check mode for the `manager` Docker image.
DOCKER_HEALTHCHECK_MODE=http-connectivity

The following environment variables are available for configuring the manager Docker image:

Environment Variable Description
DOCKER_HEALTHCHECK_MODE Controls the behavior of the Docker health check. Set to db-connectivity (default) to use the GET /db-connectivity endpoint to perform a database connectivity health check. Set to http-connectivity to use the GET / endpoint to perform a basic health check. Set to none to disable the health check handler and instruct it to always report a healthy status.