IDV Configuration
The IDV Platform configuration is managed via a single config.yaml
file.
It is the preferred and central approach to define service behavior, integrations, storage options, and internal scheduling.
Structure
└── mode └── fernetKey └── baseUrl └── identifier └── metrics └── logging └── storage └── mobile └── smtp └── oauth2 └── faceSearch └── textSearch └── services └── mongo └── messageBroker └── webApp └── custom
You can find the example of the configuration file at the bottom of the page.
Basic Parameters
Parameter | Type | Default | Description |
---|---|---|---|
mode |
string | cluster |
Mode of operation: cluster for distributed deployments, standalone for local development. |
fernetKey |
string | — | Secret key used for encrypting sensitive data in the database. |
baseUrl |
string | — | Base URL where the service is accessible, used in email templates and redirects. |
identifier |
string | — | Optional server identifier used in sessions. |
custom |
object | — | Arbitrary user-defined configuration values that can be used in templates. |
Metrics
This section configures performance and usage metrics collection, including StatsD and database-based storage.
metrics
├── statsd
│ ├── enabled
│ ├── host
│ ├── port
│ └── prefix
└── alerts
├── enabled
└── prometheus
├── url
└── filter
└── groups
Parameter | Type | Default | Description |
---|---|---|---|
statsd → enabled |
boolean | false |
Whether to enable StatsD for metrics collection. |
statsd → host |
string | localhost |
StatsD server hostname. |
statsd → port |
integer | 9125 |
StatsD server port. |
statsd → prefix |
string | — | Prefix for metrics. |
alerts → enabled |
boolean | false |
Whether to enable access to alerts via the API. |
alerts → prometheus → url |
string | — | Prometheus server URL for alerts. |
alerts → prometheus → filter → groups |
list[str] | — | Alert groups to filter. |
Logging
This section defines the logging behavior, including format, log level, output destinations (console/file), and file management settings.
logging
├── level
├── formatter
├── console
├── file
├── path
├── maxFileSize
└── filesCount
Parameter | Type | Default | Description |
---|---|---|---|
level |
string | INFO |
Logging level. |
formatter |
string | — | Format for log output. |
console |
boolean | true |
Whether to enable logging to console. |
file |
boolean | false |
Whether to enable logging to file. |
path |
string | "logs" |
Path for storing log files. |
maxFileSize |
string | 1048576 |
Maximum size of each log file. Supports floating-point format (for example, "1e6") and memory expressions (for example, "10Mi"). |
filesCount |
integer | 10 |
Number of log files to retain. |
Storage
The storage
section defines the main storage backends (for example, S3 or local file system) and specifies bucket paths for storing various data types like sessions, persons, workflows, user files, and localization configs.
storage
├── type
├── s3
│ ├── endpoint
│ ├── accessKey
│ ├── accessSecret
│ ├── region
│ └── secure
├── fs
│ └── path
├── sessions
│ └── location
│ ├── bucket
│ ├── prefix
│ └── folder
├── persons
│ └── location
│ ├── bucket
│ ├── prefix
│ └── folder
├── idags
│ └── location
│ ├── bucket
│ ├── prefix
│ └── folder
├── workflows
│ └── location
│ ├── bucket
│ ├── prefix
│ └── folder
├── userFiles
│ └── location
│ ├── bucket
│ ├── prefix
│ └── folder
├── locales
│ └── location
│ ├── bucket
│ ├── prefix
│ └── folder
└── assets
└── location
├── bucket
├── prefix
└── folder
Parameter | Type | Default | Description |
---|---|---|---|
type |
string | s3 |
Storage backend: s3 or fs . |
s3 → endpoint |
string | — | S3-compatible endpoint URL. |
s3 → accessKey |
string | — | Access key for S3. |
s3 → accessSecret |
string | — | Secret key for S3. |
s3 → region |
string | eu-central-1 |
Storage region. |
s3 → secure |
boolean | true |
Use HTTPS connection. |
fs → path |
string | — | Local file system path for data. |
sessions |
object | — | Stores user session data. |
sessions → location → bucket |
string | — | Bucket name for session data. |
sessions → location → prefix |
string | — | Path prefix for session data. |
sessions → location → folder |
string | — | Subfolder for session data. |
persons |
object | — | Stores biometric/person-related files. |
persons → location → bucket |
string | — | Bucket name for person-related files. |
persons → location → prefix |
string | — | Path prefix for person-related files. |
persons → location → folder |
string | — | Subfolder for person-related files. |
idags |
object | — | Stores IDAG files. |
idags → location → bucket |
string | — | Bucket name for IDAG files. |
idags → location → prefix |
string | — | Path prefix for IDAG files. |
idags → location → folder |
string | — | Subfolder for IDAG files. |
workflows |
object | — | Stores predefined scenario workflows. |
workflows → location → bucket |
string | — | Bucket name for workflows. |
workflows → location → prefix |
string | — | Path prefix for workflows. |
workflows → location → folder |
string | — | Subfolder for workflows. |
userFiles |
object | — | Stores uploaded user documents. |
userFiles → location → bucket |
string | — | Bucket name for user files. |
userFiles → location → prefix |
string | — | Path prefix for user files. |
userFiles → location → folder |
string | — | Subfolder for user files. |
locales |
object | — | Stores localization files for translation. |
locales → location → bucket |
string | — | Bucket name for localization files. |
locales → location → prefix |
string | — | Path prefix for localization files. |
locales → location → folder |
string | — | Subfolder for localization files. |
assets |
object | — | Stores asset files. |
assets → location → bucket |
string | — | Bucket name for asset files. |
assets → location → prefix |
string | — | Path prefix for asset files. |
assets → location → folder |
string | — | Subfolder for asset files. |
Mobile
The mobile
section defines identifiers and security hashes for the Android and Apple apps to verify and link official mobile clients.
mobile
├── android
│ ├── bundleId
│ └── sha256
│ ├── \[0]
│ ├── \[1]
│ └── \[2]
└── apple
│ ├── appId
│ ├── bundleId
Mobile Parameters
Parameter | Type | Default | Description |
---|---|---|---|
android → bundleId |
string | — | Android application ID. |
android → sha256 |
list | — | App certificate fingerprints for security. |
apple → appId |
string | — | Apple app ID. |
apple → bundleId |
string | — | Apple bundle ID. |
SMTP
The smtp
section configures email delivery settings such as SMTP host, port, credentials, and TLS for sending system emails (for example, verifications or alerts).
smtp
├── enabled
├── host
├── port
├── username
├── password
└── tls
Parameter | Type | Default | Description |
---|---|---|---|
enabled |
boolean | true |
Whether to enable sending emails. |
host |
string | — | SMTP server host. |
port |
integer | 587 |
SMTP server port. |
username |
string | — | Credentials for SMTP authentication. |
password |
string | — | Credentials for SMTP authentication. |
tls |
boolean | false |
Whether to enable TLS encryption. |
OAuth2
The oauth2
section defines external OAuth 2.0 identity providers (for example, Google, Microsoft, Cognito) for user authentication, with roles, scopes, and endpoint URLs.
Before configuring OAuth2, obtain credentials (client ID and secret) from your provider, for example in the Google API Console. You will also need provider-specific endpoint URLs.
oauth2
├── enabled
├── accessTokenTtl
└── providers
├── [0]
│ ├── name
│ ├── type
│ ├── clientId
│ ├── secret
│ ├── scope
│ ├── defaultRoles
│ ├── defaultGroups
│ └── urls
│ ├── jwk
│ ├── authorize
│ ├── token
│ ├── refresh
│ └── revoke
└── [1]
└── (same structure as above)
Parameter | Type | Default | Description |
---|---|---|---|
enabled |
boolean | false |
Enables OAuth2 authentication. If false , OAuth2 will not work. |
accessTokenTtl |
int | 3600 |
Time-to-live of the access token in seconds. |
providers |
list | empty list | List of provider configurations. |
providers → name |
string | — | Unique name of the provider. Becomes part of the callback URL. |
providers → type |
string | — | Provider type: google , microsoft , or cognito . |
providers → clientId |
string | — | Client ID obtained from the provider. Used to identify the platform. |
providers → secret |
string | — | Client secret obtained from the provider. Used to authenticate the platform. |
providers → scope |
string | — | Space-separated list of requested permissions (for example, openid email profile ). |
providers → defaultRoles |
list | — | Roles assigned to new users. |
providers → defaultGroups |
list | — | Groups assigned to new users. Groups that don’t exist will be created automatically. |
providers → urls → jwk |
string | — | JSON Web Key Set (JWKS) endpoint. Returns the public keys used by the provider to sign tokens. The platform uses these to verify token integrity. |
providers → urls → authorize |
string | — | Authorization endpoint. Users are redirected here to log in and grant consent. |
providers → urls → token |
string | — | Token endpoint. Used to exchange an authorization code for an access token (and refresh token). |
providers → urls → refresh |
string | — | Refresh token endpoint. Used to obtain a new access token using a valid refresh token. Often the same as the token endpoint. |
providers → urls → revoke |
string | — | Token revocation endpoint. Allows invalidating access or refresh tokens before expiry. |
faceSearch
Enables facial recognition and search capabilities using a vector database (for example, OpenSearch), with thresholds and matching parameters.
faceSearch
├── enabled
├── limit
├── threshold
└── database
├── type
├── opensearch
│ ├── host
│ ├── port
│ ├── useSsl
│ ├── verifyCerts
│ ├── username
│ ├── password
│ ├── dimension
│ ├── indexName
│ └── awsAuth
│ ├── enabled
│ └── region
└── atlas
└── dimension
Parameter | Type | Default | Description |
---|---|---|---|
enabled |
boolean | false |
Whether to enable facial recognition search. |
limit |
integer | 1000 |
Max number of search results. |
threshold |
float | 0.75 |
Similarity threshold. |
database → type |
string | opensearch |
Database type: opensearch or atlas . |
database → opensearch → host |
string | — | Hostname of OpenSearch. |
database → opensearch → port |
integer | 9200 |
Port for OpenSearch. |
database → opensearch → useSsl |
boolean | false |
Use SSL connection. |
database → opensearch → verifyCerts |
boolean | false |
Whether to enable SSL certificates verification. |
database → opensearch → username |
string | — | Username. |
database → opensearch → password |
string | — | Password. |
database → opensearch → dimension |
integer | 512 |
Feature vector size. |
database → opensearch → indexName |
string | — | Index used for face vectors. |
database → opensearch → awsAuth → enabled |
boolean | false |
Whether to use AWS authentication when connecting to the OpenSearch service. |
database → opensearch → awsAuth → region |
string | — | AWS region (for example, us-east-1 ). |
database → atlas → dimension |
integer | 512 |
Feature vector size for Atlas. |
textSearch
Enables full-text search capabilities using a search database, for example, OpenSearch.
textSearch
├── enabled
├── limit
└── database
├── type
├── opensearch
│ ├── host
│ ├── port
│ ├── useSsl
│ ├── verifyCerts
│ ├── username
│ └── password
└── atlas
Parameter | Type | Default | Description |
---|---|---|---|
enabled |
boolean | false |
Whether to enable text search. |
limit |
integer | 1000 |
Max number of search results. |
database → type |
string | opensearch |
Database type: opensearch or atlas . |
database → opensearch → host |
string | — | Hostname of OpenSearch. |
database → opensearch → port |
integer | 9200 |
Port for OpenSearch. |
database → opensearch → useSsl |
boolean | false |
Use SSL connection. |
database → opensearch → verifyCerts |
boolean | false |
Whether to enable SSL certificates verification. |
database → opensearch → username |
string | — | OpenSearch Username. |
database → opensearch → password |
string | — | OpenSearch Password. |
services
Toggles key microservices like API, audit logging, scheduler, workflow engine, and third-party integrations, such as docreader
, faceapi
.
services
├── api
│ ├── enabled
│ ├── port
│ ├── host
│ └── workers
├── audit
│ ├── enabled
│ └── wsEnabled
├── scheduler
│ ├── enabled
│ └── jobs
│ ├── expireSessions
│ │ └── cron
│ ├── reloadWorkflows
│ │ └── cron
│ ├── cleanSessions
│ │ ├── cron
│ │ └── keepFor
│ ├── expireDeviceLogs
│ │ ├── cron
│ │ └── keepFor
│ ├── reloadLocales
│ │ └── cron
│ └── cronWorkflow
│ └── cron
├── workflow
│ ├── enabled
│ └── workers
├── analytics
│ ├── enabled
│ └── connectionString
├── docreader
│ ├── enabled
│ ├── prefix
│ └── url
├── faceapi
│ ├── enabled
│ ├── prefix
│ └── url
└── indexer
├── enabled
├── timeout
└── maxBatchSize
Service | Type | Default | Description |
---|---|---|---|
api → enabled |
boolean | true |
Whether to enable the main HTTP API service. |
api → port |
integer | 8000 |
TCP port for API server. |
api → host |
string | 0.0.0.0 |
Network interface or IP for API binding. |
api → workers |
integer/string | auto |
Number of workers handling API requests. |
audit → enabled |
boolean | false |
Enables audit logging service. |
audit → wsEnabled |
boolean | false |
Enables WebSocket-based audit streaming to a client. |
scheduler → enabled |
boolean | true |
Enables the scheduler service for background jobs. |
scheduler → jobs → expireSessions → cron |
string (cron) | — | Frequency for expiring inactive sessions. |
scheduler → jobs → reloadWorkflows → cron |
string (cron) | — | Frequency for reloading workflow definitions. |
scheduler → jobs → cleanSessions → cron |
string (cron) | — | Frequency for cleaning expired sessions. |
scheduler → jobs → cleanSessions → keepFor |
string (duration) | — | Retention period for session data (for example, 1w ). |
scheduler → jobs → expireDeviceLogs → cron |
string (cron) | — | Frequency for expiring device logs. |
scheduler → jobs → expireDeviceLogs → keepFor |
string (duration) | — | Retention period for device logs. |
scheduler → jobs → reloadLocales → cron |
string (cron) | — | Frequency for reloading localization files. |
scheduler → jobs → cronWorkflow → cron |
string (cron) | — | Frequency for cron workflows. |
workflow → enabled |
boolean | true |
Enables workflow execution service. |
workflow → workers |
integer/string | auto |
Number of workers for workflow service. |
analytics → enabled |
boolean | false |
Enables analytics service. |
analytics → connectionString |
string | — | Connection string for analytics database. |
docreader → enabled |
boolean | false |
Enables DocReader SDK integration. |
docreader → prefix |
string | — | URL path prefix for DocReader. |
docreader → url |
string | — | Internal URL of DocReader service. |
faceapi → enabled |
boolean | false |
Enables FaceAPI integration. |
faceapi → prefix |
string | — | URL path prefix for FaceAPI. |
faceapi → url |
string | — | Internal URL of FaceAPI service. |
indexer → enabled |
boolean | false |
Enables indexer service. |
indexer → timeout |
integer | 60 |
Time to wait between two batches of indexer operations. |
indexer → maxBatchSize |
integer | 1000 |
Maximum batch size for indexer. |
mongo
Defines the MongoDB connection URL used to store and access application data.
mongo
└── url
Parameter | Type | Default | Description |
---|---|---|---|
url |
string | mongodb://localhost:27017/idv |
MongoDB connection string. |
messageBroker
Defines message broker (for example, RabbitMQ) connection URL used for event-driven communication between services.
messageBroker
└── url
Parameter | Type | Default | Description |
---|---|---|---|
url |
string | amqp://admin:admin@localhost:5672/ |
AMQP Message Broker connection string. |
webApp
Controls the embedded IDV Portal application.
webApp
└── enabled
Parameter | Type | Default | Description |
---|---|---|---|
enabled |
boolean | true |
Whether to serve IDV Portal application. |
Config File Example
config.yaml | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 |
|