config.js
Low level configuration is done using the required data/config.js
file.
The available properties are defined below.
💡 Note that any changes to settings in the config.js
file
require an application restart to take effect.
💡 In Typescript environments, the configuration object can be tied to the
Config
interface in
types/config.types.ts
for help with configuration.
Another way to help with configuration is by importing one of the
partial configurations in the
data/partialConfigs
folder. For example, if you are setting up an instance of Sunrise CMS for
a cemetery in Ontario Canada, some configuration can be imported from
data/partialConfigs/ontario.partialConfig.js
.
As a starting point, it is recommended to import
data/partialConfigs/partialConfig.js
.
Sample Configuration File
A simple config.js
file may look like the following.
import { config as partialConfig } from './partialConfigs/ontario.partialConfig.js'
export const config = Object.assign({}, partialConfig)
// Method to authenticate users
config.login = {
authentication: {
type: 'activeDirectory',
config: {
url: 'ldap://example.com',
baseDN: 'dc=example,dc=com',
bindUserDN: 'CN=service.acct,OU=Accounts,DC=example,DC=com',
bindUserPassword: 'p@ssword'
}
},
domain: 'example'
}
config.users = {
canLogin: ['administrator', 'readOnlyUser', 'updateUser'],
canUpdate: ['updateUser'],
isAdmin: ['administrator']
}
// Required final default export
export default config
A sample working configuration file is available in
data/testing.config.js
.
Application Configuration
application: {
applicationName?: string // Defaults to 'Sunrise CMS'
httpPort?: number
application
backgroundUrl?: string // Shown on login
logoUrl?: string
maximumProcesses?: number
useTestDatabases?: boolean
attachmentsPath?: string // The folder to save files to
maxAttachmentFileSize?: number // In megabytes
}
Session Configuration
Manages user session settings.
session: {
cookieName?: string
maxAgeMillis?: number
secret?: string
doKeepAlive?: boolean // Whether or not to attempt to keep sessions active
}
Reverse Proxy Configuration
Controls reverse proxy behavior.
reverseProxy: {
disableCompression?: boolean // Disable response compression
disableEtag?: boolean // Disable ETag headers
disableRateLimit?: boolean // Disable rate limiting
trafficIsForwarded?: boolean // Whether or not traffic is forwarded
urlPrefix?: string // URL prefix for the application
}
Login Configuration
For examples, see the login
block section of “Logging In for the First Time”.
login: {
authentication: {
type: 'activeDirectory' | 'adWebAuth' | 'function' | 'plainText'
config: AuthenticatorConfiguration
}
domain: string
}
User Configuration
Controls user permissions and access levels.
User permissions can also be managed in Sunrise CMS itself. Permissions managed there are recorded in the database.
For examples, see the users
block section of “Logging in for the First Time”.
users: {
// Users who can log in
canLogin?: string[]
// Users who can update all types of records
// (cemeteries, contracts, and work orders)
canUpdate?: string[]
// Users who can update cemeteries and burial sites
canUpdateCemeteries?: string[]
// Users who can update contracts and funeral homes
canUpdateContracts?: string[]
// Users who can update work orders
canUpdateWorkOrders?: string[]
// Administrative users
isAdmin?: string[]
}