Create a global cluster variable
HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("http://localhost:8080/v2/cluster-variables/global")) .header("Authorization", "Bearer <token>") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{ \"name\": \"PAYMENT_ENDPOINT\", \"value\": \"https://payments.example.com\" }")) .build();HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());System.out.println(response.body());const url = 'http://localhost:8080/v2/cluster-variables/global';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"name":"PAYMENT_ENDPOINT","value":"https://payments.example.com"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url http://localhost:8080/v2/cluster-variables/global \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "name": "PAYMENT_ENDPOINT", "value": "https://payments.example.com" }'Creates a cluster variable that every tenant’s process instances can
read. value may be any JSON value except null; the answer carries
it as compact JSON text. A name that already exists at global scope
is refused with 409. The name must be 1 to 256 characters of ASCII
letters, digits and _ ~ @ . + -; metadata, kind and any other
property are refused with 400. The change applies before the answer
is sent: every expression evaluated afterwards reads it. A global
write changes what every tenant reads, so grant
cluster-variable:create only to trusted callers. Writes one
CLUSTER_VARIABLE CREATED record, or a COMMAND_REJECTION when
the name exists.
Authorizations
Section titled “Authorizations”Parameters
Section titled “ Parameters ”Header Parameters
Section titled “Header Parameters”Tenant selection. A principal bound to one tenant may omit it; if
sent, it must equal that tenant (403 otherwise). A principal that
may act in several tenants must send it on every request:
without it the request is refused with 400, and a tenant it may
not act in is refused with 403.
Makes a retried command safe. A repeat with the same key and the same
body replays the first answer. A repeat with the same key and a
different body is refused with 409.
Request Bodyrequired
Section titled “Request Bodyrequired”object
Unique within its scope. A leading digit is allowed.
Any JSON value except null; strings (also the empty string), numbers, booleans, arrays and objects.
Example
{ "name": "PAYMENT_ENDPOINT", "value": "https://payments.example.com"}Responses
Section titled “ Responses ”The variable was created.
object
Unique within its scope. A leading digit is allowed.
The owning tenant; null for global scope.
The whole value as compact JSON text (a string value x is "x" with its quotes).
Example
{ "scope": "GLOBAL"}The request is malformed, or it uses a property or filter this release does not support.
An RFC 9457 problem document. type is a stable TinyConductor URN.
object
The request path.
Present only on mode-not-supported. It names the engine’s mode.
Example
{ "type": "urn:bpm:error:invalid-argument", "title": "Bad Request", "status": 400, "detail": "entity key must be a positive int64 string", "instance": "/v2/process-instances/0"}No valid credential was presented.
An RFC 9457 problem document. type is a stable TinyConductor URN.
object
The request path.
Present only on mode-not-supported. It names the engine’s mode.
Example
{ "type": "urn:bpm:error:unauthorized", "title": "Unauthorized", "status": 401, "detail": "A valid bearer credential is required", "instance": "/v2/cluster-variables/global"}Headers
Section titled “Headers”The caller lacks the required permission, a tenant named in the request is not the caller’s tenant, or a cookie write has no valid CSRF token.
An RFC 9457 problem document. type is a stable TinyConductor URN.
object
The request path.
Present only on mode-not-supported. It names the engine’s mode.
Example
{ "type": "urn:bpm:error:forbidden", "title": "Forbidden", "status": 403, "detail": "The principal lacks the action this route requires", "instance": "/v2/cluster-variables/global"}A cluster variable of this name already exists in this scope (global, or the tenant).
An RFC 9457 problem document. type is a stable TinyConductor URN.
object
The request path.
Present only on mode-not-supported. It names the engine’s mode.
Example
{ "type": "urn:bpm:error:conflict", "title": "Conflict", "status": 409, "detail": "The idempotency key is already associated with another request", "instance": "/v2/cluster-variables/global"}The body exceeds the configured request-size bound.
An RFC 9457 problem document. type is a stable TinyConductor URN.
object
The request path.
Present only on mode-not-supported. It names the engine’s mode.
Example
{ "type": "urn:bpm:error:payload-too-large", "title": "Payload Too Large", "status": 413, "detail": "The request exceeds the configured size limit", "instance": "/v2/cluster-variables/global"}An internal failure. The details are never exposed.
An RFC 9457 problem document. type is a stable TinyConductor URN.
object
The request path.
Present only on mode-not-supported. It names the engine’s mode.
Example
{ "type": "urn:bpm:error:internal", "title": "Internal Server Error", "status": 500, "detail": "The request could not be completed", "instance": "/v2/cluster-variables/global"}Backpressure, or a dependency is not ready. Retry with the same idempotency key.
An RFC 9457 problem document. type is a stable TinyConductor URN.
object
The request path.
Present only on mode-not-supported. It names the engine’s mode.
Example
{ "type": "urn:bpm:error:unavailable", "title": "Service Unavailable", "status": 503, "detail": "The required engine service is not ready", "instance": "/v2/cluster-variables/global"}