Export Settings
Export configuration from a server. If you don't specify a to
, we look for a CommandBox server using the current working directory. Only rely on this if you have a single CommandBox server running in the current directory.
All the same rules for engine format and version apply.
The version number can be left off toFormat
and fromFormat
when reading or writing to a CFConfig JSON file or a CommandBox server since we already know the version. If you don't specify a Lucee web or Server context, we default to server. Use a format of "luceeWeb" to switch.
In some situations you might need to alter the data being imported such as with Scheduled Tasks that you might not want to run on the target server. Adding the --pauseTasks
flag will import the scheduled tasks in the paused state.
IncludeList and excludeList
You can customize what config settings are transferred with the includeList
and excludeList
params. If at least one include pattern is provided, only matching settings will be included. Nested keys such as datasources.myDSN
or mailservers[1]
can be used. You may also use basic wildcards in your pattern. A single *
will match any number of chars inside a key name. A double **
will match any number of nested keys.
Append flag
Use the append
parameter to merge incoming data with any data already present. For example, if a server already has one datasource defined, and you import a JSON file with 2 more unique datasources, the --append
flag will not remove the pre-existing one.
JSON Expansion Replacements
If you usually replace sensitive or volatile information in a JSON export with env var expansions like ${DB_PASSWORD},
you can do this automatically my supplying one or more replace mappings. The key is a regular expression to match a key in the format of datasources.myDSN.password
and the value is the name of the env var to use. The values will be written to a .env
file in the current working directory. You can override this path with the dotenvFile
param, or pass an empty string to disable it from being written.
As the value is a regular expression, you can use backreferences like \1
in your env var to make them dynamic.
This example would create env vars such as DB_MYDSN_PASSWORD
where MYDSN
is your actual datasource name.
Any valid regex is possible for some clever replacements. This example would create env vars such as DB_MYDSN_PORT
, DB_MYDSN_HOST
, and DB_MDSN_DATABASE
To avoid having to pass these replacements every time you transfer your config, you can set then as a global setting for the commandbox-cfconfig
module.
Note, the config set
syntax shown above require at least CommandBox 5.4.0
Last updated