Runtime App Presets (RAPs)

A common need for more complex apps (frontend or backend) are configuration presets: For example different client application configurations. Instead of hard-coding them in your code and commenting them back in and out, RAPs are a first class citizen of Cantara.

Setup

Presets need to be stored in JSON files under a folder called presets inside a React, Node or Serverless app. If you want to use RAPs, create that folder in the root of an app and create a file called default.json. Populate it with some content, e.g. a client specific API URL:

{
"apiUrl": "https://client-1.myapi.com"
}

Now, to create more presets, just create additional JSON files with arbitrary names, e.g. client-1.json.

After that, make sure that your .gitignore file contains the folllowing:

**/src/app-preset/

As Cantara auto-generates some TypeScript files we don't want to include in version control.

Using them in your app

Now, when you start the development of an app, you can pass a --preset or -p parameter with the name of your preset (without .json).

You can also omit this parameter. This way, a CLI autocomplete will appear and you can choose the preset from a list.

Now, in your code, you can easily access the preset from anywhere in your app, by import it from @app-preset.

import preset from '@app-preset';
console.log(preset.apiUrl);

Have fun! ๐Ÿ”