Blog

ColdBox Free Tip 1: Environment Variables In The Config

Maria Jose Herrera September 19, 2024

Spread the word

Maria Jose Herrera

September 19, 2024

Spread the word


Share your thoughts

1/10 FREE ColdBox Tips and Tricks - Book: 102 ColdBox Tips and Tricks!

Welcome to the first of 10 FREE tips and tricks in our "102 ColdBox Tips and Tricks" Book! In this post, we’ll show you how to easily access system environment variables within your ColdBox configuration files, making your app setup smoother and more flexible!

ColdBox Book

Using getSystemSetting() Method!

When working within a ColdBox.cfc or a ModuleConfig.cfc, you can leverage the getSystemSetting() method to retrieve system environment variables. Here’s how it works:

**appName = getSystemSetting( "APPNAME", "ContentBox Modular CMS" )
tier = getSystemSetting( "ENVIRONMENT", "PRODUCTION" )**
  • First Parameter: Name of the environment variable.
  • Second Parameter: A default value, in case the variable is not found.
  • Please note that all environment variables are strings

ColdBox Book

Order of Lookup

The getSystemSetting() ****method follows a specific order when looking for the environment variable:

  1. Java system properties
  2. System environment variables

Need a Specific Value?

  • If you only need a Java system property, use the getSystemProperty() method.
  • If you only need a system environment variable, use the getEnv() method.

Using these methods, you can manage your environment configurations more efficiently, ensuring that your ColdBox applications are always correctly set up across different environments.

.env Convention

If you are running your ColdBox applications with CommandBox, you have the extra benefit of having an .env file in the root of your application. CommandBox will read it and seed it into the engine for you upon startup so you can use those as environment variables. Here is a sample .env file:

# ColdBox Name and Environment
APPNAME=ColdBox
ENVIRONMENT=development

# Database Information
DB_CONNECTIONSTRING=jdbc:mysql: //127.0.0.1:3306/coldbox?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useLegacyDatetimeCode=true&allowPublicKeyRetrieval=true
DB_CLASS=com.mysql.jdbc.Driver
DB_BUNDLENAME=com.mysql.cj
DB_BUNDLEVERSION=8.0.30
DB_DRIVER=MySQL
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=coldbox
DB_USER=root
DB_PASSWORD=

# JWT Information
JWT_SECRET=

# S3 Information
S3_ACCESS_KEY=
S3_SECRET_KEY=
S3_REGION=us-east-1
S3_DOMAIN=amazonaws.com

Learn More ColdBox Tips and Tricks

Stay tuned for more ColdBox tips in our ongoing series. if you want to learn more than 10 free tips and tricks make sure to get your “ColdBox 102 tips and tricks book” We have a variety of formats you can choose from.

Get your Copy

Add Your Comment

Please provide a comment!
Invalid security code. Please try again.

Recent Entries

VS Code BoxLang Extension: Debugging BoxLang in CommandBox

VS Code BoxLang Extension: Debugging BoxLang in CommandBox

So you’ve installed CommandBox and are running the latest BoxLang server like a boss. You open up your browser and are met with an error message. This looks like a job for, you guessed it, the BoxLang VS Code Debugger!

Maria Jose Herrera
Maria Jose Herrera
September 26, 2024
Top ColdFusion security vulnerabilities in 2024 and how to prevent them

Top ColdFusion security vulnerabilities in 2024 and how to prevent them

ColdFusion continues to be a powerful platform for web application development. However, with its widespread use, it's crucial to remain vigilant about potential security vulnerabilities. This article provides a technical overview of the most relevant security threats affecting ColdFusion (CFML or Adobe ColdFusion) in 2024 and offers practical steps to mitigate them.

1. SQL Injection Vulnerabilities SQL Injection remains one of the most common and dangerous vulnerabilities in C...

Cristobal Escobar
Cristobal Escobar
September 24, 2024
BoxLang 1.0.0 Beta 15 Launched

BoxLang 1.0.0 Beta 15 Launched

Welcome to Beta 15! This release brings several significant enhancements aimed at improving the efficiency and functionality of the CLI environment and continued bug fixing to bring our CFML compatibility to several client applications and Ortus Libraries. Key among these is the introduction of the bx-web-support module, which allows the CLI to interface with web server capabilities, making it an excellent tool for testing and feature auditing. Additionally, the merge capabilities within module settings have been refined to support deep merges from the configuration file, ensuring greater flexibility and control.

Luis Majano
Luis Majano
September 20, 2024