Skip to main content

Glossary

Defined terms used across the manifest reference. Alphabetical. Each entry has a one-sentence definition and a link to the page that specifies it in full.


Archive — The .tar.gz file produced by packaging a flag-namespace directory for upload. See packaging.

Atom (predicate) — A leaf node in a predicate expression: an inline table of attribute, op, and value (or values). See predicates § Attribute atoms.

Attribute — A named key-value entry in the evaluation context. Predicate atoms test attributes against operands. See evaluation-context.

Bucket — A deterministic integer in [0, 9999] derived from hashing a salt and an entity identifier. Determines membership in percentage-bucket segments. See buckets.

Catch-all environment (_) — The reserved env block [flag.environments._] that applies whenever a named environment did not supply a complete answer. Mandatory on every flag. See resolution.

Compound expression — A predicate node whose top-level key is and, or, or not. Composes other predicates. See predicates § Compound expressions.

Diagnostic — A single lint result. Carries a stable code (e.g., E001), a severity (error / warning / info), a file, a line, and a human-readable message. See diagnostics.

Entity — The thing being evaluated against — a user, device, organization, or agent run. The evaluation context describes one entity per call.

Entity identifier — The string attribute named by [segment.bucket].entity_id_attribute whose value is hashed for bucket assignment. See buckets.

Environment — A named deployment context (e.g., production, staging) declared in [namespace.environments]. Flags carry per-environment configuration. See namespace § environments.

Evaluation context — The flat key-value map of attributes the caller supplies at evaluation time. See evaluation-context.

Flag — The primitive unit of the system. Identified by the filename stem of flags/<flag-key>.toml. See flag.

Flag key — The unique identifier of a flag within a flag namespace. Pattern [a-z][a-z0-9_-]*. Sourced from the filename stem; there is no flag.key field in schema 0.1.

Flag namespace — The flag-management boundary owned by a team. Identified by a slug unique within its tenant. The on-disk representation is the manifest. See namespace.

Forward compatibility — The property that a file declaring a newer minor schema version is accepted by an older implementation that ignores unknown fields. See schema-versioning § Forward-compat policy.

HashMurmurHash3_x86_32 with seed 0 applied to the UTF-8 bytes of <salt>/<entity_id>. The output is reduced modulo 10000 to produce a bucket. See buckets.

If-Version — HTTP header on PUT /api/v1/tenants/{tenant}/namespaces/{namespace}/manifest that enables optimistic concurrency control. See packaging § Optimistic concurrency.

Lifecycle — The flag's lifecycle stage: development, active, or retired. Affects lint diagnostics; does not affect evaluation. See flag § lifecycle.

Linter — The validator that checks a flag-namespace directory for schema and convention violations. Implemented in exd_client::lint_dir. See diagnostics and exd lint.

Manifest — The complete TOML file tree describing one flag namespace. Rooted at a directory matching the namespace slug. See directory-layout.

Manifest version — A monotonically increasing integer assigned by the server on each successful upload. Used by If-Version and version pins.

Namespace slug — The unique identifier of a flag namespace within its tenant. Pattern [a-z][a-z0-9-]*, max 63 chars. Immutable after creation.

Operand — The right-hand side of an attribute predicate. Encoded as value (single scalar / string) or values (array of scalars), depending on the operator. See predicates § Operator reference.

Operator — The comparison applied in an attribute atom: eq, neq, gt, gte, lt, lte, in, not_in, contains, not_contains, starts_with, ends_with, semver_eq, semver_gt, semver_gte, semver_lt, semver_lte, is_set, is_not_set. See predicates § Operator reference.

Optimistic concurrency control — The pattern where two writers race on the same resource and the loser retries on a version mismatch. Implemented for manifest uploads via the If-Version header. See packaging.

Predicate — A boolean expression that defines segment membership, evaluated against an evaluation context. See predicates.

Predicate-bucket hybrid — A segment that defines both [segment.predicate] and [segment.bucket]. Membership requires both checks to pass. See segment § Three segment shapes.

Resolution algorithm — The four-step walk the eval engine performs to pick a variant for a (flag, env, context) triple. See resolution.

Rule — An ordered segment-to-variant mapping inside a flag's per-environment block. First match wins. See flag § Rules and resolution.

Salt — A string mixed into the bucket hash input. Defaults to the segment key but SHOULD be set explicitly to keep bucket assignments stable across renames. See buckets § The salt.

Schema version — The <major>.<minor> version string declared at the top of every manifest file. See schema-versioning.

Segment — A reusable, named audience defined in segments/<segment-key>.toml. Membership is defined by a predicate, a bucket, or both. See segment.

Segment key — The unique identifier of a segment within a flag namespace. Pattern [a-z][a-z0-9_-]*. Sourced from the filename stem; there is no segment.key field in schema 0.1.

Segment reference — An inline-table predicate of the form { segment = "<key>" } that tests membership in another segment. See predicates § Segment references.

Slug — A URL-safe identifier following the pattern [a-z][a-z0-9-]*. Used for tenant, namespace, and environment slugs. Distinct from key, which permits underscores.

Tenant — The administrative boundary that owns one or more flag namespaces. Not declared in the manifest; it is server-side metadata.

Testing gate — The testing = true field on a [flag.environments.<env>] block that makes the env's rules conditional on the caller's include_testing opt-in. See resolution § The rollout workflow.

Variant — One of the named outcomes a flag can return. Declared in [flag.variants]; referenced by rules and by per-environment variant. See flag § Variants.

Variant key — The identifier of a variant within a flag. Pattern [a-z][a-z0-9_-]*.