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
Snapshot a config flag
The environment's flags and segments in one read, for SDKs that evaluate locally.
The environment's flags and segments in one read, for SDKs that evaluate locally. Poll it with if_none_match set to the last etag: an unchanged ruleset answers not_modified and nothing else.
- Path
GET https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/config_flags:snapshot - Scope
config:read - Effect
read— nothing is written. - Collection config_flags
- Query
if_none_match
#Request
| Field | Type | What it is |
|---|---|---|
parent | string | The environment. Required. |
if_none_match | string | The etag of the snapshot the caller holds; unchanged answers not_modified. |
#Response
| Field | Type | What it is |
|---|---|---|
etag | string | The version of this ruleset; changes with any flag or segment. |
not_modified | bool | True when if_none_match is this ruleset's etag; nothing else is set then. |
config_flags | ConfigFlag[] | Every flag of the environment. |
config_segments | ConfigSegment[] | Every segment of the environment. |
poll_interval | duration | How long the caller waits before polling again. |
#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. |
uid | string | cfg_<cell><ulid>. Output only. |
meta | ResourceMeta | Resource metadata. |
spec | ConfigFlagSpec | Desired state. Required. |
status | ConfigFlagStatus | Observed state. Output only. |
#ConfigSegment
| Field | Type | What it is |
|---|---|---|
name | string | orgs/{org}/projects/{project}/envs/{env}/config_segments/{config_segment}; the id is what IN_SEGMENT names. |
uid | string | seg_<cell><ulid>. Output only. |
meta | ResourceMeta | Resource metadata. |
spec | ConfigSegmentSpec | Desired state. Required. |
status | ConfigSegmentStatus | Observed state. Output only. |
#ResourceMeta
| Field | Type | What it is |
|---|---|---|
generation | int64 | Increases by one on every change to spec. Output only. |
etag | string | Strong ETag (AIP-154): changes on any change to spec, status, or metadata. Send it back as If-Match or etag to make Update and Delete conditional; a mismatch fails with ABORTED / 409 ETAG_MISMATCH. Output only. |
create_time | timestamp | When the Resource was created. Output only. |
update_time | timestamp | When the Resource last changed. Output only. |
delete_time | timestamp | Set while the Resource is being deleted. Output only. |
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. |
creator | string | The principal that created the Resource. Output only. |
#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. |
#ConfigFlagStatus
| Field | Type | What it is |
|---|---|---|
observed_generation | int64 | The generation this status was computed from. Output only. |
conditions | Condition[] | Ready, Reconciling, Stalled. Reconciling while a change rolls out in waves; Stalled when a wave's health gate fails and the change halts. Output only. |
wave | int32 | The wave the current change has reached, from 1. Output only. |
wave_count | int32 | How many waves the change takes. Output only. |
updated_cell_count | int32 | How many cells serve the current generation. Output only. |
cell_count | int32 | How many cells the environment spans. Output only. |
#ConfigSegmentSpec
| Field | Type | What it is |
|---|---|---|
included | string[] | Subjects always in the segment, by user_id or anonymous_id. |
excluded | string[] | Subjects never in the segment, whatever else holds. |
conditions | TargetingCondition[] | Conditions over the evaluation context; all must hold. |
description | string | Who the segment is. |
#ConfigSegmentStatus
| Field | Type | What it is |
|---|---|---|
observed_generation | int64 | The generation this status was computed from. Output only. |
conditions | Condition[] | Ready. Output only. |
#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. |
#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. |
#TargetingCondition
| Field | Type | What it is |
|---|---|---|
attribute | string | user_id, anonymous_id, or a path into the context's attributes, dot-separated (plan, device.os). Required, except with IN_SEGMENT and NOT_IN_SEGMENT. |
operator | ConditionOperator | The comparison. Required. One of equals, not_equals, greater_than, greater_or_equal, less_than, less_or_equal, contains, not_contains, starts_with, ends_with, in, not_in, matches, semver_greater_than, semver_greater_or_equal, semver_less_than, semver_less_or_equal, in_segment, not_in_segment. |
value | value | The value compared with; a list for IN and NOT_IN, a string for the string, regular expression and semantic version operators. Required. |
#Errors
UNAUTHENTICATED— No valid key or token was presented.PERMISSION_DENIED— The key lacks the method's permission.
Every error arrives in the body Errors describes.
#Examples
curl "https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/config_flags:snapshot" \
-H "Authorization: Bearer $SYLPHX_API_KEY"