Environment variables reference¶
Note 1 : Some variable default values might change depending on the selected start mode (Docker or Developer), especially URL-related ones
Note 2 : Relative paths start from the executing service directory
Domains & URLs¶
Name | Service | Description | Default value |
GATEWAY_API_HOST | api-gateway, workspaces, events | api-gateway internal URL for internal requests (i.e contact fetching) | http://localhost:3001/v2 |
API_URL | console, pages, api-gateway, runtime | api-gateway public URL | http://studio.local.prisme.ai:3001/v2 |
CONSOLE_URL | api-gateway, console, pages, runtime | Studio URL, used for emails, auth redirections & runtime variable {{global.studioUrl}} | http://studio.local.prisme.ai:3000 |
PAGES_HOST | api-gateway, console, pages, runtime | Pages base domain starting with a '.', workspace slug will be prefixed as a subdomain. Used for pages builder, pages sign in redirection from api gateway, & runtime variable {{global.pagesUrl}} | .pages.local.prisme.ai:3100 |
Databases¶
Notes on uploads bucket :
By default, S3 driver stores all uploads inside the same bucket whether they are public or private. This unique bucket is expected to allow public accesses and enable object level ACLs, letting the S3 driver selectively set objects public or private ACL.
In case these S3 options are forbidden in your environment, you can have 2 separate S3 Buckets for public / private objects :
* Both buckets can keep default S3 settings (which forbid any public access & disable object level ACLs)
* The 2nd additional bucket will be served through a public CDN allowed to access *
objects (or any more restrictive patterns you want)
In this setup, UPLOADS_STORAGE_S3_*
environement variables will configure the private bucket, and the public bucket can be enabled with UPLOADS_PUBLIC_STORAGE_S3_*
environment variables.
Separate secret/access keys can be provided for the public bucket, or you can retrieve credentials from the first bucket by simply setting these 2 variables :
UPLOADS_PUBLIC_STORAGE_S3_LIKE_BUCKET_NAME="here is your public uploads bucket name"
UPLOADS_PUBLIC_STORAGE_S3_LIKE_BASE_URL="here is your CDN public base URL"
A last option in order to avoid public S3 bucket without creating a second one behind a CloudFront would be simply to force all files download requests to always go through Prisme.ai API. For this, all you have to do is to not provide the UPLOADS_STORAGE_S3_LIKE_BASE_URL environment variable.
Name | Service | Description | Default value |
BROKER_HOST | All services | Redis broker URL (must be the same across services) | redis://localhost:6379/0 |
BROKER_PASSWORD | All services | Redis broker password | |
BROKER_NAMESPACE | All services | Optional namespace to segment events in case the same database instance is shared by multiple platforms | |
BROKER_TOPIC_MAXLEN | All services | Redis streams max length before getting truncated (See Capped Streams) | 10000 |
BROKER_EMIT_MAXLEN | All services | Maximum size (in bytes) of emitted events | 100000 |
PERMISSIONS_STORAGE_HOST | All services | MongoDB URL for permissions storage (must be the same for both workspaces & events) | mongodb://localhost:27017/permissions |
USERS_STORAGE_HOST | api-gateway | MongoDB URL for users storage | mongodb://localhost:27017/users |
SESSIONS_STORAGE_HOST | api-gateway | Redis URL for sessions storage | redis://localhost:6379/0 |
SESSIONS_STORAGE_PASSWORD | api-gateway | Redis password for sessions storage | |
CORS_ADDITIONAL_ALLOWED_ORIGINS | api-gateway | Allowed CORS origins. By default, only allowed origins are STUDIO_URL, PAGES_HOST or workspace configured custom domains | |
EVENTS_STORAGE_ES_HOST | events | Elasticsearch URL for events persistance | http://localhost:9200 |
EVENTS_STORAGE_ES_USER | events | Elasticsearch user for events persistance | |
EVENTS_STORAGE_ES_PASSWORD | events | Elasticsearch password for events persistance | |
EVENTS_TOPICS_CACHE_HOST | events | Redis URL for event userTopics persistance. | BROKER_HOST variable |
EVENTS_TOPICS_CACHE_PASSWORD | events | Redis password for event userTopics persistance. | |
WORKSPACES_STORAGE_TYPE | runtime & workspaces | Workspaces storage driver (FILESYSTEM | S3_LIKE | AZURE_BLOB). Must be the same instance for both runtime & workspaces. | FILESYSTEM |
WORKSPACES_STORAGE_FILESYSTEM_DIRPATH | runtime & workspaces | Workspaces filesystem storage : directory path | ../../data/models/ |
UPLOADS_STORAGE_FILESYSTEM_DIRPATH | runtime & workspaces | Uploads filesystem storage : directory path | ../../data/models/ |
WORKSPACES_STORAGE_S3_LIKE_ACCESS_KEY | runtime & workspaces | Workspaces s3 like storage : access key | |
WORKSPACES_STORAGE_S3_LIKE_SECRET_KEY | runtime & workspaces | Workspaces s3 like storage : secret key | |
WORKSPACES_STORAGE_S3_LIKE_BASE_URL | runtime & workspaces | Workspaces s3 like storage : base download url. If omitted, workspaces API will be used as proxy | |
WORKSPACES_STORAGE_S3_LIKE_ENDPOINT | runtime & workspaces | Workspaces s3 like storage : endpoint | |
WORKSPACES_STORAGE_S3_LIKE_BUCKET_NAME | runtime & workspaces | Workspaces s3 like storage : bucket name | |
WORKSPACES_STORAGE_S3_LIKE_REGION | runtime & workspaces | Workspaces s3 like storage : region | |
WORKSPACES_STORAGE_AZURE_BLOB_CONTAINER | runtime & workspaces | Workspaces Azure Blob container name | models |
WORKSPACES_STORAGE_AZURE_BLOB_CONNECTION_STRING | runtime & workspaces | Workspaces Azure Blob connection string | models |
CONTEXTS_CACHE_HOST | runtime | Redis URL for contexts persistance. | redis://localhost:6379/0 |
CONTEXTS_CACHE_PASSWORD | runtime | Redis password for contexts persistance. | |
UPLOADS_STORAGE_TYPE | workspaces | Uploads storage driver (FILESYSTEM | S3_LIKEĀ | AZURE_BLOB). Must be the same instance for workspaces. | FILESYSTEM |
UPLOADS_STORAGE_FILESYSTEM_DIRPATH | workspaces | Uploads filesystem storage : directory path | ../../data/uploads |
UPLOADS_STORAGE_S3_LIKE_ACCESS_KEY | workspaces | Uploads s3 like storage : access key | |
UPLOADS_STORAGE_S3_LIKE_SECRET_KEY | workspaces | Uploads s3 like storage : secret key | |
UPLOADS_STORAGE_S3_LIKE_BASE_URL | workspaces | Uploads s3 like storage : base download url | |
UPLOADS_STORAGE_S3_LIKE_ENDPOINT | workspaces | Uploads s3 like storage : endpoint | |
UPLOADS_STORAGE_S3_LIKE_BUCKET_NAME | workspaces | Uploads s3 like storage : bucket name | |
UPLOADS_STORAGE_S3_LIKE_REGION | workspaces | Uploads s3 like storage : region | |
UPLOADS_FILESYSTEM_DOWNLOAD_URL | workspaces | Base download URL for files uploaded to filesystem driver | Upload/Get request URL |
UPLOADS_STORAGE_AZURE_BLOB_CONTAINER | workspaces | Uploads Azure Blob container name | models |
UPLOADS_STORAGE_AZURE_BLOB_CONNECTION_STRING | workspaces | Uploads Azure Blob connection string | |
UPLOADS_STORAGE_AZURE_BLOB_BASE_URL | workspaces | Base public download url for uploads azure blob container : If omitted, workspaces API will be used as proxy |
Other¶
Name | Service | Description | Default value |
OPENAPI_FILEPATH | All services | Requests & events validation swagger file path | ../specifications/swagger.yml |
UPLOADS_MAX_SIZE | workspaces,api-gateway,runtime | Max upload size in bytes | 10000000 (10MB) |
OIDC_PROVIDER_URL | api-gateway, pages, console, runtime | OIDC Authorization server URL. You don't need to define this OIDC variable if you intend to add another provider | API_URL env var, without any base path. |
OIDC_STUDIO_CLIENT_ID | api-gateway, console | Studio OIDC client id | local-client-id |
OIDC_STUDIO_CLIENT_SECRET | api-gateway | Studio OIDC client secret, only known by api-gateway | local-client-id |
OIDC_CLIENT_REGISTRATION_TOKEN | api-gateway | Access token required for OIDC clients registration API | local-client-id |
OIDC_WELL_KNOWN_URL | api-gateway | OIDC provider configuration discovery URL (only if it's an external provider) | |
SESSION_COOKIES_MAX_AGE | api-gateway | Auth server session cookies expiration (in seconds) | 2592000 (1 month) |
ACCESS_TOKENS_MAX_AGE | api-gateway | Session expiration, used for both anonymous & authenticated sessions (in seconds) | 2592000 (1 month) |
JWKS_URL | api-gateway | Defines the endpoint to call in order to retrieve the JWKS as part of our JWKS strategy. You might want to change this value using an internal api-gateway hostname if your are using our local provider (example: http://api-gateway/oidc/jwks ). |
OIDC_PROVIDER_URL/oidc/jwks |
SESSION_COOKIES_SIGN_SECRET | api-gateway | Session cookies signing secret | |
WEBSOCKETS_DEFAULT_TRANSPORTS | console,pages | Default socketio transport method | polling,websocket |
PORT | console | Listening port number | 3000 |
PORT | api-gateway | Listening port number | 3001 |
GATEWAY_CONFIG_PATH | api-gateway | gateway.config.yml path | ../../gateway.config.yml |
AUTH_PROVIDERS_CONFIG | api-gateway | authProviders.config.yml path | ../../authProviders.config.yml |
INTERNAL_API_KEY | api-gateway, workspaces | API Key allowing internal services fetching events /sys/cleanup API | |
PASSWORD_VALIDATION_REGEXP | api-gateway | Password validation regular expression | .{8,32} |
EMAIL_VALIDATION_ENABLED | api-gateway | Depreacted. Use ACCOUNT_VALIDATION_METHOD instead. Enable email validation on signup | true |
ACCOUNT_VALIDATION_METHOD | api-gateway | Account validation method on signup. Can be an auto validation ("auto"), a validation by email ("email") or a manual validation by a super admin ("manual") | |
WORKSPACES_API_URL | api-gateway | prismeai-workspaces internal URL | http://workspaces:3002 |
EVENTS_API_URL | api-gateway | prismeai-events internal URL | http://events:3004 |
RUNTIME_API_URL | api-gateway | prismeai-runtime internal URL | http://runtime:3003 |
X_FORWARDED_HEADERS | api-gateway | Add X-Forwarded-* headers on proxied requests | yes |
SUPER_ADMIN_EMAILS | api-gateway | List of users emails which should have access to every workspaces. Each email should be separated with a comma. Example: john.doe@foo.com,admin@bar.ai |
None |
PORT | events | Listening port number | 3004 |
EVENTS_BUFFER_FLUSH_AT | events | Persists events in the data lake each N events | 128 |
EVENTS_BUFFER_HIGH_WATERMARK | events | Stops listening for new events to be persisted when N events are already waiting to be persisted | 256 |
EVENTS_BUFFER_FLUSH_EVERY | events | Persists events every N milliseconds even if EVENTS_BUFFER_FLUSH_AT has not been reached | 5000 |
EVENTS_RETENTION_DAYS | events | Number of days events are kept inside the data lake before being removed | 180 |
EVENTS_CLEANUP_WORKSPACE_INACTIVITY_DAYS | events | Delete workspaces events if inactive for more than N days & with less than EVENTS_CLEANUP_WORKSPACE_MAX_EVENTS | 15 |
EVENTS_CLEANUP_WORKSPACE_MAX_EVENTS | events | Delete workspaces events if inactive for more than EVENTS_CLEANUP_WORKSPACE_INACTIVITY_DAYS & with less than N events | 100 |
EVENTS_SCHEDULED_DELETION_DAYS | events | Number of days events are kept inside the data lake after deleting their workspace | 90 |
SOCKETIO_COOKIE_MAX_AGE | events | Socket.io cookie maxAge | Default value from 'cookie' NodeJS module |
EVENTS_STORAGE_ES_BULK_REFRESH | events | Enable Elastic "refresh" option when bulk inserting events (might induce overhead) | no |
PORT | runtime | Listening port number | 3003 |
MAXIMUM_SUCCESSIVE_CALLS | runtime | Maximum number of automation execution for the same correlation id (i.e initiated by the same webhook or external event) | 20 |
CONTEXT_RUN_EXPIRE_TIME | runtime | Run context expiration time in seconds. | 60 |
CONTEXT_UNAUTHENTICATED_SESSION_EXPIRE_TIME | runtime | Session context expiration time in seconds for unauthenticated sessions | 60*60 (1 hour) |
ADDITIONAL_GLOBAL_VARS_* | runtime | Additional variables that will be available from global context (ADDITIONAL_GLOBAL_VARS_apiUrl will be available as {{global.apiUrl}}). | None |
WORKSPACE_CONFIG_{{workspaceSlug}}_{{variableName}} | runtime | Additional variables that will be available for a specific workspace. (WORKSPACE_CONFIG_knowledge-manager_secretApiKey will be available at {{config.secretApiKey}} within the automations of the knowledge-manager workspace). |
None |
APP_CONFIG_{{appSlug}}_{{variableName}} | runtime | Additional variables that will be available for a specific app.
(APP_CONFIG_MailSender_mailApiKey will be available as {{config.mailApiKey}} within the automations of an instance of the MailSender app). Useful if you want to publish your app without compromising a secret. |
None |
PORT | workspaces | Listening port number | 3002 |
UPLOADS_ALLOWED_MIMETYPES | workspaces | Allowed upload MIME types, comma-separated | image/*,text/*,video/*,audio/*,application/* |
UPLOADS_FORBIDDEN_MIMETYPES | workspaces | Forbidden upload MIME types, comma-separated (do not support wildcards) | |
UPLOADS_DEFAULT_VISIBILITY | workspaces | If not explicitly set in API request, default uploads visibility | public |