Skip to main content

parameters_read

Parameters in nullplatform are the way to ship environment variables and configuration files to the application. They will be available in the scopes when you deploy.

A parameter is defined with:

  • A name (used to reference it)
  • A type: environment variable or file
  • Can be marked as secret for sensitive data

After a parameter is defined, it can contain values for specific places:

  • Scope level (most specific)
  • Dimension level (intermediate - groups multiple scopes)
  • Application level (least specific - applies to all scopes)

Precedence order: Scope > Dimension > Application (the most specific value wins)

Reading available dimensions

Dimensions are used to group scopes and apply parameter values to multiple scopes at once (e.g., environment=development, country=us).

To list dimensions, you can use an NRN (Null Resource Name) to filter by account or any level:

Api Call:

Method: GET
Endpoint: /dimension?nrn=<nrn>

Np Cli:

np dimension list --nrn <nrn> --api-key <api_key>

Example for an account level NRN: organization=123:account=456

To see which dimensions are assigned to a specific scope:

Api Call:

Method: GET
Endpoint: /scope/:id

Np Cli:

np scope read --id <scope_id> --api-key <api_key>

Listing parameters for an application

Api Call:

Method: GET
Endpoint: /parameter?nrn=<application_nrn>

Np Cli:

np parameter list --nrn <application_nrn> --api-key <api_key>

If you need to get the application NRN:

Api Call:

Method: GET
Endpoint: /application/:id

Np Cli:

np application read --id <application_id> --api-key <api_key>

Reading a specific parameter

Api Call:

Method: GET
Endpoint: /parameter/:id

Np Cli:

np parameter read --id <parameter_id> --api-key <api_key>

Creating a parameter

Api Call:

Method: POST
Endpoint: /parameter
Body: '{
"nrn": "<application_nrn>",
"name": "<parameter_name>",
"type": "env", // or "file" for file parameters
"is_secret": false // set to true for sensitive data
}'

Np Cli:

np parameter create --api-key <api_key> --body '{
"nrn": "<application_nrn>",
"name": "<parameter_name>",
"type": "env",
"is_secret": false
}'

Setting parameter values

After creating a parameter, you need to set values for it:

Api Call:

Method: POST
Endpoint: /parameter/:id/value
Body: '{
"scope_id": <scope_id>, // Optional - omit for application level
"dimension_id": <dimension_id>, // Optional - for dimension level
"value": "<parameter_value>"
}'

Np Cli:

# For scope-level value
np parameter value create --id <parameter_id> --api-key <api_key> --body '{
"scope_id": <scope_id>,
"value": "<parameter_value>"
}'

# For application-level value (omit scope_id and dimension_id)
np parameter value create --id <parameter_id> --api-key <api_key> --body '{
"value": "<parameter_value>"
}'

# For dimension-level value
np parameter value create --id <parameter_id> --api-key <api_key> --body '{
"dimension_id": <dimension_id>,
"value": "<parameter_value>"
}'

Viewing parameter history

Parameters are versioned. Every time you change values, a new version is created:

Api Call:

Method: GET
Endpoint: /parameter/:id/version

Np Cli:

np parameter version list --id <parameter_id> --api-key <api_key>

Important notes

  • Parameters are not hot-reloaded - you need a new deployment for changes to take effect
  • Secret parameters require special permissions to read values
  • File parameters are limited to 1 MB and must be text-based (UTF-8 encoded)
  • Environment variables are limited to 4 KB
  • When you rollback a deployment, parameter values from that deployment are automatically restored