Skip to the content.

HomeHelp

config.js

Low level configuration is done using the required data/config.js file. The available properties are defined below.

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'],
  canUpdateWorkOrders: ['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

  backgroundURL?: string      // Shown on login
  logoURL?: string

  maximumProcesses?: number

  useTestDatabases?: boolean

  attachmentsPath?: string    // The folder to save files to
}

Session Configuration

Manages user session settings.

session: {
  cookieName?: string
  maxAgeMillis?: number
  secret?: string

  doKeepAlive?: boolean
}

Reverse Proxy Configuration

Controls reverse proxy behavior.

reverseProxy: {
  disableCompression?: boolean   // Disable response compression
  disableEtag?: boolean          // Disable ETag headers
  disableRateLimit?: boolean     // Disable rate limiting
  urlPrefix?: string             // URL prefix for the application
}

Login Configuration

login: {
  authentication: {
    type: 'activeDirectory' | 'adWebAuth' | 'function' | 'plainText'
    config: AuthenticatorConfiguration
  }
  domain: string
}

User Configuration

Controls user permissions and access levels.

users: {
  canLogin?: string[]             // Users who can log in
  canUpdate?: string[]            // Users who can update all types of records (cemeteries, contracts, and work orders)
  canUpdateCemeteries?: string[]  // Users who can update cemeteries and burial sites
  canUpdateContracts?: string[]   // Users who can update contracts and funeral homes
  canUpdateWorkOrders?: string[]  // Users who can update work orders
  isAdmin?: string[]              // Administrative users
}