model enum Pin RBAC or ABAC, or allow either fixture model.
Generate explainable mock RBAC/ABAC decisions or evaluate one request against an explicit vendor-neutral fixture policy.
Generated test data for fixtures and development
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
model | enum | default: any allowed: rbac | abac | any example: abac | Pin RBAC or ABAC, or allow either fixture model. |
role | enum | default: any allowed: owner | admin | editor | billing | viewer | any example: editor | Pin the synthetic subject role, or allow any. |
resource | enum | default: any allowed: document | project | invoice | deployment | secret | any example: document | Pin the requested resource type, or allow any. |
action | enum | default: any allowed: read | create | update | delete | approve | manage | any example: delete | Pin the requested action, or allow any. |
tenantState | enum | default: any allowed: active | suspended | any example: active | Pin active or suspended tenant context, or allow either. |
ownsResource | boolean | example: true | Require resource ownership context to be true or false. |
outcome | enum | default: any allowed: allow | deny | any example: allow | Return only combinations whose evaluated verdict matches this outcome. |
windowDays | int | default: 30 allowed: 1 – 90 example: 14 | Elapsed decision-history window before asOf. |
asOf | date | example: 2026-07-10T12:00:00.000Z | Replay anchor; defaults to the request clock and is echoed. |
model enum Pin RBAC or ABAC, or allow either fixture model.
role enum Pin the synthetic subject role, or allow any.
resource enum Pin the requested resource type, or allow any.
action enum Pin the requested action, or allow any.
tenantState enum Pin active or suspended tenant context, or allow either.
ownsResource boolean Require resource ownership context to be true or false.
outcome enum Return only combinations whose evaluated verdict matches this outcome.
windowDays int Elapsed decision-history window before asOf.
asOf date Replay anchor; defaults to the request clock and is echoed.
| 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: id,model | 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 |
|---|---|---|---|
id | string | Distinct fictional decision ID. | decision_fixture_0_a12b34c56d78 |
model | string | rbac | abac fixture policy model. | rbac |
subject | object | Synthetic subject ID and role. | {"id":"subject_fixture_1","role":"editor"} |
resource | object | Synthetic resource ID, type and ownership context. | {"id":"document_fixture_1","type":"document","ownedBySubject":true} |
action | string | Requested fixture action. | update |
tenantState | string | active | suspended context. | active |
outcome | string | allow | deny, derived from the documented fixture policy. | allow |
reasonCode | string | Stable explanation code matching the verdict. | role_permission |
matchedRules | object[] | Bounded policy rules that explain the verdict. | [{"id":"role-editor","effect":"allow","description":"Role editor grants update on document."}] |
evaluatedAt | string (ISO 8601) | Decision time at or before the replay anchor. | 2026-07-10T12:00:00.000Z |
id string Distinct fictional decision ID.
example: decision_fixture_0_a12b34c56d78
model string rbac | abac fixture policy model.
example: rbac
subject object Synthetic subject ID and role.
example: {"id":"subject_fixture_1","role":"editor"}
resource object Synthetic resource ID, type and ownership context.
example: {"id":"document_fixture_1","type":"document","ownedBySubject":true}
action string Requested fixture action.
example: update
tenantState string active | suspended context.
example: active
outcome string allow | deny, derived from the documented fixture policy.
example: allow
reasonCode string Stable explanation code matching the verdict.
example: role_permission
matchedRules object[] Bounded policy rules that explain the verdict.
example: [{"id":"role-editor","effect":"allow","description":"Role editor grants update on document."}]
evaluatedAt string (ISO 8601) Decision time at or before the replay anchor.
example: 2026-07-10T12:00:00.000Z
/api/access-control?model=abac&role=editor&outcome=allow&count=10&seed=42&asOf=2026-07-10T12%3A00%3A00.000Z {
"data": [
{
"id": "decision_fixture_0_958016cfb6a5",
"model": "abac",
"subject": {
"id": "subject_fixture_0_958016cfb6a5",
"role": "editor"
},
"resource": {
"id": "project_fixture_0_958016cfb6a5",
"type": "project",
"ownedBySubject": false
},
"action": "read",
"tenantState": "active",
"outcome": "allow",
"reasonCode": "role_permission",
"matchedRules": [
{
"id": "role-editor",
"effect": "allow",
"description": "Role editor grants read on project."
}
],
"evaluatedAt": "2026-06-30T19:37:32.660Z"
},
{
"id": "decision_fixture_1_78f248abeccb",
"model": "abac",
"subject": {
"id": "subject_fixture_1_78f248abeccb",
"role": "editor"
},
"resource": {
"id": "document_fixture_1_78f248abeccb",
"type": "document",
"ownedBySubject": false
},
"action": "read",
…
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} /api/access-control?tenantState=suspended&outcome=deny&count=8&seed=17&asOf=2026-07-10T12%3A00%3A00.000Z {
"data": [
{
"id": "decision_fixture_0_755abf24f732",
"model": "abac",
"subject": {
"id": "subject_fixture_0_755abf24f732",
"role": "owner"
},
"resource": {
"id": "document_fixture_0_755abf24f732",
"type": "document",
"ownedBySubject": false
},
"action": "approve",
"tenantState": "suspended",
"outcome": "deny",
"reasonCode": "tenant_suspended",
"matchedRules": [
{
"id": "tenant-active-required",
"effect": "deny",
"description": "Suspended tenants deny every fixture action."
}
],
"evaluatedAt": "2026-06-25T18:54:54.698Z"
},
{
"id": "decision_fixture_1_cb87eea1d421",
"model": "abac",
"subject": {
"id": "subject_fixture_1_cb87eea1d421",
"role": "editor"
},
"resource": {
"id": "deployment_fixture_1_cb87eea1d421",
"type": "deployment",
"ownedBySubject": true
},
"action": "approve",
…
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} | Parameter | Type | Default & allowed | Description |
|---|---|---|---|
model | enum | default: rbac allowed: rbac | abac example: abac | Use the documented RBAC or ABAC fixture model. |
role
required
| enum | allowed: owner | admin | editor | billing | viewer example: editor | Synthetic subject role. |
resource
required
| enum | allowed: document | project | invoice | deployment | secret example: document | Synthetic resource type. |
action
required
| enum | allowed: read | create | update | delete | approve | manage example: delete | Action to evaluate. |
tenantState | enum | default: active allowed: active | suspended example: active | Active or suspended tenant context. |
ownsResource | boolean | default: false example: true | Whether the synthetic subject owns this resource. |
asOf | date | example: 2026-07-10T12:00:00.000Z | Decision timestamp; defaults to request time and is echoed. |
model enum Use the documented RBAC or ABAC fixture model.
role enum required Synthetic subject role.
resource enum required Synthetic resource type.
action enum required Action to evaluate.
tenantState enum Active or suspended tenant context.
ownsResource boolean Whether the synthetic subject owns this resource.
asOf date Decision timestamp; defaults to request time and is echoed.
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
fields | list | example: id,model | Return only these fields (comma-separated). Mutually exclusive with 'exclude'. |
exclude | list | example: evaluatedAt | Return all fields except these (comma-separated). |
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. |
fields list Return only these fields (comma-separated). Mutually exclusive with 'exclude'.
exclude list Return all fields except these (comma-separated).
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 |
|---|---|---|---|
id | string | Distinct fictional decision ID. | decision_fixture_0_a12b34c56d78 |
model | string | rbac | abac fixture policy model. | rbac |
subject | object | Synthetic subject ID and role. | {"id":"subject_fixture_1","role":"editor"} |
resource | object | Synthetic resource ID, type and ownership context. | {"id":"document_fixture_1","type":"document","ownedBySubject":true} |
action | string | Requested fixture action. | update |
tenantState | string | active | suspended context. | active |
outcome | string | allow | deny, derived from the documented fixture policy. | allow |
reasonCode | string | Stable explanation code matching the verdict. | role_permission |
matchedRules | object[] | Bounded policy rules that explain the verdict. | [{"id":"role-editor","effect":"allow","description":"Role editor grants update on document."}] |
evaluatedAt | string (ISO 8601) | Decision time at or before the replay anchor. | 2026-07-10T12:00:00.000Z |
id string Distinct fictional decision ID.
example: decision_fixture_0_a12b34c56d78
model string rbac | abac fixture policy model.
example: rbac
subject object Synthetic subject ID and role.
example: {"id":"subject_fixture_1","role":"editor"}
resource object Synthetic resource ID, type and ownership context.
example: {"id":"document_fixture_1","type":"document","ownedBySubject":true}
action string Requested fixture action.
example: update
tenantState string active | suspended context.
example: active
outcome string allow | deny, derived from the documented fixture policy.
example: allow
reasonCode string Stable explanation code matching the verdict.
example: role_permission
matchedRules object[] Bounded policy rules that explain the verdict.
example: [{"id":"role-editor","effect":"allow","description":"Role editor grants update on document."}]
evaluatedAt string (ISO 8601) Decision time at or before the replay anchor.
example: 2026-07-10T12:00:00.000Z
/api/access-control/evaluate?model=abac&role=editor&resource=document&action=delete&ownsResource=true&asOf=2026-07-10T12%3A00%3A00.000Z {
"data": {
"id": "decision_fixture_ef15e625",
"model": "abac",
"subject": {
"id": "subject_fixture_ef15e625",
"role": "editor"
},
"resource": {
"id": "document_fixture_ef15e625",
"type": "document",
"ownedBySubject": true
},
"action": "delete",
"tenantState": "active",
"outcome": "allow",
"reasonCode": "owner_condition",
"matchedRules": [
{
"id": "editor-owned-delete",
"effect": "allow",
"description": "ABAC permits editors to delete their own document or project."
}
],
"evaluatedAt": "2026-07-10T12:00:00.000Z"
},
"meta": {
"endpoint": "access-control",
"route": "/evaluate",
"params": {
"model": "abac",
"role": "editor",
"resource": "document",
"action": "delete",
"tenantState": "active",
"ownsResource": true,
"asOf": "2026-07-10T12:00:00.000Z"
},
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} /api/access-control/evaluate?model=rbac&role=owner&resource=project&action=manage&tenantState=suspended&asOf=2026-07-10T12%3A00%3A00.000Z {
"data": {
"id": "decision_fixture_1212defc",
"model": "rbac",
"subject": {
"id": "subject_fixture_1212defc",
"role": "owner"
},
"resource": {
"id": "project_fixture_1212defc",
"type": "project",
"ownedBySubject": false
},
"action": "manage",
"tenantState": "suspended",
"outcome": "deny",
"reasonCode": "tenant_suspended",
"matchedRules": [
{
"id": "tenant-active-required",
"effect": "deny",
"description": "Suspended tenants deny every fixture action."
}
],
"evaluatedAt": "2026-07-10T12:00:00.000Z"
},
"meta": {
"endpoint": "access-control",
"route": "/evaluate",
"params": {
"model": "rbac",
"role": "owner",
"resource": "project",
"action": "manage",
"tenantState": "suspended",
"ownsResource": false,
"asOf": "2026-07-10T12:00:00.000Z"
},
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} Provides fictional access-control decisions for permission tables, denial messages and authorization audit interfaces. The complete fixture policy is deliberately small:
read on every non-secret resource;read, approve and manage on invoices only;read, create and update on documents/projects, plus read on deployments;delete a document/project they own;Explicit tenant/secret denials run before allows. Generated decisions select only combinations that satisfy every requested filter—including outcome; impossible combinations return 400 with all resolved filter values instead of falsifying a verdict.
This endpoint is mock test data, not security guidance and not an authorization service. The /evaluate policy verdict is deterministic from its explicit policy inputs and needs no seed; its evaluatedAt timestamp defaults to the request clock when asOf is omitted, and the resolved anchor is echoed for replay.
No. It is a deliberately small, vendor-neutral fixture policy for tests and demos, with every rule documented on this page.
Yes. Suspended tenants and restricted secret resources are evaluated before allow rules; everything else defaults to deny when no allow matches.
Yes. The generator selects only policy inputs that truly produce the requested allow or deny verdict, and rejects impossible pinned combinations.
Generate coherent fake authentication sessions and login attempts with exact expiry, revocation, MFA, risk and outcome states.
Generate coherent fake audit records for authentication, CRUD and permission changes — safely seeded, filterable and bounded by time.
Generate coherent mock feature-flag configurations and rollout evaluations with lifecycle states, weighted variants and safe contexts.
Complete fake people — name, age-consistent birth date, email, phone, job and address — with working filters for gender, age range and email domain.
Deterministic offset and opaque-cursor pagination fixtures with exact totals, stable sorting and no duplicated or skipped records.