App Settings

The DB-backed, admin-editable settings defined in SettingService.static.DEFAULTS.

On this page

App Settings

These live in SettingService.static.DEFAULTS, are seeded on boot by preFlightCheck(), cached with a 2-hour TTL, and editable at /settings by anyone with the settings:write (or settings:admin) permission — see Configuration.

The Global Settings admin page

Authentication & registration

SettingPurpose
cbLoginLayoutLayout used for auth pages (AuthSplit by default; choose AuthCenter or AuthSplit)
cbAllowRegistrationEnables/disables self-service registration
cbAllowForgotPasswordEnables/disables the forgot-password flow
cbAllowRememberMeEnables/disables the "remember me" cookie
cbRememberMeDaysHow long a remember-me token stays valid (default: 14)
cbRequirePasskeyForces passkey enrollment before reaching the admin area

Login layout selection

The Settings page exposes cbLoginLayout as a selector:

ValueLayoutAppearance
AuthSplitapp/layouts/AuthSplit.bxmTwo-panel login: branding/features on the left and the form on the right. On small screens it collapses to the form with compact branding. This is the default.
AuthCenterapp/layouts/AuthCenter.bxmCentered authentication card with the logo, form, and authentication footer.

Select Auth Center or Auth Split at /settings, save the settings, and reload the authentication page. The handler calls event.setLayout( prc.settings.cbLoginLayout ), so the selected layout applies to login, registration, invitation activation, and password-recovery pages. You may also set the value in the database or add a custom layout name under app/layouts/ if your application supplies that layout.

Password & token policy

SettingPurpose
cbMinPasswordLengthMinimum password length (default: 8). SettingService.isValidPassword() also requires an uppercase letter, a lowercase letter, a digit, and a special character, and every server-side path that sets a password (registration, invitation activation, reset, and profile change) runs it
cbPasswordResetExpirationReset-token validity, in minutes (default: 60)
cbInvitationExpirationInvitation-token validity, in days (default: 7)
cbRegistrationVerificationExpirationRegistration-verification-token validity, in hours (default: 24)
cbApiTokenMaxValidityMonthsMaximum lifetime an API token can be issued for (default: 12)
cbAuditLogRetentionDaysAge, in days, at which the daily scheduled task hard-deletes audit log entries (default: 90). 0 disables the purge - see Scheduled Tasks
cbRateLimitMaxAttemptsAttempts allowed per IP, per endpoint, before RateLimiter blocks login/registration/password-reset (default: 5) - see Rate limiting
cbRateLimitWindowSecondsRate limit window, in seconds (default: 300). 0 disables rate limiting entirely
cbTrustProxyHeadersWhether RateLimiter, the audit trail, and security emails trust the X-Forwarded-For/X-Cluster-Client-IP headers for the caller's IP (default: true, since this app is typically deployed behind a reverse proxy or load balancer). Turn this off only if the app is directly internet-facing with nothing in front of it - see Deployment behind a proxy
cbEncryptionKey / cbSaltingKeyEncryption/salting keys used by the security layer

Branding & appearance

SettingPurpose
cbAppNameApplication display name
cbAppLogoLogo shown in the admin sidebar. Either a manually-entered URL, or /branding/logo/lg after an upload via Settings — see Avatars & branding logo
cbAppTaglineTagline shown alongside the logo
cbAppBrandTaglineShort branding label shown in the sidebar brand area
cbCopyrightNoticeCopyright text rendered by the application footer
cbDefaultThemeDefault light/dark theme for new visitors

Email

SettingPurpose
cbDefaultEmailDefault "from" address for outgoing mail
cbMailHost / cbMailPortSMTP host/port
cbMailUsername / cbMailPasswordSMTP credentials
cbMailTLS / cbMailSSLTransport security flags

Audit log

SettingPurpose
cbAuditLogRetentionDaysNumber of days audit records are retained by the scheduled purge. Set to 0 to disable automatic purging (default: 90).

Secrets and encryption

SettingPurpose
cbEncryptionKeyAES encryption secret used by the security/storage layer. Replace the generated development value with a stable secret in production.
cbSaltingKeySalt used by security operations. Keep it stable and secret in production.
ConfigurationEnvironment variables, framework settings, and per-module configuration. Extending the AppAdd a new CRUD module, permission, setting, or scheduled task, following the app's own conventions.
Edit this page Download Markdown Last updated Sep 16, 2026, 5:50:56 PM