environment enum Constrain every flag to this environment. Omit for a mix.
Generate coherent mock feature-flag configurations and rollout evaluations with lifecycle states, weighted variants and safe contexts.
Generated test data for fixtures and development
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
environment | enum | allowed: development | staging | production example: staging | Constrain every flag to this environment. Omit for a mix. |
state | enum | allowed: active | inactive | archived example: active | Constrain lifecycle state. Inactive and archived flags are disabled. |
strategy | enum | allowed: boolean | percentage | targeted | multivariate example: percentage | Constrain every configuration to this strategy. |
asOf | date | example: 2026-07-10T23:59:59.999Z | Latest lifecycle instant. Defaults to the current UTC day's end and is echoed for replay. |
environment enum Constrain every flag to this environment. Omit for a mix.
state enum Constrain lifecycle state. Inactive and archived flags are disabled.
strategy enum Constrain every configuration to this strategy.
asOf date Latest lifecycle instant. Defaults to the current UTC day's end and is echoed for replay.
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
count | int | default: 10 allowed: 1 – 100 example: 3 | How many records to generate (1–100). |
seed | int | example: 42 | Deterministic output: the same seed always returns the same records. Omit for random (the used seed is echoed in meta.seed). |
fields | list | example: key,name | Return only these fields (comma-separated). Mutually exclusive with 'exclude'. |
exclude | list | example: archivedAt | Return all fields except these (comma-separated). |
format | enum | default: json allowed: json | ndjson | csv example: csv | Response format: json envelope, ndjson (one record per line) or csv. |
pretty | boolean | default: false example: true | Pretty-print the JSON response. |
unwrap | boolean | default: false example: true | Drop the envelope: return the raw array/object without data/meta wrapper. |
count int How many records to generate (1–100).
seed int Deterministic output: the same seed always returns the same records. Omit for random (the used seed is echoed in meta.seed).
fields list Return only these fields (comma-separated). Mutually exclusive with 'exclude'.
exclude list Return all fields except these (comma-separated).
format enum Response format: json envelope, ndjson (one record per line) or csv.
pretty boolean Pretty-print the JSON response.
unwrap boolean Drop the envelope: return the raw array/object without data/meta wrapper.
| Field | Type | Description | Example |
|---|---|---|---|
key | string | Unique safe flag key containing the stable record index. | checkout-redesign-0-a81c42 |
name | string | Human-readable fictional feature name. | Checkout Redesign |
description | string | Short fixture description with no customer or product claim. | Controls the checkout redesign fixture. |
environment | string | development, staging or production. | staging |
state | string | active, inactive or archived. | active |
enabled | boolean | True only while state is active. | true |
strategy | string | boolean, percentage, targeted or multivariate. | percentage |
rolloutPercentage | integer | Effective global rollout percentage from 0 through 100. | 35 |
defaultVariant | string | Fallback variant key present in variants. | off |
variants | object[] | Bounded variant keys and integer weights totaling 100. | [{"key":"on","weight":35},{"key":"off","weight":65}] |
rules | object[] | Strategy-specific percentage, target or split rule; boolean flags have none. | [{"id":"percentage-rollout","kind":"percentage","percentage":35,"variant":"on"}] |
version | integer | Positive fictional configuration version. | 7 |
createdAt | string (ISO 8601) | Creation time no later than updatedAt. | 2026-03-10T09:12:00.000Z |
updatedAt | string (ISO 8601) | Last update time no earlier than createdAt. | 2026-07-01T14:22:00.000Z |
archivedAt nullable | string (ISO 8601) | Archive time for archived flags only; otherwise null. | null |
key string Unique safe flag key containing the stable record index.
example: checkout-redesign-0-a81c42
name string Human-readable fictional feature name.
example: Checkout Redesign
description string Short fixture description with no customer or product claim.
example: Controls the checkout redesign fixture.
environment string development, staging or production.
example: staging
state string active, inactive or archived.
example: active
enabled boolean True only while state is active.
example: true
strategy string boolean, percentage, targeted or multivariate.
example: percentage
rolloutPercentage integer Effective global rollout percentage from 0 through 100.
example: 35
defaultVariant string Fallback variant key present in variants.
example: off
variants object[] Bounded variant keys and integer weights totaling 100.
example: [{"key":"on","weight":35},{"key":"off","weight":65}]
rules object[] Strategy-specific percentage, target or split rule; boolean flags have none.
example: [{"id":"percentage-rollout","kind":"percentage","percentage":35,"variant":"on"}]
version integer Positive fictional configuration version.
example: 7
createdAt string (ISO 8601) Creation time no later than updatedAt.
example: 2026-03-10T09:12:00.000Z
updatedAt string (ISO 8601) Last update time no earlier than createdAt.
example: 2026-07-01T14:22:00.000Z
archivedAt string (ISO 8601) nullable Archive time for archived flags only; otherwise null.
example: null
/api/feature-flags?state=active&strategy=percentage&environment=staging&seed=42&count=20 {
"data": [
{
"key": "smart-search-0-8016cf",
"name": "Smart Search",
"description": "Controls the smart search fixture.",
"environment": "staging",
"state": "active",
"enabled": true,
"strategy": "percentage",
"rolloutPercentage": 68,
"defaultVariant": "off",
"variants": [
{
"key": "on",
"weight": 68
},
{
"key": "off",
"weight": 32
}
],
"rules": [
{
"id": "percentage-rollout",
"kind": "percentage",
"percentage": 68,
"variant": "on"
}
],
"version": 22,
"createdAt": "2026-05-18T15:48:34.150Z",
"updatedAt": "2026-06-10T17:48:39.057Z",
"archivedAt": null
},
{
"key": "checkout-redesign-1-f248ab",
"name": "Checkout Redesign",
"description": "Controls the checkout redesign fixture.",
"environment": "staging",
…
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} /api/feature-flags?state=archived&strategy=multivariate&count=10 {
"data": [
{
"key": "bulk-export-0-6cfb6a",
"name": "Bulk Export",
"description": "Controls the bulk export fixture.",
"environment": "staging",
"state": "archived",
"enabled": false,
"strategy": "multivariate",
"rolloutPercentage": 0,
"defaultVariant": "control",
"variants": [
{
"key": "control",
"weight": 48
},
{
"key": "treatment-a",
"weight": 20
},
{
"key": "treatment-b",
"weight": 32
}
],
"rules": [
{
"id": "variant-split",
"kind": "split",
"percentage": 0
}
],
"version": 11,
"createdAt": "2026-05-06T06:03:30.716Z",
"updatedAt": "2026-05-09T12:11:54.828Z",
"archivedAt": "2026-05-15T09:53:14.275Z"
},
{
"key": "checkout-redesign-1-8abecc",
…
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} | Parameter | Type | Default & allowed | Description |
|---|---|---|---|
flag | string | default: checkout-redesign allowed: 1 – 64 example: compact-navigation | Safe flag key echoed in each evaluation. |
subjectPrefix | string | default: anon allowed: 1 – 64 example: test-user | Safe synthetic subject prefix; no email, name or external identifier. |
environment | enum | default: development allowed: development | staging | production example: production | Evaluation environment. |
rolloutPercentage | int | default: 50 allowed: 0 – 100 example: 25 | Subject is on exactly when active and bucket is below this value. |
active | boolean | default: true example: false | When false, every evaluation is off regardless of bucket or rollout. |
asOf | date | example: 2026-07-10T23:59:59.999Z | Latest evaluation instant. Defaults to the current UTC day's end and is echoed for replay. |
flag string Safe flag key echoed in each evaluation.
subjectPrefix string Safe synthetic subject prefix; no email, name or external identifier.
environment enum Evaluation environment.
rolloutPercentage int Subject is on exactly when active and bucket is below this value.
active boolean When false, every evaluation is off regardless of bucket or rollout.
asOf date Latest evaluation instant. Defaults to the current UTC day's end and is echoed for replay.
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
count | int | default: 10 allowed: 1 – 100 example: 3 | How many records to generate (1–100). |
seed | int | example: 42 | Deterministic output: the same seed always returns the same records. Omit for random (the used seed is echoed in meta.seed). |
fields | list | example: evaluationId,flagKey | Return only these fields (comma-separated). Mutually exclusive with 'exclude'. |
exclude | list | example: evaluatedAt | Return all fields except these (comma-separated). |
format | enum | default: json allowed: json | ndjson | csv example: csv | Response format: json envelope, ndjson (one record per line) or csv. |
pretty | boolean | default: false example: true | Pretty-print the JSON response. |
unwrap | boolean | default: false example: true | Drop the envelope: return the raw array/object without data/meta wrapper. |
count int How many records to generate (1–100).
seed int Deterministic output: the same seed always returns the same records. Omit for random (the used seed is echoed in meta.seed).
fields list Return only these fields (comma-separated). Mutually exclusive with 'exclude'.
exclude list Return all fields except these (comma-separated).
format enum Response format: json envelope, ndjson (one record per line) or csv.
pretty boolean Pretty-print the JSON response.
unwrap boolean Drop the envelope: return the raw array/object without data/meta wrapper.
| Field | Type | Description | Example |
|---|---|---|---|
evaluationId | string | Unique evaluation identity containing stable record index. | eval_0_31f0a82d |
flagKey | string | Validated requested flag key. | checkout-redesign |
subjectKey | string | Synthetic subject key built from prefix and record index. | anon-0-a81c |
environment | string | Evaluation environment. | development |
context | object | Safe fictional country and plan targeting context. | {"country":"DK","plan":"pro"} |
bucket | integer | Deterministic integer bucket from 0 through 99. | 17 |
rolloutPercentage | integer | Requested rollout threshold. | 50 |
enabled | boolean | Whether active is true and bucket is below rolloutPercentage. | true |
variant | string | on when enabled; otherwise off. | on |
reason | string | flag-disabled, rollout-zero, rollout-full, rollout-match or rollout-miss. | rollout-match |
matchedRule nullable | string | percentage-rollout for active flags; null when disabled. | percentage-rollout |
evaluatedAt | string (ISO 8601) | Stable generated instant at or before resolved asOf. | 2026-07-10T00:00:00.412Z |
evaluationId string Unique evaluation identity containing stable record index.
example: eval_0_31f0a82d
flagKey string Validated requested flag key.
example: checkout-redesign
subjectKey string Synthetic subject key built from prefix and record index.
example: anon-0-a81c
environment string Evaluation environment.
example: development
context object Safe fictional country and plan targeting context.
example: {"country":"DK","plan":"pro"}
bucket integer Deterministic integer bucket from 0 through 99.
example: 17
rolloutPercentage integer Requested rollout threshold.
example: 50
enabled boolean Whether active is true and bucket is below rolloutPercentage.
example: true
variant string on when enabled; otherwise off.
example: on
reason string flag-disabled, rollout-zero, rollout-full, rollout-match or rollout-miss.
example: rollout-match
matchedRule string nullable percentage-rollout for active flags; null when disabled.
example: percentage-rollout
evaluatedAt string (ISO 8601) Stable generated instant at or before resolved asOf.
example: 2026-07-10T00:00:00.412Z
/api/feature-flags/evaluations?flag=compact-navigation&environment=production&rolloutPercentage=25&seed=42&count=20 {
"data": [
{
"evaluationId": "eval_0_016cfb6a",
"flagKey": "compact-navigation",
"subjectKey": "anon-0-a958",
"environment": "production",
"context": {
"country": "FR",
"plan": "enterprise"
},
"bucket": 47,
"rolloutPercentage": 25,
"enabled": false,
"variant": "off",
"reason": "rollout-miss",
"matchedRule": "percentage-rollout",
"evaluatedAt": "2026-07-29T23:59:59.456Z"
},
{
"evaluationId": "eval_1_248abecc",
"flagKey": "compact-navigation",
"subjectKey": "anon-1-078f",
"environment": "production",
"context": {
"country": "US",
"plan": "pro"
},
"bucket": 3,
"rolloutPercentage": 25,
"enabled": true,
"variant": "on",
"reason": "rollout-match",
"matchedRule": "percentage-rollout",
"evaluatedAt": "2026-07-29T23:59:58.609Z"
},
{
"evaluationId": "eval_2_0902c05a",
"flagKey": "compact-navigation",
"subjectKey": "anon-2-1579",
…
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} /api/feature-flags/evaluations?flag=bulk-export&active=false&rolloutPercentage=100&count=10 {
"data": [
{
"evaluationId": "eval_0_016cfb6a",
"flagKey": "bulk-export",
"subjectKey": "anon-0-a958",
"environment": "development",
"context": {
"country": "FR",
"plan": "enterprise"
},
"bucket": 47,
"rolloutPercentage": 100,
"enabled": false,
"variant": "off",
"reason": "flag-disabled",
"matchedRule": null,
"evaluatedAt": "2026-07-29T23:59:59.456Z"
},
{
"evaluationId": "eval_1_248abecc",
"flagKey": "bulk-export",
"subjectKey": "anon-1-078f",
"environment": "development",
"context": {
"country": "US",
"plan": "pro"
},
"bucket": 3,
"rolloutPercentage": 100,
"enabled": false,
"variant": "off",
"reason": "flag-disabled",
"matchedRule": null,
"evaluatedAt": "2026-07-29T23:59:58.609Z"
},
{
"evaluationId": "eval_2_0902c05a",
"flagKey": "bulk-export",
"subjectKey": "anon-2-1579",
…
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} Generates fictional feature flag fixtures for administration screens, SDK demos and rollout tests. The root route models active, inactive and archived configurations across boolean, percentage, targeted and multivariate strategies. Variant weights always total 100, percentage rules agree with their weights, and inactive or archived flags are never reported as enabled.
Lifecycle timestamps are coherent: createdAt ≤ updatedAt ≤ asOf, while only archived flags carry an archivedAt at or after the last update. The resolved asOf defaults to the current UTC day's end and is echoed for replay. Targeting contexts use synthetic anonymous keys, a short country code and a plan label—never an email, IP address, device id or secret.
/evaluations produces deterministic percentage-rollout decisions. Buckets are integers from 0 through 99, and a subject is enabled exactly when the flag is active and bucket < rolloutPercentage. Boundary values 0 and 100 therefore behave without exceptions. This is generic mock behavior, not an implementation of any vendor SDK or hashing algorithm.
Yes. Every generated configuration has variant weights totaling exactly 100, including inactive and archived fixtures.
An active evaluation is on when its integer bucket is lower than rolloutPercentage. Inactive flags are always off.
Zero enables no subjects and 100 enables every subject when the flag is active.
No. Context keys, country codes and plans are synthetic fixture values; no emails, names, IPs or real identifiers are generated.
Generate coherent fake audit records for authentication, CRUD and permission changes — safely seeded, filterable and bounded by time.
Generate coherent mock CloudEvents 1.0 structured JSON envelopes with all required context attributes and action-specific event data.
Complete fake people — name, age-consistent birth date, email, phone, job and address — with working filters for gender, age range and email domain.
Fake companies with locale-aware names, industry-flavored catchphrases, founding years, log-distributed headcounts and safe example.com websites and emails.