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
Configobject for initializing the@interopio/managerlibrary 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
issuerBaseURLorissuerandjwksUritogether.
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
customHealthCheckRouteand thecustomDatabaseHealthCheckRouteproperties, the base API path specified in thebaseproperty 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
sentryClientorsentryOptions, 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_URLorAPI_AUTH_AUTH0_ISSUERandAPI_AUTH_AUTH0_JWKSURItogether.
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_ROUTEand theAPI_HEALTH_ENDPOINTS_CUSTOM_DB_CONNECTIVITY_HEALTHCHECK_ROUTEenvironment variables, the base API path specified in theAPI_BASEenvironment 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-connectivityThe 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. |