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