Package Configuration (package.yml)

The main configuration file of all packages is located at /etc/<PACKAGE>/package.yml, and consists of information on everything from basic package and CI pipeline details to menus, hashes, and configuration variables.

The below table explains all available sections within the package.yml file. Click on the links for a detailed explanation of each.

Section Description
general Overall general information on the package such as description, access level, price if commercial, etc.
acl The access control level of the repository, defining who has read and write access to the different parts of the repository.
pipeline Acceptable limits of the CI pipeline to result in a success, allowing for automated syncing to the production server.
web_hooks URLs to send a HTTP request to upon successful CI pipeline run.
config Configuration variables.
menus Menus to add throughout the system within admin panel, members area, public site, etc.
hashes Hashes which are essentially key-value pairs used to populate select / checkbox / radio lists.
services Mark certain classes as services, meaning the container will only ever instantiate one instance per-request.
email_notifications Default e-mail notifications that are created during initial package installation.
boxlist_items Generally used for settings pages such as Settings->Users menu, and allows for extendable list of items.

Scan Package

Every time you make a change to the package.yml file, you must scan the package in order for the changes to take effect within the database. This can be done by simply running the scan CLI command, such as:

apex scan <PACKAGE>

This will go through all data within the package.yml file and ensure the database is up to date.