Replace environment variables
const url = 'https://opfield.example.com/api/apps/550e8400-e29b-41d4-a716-446655440000/environments/550e8400-e29b-41d4-a716-446655440000/variables';const options = { method: 'PUT', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"variables":[{"key":"example","value":"example"}]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PUT \ --url https://opfield.example.com/api/apps/550e8400-e29b-41d4-a716-446655440000/environments/550e8400-e29b-41d4-a716-446655440000/variables \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "variables": [ { "key": "example", "value": "example" } ] }'Environment variables and secrets every container, deployment and Compose project of the environment receives on its next create, recreate, deploy or apply (nothing restarts on save). Precedence, lowest first: image ENV, environment variables, environment secrets, the workload own environment, the workload own secrets. Keys match ^[A-Za-z_][A-Za-z0-9_]*$, at most 200 per environment, values up to 32 KiB; a key is either a variable or a secret. Secrets are write-only: only keys and update times are returned. pendingWorkloads lists the workloads that still run older values ({kind: container|deployment|compose, id, nodeId, name}; containers by name) so a client can recreate or redeploy them one at a time; a container recreate is queued on its node, follow its taskId with GET …/workload-tasks/{taskId}. Needs apps:env:manage on the environment. The body is the full set of variables (secrets are not touched).
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Example
550e8400-e29b-41d4-a716-446655440000Example
550e8400-e29b-41d4-a716-446655440000Request Bodyrequired
Section titled “Request Bodyrequired”JSON request body
object
object
Examplegenerated
{ "variables": [ { "key": "example", "value": "example" } ]}Responses
Section titled “Responses”Successful response
object
Resource object. Exact fields depend on the endpoint.
object
Example
{ "data": { "id": "550e8400-e29b-41d4-a716-446655440000", "name": "Example resource", "createdAt": "2024-01-01T12:00:00.000Z", "updatedAt": "2024-01-01T12:30:00.000Z" }}Bad request
object
Error code
Human-readable error message
Additional error details
Example
{ "code": "VALIDATION_ERROR", "message": "Request validation failed", "details": [ { "path": [ "name" ], "message": "Required" } ]}Authentication required
object
Error code
Human-readable error message
Additional error details
Example
{ "code": "UNAUTHORIZED", "message": "Authentication required"}Forbidden
object
Error code
Human-readable error message
Additional error details
Example
{ "code": "FORBIDDEN", "message": "Insufficient permissions"}Not found
object
Error code
Human-readable error message
Additional error details
Example
{ "code": "NOT_FOUND", "message": "Resource not found"}Conflict
object
Error code
Human-readable error message
Additional error details
Example
{ "code": "CONFLICT", "message": "Resource already exists"}Unprocessable entity
object
Error code
Human-readable error message
Additional error details
Example
{ "code": "UNPROCESSABLE_ENTITY", "message": "Request could not be processed"}Internal server error
object
Error code
Human-readable error message
Additional error details
Example
{ "code": "INTERNAL_ERROR", "message": "Internal server error"}