Skip to the content.

HomeHelp

Admin - config.js

The data/config.js file is used to customize your application. On first install, the file does not exist. You can create one from scratch, or get started by using the data/configOntario.js file as a template. You can also import configuration from another file, like data/configOntario.js, then override the settings you want.

export let config = {};

// your configuration
// ...

export default config;

config.application = {};

Property Name Type Description Default Value
applicationName string Make the application your own by changing the name. "Parking Ticket System"
logoURL string The path to a custom logo. Square-shaped images work best. "/images/noParking.svg"
httpPort number The listening port for HTTP. 4000
https object The HTTPS configuration. (Described below)
feature_mtoExportImport boolean When true, Ontario, Canada specific features will be enabled. false
task_nhtsa object Configuration for the NHTSA refresh background thread. (Described below)

config.application.https = {};

Property Name Type Description Default Value
port number The listening port for HTTPS. null
keyPath string The path to the key file. null
certPath string The path to the certificate file. null
passphrase string The secret passphrase for the certificate. null

config.application.task_nhtsa = {};

Property Name Type Description Default Value
runTask boolean When true, the NHTSA background task should run. false
executeHour number The hour of the day when the task should run. 2

config.session = {};

Property Name Type Description Default Value
cookieName string The name of the session cookie. "parking-ticket-system-user-sid"
secret string The secret used to sign the session cookie. "cityssm/parking-ticket-system"
maxAgeMillis number The session timeout in milliseconds. 3600000
doKeepAlive boolean When true, the browser will ping the web application to keep the session active. false

config.admin = {};

Note that this property can be used to activate an admin user, that can then be used to create a proper admin user in the users.db. It should not be used on an ongoing basis.

Property Name Type Description Default Value
defaultPassword string A default password for the admin user. null

config.defaults = {};

Property Name Type Description Default Value
province string The default province code, used when creating new parking ticket records. ""
country string The default country code, used when creating new parking ticket records ""

config.parkingTickets = {};

Property Name Type Description Default Value
ticketNumber object Settings for the ticket number field. (Described below)
licencePlateExpiryDate object Settings for the licence plate expiry date field. (Described below)

config.parkingTickets.ticketNumber = {};

Property Name Type Description Default Value
fieldLabel string The display name for the ticket number field. "Ticket Number"
pattern RegExp The pattern that the field must match. /^[\d\w -]{1,10}$/
isUnique boolean When true, the ticket number is checked to make sure it has not been used in the past two years. true
nextTicketNumberFn function A function that returns the next parking ticket number. function(currentTicketNumber) { return ""; }

config.parkingTickets.licencePlateExpiryDate = {};

Property Name Type Description Default Value
includeDay boolean When true, the expiry date will use a full date field. false

config.parkingTicketStatuses = [parkingTicketStatusA, parkingTicketStatusB, ...];

An array of parking ticket status configuration objects.

parkingTicketStatus = {};

Property Name Type Description Sample Value
statusKey string A unique, behind-the-scenes identifier for the ticket status. "paid"
status string A human-readable, display name for the status. "Paid"
statusField.fieldLabel string A human-readable label for the first status field. "Amount Paid"
statusField2.fieldLabel string A human-readable label for the second status field. "Receipt Number"
isFinalStatus boolean When true, the ticket can be marked as resolved by this status. true
isUserSettable boolean When true, the status will be available from the “Add Status” window. false

config.licencePlateCountryAliases = { [countryShortName: string]: string };

An object mapping country short names to full country names.

// Sample
config.licencePlateCountryAliases = {
  "CA": "Canada",
  "US": "USA"
};

config.licencePlateProvinceAliases = { [countryName: string]: { [provinceShortName: string]: string } };

An object mapping province short names to full province names.

// Sample
config.licencePlateProvinceAliases = {
  "Canada": {
    AB: "Alberta",
    BC: "British Columbia",
    MB: "Manitoba",
    NB: "New Brunswick",
    NL: "Newfoundland and Labrador",
    NS: "Nova Scotia",
    NT: "Northwest Territories",
    NU: "Nunavut",
    ON: "Ontario",
    PE: "Prince Edward Island",
    QC: "Quebec",
    SK: "Saskatchewan",
    YT: "Yukon"
  },
  "USA": {
    AL: "Alabama",
    // ...
    WY: "Wyoming"
  }
};

config.licencePlateProvinces = { [countryName: string]: licencePlateCountry };

An object of province details.

licencePlateCountry = {};

Property Name Type Description
countryShortName string The proper short name for the country.
provinces { [provinceName: string]: licencePlateProvince } An object of province definitions.

licencePlateProvince = {};

Property Name Type Description
provinceShortName string The proper short name for the province.
color string The color code for the licence plate text.
backgroundColor string The color code for the licence plate background.
// Sample
config.licencePlateProvinces = {
  "Canada": {
    countryShortName: "CA",
    provinces: {
      "Alberta": {
        provinceShortName: "AB",
        color: "#dd262b",
        backgroundColor: "#fff"
      },
      // ...
      "Ontario": {
        provinceShortName: "ON",
        color: "#0661a4",
        backgroundColor: "#fff"
      },
      // ...
      "Yukon": {
        provinceShortName: "YT",
        color: "#252525",
        backgroundColor: "#fff"
      }
    }
  },
  "USA": {
    // ...
  }
};

config.genders = [ genderA, genderB, ... ];

An array of observed genders.

gender = {};

Property Name Type Description Sample Value
genderKey string A unique identifier for the gender. "F"
gender string The full gender name. "Female"

config.parkingOffences = {};

Property Name Type Description Default Value
accountNumber.pattern RegExp A regular expression to validate account numbers. /^[\d\w -]{1,20}$/

config.locationClasses = [ locationClassA, locationClassB, ... ];

An array of location classes.

locationClass = {};

Property Name Type Description Sample Value
locationClassKey string A unique identifier for the location class. "parkingLot"
locationClass string The human-readable location class name. "Parking Lot"

config.databaseCleanup = {};

Property Name Type Description Default Value
windowDays number The number of days after a record has been deleted when it can be safely purged. 30

config.mtoExportImport = {};

Configuration settings when using the Ontario, Canada MTO integrations.

Property Name Type Description Sample Value
authorizedUser string The key associated with your acocunt with MTO. "XXXX"