Menu
Platform
AI
App store purchases
Database
Flags
Jobs and cron
Localization
Monitoring
Notifications
Payments
Queues
Sandboxes
Webhooks
Getting Started
Authentication
KV Store
Deploy & Infrastructure
Reference
Update a config flag
Updates a config flag; the change rolls out in waves and the Operation is done when every cell serves it.
Updates a config flag; the change rolls out in waves and the Operation is done when every cell serves it.
- Path
PATCH https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/config_flags/config-flag - Scope
config:write - Effect
write— a successful call changes state. - Collection config_flags
- Query
update_mask,validate_only - Operation answers with an
Operation; the result isConfigFlag
#Request
| Field | Type | What it is |
|---|---|---|
config_flag | ConfigFlag | The config flag to update; name identifies it. Required. |
update_mask | field_mask | The fields to write; unset writes every populated field. |
validate_only | bool | Validate and return the result without writing anything. |
#ConfigFlag
| Field | Type | What it is |
|---|---|---|
name | string | orgs/{org}/projects/{project}/envs/{env}/config_flags/{config_flag}; the id is the key evaluators ask for. |
meta | ResourceMeta | Resource metadata. |
spec | ConfigFlagSpec | Desired state. Required. |
#ResourceMeta
| Field | Type | What it is |
|---|---|---|
labels | map<string, string> | Caller-writable, indexed labels (AIP-122 label rules). |
annotations | map<string, string> | Caller-writable, unindexed annotations. |
display_name | string | Caller-writable human-readable name. |
#ConfigFlagSpec
| Field | Type | What it is |
|---|---|---|
value_type | ConfigValueType | The type every value of the flag has. Required. One of bool, string, int64, double, json. |
default_value | value | The value when no rule matches, or when the flag is disabled. Required. |
enabled | bool | When false, every evaluation returns default_value and the rules are skipped: a kill switch. Default true. |
rules | TargetingRule[] | Targeting rules, first match wins. |
description | string | What the flag is for. |
client_visible | bool | Publishable keys (browsers, mobile apps) may evaluate it with config_flags:evaluate; default false, so a server-only flag's value never reaches a device. Secret keys evaluate every flag. |
#TargetingRule
| Field | Type | What it is |
|---|---|---|
value | value | The value served when the rule matches; of the flag's type. Required. |
percentage | int32 | Serve value to evaluations whose bucket is below this, from 0 to 100; default 100. The rest fall through to the next rule. |
bucket_attribute | string | The context attribute hashed for the bucket: user_id, anonymous_id, or an attribute path; default user_id, else anonymous_id. An evaluation without it never matches a rule below 100 percent. |
description | string | What the rule is for. |
conditions | TargetingCondition[] | Conditions over the evaluation context; all must hold. None matches every evaluation. |
#Response
| Field | Type | What it is |
|---|---|---|
name | string | {parent-of-target}/operations/{operation}. |
target | string | The name of the Resource being changed. |
target_generation | int64 | The generation this Operation waits for. |
verb | OperationVerb | What the Operation does. One of create, update, delete, custom. |
custom_verb | string | The custom method verb when verb is CUSTOM, for example revoke. |
done | bool | Whether the Operation has finished. |
create_time | timestamp | When the Operation started. |
end_time | timestamp | When the Operation finished. |
response | any | The settled Resource (or Empty for a delete). One of the result group. |
error | ProblemDetails | The failure, as the one error body. One of the result group. |
progress | OperationProgress | Progress while not done. |
#ProblemDetails
| Field | Type | What it is |
|---|---|---|
type | string | https://sylphx.com/docs/errors/<code in kebab-case>. |
title | string | A short customer-safe summary of the problem class. |
status | int32 | The HTTP status, fixed by grpc_status. |
detail | string | A customer-safe explanation of this occurrence. Never contains SQL, stack traces, internal hostnames, or another tenant's data. |
instance | string | The request id (Sylphx-Request-Id). |
code | string | The stable UPPER_SNAKE code, one of ErrorCode without its prefix. |
grpc_status | string | One of the 16 canonical gRPC status names, for example ABORTED. |
retryable | bool | Whether the same request may be retried. |
effect | ErrorEffect | What the failed call committed. One of none, applied, unknown. |
retry_after_ms | int64 | How long to wait before retrying, when the server knows. |
details | any[] | Typed details such as PreconditionFailure or EntitlementDenial. |
#OperationProgress
| Field | Type | What it is |
|---|---|---|
percent | int32 | Percent complete, when the controller can tell. |
message | string | A customer-safe progress message. |
conditions | Condition[] | The target's conditions when this progress was read. |
#Condition
| Field | Type | What it is |
|---|---|---|
type | string | The condition type, for example Ready. |
status | ConditionStatus | Whether the condition holds. One of true, false, unknown. |
observed_generation | int64 | The generation this observation was made against. |
reason | string | A machine-readable UpperCamelCase reason. |
message | string | A customer-safe human-readable message. |
severity | Severity | How severe a FALSE condition is. One of info, warning, error. |
transition_time | timestamp | When status last changed. |
#Errors
UNAUTHENTICATED— No valid key or token was presented.PERMISSION_DENIED— The key lacks the method's permission.RESOURCE_NOT_FOUND— The named Resource does not exist or is not visible.UNKNOWN_FIELD— The request has a field the schema does not know.INVALID_FIELD— A field failed validation.ETAG_MISMATCH— The etag sent does not match the Resource's current etag.IDEMPOTENCY_KEY_REUSED— An Idempotency-Key was reused with another body.IDEMPOTENCY_IN_PROGRESS— The first call with this Idempotency-Key is still running.
Every error arrives in the body Errors describes.
#Examples
curl -X PATCH "https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/config_flags/config-flag" \
-H "Authorization: Bearer $SYLPHX_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"orgs/acme/projects/shop/envs/production/config_flags/config-flag","spec":{"default_value":{},"value_type":"bool"}}'