Backend Options Reference
Configuration Usage
Backend options can be configured either through:
- Environment Variables: Use the exact
ENV_VARname listed below in your.envfile or container environment. - Configuration File (
app-config.service.json): Use the exactoption.nameas JSON keys.
Showing 169 of 169 options
| Option Name | Environment Variable | Type | Default | Description |
|---|---|---|---|---|
environmentEnvironment | NODE_ENV | string | production | Specifies the application environment. Possible values are 'development', 'production' |
system.super-admin.usernameSuper Admin Username | SYSTEM_SUPER_ADMIN_USERNAME | string | — | Username of the super admin user. Related: system.super-admin.* |
system.super-admin.passwordSuper Admin Password | SYSTEM_SUPER_ADMIN_PASSWORD | string | — | Password of the super admin user. Related: system.super-admin.* |
system.super-admin.first-nameSuper Admin First Name | SYSTEM_SUPER_ADMIN_FIRST_NAME | string | — | First name of the super admin user. Related: system.super-admin.* |
system.super-admin.last-nameSuper Admin Last Name | SYSTEM_SUPER_ADMIN_LAST_NAME | string | — | Last name of the super admin user. Related: system.super-admin.* |
system.super-admin.emailSuper Admin Email | SYSTEM_SUPER_ADMIN_EMAIL | string | — | Email of the super admin user. Related: system.super-admin.* |
system.default-client.idDefault Client ID | SYSTEM_DEFAULT_CLIENT_ID | string | — | Client ID of the default client. Related: system.default-client.* |
system.default-client.secretDefault Client Secret | SYSTEM_DEFAULT_CLIENT_SECRET | string | — | Client secret of the default client. Related: system.default-client.* |
system.default-client.display-nameDefault Client Display Name | SYSTEM_DEFAULT_CLIENT_DISPLAY_NAME | string | — | Display name of the default client. Related: system.default-client.* |
system.default-client.redirect-urisDefault Client Redirect URIs | SYSTEM_DEFAULT_CLIENT_REDIRECT_URIS | stringArray | ["http://localhost:2000","http://localhost:2001"] | Redirect URIs of the default client. Related: system.default-client.* |
system.app-hostApplication Host | SYSTEM_APP_HOST | string | http://localhost:2000 | Hostname of Liquid |
system.enable-swaggerEnable Swagger | SYSTEM_ENABLE_SWAGGER | boolean | false | Specifies if swagger UI is available. If enabled, swagger will be available on /docs |
system.reverse-proxy-modeReverse Proxy Mode | SYSTEM_REVERSE_PROXY_MODE | boolean | false | Specifies if Liquid is sitting behind a reverse proxy like nginx. |
system.log-levelLog Level | SYSTEM_LOG_LEVEL | string | debug | Log level for the application. Possible values are debug, info, warn, error |
system.log-file-pathLog File Path | SYSTEM_LOG_FILE_PATH | string | — | The log file path. |
system.app-portApplication Port | SYSTEM_APP_PORT | number | 2000 | Port to listen on. |
system.app-nameApplication Name | SYSTEM_APP_NAME | string | Liquid | Name of the application. |
system.stats.enable-request-countingStats Enable Request Counting | SYSTEM_STATS_ENABLE_REQUEST_COUNTING | boolean | false | Specifies if application should count the number of requests served since service was started and return it in stats API. Related: system.stats.request-counter-key |
system.stats.request-counter-keyStats Request Counter Key | SYSTEM_STATS_REQUEST_COUNTER_KEY | string | liquid-request-count | Specifies the key to be used for storing and retrieving request count in express app. Related: system.stats.enable-request-counting |
system.request-body.json.max-sizeSystem Request Body Max Size (JSON) | SYSTEM_REQUEST_BODY_JSON_MAX_SIZE | string | 1mb | Specifies maximum size limit for request body for JSON requests. |
system.use-built-in-static-uiUse Built-In Static UI | SYSTEM_USE_BUILT_IN_STATIC UI | boolean | true | Specifies if Liquid can use it's built-in static UI. Turn this off if you are building your own login and signup pages. |
system.static.app-config-file-pathStatic App Config File Path | SYSTEM_STATIC_APP_CONFIG_FILE_PATH | string | — | Specifies the file path for frontend configuration file. Defaults to the contents of https://github.com/shrihari-prakash/liquid/blob/main/src/public/configuration/app-config.sample.json. |
system.service.app-config-file-pathService App Config File Path | SYSTEM_SERVICE_APP_CONFIG_FILE_PATH | string | — | Specifies the file path for backend configuration file. |
system.scope-extension-file-pathScope Extension File Path | SYSTEM_SCOPE_EXTENSION_FILE_PATH | string | /var/liquid/scope-extensions.json | Specifies the path of the JSON file that contains array of scopes that need to be added to liquid in addition to the default ones. |
system.enable-response-compressionEnable Response Compression | SYSTEM_ENABLE_RESPONSE_COMPRESSION | boolean | false | Specifies if liquid can GZip HTTP responses. |
system.iframe.actionIframe Action | SYSTEM_IFRAME_ACTION | string | SAMEORIGIN | Specifies the action to be taken when the application is loaded in an iframe. Possible values are `DENY`, `ALLOW`, `SAMEORIGIN` |
system.roles.scan-intervalRoles Scan Interval | SYSTEM_ROLES_SCAN_INTERVAL | number | 300 | Specifies the interval in seconds to scan for new roles. |
cookie.session-secretCookie Session Secret | COOKIE_SESSION_SECRET | string | 00000000-0000-0000-0000-000000000000 | A random 64+ bit string to use as the session secret. |
cookie.domainCookie Domain | COOKIE_DOMAIN | string | — | Specifies the cookie domain for session cookies. |
cookie.max-ageCookie Max Age | COOKIE_MAX_AGE | number | — | Specifies in seconds the expiry time for session cookies. |
cookie.secureCookie Secure | COOKIE_SECURE | boolean | true | Specifies if cookies sshould be secure. |
mongo-db.connection-stringMongoDB Connection String | MONGO_DB_CONNECTION_STRING | string | mongodb://127.0.0.1:27017/accounts | Connection string to connect to MongoDB. Related: mongo-db.use-transactions |
mongo-db.use-transactionsMongoDB Use Transactions | MONGO_DB_USE_TRANSACTIONS | boolean | false | Specifies if application can use MongoDB transactions in APIs where multiple write operations are involved. Highly recommended that you turn this on if you have a replica set. Related: mongo-db.connection-string |
oauth.authorization-code-lifetimeAuthorization Code Lifetime | OAUTH_AUTHORIZATION_CODE_LIFETIME | number | 300 | Expiry time in seconds for authorization codes. |
oauth.access-token-lifetimeAccess Token Lifetime | OAUTH_ACCESS_TOKEN_LIFETIME | number | 3600 | Expiry time in seconds for access tokens. |
oauth.refresh-token-lifetimeRefresh Token Lifetime | OAUTH_REFRESH_TOKEN_LIFETIME | number | 1209600 | Expiry time in seconds for refresh tokens. |
oauth.authorization.enable-redirectOAuth Authorization Enable Redirect | OAUTH_AUTHORIZATION_ENABLE_REDIRECT | boolean | true | Specifies if the application should redirect to the specified URL upon successful authorization. If set to false, authorization code will be sent as a JSON response. |
oauth.authorization.require-pkceOAuth Authorization Require PKCE | OAUTH_AUTHORIZATION_REQUIRE_PKCE | boolean | false | Specifies if the application should require PKCE for authorization. |
system.default-client.is-publicSystem Default Client Is Public | SYSTEM_DEFAULT_CLIENT_IS_PUBLIC | boolean | true | Specifies if the bootstrapped default client is a public client (e.g., SPAs/Mobile apps). Default is true. |
system.email-adapterSystem Email Adapter | SYSTEM_EMAIL_ADAPTER | string | sendgrid | Specifies the adapter to use to send emails to users. Possible values are `nodemailer`, `sendgrid`, `ses`, `pusher`, `webhook`, `print` Related: nodemailer.*sendgrid.*aws.ses.*webhook.* |
nodemailer.service-nameNodemailer Service Name | NODEMAILER_SERVICE_NAME | string | — | Service name for nodemailer. Related: nodemailer.*system.email-adapter |
nodemailer.hostNodemailer Host | NODEMAILER_HOST | string | — | Host for nodemailer. Related: nodemailer.*system.email-adapter |
nodemailer.portNodemailer Port | NODEMAILER_PORT | string | — | Port for nodemailer. Related: nodemailer.*system.email-adapter |
nodemailer.secureNodemailer Secure | NODEMAILER_SECURE | boolean | — | Specifies if nodemailer should be secure. Related: nodemailer.*system.email-adapter |
nodemailer.usernameNodemailer Username | NODEMAILER_USERNAME | string | — | Username for nodemailer. Related: nodemailer.*system.email-adapter |
nodemailer.passwordNodemailer Password | NODEMAILER_PASSWORD | string | — | Password for nodemailer. Related: nodemailer.*system.email-adapter |
nodemailer.ciphersNodemailer Ciphers | NODEMAILER_CIPHERS | string | SSLv3 | Ciphers for nodemailer. Related: nodemailer.*system.email-adapter |
nodemailer.reject-unauthorizedNodemailer Reject Unauthorized | NODEMAILER_REJECT_UNAUTHORIZED | boolean | false | Specifies if nodemailer should reject unauthorized. Related: nodemailer.*system.email-adapter |
sendgrid.api-keySendgrid API Key | SENDGRID_API_KEY | string | — | API key for sendgrid. Related: sendgrid.*system.email-adapter |
sendgrid.verification-email-template-idSendgrid Verification Email Template ID | SENDGRID_VERIFICATION_EMAIL_TEMPLATE_ID | string | | Specifies the template ID of verification email template. Leave blank if you want to use plain text. Variables that will be replaced on template: `app_name`, `person_id`, `person_name`, `verification_code` Related: sendgrid.*system.email-adapter |
aws.ses.regionAWS SES Region | AWS_SES_REGION | string | — | AWS region for SES client. Related: aws.ses.access-key-idaws.ses.access-key-secret |
aws.ses.access-key-idAWS SES Access Key ID | AWS_SES_ACCESS_KEY_ID | string | — | AWS access key ID for SES client. Related: aws.ses.regionaws.ses.access-key-secret |
aws.ses.access-key-secretAWS SES Access Key Secret | AWS_SES_ACCESS_KEY_SECRET | string | — | AWS access key secret for SES client. Related: aws.ses.regionaws.ses.access-key-id |
email.outbound-addressEmail Outbound Address | EMAIL_OUTBOUND_ADDRESS | string | liquid@example.com | Email address to be used for outgoing emails from the system. This option is preferred over `sendgrid.outbound-email-address` Related: nodemailer.*sendgrid.*aws.ses.*system.email-adapter |
webhook.urlWebhook URL | WEBHOOK_URL | string | — | Webhook URL for the webhook email adapter. An HTTP POST request will be made to this URL with the email object. Related: webhook.*system.email-adapter |
webhook.secretWebhook Secret | WEBHOOK_SECRET | string | — | Secret key for generating the HMAC SHA256 signature for the webhook payload. Will be sent via the X-Webhook-Signature header. Related: webhook.*system.email-adapter |
webhook.timeoutWebhook Timeout | WEBHOOK_TIMEOUT | number | 5000 | Timeout in milliseconds for the webhook POST requests. Related: webhook.*system.email-adapter |
email.verification-templateVerification Email Template File Path | EMAIL_VERIFICATION_TEMPLATE | string | — | Specifies the absolute path for the HTML template to be used for sending verification emails. Variables to be included in the template: `%app_name%`, `%person_id%`, `%person_name%`, `%verification_code%`. Ignore if you are using a Sendgrid template or the default verification template. |
storage.cloud-pathStorage Cloud Path | STORAGE_Cloud_PATH | string | content | Path to store user uploaded files. Related: privilege.can-use-cloud-storages3.* |
s3.endpointS3 Endpoint | S3_ENDPOINT | string | — | Endpoint to be used for S3 storage. Related: privilege.can-use-cloud-storages3.* |
s3.access-key-idS3 Access Key ID | S3_ACCESS_KEY_ID | string | — | Access key ID to be used for S3 storage. Related: privilege.can-use-cloud-storages3.* |
s3.access-key-secretS3 Access Key Secret | S3_ACCESS_KEY_SECRET | string | — | Access key secret to be used for S3 storage. Related: privilege.can-use-cloud-storages3.* |
s3.bucket-nameS3 Bucket Name | S3_BUCKET_NAME | string | liquid | Bucket name to be used for S3 storage. Related: privilege.can-use-cloud-storages3.* |
s3.get-object-expiryS3 Get Object Expiry | S3_GET_OBJECT_EXPIRY | number | 3600 | Expiry for getObject pre signed URLs. Related: privilege.can-use-cloud-storages3.* |
s3.put-object-expiryS3 Put Object Expiry | S3_PUT_OBJECT_EXPIRY | number | 3600 | Expiry for putObject pre signed URLs. Related: privilege.can-use-cloud-storages3.* |
get-user-max-itemsGet User API Max Items | GET_USER_MAX_ITEMS | number | 650 | Specifies the maximum number of users for which details can be retrieved in a single API call. |
redis.portRedis Port | REDIS_PORT | number | 6379 | Port for the Redis connection. Related: privilege.can-use-cacheredis.* |
redis.hostRedis Host | REDIS_HOST | string | 127.0.0.1 | Host for the Redis connection. Related: privilege.can-use-cacheredis.* |
redis.usernameRedis Username | REDIS_USERNAME | string | — | Username for the Redis connection. Related: privilege.can-use-cacheredis.* |
redis.passwordRedis Password | REDIS_PASSWORD | string | — | Password for the Redis connection. Related: privilege.can-use-cacheredis.* |
redis.dbRedis Database Number | REDIS_DB | number | 0 | Password for the Redis connection. Related: privilege.can-use-cacheredis.* |
redis.key-prefixRedis Key Prefix | REDIS_KEY_PREFIX | string | liquid: | Key prefix for Redis keys. Related: privilege.can-use-cacheredis.* |
redis.channel-nameRedis Channel Name | REDIS_CHANNEL_NAME | string | liquid: | Channel name for Redis Publisher. Only set this if you use pusher events with Redis adapter. Related: privilege.can-use-push-eventsprivilege.can-use-cacheredis.* |
system.queue-adapterSystem Queue Adapter | SYSTEM_QUEUE_ADAPTER | string | rabbitmq | Specifies the queue adapter to use to send system events. Related: privilege.can-use-push-eventsprivilege.can-use-rabbitmq |
system.push-eventsSystem Push Events | SYSTEM_PUSH_EVENTS | stringArray | user.follow | Comma separated list of events in the format `event_class.event` that the system should push to queue. Related to `Can Use Push Events (privilege.can-use-push-events)` Related: privilege.can-use-push-eventsprivilege.can-use-rabbitmq |
system.push-events.prefixSystem Push Events Prefix | SYSTEM_PUSH_EVENTS_PREFIX | string | liquid. | Prefix to be used for push events send by Liquid. Related: privilege.can-use-push-eventsprivilege.can-use-rabbitmq |
rabbitmq.connectionStringRabbitMQ Connection String | RABBITMQ_CONNECTION_STRING | string | amqp://localhost:5672 | Connection string for RabbitMQ connection. Related: privilege.can-use-push-eventsprivilege.can-use-rabbitmq |
rabbitmq.channel-nameRabbitMQ Channel Name | RABBITMQ_CHANNEL_NAME | string | liquid-events | Channel name for RabbitMQ outbound events. Related: privilege.can-use-push-eventsprivilege.can-use-rabbitmq |
pusher.webhook.urlPusher Webhook URL | PUSHER_WEBHOOK_URL | string | — | Webhook URL for the webhook pusher adapter. An HTTP POST request will be made to this URL with the push event object. Related: privilege.can-use-webhook-pushersystem.queue-adapter |
pusher.webhook.secretPusher Webhook Secret | PUSHER_WEBHOOK_SECRET | string | — | Secret key for generating the HMAC SHA256 signature for the webhook payload. Will be sent via the X-Webhook-Signature header. Related: privilege.can-use-webhook-pushersystem.queue-adapter |
cors.allowed-originsAllowed Origins for CORS requests | CORS_ALLOWED_ORIGINS | stringArray | http://localhost:3000 | Allowed origins for CORS requests. |
cors.scan-intervalCORS Scan Interval | CORS_SCAN_INTERVAL | number | 300 | Interval in seconds to scan for new origins. |
privilege.can-use-cacheCan Use Cache | CAN_USE_CACHE | boolean | true | Specifies whether to use cache for optimizing API response time. Related: redis.* |
privilege.can-use-rabbitmqCan Use RabbitMQ | CAN_USE_RABBITMQ | boolean | false | Specifies whether system can use RabbitMQ. Related: privilege.can-use-push-events |
privilege.can-use-push-eventsCan Use Push Events | CAN_USE_PUSH_EVENTS | boolean | false | Specifies if the system should publish certain events to RabbitMQ that can be used by external services. Related: privilege.can-use-rabbitmqprivilege.can-use-webhook-pusher |
privilege.can-use-webhook-pusherCan Use Webhook Pusher | CAN_USE_WEBHOOK_PUSHER | boolean | false | Specifies whether system can use Webhook Pusher. Related: privilege.can-use-push-events |
privilege.can-use-follow-apisCan Use Follow APIs | CAN_USE_FOLLOW_APIS | boolean | true | Specifies whether the application will allow users to use follow and unfollow mechanisms |
privilege.can-use-profile-picture-apisCan Use Profile Picture APIs | CAN_USE_PROFILE_PICTURE_APIS | boolean | false | Specifies if users can use profile picture features. If enabled, you will require a S3 or S3-like cloud storage. Update options `Can Use Cloud Storage`, `S3 Access Key ID`, `S3 Access Key Secret`, `S3 Endpoint` and `S3 Bucket Name` along with this. Related: privilege.can-use-cloud-storage |
privilege.can-use-delegated-user-search-apiCan Use User Search API (Delegated) | CAN_USE_DELEGATED_USER_SEARCH_API | boolean | true | Specifies if users can search for other users in the system. |
privilege.can-use-admin-user-search-apiCan Use User Search API (Admin) | CAN_USE_ADMIN_USER_SEARCH_API | boolean | true | Specifies if admins can search for other users in the system. |
privilege.can-use-cloud-storageCan Use Cloud Storage | CAN_USE_CLOUD_STORAGE | boolean | false | Specifies if the application can use cloud storage. Related: s3.* |
privilege.can-use-phone-numberCan Use Phone Number On Signing Up | CAN_USE_PHONE_NUMBER | boolean | false | Specifies if users can signup with phone numbers. Note that Liquid currently does not support verification of phone numbers. By default, all phone numbers are marked as unverified. |
privilege.can-create-accountCan Use Create Account | CAN_CREATE_ACCOUNT | boolean | true | Specifies if users can signup into the service. If false, users can be created using the bulk create api at `users/admin-api/create` or `users/client-api/create`. |
privilege.can-reset-passwordCan Reset Password | CAN_RESET_PASSWORD | boolean | true | Specifies if users can reset their passwords using forgot password option. |
privilege.can-use-credit-transaction-historyCan Use Credit Transaction History | CAN_USE_CREDIT_TRANSACTION_HISTORY | boolean | false | Specifies if the application should maintain a history of credit changes for user accounts. |
user.profile.username-validation-regexUser Profile Username Validation Regex | USER_PROFILE_USERNAME_VALIDATION_REGEX | string | ^[a-z_][a-z0-9._]*$ | Specifies the regex to be used to validate username for user accounts. |
user.profile.name-validation-regexUser Profile Name Validation Regex | USER_PROFILE_NAME_VALIDATION_REGEX | string | ^[\p{L}\p{M}'-]+$ | Specifies the regex to be used to validate name for user accounts. |
user.profile.password-validation-regexUser Profile Password Validation Regex | USER_PROFILE_PASSWORD_VALIDATION_REGEX | string | — | Specifies the regex to be used to validate password for user accounts. |
user.profile.custom-data.hydrate-in-delegated-modeUser Profile Custom Data Hydrate In Delegated Mode | USER_PROFILE_CUSTOM_DATA_HYDRATE_IN_DELEGATED_MODE | boolean | false | Specifies if custom data has to be sent in delegated/general use APIs. This option does not hide custom data from admin and client APIs. For controlling custom data visibility in GET /user/me, the option `user.profile.custom-data.hydrate-in-self-retrieval` should be adjusted. Related: user.profile.custom-data.hydrate-in-self-retrieval |
user.profile.custom-data.hydrate-in-self-retrievalUser Profile Custom Data Hydrate In Self Retrieval | USER_PROFILE_CUSTOM_DATA_HYDRATE_IN_SELF_RETRIEVAL | boolean | true | Specifies if custom data has to be sent in while hitting GET /user/me. This option works independent of the value in option `user.profile.custom-data.hydrate-in-delegated-mode`. Related: user.profile.custom-data.hydrate-in-delegated-mode |
user.login.history-record-expires-inUser Login History Record Expires In | USER_LOGIN_HISTORY_RECORD_EXPIRES_IN | number | 86400 | Specifies in seconds the amount of time after which login history records will expire. By default this data is stored for upto 24 hours. |
user.login.record-successful-attemptsUser Login Record Successful Attempts | USER_LOGIN_RECORD_SUCCESSFUL_ATTEMPTS | boolean | true | Specifies if successful login attempts should be logged. |
user.login.record-failed-attemptsUser Login Record Failed Attempts | USER_LOGIN_RECORD_FAILED_ATTEMPTS | boolean | true | Specifies if failed login attempts should be logged. |
user.login.require-user-agentUser Login Require User Agent | USER_LOGIN_REQUIRE_USER_AGENT | boolean | true | Specifies if user agent should be mandated in login requests. |
user.account-creation.require-email-verificationUser Account Creation Require Email Verification | USER_ACCOUNT_CREATION_REQUIRE_EMAIL_VERIFICATION | boolean | true | Specifies if email verification is required while signing up in the service. Also modify `user.account-creation.require-email-verification` in your frontend app config. Related: sendgrid.* |
user.account-creation.enable-invite-onlyUser Account Creation Enable Invite Only | USER_ACCOUNT_CREATION_ENABLE_INVITE_ONLY | boolean | false | Specifies if accounts can be created only using an invite code. Related: user.account-creation.invites-per-person |
user.account-creation.force-generate-invite-codesUser Account Creation Force Generate Invite Codes | USER_ACCOUNT_CREATION_FORCE_GENERATE_INVITE_CODES | boolean | false | Specifies if the system can generate invite codes on account creation even if `user.account-creation.enable-invite-only` option is turned off. Related: user.account-creation.enable-invite-only |
user.account-creation.invites-per-personUser Account Creation Invites Per Person | USER_ACCOUNT_CREATION_INVITES_PER_PERSON | number | 5 | Specifies the number of invites a person can make. Related: user.account-creation.enable-invite-only |
invite-only.code-generation.max-limit-per-requestInvite Only Code Generation Max Limit Per Request | INVITE_CODE_CODE_GENERATION_MAX_LIMIT_PER_REQUEST | number | 15 | Specifies the maximum number of invite codes that can be generated for a user per request from admin and client APIs. |
user.account-creation.invite-code-availability-windowUser Account Creation Invite Code Availability Window | USER_ACCOUNT_CREATION_INVITE_CODE_AVAILABILITY_WINDOW | number | 10 | Specifies the window size in seconds to have been ellapsed since user account creation after which users can get their invite codes. Related: user.account-creation.enable-invite-only |
user.account-creation.allow-only-whitelisted-email-domainsUser Account Creation Allow Only Whitelisted Email Domains | USER_ACCOUNT_CREATION_ALLOW_ONLY_WHITELISTED_EMAIL_DOMAINS | boolean | false | Specifies if account creation API should allow only the whitelisted email domains in email field. Related: user.account-creation.whitelisted-email-domains |
user.account-creation.whitelisted-email-domainsUser Account Creation Whitelisted Email Domains | USER_ACCOUNT_CREATION_WHITELITED_EMAIL_DOMAINS | stringArray | gmail.com,googlemail.com,outlook.com,live.com,live.fr,live.co.uk,live.nl,live.it,live.com.au,live.ca,hotmail.com,hotmail.co.uk,hotmail.fr,hotmail.it,hotmail.es,hotmail.de,yahoo.com,yahoo.fr,yahoo.co.uk,yahoo.com.br,yahoo.co.in,hotmail.de,rocketmail.com,yahoo.in,yahoo.ca,yahoo.com.au,yahoo.com.ar,yahoo.com.mx,yahoo.com.sg,mac.com,msn.com,icloud.com,mail.com,yandex.ru,proton.me,protonmail.com | Comma separated list of domain names allowed for user sign up. Particularly useful to prevent users from using disposable emails. Related: user.account-creation.allow-only-whitelisted-email-domains |
user.account-creation.sanitize-gmail-addressesUser Account Creation Sanitize Gmail Addresses | USER_ACCOUNT_CREATION_SANITIZE_GMAIL_ADDRESSES | boolean | true | Specifies if Gmail addresses should be sanitized before writing and reading from the database. This prevents users from creating duplicate accounts by inserting dots in their email. Check https://support.google.com/mail/answer/7436150 for more info. |
user.account-creation.enable-ip-based-throttleUser Account Creation Enable IP Based Throttle | USER_ACCOUNT_CREATION_ENABLE_IP_BASED_THROTTLE | boolean | false | Specifies if creating multiple accounts from the same IP should be throttled for a specified amount of time. Related: user.account-creation.ip-based-throttle.window-size |
user.account-creation.ip-based-throttle.window-sizeUser Account Creation IP Based Throttle Window Size | USER_ACCOUNT_CREATION_IP_BASED_THROTTLE_WINDOW_SIZE | number | 86400 | Specifies the window size in seconds to throttle the account creation. Default is 24 hours. Related: user.account-creation.enable-ip-based-throttle |
user.account-creation.initial-credit-countUser Account Creation Initial Credit Count | USER_ACCOUNT_CREATION_INITIAL_CREDIT_COUNT | number | 0 | Specifies the initial amount of credits user accounts will have after creation. |
user.account-creation.default-scopeUser Account Creation Default Scope | USER_ACCOUNT_CREATION_DEFAULT_SCOPE | stringArray | delegated:all | Comma separated list of scopes that should be assigned to users accounts when they are created. |
user.account-creation.custom-data.default-valueUser Account Creation Custom Data Default Value | USER_ACCOUNT_CREATION_CUSTOM_DATA_DEFAULT_VALUE | string | {} | Valid JSON string that should be assigned to users account customData field when they are created. |
user.account-creation.preserve-unverified-user-idUser Account Creation Preserve Unverified User ID | USER_ACCOUNT_CREATION_PRESERVE_UNVERIFIED_USER_ID | boolean | true | Specifies if the system should preserve the existing unverified user's ID when replacing them with a new user registration using the same credentials. |
user.account-creation.verificaton-code-lifetimeUser Account Creation Verificaton Code Lifetime | USER_ACCOUNT_CREATION_VERIFICATION_CODE_LIFETIME | number | 3600 | Expiry time in seconds for verification codes. |
user.account-creation.sso.google.enabledUser Account Creation Enable Google SSO | USER_ACCOUNT_CREATION_SSO_GOOGLE_ENABLED | boolean | false | Specifies if Google signon should be enabled. |
user.account-creation.sso.google.client-idUser Account Creation Google SSO Client ID | USER_ACCOUNT_CREATION_SSO_GOOGLE_CLIENT_ID | string | — | Specifies the client ID for Google SSO. |
user.account-creation.sso.google.client-secretUser Account Creation Google SSO Client Secret | USER_ACCOUNT_CREATION_SSO_GOOGLE_CLIENT_SECRET | string | — | Specifies the client secret for Google SSO. |
user.account-creation.sso.google.use-given-name-as-last-nameUser Account Creation Google SSO Use Given Name As Last Name | USER_ACCOUNT_CREATION_SSO_GOOGLE_USE_GIVEN_NAME_AS_LAST_NAME | boolean | true | Specifies if the given name should be used as the last name when family name is not available from Google profile. Related: user.profile.update.require-current-passworduser.profile.update.protected-fields |
user.profile.update.require-current-passwordUser Profile Update Require Current Password | USER_PROFILE_UPDATE_REQUIRE_CURRENT_PASSWORD | boolean | true | Specifies if the current password is required when updating protected fields in the profile. |
user.profile.update.protected-fieldsUser Profile Update Protected Fields | USER_PROFILE_UPDATE_PROTECTED_FIELDS | stringArray | password | Comma separated list of fields that require current password to be updated. |
user.login.sso.token-lifetimeUser Login Google SSO Token Lifetime | USER_LOGIN_SSO_GOOGLE_SSO_TOKEN_LIFETIME | nummber | 600 | Specifies the lifetime of the token generated by Google SSO login sesion in seconds. |
user.profile.editable-fieldsProfile Editable Fields | USER_PROFILE_EDITABLE_FIELDS | stringArray | firstName,lastName,middleName,password,bio,pronouns,customLink,organization,gender,preferredLanguage | Comma specified list of fields that are editable by edit profile API. |
admin-api.user.profile.editable-fieldsProfile Editable Fields (Admin API) | ADMIN_API_USER_PROFILE_EDITABLE_FIELDS | stringArray | username,email,password,isDeleted,role,firstName,lastName,middleName,bio,pronouns,customLink,organization,designation,gender,preferredLanguage,country | Comma specified list of fields that are editable by edit profile API. |
client-api.user.profile.editable-fieldsProfile Editable Fields (Client API) | CLIENT_API_USER_PROFILE_EDITABLE_FIELDS | stringArray | username,email,password,isDeleted,role,firstName,lastName,middleName,bio,pronouns,customLink,organization,designation,gender,preferredLanguage,country | Comma specified list of fields that are editable by edit profile API. |
client.id-validation-regexClient ID Validation Regex | CLIENT_ID_VALIDATION_REGEX | string | ^[a-z_][a-z0-9._]*$ | Specifies the regex to be used to validate id for clients. |
admin-api.user.profile.can-edit-peer-dataProfile Can Edit Peer Profile Data (Admin API) | ADMIN_API_USER_PROFILE_CAN_EDIT_PEER_DATA | boolean | true | Specifies if roles with equal rank can edit profile data of each other. |
user.search.search-fieldsUser Search Fields | USER_SEARCH_SEARCH_FIELDS | stringArray | username,firstName,lastName,email,role | Specifies the field names that can be used to search for users. |
user.search.strict-match-fieldsUser Search Strict Match Fields | USER_SEARCH_STRICT_MATCH_FIELDS | stringArray | | Specifies the fields that should be returned only if the search query matches the string in the field exactly. The field should also be a part of `user.search.search-fields`. |
privilege.user.search.can-use-idCan Use ID for User Search | USER_SEARCH_CAN_USE_ID | boolean | true | Specifies if _id field of records can be used to search for users. |
privilege.user.search.can-use-fullnameCan Use Fullname for User Search | USER_SEARCH_CAN_USE_FULLNAME | boolean | true | Specifies if firstName and lastName fields can be concatenated and used to search for users. |
user.search-results.cache-lifetimeUser Search Results Cache Lifetime | USER_SEARCH_RESULTS_CACHE_LIFETIME | number | 30 | Specifies in seconds the amount of time for which results for a search query will be cached. Related: privilege.can-use-cache |
user.field-privacy.non-follower.hidden-fieldsUser Field Non-Follower Hidden Fields | USER_FIELD_PRIVACY_NON_FOLLOWER_HIDDEN_FIELDS | stringArray | email,phone,secondaryEmail,secondaryPhone,isBanned,credits,scope,restricted,customData | Specifies fields that should be hidden when accounts are retrieved by people who are not following a user. |
user.search-results.limitUser Search Results Limit | USER_SEARCH_RESULTS_LIMIT | number | 10 | Specifies the maximum number of results to be returned in user search API. |
admin-api.user.search.search-fieldsUser Search Fields (Admin API) | ADMIN_API_USER_SEARCH_SEARCH_FIELDS | stringArray | username,firstName,lastName,email | Specifies the field names that can be used to search for users. |
admin-api.privilege.user.search.can-use-idCan Use ID for User Search (Admin API) | ADMIN_API_USER_SEARCH_CAN_USE_ID | boolean | true | Specifies if _id field of records can be used to search for users. |
admin-api.privilege.user.search.can-use-fullnameCan Use Fullname for User Search (Admin API) | ADMIN_API_USER_SEARCH_CAN_USE_FULLNAME | boolean | true | Specifies if firstName and lastName fields can be concatenated and used to search for users. |
admin-api.user.search-results.cache-lifetimeUser Search Results Cache Lifetime (Admin API) | ADMIN_API_USER_SEARCH_RESULTS_CACHE_LIFETIME | number | 30 | Specifies in seconds the amount of time for which results for a search query will be cached. Related: privilege.can-use-cache |
admin-api.user.search-results.limitUser Search Results Limit (Admin API) | ADMIN_API_USER_SEARCH_RESULTS_LIMIT | number | 10 | Specifies the maximum number of results to be returned in user search API. |
admin-api.user.search.strict-match-fieldsUser Search Strict Match Fields (Admin API) | ADMIN_API_USER_SEARCH_STRICT_MATCH_FIELDS | stringArray | role | Specifies the fields that should be returned only if the search query matches the string in the field exactly. The field should also be a part of `admin-api.user.search.search-fields`. |
client-api.user.search.search-fieldsUser Search Fields (Client API) | CLIENT_API_USER_SEARCH_SEARCH_FIELDS | stringArray | username,firstName,lastName,email | Specifies the field names that can be used to search for users. |
client-api.user.search.strict-match-fieldsUser Search Strict Match Fields (Client API) | CLIENT_API_USER_SEARCH_STRICT_MATCH_FIELDS | stringArray | role | Specifies the fields that should be returned only if the search query matches the string in the field exactly. The field should also be a part of `client-api.user.search.search-fields`. |
client-api.user.search-results.cache-lifetimeUser Search Results Cache Lifetime (Client API) | CLIENT_API_USER_SEARCH_RESULTS_CACHE_LIFETIME | number | 30 | Specifies in seconds the amount of time for which results for a search query will be cached. Related: privilege.can-use-cache |
client-api.user.search-results.limitUser Search Results Limit (Client API) | CLIENT_API_USER_SEARCH_RESULTS_LIMIT | number | 10 | Specifies the maximum number of results to be returned in user search API. |
client-api.privilege.user.search.can-use-idCan Use ID for User Search (Client API) | CLIENT_API_USER_SEARCH_CAN_USE_ID | boolean | true | Specifies if _id field of records can be used to search for users. |
client-api.privilege.user.search.can-use-fullnameCan Use Fullname for User Search (Client API) | CLIENT_API_USER_SEARCH_CAN_USE_FULLNAME | boolean | true | Specifies if firstName and lastName fields can be concatenated and used to search for users. |
user.block-status.cache-lifetimeUser Block Status Cache Lifetime | USER_BLOCK_STATUS_CACHE_LIFETIME | number | 60 | Specifies in seconds the amount of time for which block status will be cached. Related: privilege.can-use-cache |
user.subscription.tier-listUser Subscription Tier List | USER_SUBSCRIPTION_TIER_LIST | stringArray | basic,premium | Comma separated list of subscription tier names. |
user.subscription.base-tierUser Subscription Base Tier | USER_SUBSCRIPTION_BASE_TIER | string | basic | Specifies the basic tier of the subscription. When a user's subscription expires, they will be reverted to the base tier. |
user.profile-picture.max-file-sizeUser Profile Picture Max File Size | USER_PROFILE_PICTURE_MAX_FILE_SIZE | number | 500000 | Specifies in bytes the max file size for user profile pictures. |
user.profile-picture.signed-url.expiryUser Profile Picture Signed URL Expiry | USER_PROFILE_PICTURE_SIGNED_URL_EXPIRY | number | 14400 | Specifies in seconds the expiry time for user profile picture links. |
pagination.default-limitPagination Default Limit | PAGINATION_DEFAULT_LIMIT | number | 10 | Specifies the default number of results to be returned in paginated APIs |
pagination.max-limitPagination Max Limit | PAGINATION_MAX_LIMIT | number | 1000 | Specifies the maximum number of results to be returned in paginated APIs |
system.rate-limit.window-sizeRate Limit Window Size | SYSTEM_RATE_LIMIT_WINDOW_SIZE | number | 60 | Window size (in seconds) for rate limiting. |
system.rate-limit.light-api-max-limitLight API Max Limit | SYSTEM_RATE_LIMIT_LIGHT_API_MAX_LIMIT | number | 75 | Specifies the rate limit for light APIs for the specified window size. |
system.rate-limit.medium-api-max-limitMedium API Max Limit | SYSTEM_RATE_LIMIT_MEDIUM_API_MAX_LIMIT | number | 30 | Specifies the rate limit for medium APIs for the specified window size. |
system.rate-limit.heavy-api-max-limitHeavy API Max Limit | SYSTEM_RATE_LIMIT_HEAVY_API_MAX_LIMIT | number | 10 | Specifies the rate limit for heavy APIs for the specified window size. |
system.rate-limit.extreme-api-max-limitExtreme API Max Limit | SYSTEM_RATE_LIMIT_EXTREME_API_MAX_LIMIT | number | 5 | Specifies the rate limit for extreme APIs for the specified window size. |
system.rate-limit.count-by-routeRate Limiter Count By Route | SYSTEM_RATE_LIMIT_COUNT_BY_ROUTE | boolean | true | Specifies if the rate limit counter should be incremented per route per IP instead of just the IP. This means rate limit will be counted independendly for every API. |
system.role.defaultSystem Default Role | SYSTEM_DEFAULT_ROLE | string | user | Specifies the default role to be used when users are signing up. |
2fa.email.enabled2FA Enabled | 2FA_EMAIL_ENABLED | boolean | false | Specifies if users can enable 2 factor authentication. Related: 2fa.email.enforce |
2fa.email.enforce2FA Enforce | 2FA_EMAIL_ENFORCE | boolean | false | Specifies if users are enforced to authenticate with 2 factor authentication. Related: 2fa.email.enabled |
system.exposed-optionsSystem Exposed Options | SYSTEM_EXPOSED_OPTIONS | stringArray | ["system.app-name","admin-api.user.profile.can-edit-peer-data","pagination.default-limit","pagination.max-limit","user.account-creation.invites-per-person","user.account-creation.invite-code-availability-window"] | Comma separated list of options that a user can have access to after logging in. This will also include insecure settings. |
system.exposed-options.insecureSystem Exposed Options (Public) | SYSTEM_EXPOSED_OPTIONS_INSECURE | stringArray | ["privilege.can-create-account","privilege.can-use-phone-number","user.account-creation.enable-invite-only","user.account-creation.require-email-verification","privilege.can-reset-password","user.login.require-browser-info","user.login.require-os-info","user.account-creation.sso.google.enabled","user.password-reset.require-current-password"] | Comma separated list of options that a user can have access to before logging in. |