diff --git a/coverage-analysis/README.md b/coverage-analysis/README.md new file mode 100644 index 0000000..3e77634 --- /dev/null +++ b/coverage-analysis/README.md @@ -0,0 +1,149 @@ +# Generator coverage analysis + +> **Status:** implementation-phase scaffolding. This directory exists to help +> assess what the generator currently produces while it's being built. Once the +> generator is delivered it can be deleted — the artifacts here are snapshots +> and are not maintained as part of the product. + +Categorises the test files emitted under `generated/camunda-oca/playwright/` and +produces a coverage matrix in the same shape as +[`camunda/camunda/qa/c8-orchestration-cluster-e2e-test-suite/coverage-analysis/`](https://github.com/camunda/camunda/tree/main/qa/c8-orchestration-cluster-e2e-test-suite/coverage-analysis), +so the two suites can be diffed directly. Answers the questions in +[issue #275](https://github.com/camunda/api-test-generator/issues/275). + +## Files + +| file | what it is | +|---|---| +| `build_coverage.py` | Walks every generator test source, resolves each `operationId` against `spec/camunda-oca/bundled/rest-api.bundle.json`, classifies entity/operation/variant/category/form-step/prerequisite, and writes the artifacts below. | +| `tests.csv` | One row per `test()` declaration. Columns: `file, line, source, entity, category, operation, form_step, prerequisite, method, path, operationId, variants, test_name`. | +| `coverage_matrix.csv` | `entity × operation` grid with variant counts. Same columns as the upstream matrix. | +| `coverage_matrix.md` | Markdown view of the matrix: at-a-glance ✓ table + counts-per-cell. | +| `gaps.md` | Heuristic gap report: entities missing 401/403/400/404/409 coverage, missing observe-after-delete, search ops with no pagination/sort/filter. | +| `category_breakdown.md` | Per-category breakdown (Form, prerequisite, observation channel split, form-step counts, per-test table with `file:line`). Mirrors upstream `category_breakdown.md`. | +| `lifecycle_disjoint.md` | **Manually maintained** — a focused write-up answering #279's request for the disjoint between the 10 EntityLifecycle tests and the matching upstream tests. Not regenerated by `build_coverage.py`; refresh by hand when the lifecycle template or upstream coverage shifts materially. | + +## Test sources scanned + +The generator emits tests into five locations; `build_coverage.py` scans all of them: + +| location | emitter | tag in `tests.csv` `source` column | +|---|---|---| +| `generated/camunda-oca/playwright/.feature.spec.ts` | feature emitter (happy path + basic shape) | `feature` | +| `generated/camunda-oca/playwright/.variant.spec.ts` | variant emitter (schema/input variations: `bpmn`, `oneOf …`, etc.) | `variant` | +| `generated/camunda-oca/playwright/edges/.lifecycle.spec.ts` | edge lifecycle template (`establish → observe present → revoke → observe absent`) | `lifecycle` | +| `generated/camunda-oca/playwright/entities/.lifecycle.spec.ts` | entity lifecycle template (`create → present → update → present → delete → absent`) | `lifecycle` | +| `generated/camunda-oca/request-validation/-validation-api-tests.spec.ts` | request-validation emitter (negative schema cases, all bad-request) | `request-validation` | + +## Regenerate + +The analyser reads from `spec/camunda-oca/bundled/rest-api.bundle.json` and +`generated/camunda-oca/`, both of which are gitignored. On a fresh checkout +you need to populate them first: + +```sh +npm install # one-time, brings in tooling deps +npm run pipeline # fetch spec + generate scenarios + emit feature/variant/lifecycle playwright tests + request-validation +python3 coverage-analysis/build_coverage.py +``` + +(`npm run pipeline` already chains `fetch-spec → testsuite:generate → generate:request-validation`, so the request-validation emitter does not need a separate invocation.) + +If `spec/camunda-oca/bundled/` and `generated/camunda-oca/` are already +populated locally, only the last command is required to refresh the +analysis. The analyser itself has no dependencies beyond the Python stdlib. + +## How tests are classified + +- **Entity** — derived from the first path segment of the endpoint + (`/jobs/...` → `job`, `/process-instances/...` → `process-instance`). + Mapping is explicit (`SEGMENT_TO_ENTITY`) to preserve the few entities upstream + keeps plural (`cluster-variables`, `decision-requirements`, + `message-subscriptions`) and to fold `deployments` into `resource`. +- **Operation** — derived from the operationId prefix (`create*`, `delete*`, + `update*`, `search*`/`list*`, `get*`/`fetch*`) with HTTP-method fallback. +- **Category** (A–O upstream buckets, plus a v2-only `P. Agent-Instance`) — + derived from entity, with `assign*To*` / `unassign*From*` and + `search*For(Group|Role|Tenant)` operations classified as + `B. Membership/Association`. +- **Variant** — derived from the generator's test-name suffix: + - `base` → `happy-path` + - `bpmn` / `dmn` / `drd` / `form` / `path` / `cycle/*` / `oneOf *` → `data-driven` + - `negative empty` → `observe-absence` + - `variant-N - scenario` (dynamic name) → `unlabeled` +- **Form step** — derived from operation + variant + (`create`, `observe-present-get`, `observe-present-search`, `mutate`, `delete`, + `observe-absence`). +- **Prerequisite** — entity-based, copied from upstream's mapping; for + membership ops it's parent + member (e.g. `tenant + client`). + +## Comparison with upstream + +Upstream snapshot: +[camunda/camunda#53387](https://github.com/camunda/camunda/pull/53387) +(head `7cf8bc1`). In its `coverage_matrix.csv` the `total` column equals +unique-test count; variant columns are label-occurrences, so a test tagged +`happy-path|filter` shows up in both. + +| | upstream | generator | +|---|---:|---:| +| Unique tests | 1001 | **1617** | +| Entities | 33 | 37 | +| Happy-path (occurrences) | 173 | 211 | +| Bad-request (400, occurrences) | 195 | **1071** | +| Pagination-sort (occurrences) | 53 | **85** | +| Filter (occurrences) | 85 | **196** | +| Observe-absence | 2 | 48 | +| Data-driven / oneOf variants | 5 | 302 | +| Unauthorized (401) | 165 | **0** | +| Not-found (404) | 127 | **0** | +| Conflict (409) | 31 | **0** | +| Forbidden (403) | 29 | **0** | + +**The generator emits 616 more tests than upstream.** It dominates upstream on 400 bad-request coverage (the `request-validation` emitter alone produces 1071 tests across 17 violation kinds: `additional-prop`, `constraint-violation`, `enum-violation`, `format-invalid`, `missing-body`, `missing-required`, `missing-required-combo`, `oneof-ambiguous`, `oneof-cross-bleed`, `oneof-none-match`, `param-constraint-violation`, `param-missing`, `param-type-mismatch`, `type-mismatch`, `union`, `unique-items-violation`, and `additional-prop-general`). + +**Pagination/filter counts need a caveat.** The generator's variant emitter sends `page: { after: cursor }` and `filter: { ... }` in request bodies on many search and batch-operation specs (detected by the classifier from the test body shape), so the variant column counts are non-zero. But these tests only assert `status === 200`; they do **not** assert pagination *correctness* (e.g. "page 2 yields the next N items, no overlap with page 1") or filter *correctness* (e.g. "filtering by `status=active` returns only active rows"). Upstream's 53 pagination and 85 filter tests are behaviour assertions, not request-shape assertions — so although the generator's pagination/filter counts now exceed upstream, the *semantic depth* is still much lower. The numeric comparison is a request-shape comparison, not a behaviour-coverage comparison. + +The buckets where the generator currently emits zero tests: + +- **401 unauthorized** (165 in upstream) — verified zero: no test asserts `status === 401` anywhere in the suite. Needs deployment-mode-aware auth context, see `camunda/camunda#52511`. +- **403 forbidden** (29 in upstream) — verified zero. Needs RBAC ABox + restricted-token test infrastructure. +- **404 not-found** (127 in upstream) — see note below; the matrix says zero, but the generator *does* assert 404 in 10 entity-lifecycle tests (final "observe absent" phase). The real gap is the fake-ID variant. Needs `ontology/` semantic-type-based fake-ID generation on path params. +- **409 conflict** (31 in upstream) — verified zero. Needs `duplicatePolicy` ABox slice (designed in 8.8, not yet landed; see #277). + +### Note on the `not-found` count + +The matrix shows `not-found: 0` for the generator, but this is a semantic distinction inherited from upstream's taxonomy, not "the generator never asserts 404". Upstream splits 404 assertions into two buckets: + +- **`observe-absence`** — `GET` after `DELETE`, expect 404. Entity *was* created, now gone. Generator currently has **48 of these** (10 entity-lifecycle + 12 edge-lifecycle + 26 from feature/variant emitters that include `negative empty` semantics). +- **`not-found`** — `GET` against a fake/never-existing ID, expect 404. Entity *was never* created. Generator currently has **0** of these. + +Concretely, every entity-lifecycle test ends with: + +```typescript +expect(resp4.status()).toBe(404); // observe absent (after the prior delete) +``` + +These are real 404 assertions — they just exercise the "after-delete" path, not the "fake-ID" path. The capability gap is specifically the fake-ID pattern (replace `{tenantId}` with a generated invalid ID, call `GET /tenants/{tenantId}`, expect 404). Upstream's 127 `not-found` tests are mostly that fake-ID pattern. + +See `gaps.md` for the categorised per-entity list. + +## Limitations + +- Variant classification depends on the generator's emitter suffix vocabulary. + When emitters change names (or new ones are added) update `variants_of()` in + `build_coverage.py`. +- The generator emits substantial 400/bad-request coverage via the + `request-validation` emitter (1000+ tests across 17 violation kinds), and + the variant emitter exercises pagination (`page.after` cursor) and filter + request shapes on many search/batch-operation specs (detected by the + classifier from the test body, not the test name). The buckets where the + generator emits **zero** tests are: 401, 403, 404, 409. These are a + generator capability gap — see `gaps.md` for the per-entity breakdown. +- The pagination-sort / filter counts in `coverage_matrix.csv` reflect + request-shape coverage (the test sends `page: { ... }` or + `filter: { ... }`), not behaviour coverage (the test asserts pagination + or filter *results* are correct). Upstream's hand-written tests assert + behaviour; the generator's only assert status code + response schema. +- Dynamic test names (`variant-N - scenario`) are bucketed as `unlabeled` because + reading the test body would be required to refine them. diff --git a/coverage-analysis/build_coverage.py b/coverage-analysis/build_coverage.py new file mode 100644 index 0000000..3a0ad21 --- /dev/null +++ b/coverage-analysis/build_coverage.py @@ -0,0 +1,790 @@ +#!/usr/bin/env python3 +""" +Build api-test-generator coverage matrix in the same shape as the upstream +c8-orchestration-cluster-e2e-test-suite/coverage-analysis/coverage_matrix.csv. + +Run from this script's directory: + python3 build_coverage.py + +Scans every generator test source and emits, next to this script: + - tests.csv : per-test labels (file, line, source, entity, operation, variants, test_name, ...) + - coverage_matrix.csv : entity x operation grid, variant counts (same columns as upstream) + - coverage_matrix.md, gaps.md, category_breakdown.md + +Test sources scanned: + - generated/camunda-oca/playwright/*.feature.spec.ts (feature emitter, happy + observe-absence) + - generated/camunda-oca/playwright/*.variant.spec.ts (variant emitter, schema/input variants) + - generated/camunda-oca/playwright/edges/*.lifecycle.spec.ts (edge lifecycle: establish -> present -> revoke -> absent) + - generated/camunda-oca/playwright/entities/*.lifecycle.spec.ts (entity lifecycle: create -> present -> update -> present -> delete -> absent) + - generated/camunda-oca/request-validation/*.spec.ts (negative request-validation, all bad-request) +""" +import csv +import json +import os +import re +from collections import defaultdict + +SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) +PLAYWRIGHT_DIR = os.path.normpath(os.path.join(SCRIPT_DIR, '..', 'generated', 'camunda-oca', 'playwright')) +EDGES_DIR = os.path.join(PLAYWRIGHT_DIR, 'edges') +ENTITIES_DIR = os.path.join(PLAYWRIGHT_DIR, 'entities') +REQVAL_DIR = os.path.normpath(os.path.join(SCRIPT_DIR, '..', 'generated', 'camunda-oca', 'request-validation')) +EDGES_ABOX = os.path.normpath(os.path.join(SCRIPT_DIR, '..', 'configs', 'camunda-oca', 'ontology', 'edges.json')) +SPEC_PATH = os.path.normpath(os.path.join(SCRIPT_DIR, '..', 'spec', 'camunda-oca', 'bundled', 'rest-api.bundle.json')) +OUT = SCRIPT_DIR + +# ---------- 1. operationId -> (METHOD, path) from the bundled OpenAPI ---------- +def load_ops(): + spec = json.load(open(SPEC_PATH)) + ops = {} + for path, methods in spec.get('paths', {}).items(): + for method, op in methods.items(): + if not isinstance(op, dict): + continue + if method.lower() not in ('get', 'post', 'put', 'patch', 'delete'): + continue + op_id = op.get('operationId') + if op_id: + ops[op_id] = (method.upper(), path) + return ops + +OPS = load_ops() + +# ---------- 2. entity mapping (path's first segment -> entity slug used in +# the upstream coverage_matrix.csv). Explicit so already-singular +# segments (status, authentication, ...) aren't mangled. ---------- +SEGMENT_TO_ENTITY = { + 'agent-instances': 'agent-instance', + 'audit-logs': 'audit-log', + 'authentication': 'authentication', + 'authorizations': 'authorization', + 'batch-operations': 'batch-operation', + 'batch-operation-items': 'batch-operation-item', + 'clock': 'clock', + 'cluster-variables': 'cluster-variables', + 'conditionals': 'conditional', + 'correlated-message-subscriptions': 'correlated-message-subscription', + 'decision-definitions': 'decision-definition', + 'decision-instances': 'decision-instance', + 'decision-requirements': 'decision-requirements', + 'deployments': 'resource', # upstream rolls deployments into the `resource` entity + 'documents': 'document', + 'element-instances': 'element-instance', + 'expression': 'expression', + 'forms': 'user-task', # forms are intrinsically tied to user tasks; folded into F. User-Task Lifecycle + 'global-task-listeners': 'global-task-listener', + 'groups': 'group', + 'incidents': 'incident', + 'jobs': 'job', + 'license': 'license', + 'mapping-rules': 'mapping-rule', + 'message-subscriptions': 'message-subscriptions', + 'messages': 'message', + 'process-definitions': 'process-definition', + 'process-instances': 'process-instance', + 'resources': 'resource', + 'roles': 'role', + 'setup': 'setup', + 'signals': 'signal', + 'status': 'status', + 'system': 'system', + 'tenants': 'tenant', + 'topology': 'topology', + 'user-tasks': 'user-task', + 'users': 'user', + 'variables': 'variable', +} +def entity_of_path(path): + seg = path.lstrip('/').split('/', 1)[0] + return SEGMENT_TO_ENTITY.get(seg, seg) + +# ---------- 3. operation classification (CRUD verb) from operationId ---------- +OP_RULES = [ + ('search', re.compile(r'^(search|list)', re.I)), + ('create', re.compile(r'^(create|deploy|publish|broadcast|pin|register|add|activate|correlate|evaluate)', re.I)), + ('delete', re.compile(r'^(delete|remove|unassign|cancel)', re.I)), + # `reset` is an admin state reset (e.g. resetClock = POST /clock/reset), not entity deletion — + # classify as update so it doesn't show up as a missing observe-absence in gaps.md. + ('update', re.compile(r'^(update|assign|complete|migrate|modify|resolve|fail|resume|suspend|patch|put|reset)', re.I)), + ('get', re.compile(r'^(get|fetch|retrieve|read)', re.I)), +] +def operation_of(op_id, method, path): + # operationId prefix is the strongest signal + for op, pat in OP_RULES: + if pat.match(op_id): + return op + # fallback by HTTP method + if method == 'GET': + return 'get' + if method == 'DELETE': + return 'delete' + if method in ('PUT', 'PATCH'): + return 'update' + if method == 'POST': + return 'search' if path.endswith('/search') else 'create' + return 'other' + +# ---------- 4. variant classification from generated test names ---------- +# Generated tests are named: +# feature-N - - (feature emitter — main scenarios) +# variant-N - - (variant emitter — schema/input variants) +# +# Suffix vocabulary observed in current output: +# base -> happy-path +# negative empty -> observe-absence (empty/no-match outcome) +# bpmn | dmn | drd | form | path -> data-driven (deployment input variants) +# cycle/+ -> data-driven +# oneOf variant -> data-driven (oneOf schema branches) +# oneOf group -> data-driven +# scenario (numbered) -> unlabeled (dynamic — body would need inspection) +SUFFIX_AFTER_OPID_RE = re.compile(r'^(?:feature|variant)-\d+\s*-\s*[^\s-]+\s*-\s*(.*?)(?:\s*[#(]\d+[)]?)?$') +SCENARIO_RE = re.compile(r'^variant-\d+\s*-\s*scenario$') + +# ---------- 4b. category (the A–O upstream buckets) ---------- +CRUD_ENTITIES = { + 'user', 'group', 'role', 'tenant', 'mapping-rule', 'authorization', + 'cluster-variables', 'global-task-listener', 'document', +} +DEPLOYMENT_ENTITIES = { + 'resource', 'process-definition', 'decision-definition', 'decision-requirements', +} +OBSERVATION_ENTITIES = {'element-instance', 'variable', 'audit-log'} +MESSAGING_ENTITIES = {'message', 'signal', 'message-subscriptions', 'correlated-message-subscription'} +ENGINE_EVAL_ENTITIES = {'expression', 'conditional'} +SYSTEM_ENTITIES = { + 'authentication', 'cluster', 'license', 'clock', 'usage-metrics', 'optimize', + 'system', 'setup', 'status', 'topology', +} +MEMBERSHIP_OP_RE = re.compile(r'^(assign|unassign)([A-Z][A-Za-z]*?)(To|From)([A-Z][A-Za-z]*)$') +# Upstream also classifies "list members of X" search endpoints (e.g. +# searchUsersForGroup, searchClientsForTenant) as Membership/Association. +MEMBERSHIP_LIST_RE = re.compile(r'^search[A-Z][A-Za-z]*(For|In)(Group|Role|Tenant)$') + +def category_of(op_id, entity): + if MEMBERSHIP_OP_RE.match(op_id) or MEMBERSHIP_LIST_RE.match(op_id): + return 'B. Membership/Association' + if entity in CRUD_ENTITIES: + return 'A. Entity Lifecycle (CRUD)' + if entity in DEPLOYMENT_ENTITIES: + return 'C. Deployment Lifecycle' + if entity == 'process-instance': + return 'D. Process-Instance Lifecycle & Ops' + if entity in ('batch-operation', 'batch-operation-item'): + return 'E. Batch-Operation Lifecycle' + if entity == 'user-task': + return 'F. User-Task Lifecycle' + if entity == 'job': + return 'G. Job Lifecycle & Stats' + if entity == 'incident': + return 'H. Incident Lifecycle' + if entity == 'decision-instance': + return 'I. Decision-Instance Lifecycle' + if entity in OBSERVATION_ENTITIES: + return 'J/K/L. Observation-only' + if entity in MESSAGING_ENTITIES: + return 'M. Messaging/Signals' + if entity in ENGINE_EVAL_ENTITIES: + return 'N. Engine Evaluation' + if entity in SYSTEM_ENTITIES: + return 'O. System/Admin' + if entity == 'agent-instance': + return 'P. Agent-Instance (new in v2)' + return 'Z. Uncategorised' + +# ---------- 4c. form step (lifecycle phase) ---------- +# Generator's variant vocabulary is simpler than upstream's (no 401/403/400/etc.), +# so the form-step set we actually produce is a subset. +def form_step_of(operation, variants): + if variants == 'observe-absence': + return 'observe-absence' + if operation == 'create': + return 'create' + if operation == 'delete': + return 'delete' + if operation == 'update': + return 'mutate' + if operation == 'get': + return 'observe-present-get' + if operation == 'search': + return 'observe-present-search' + return 'other' + +# ---------- 4d. prerequisite per entity (copied from upstream + v2 additions) ---------- +PREREQ_BY_ENTITY = { + # root-creatable + 'user': 'none', 'group': 'none', 'role': 'none', 'tenant': 'none', + 'mapping-rule': 'none', 'cluster-variables': 'none', + 'global-task-listener': 'none', 'document': 'none', + 'clock': 'none', 'license': 'none', 'cluster': 'none', + 'optimize': 'none', 'expression': 'none', 'conditional': 'none', + 'system': 'none', 'setup': 'none', 'status': 'none', 'topology': 'none', + 'authentication': 'authenticated-user', + 'authorization': 'owner-entity-or-resource', + + # Deployment-driven + 'resource': 'none', + 'process-definition': 'deployed-process', + 'decision-definition': 'deployed-decision', + 'decision-requirements': 'deployed-drd', + + # Process-instance-driven + 'process-instance': 'deployed-process', + 'element-instance': 'running-process-instance', + 'variable': 'running-process-instance', + 'user-task': 'running-process-instance-with-user-task', + 'incident': 'running-process-instance-with-failing-job', + 'job': 'running-process-instance-with-job', + 'batch-operation': 'running-process-instance(s)', + 'batch-operation-item': 'running-batch-operation', + 'decision-instance': 'deployed-decision', + + # Events + 'message': 'deployed-process-with-message-catch-event', + 'signal': 'deployed-process-with-signal-catch-event', + 'message-subscriptions': 'deployed-process-with-message-catch-event', + 'correlated-message-subscription': 'deployed-process-with-message-catch-event + correlated-message', + + # Observation + 'audit-log': 'any-prior-action', + 'usage-metrics': 'metered-activity', + + # New in v2 + 'agent-instance': 'unknown', +} +def _camel_to_kebab(s): + # 'MappingRule' -> 'mapping-rule', 'Group' -> 'group' + return re.sub(r'(? member=clients, parent=tenant + members = op_id[len('search'):].split('For' if 'For' in op_id else 'In')[0] + parent = _camel_to_kebab(m2.group(2)) + member = _camel_to_kebab(members).rstrip('s') + return f'{parent} + {member}' + return PREREQ_BY_ENTITY.get(entity, 'unknown') + +def variants_of(test_name): + if SCENARIO_RE.match(test_name): + return 'unlabeled' + m = SUFFIX_AFTER_OPID_RE.match(test_name) + if not m: + return 'unlabeled' + suffix = m.group(1).strip().lower() + if suffix == 'base': + return 'happy-path' + if suffix.startswith('negative empty'): + return 'observe-absence' + if suffix.startswith('oneof '): + return 'data-driven' + if suffix in {'bpmn', 'dmn', 'drd', 'form', 'path'} or suffix.startswith('cycle/'): + return 'data-driven' + return 'unlabeled' + +# ---------- 5. walk spec files, extract every test() call ---------- +TEST_RE = re.compile( + r"""(?m)^[ \t]*test(?:\.(?:skip|only|fixme|fail))?\s*\(\s*['"`]([^'"`]+)['"`]""" +) +# playwright/.feature.spec.ts / .variant.spec.ts +SPEC_FILE_RE = re.compile(r'^(?P[A-Za-z][A-Za-z0-9]*)\.(?Pfeature|variant)\.spec\.ts$') +# playwright/edges/.lifecycle.spec.ts +EDGE_FILE_RE = re.compile(r'^(?P[A-Za-z][A-Za-z0-9]*)\.lifecycle\.spec\.ts$') +# playwright/entities/.lifecycle.spec.ts +ENTITY_FILE_RE = re.compile(r'^(?P[A-Za-z][A-Za-z0-9]*)\.lifecycle\.spec\.ts$') + +# Map PascalCase entity name from filename to our entity slug. +PASCAL_TO_SLUG = { + 'Authorization': 'authorization', + 'Document': 'document', + 'GlobalClusterVariable': 'cluster-variables', # global namespace of cluster-variables + 'TenantClusterVariable': 'cluster-variables', # tenant namespace of cluster-variables + 'GlobalTaskListener': 'global-task-listener', + 'Group': 'group', + 'MappingRule': 'mapping-rule', + 'Role': 'role', + 'Tenant': 'tenant', + 'User': 'user', +} +# request-validation/-validation-api-tests.spec.ts (test names start with operationId) +REQVAL_TEST_NAME_RE = re.compile(r'^(?P[A-Za-z][A-Za-z0-9]*)\s*-\s*(?P.*)$') + +# Load edge ABox so we can map an EdgeName (e.g. RoleUserMembership) to its +# establishedBy operationId (assignRoleToUser) -> entity (role) via the spec. +def load_edge_index(): + try: + edges = json.load(open(EDGES_ABOX)) + except FileNotFoundError: + return {} + idx = {} + for e in edges.get('edges', []): + name = e.get('name') + eb = e.get('establishedBy') + op_id = eb.get('operationId') if isinstance(eb, dict) else eb + if name and op_id: + idx[name] = op_id + return idx + +EDGE_INDEX = load_edge_index() + +# Detect pagination/filter exercise in a test body. We match on the +# field-assignment form ('page: {', 'filter: {') so response-access +# expressions (e.g. `json?.page?.startCursor`) don't false-positive. +PAGINATION_BODY_RE = re.compile(r'\bpage\s*:\s*\{|\bsort\s*:\s*\[') +FILTER_BODY_RE = re.compile(r'\bfilter\s*:\s*\{') + +def read_tests(path): + """Yield (test_name, line_number, body_text) per test() block. body_text + is the source from the test() start to the next test() start (or EOF), + used for body-shape variant detection (pagination/filter).""" + with open(path, encoding='utf-8') as fp: + content = fp.read() + matches = list(TEST_RE.finditer(content)) + out = [] + for i, tm in enumerate(matches): + line_no = content.count('\n', 0, tm.start()) + 1 + body_end = matches[i+1].start() if i+1 < len(matches) else len(content) + body = content[tm.start():body_end] + out.append((tm.group(1), line_no, body)) + return out + +def body_extra_variants(body): + extras = [] + if PAGINATION_BODY_RE.search(body): + extras.append('pagination-sort') + if FILTER_BODY_RE.search(body): + extras.append('filter') + return extras + +def resolve_op(op_id): + """operationId -> (method, path, entity, operation). Falls back to 'unknown' if not in spec.""" + method_path = OPS.get(op_id) + if not method_path: + return '', '', 'unknown', 'other' + method, path = method_path + return method, path, entity_of_path(path), operation_of(op_id, method, path) + +rows = [] +unresolved_ops = set() + +# --- 5a. playwright/*.feature.spec.ts and *.variant.spec.ts --- +for f in sorted(os.listdir(PLAYWRIGHT_DIR)): + m = SPEC_FILE_RE.match(f) + if not m: + continue + op_id = m.group('op') + source = m.group('src') # 'feature' or 'variant' + method, path, entity, operation = resolve_op(op_id) + if entity == 'unknown': + unresolved_ops.add(op_id) + for name, line_no, body in read_tests(os.path.join(PLAYWRIGHT_DIR, f)): + variants = variants_of(name) + # Augment with body-detected shape variants (pagination/filter) — + # these are observable from the request body, not the test name. + # `unlabeled` is preserved alongside extras because it describes the + # NAME classification ("no info derivable from test name"); a dynamic + # `variant-N - scenario` test that also has a filter body is both + # name-unlabeled and body-filter, so it carries both labels. + extras = body_extra_variants(body) + if extras: + base = variants.split('|') + variants = '|'.join(base + [e for e in extras if e not in base]) + rows.append({ + 'file': f, 'line': line_no, 'source': source, + 'entity': entity, 'operation': operation, + 'method': method, 'path': path, 'operationId': op_id, + 'category': category_of(op_id, entity), + 'form_step': form_step_of(operation, variants), + 'prerequisite': prerequisite_of(op_id, entity), + 'variants': variants, + 'test_name': name, + }) + +# --- 5b. playwright/edges/*.lifecycle.spec.ts --- +# Each test exercises establish -> observe present -> revoke -> observe absent, +# so we tag it with multi-label variants (happy-path|observe-absence) and a +# dedicated 'lifecycle' form step. Entity comes from the establishedBy op's path. +if os.path.isdir(EDGES_DIR): + for f in sorted(os.listdir(EDGES_DIR)): + m = EDGE_FILE_RE.match(f) + if not m: + continue + edge_name = m.group('edge') + op_id = EDGE_INDEX.get(edge_name, '') + if op_id: + method, path, entity, operation = resolve_op(op_id) + else: + method, path, entity, operation = '', '', 'unknown', 'lifecycle' + for name, line_no, _body in read_tests(os.path.join(EDGES_DIR, f)): + rows.append({ + 'file': f'edges/{f}', 'line': line_no, 'source': 'lifecycle', + 'entity': entity, 'operation': 'lifecycle', + 'method': method, 'path': path, 'operationId': op_id, + 'category': 'B. Membership/Association', + 'form_step': 'lifecycle', + 'prerequisite': prerequisite_of(op_id, entity) if op_id else 'unknown', + 'variants': 'happy-path|observe-absence', + 'test_name': name, + }) + +# --- 5b'. playwright/entities/*.lifecycle.spec.ts --- +# EntityLifecycle template: create -> observe present -> update -> observe -> +# delete -> observe absent. Single test() per entity. Tag with multi-label +# variants (happy-path|observe-absence) and form_step='lifecycle', category A +# (or B for membership-style entities; we keep it on entity). +if os.path.isdir(ENTITIES_DIR): + for f in sorted(os.listdir(ENTITIES_DIR)): + m = ENTITY_FILE_RE.match(f) + if not m: + continue + ent_pascal = m.group('entity') + entity = PASCAL_TO_SLUG.get(ent_pascal, ent_pascal.lower()) + for name, line_no, _body in read_tests(os.path.join(ENTITIES_DIR, f)): + rows.append({ + 'file': f'entities/{f}', 'line': line_no, 'source': 'lifecycle', + 'entity': entity, 'operation': 'lifecycle', + 'method': '', 'path': '', 'operationId': '', + 'category': category_of('', entity), + 'form_step': 'lifecycle', + 'prerequisite': PREREQ_BY_ENTITY.get(entity, 'unknown'), + 'variants': 'happy-path|observe-absence', + 'test_name': name, + }) + +# --- 5c. request-validation/*.spec.ts --- +# Every test in this emitter is a bad-request negative. Test names start with +# the operationId: ' - '. Each kind (Missing +# body, Additional prop, oneOf ambiguous, ...) is recorded as the form_step +# detail; the matrix variant is uniformly 'bad-request'. +if os.path.isdir(REQVAL_DIR): + for f in sorted(os.listdir(REQVAL_DIR)): + if not f.endswith('.spec.ts'): + continue + for name, line_no, _body in read_tests(os.path.join(REQVAL_DIR, f)): + tm = REQVAL_TEST_NAME_RE.match(name) + op_id = tm.group('op') if tm else '' + desc = tm.group('desc').strip() if tm else '' + if op_id: + method, path, entity, operation = resolve_op(op_id) + if entity == 'unknown': + unresolved_ops.add(op_id) + else: + method, path, entity, operation = '', '', 'unknown', 'other' + rows.append({ + 'file': f'request-validation/{f}', 'line': line_no, 'source': 'request-validation', + 'entity': entity, 'operation': operation, + 'method': method, 'path': path, 'operationId': op_id, + 'category': category_of(op_id, entity), + 'form_step': f'negative-{operation}' if operation in ('create','get','update','delete','search') else 'negative-other', + 'prerequisite': prerequisite_of(op_id, entity), + 'variants': 'bad-request', + 'test_name': name, + }) + +# ---------- 6. write tests.csv ---------- +tests_csv = os.path.join(OUT, 'tests.csv') +with open(tests_csv, 'w', newline='', encoding='utf-8') as fp: + w = csv.DictWriter(fp, fieldnames=['file','line','source','entity','category','operation','form_step','prerequisite','method','path','operationId','variants','test_name']) + w.writeheader() + w.writerows(rows) +print(f"wrote {tests_csv} ({len(rows)} test declarations)") +if unresolved_ops: + print(f" warning: {len(unresolved_ops)} operationId(s) not found in OpenAPI spec: {sorted(unresolved_ops)[:5]}{'...' if len(unresolved_ops)>5 else ''}") + +# ---------- 7. coverage matrix: entity x operation x variant ---------- +# Same columns as upstream coverage_matrix.csv so the two files can be diffed. +variant_cols = ['happy-path','bad-request','unauthorized','forbidden','not-found', + 'conflict','pagination-sort','filter','observe-absence','data-driven','unlabeled'] +op_order = ['create','get','update','delete','search','lifecycle','other','parameterized'] + +# Matches upstream coverage_matrix.csv semantics from camunda/camunda#53387: +# `total` is the unique-test count per (entity, operation) — one row per +# `test()` declaration. The variant columns are label-occurrence counts, so +# a multi-label test (e.g. lifecycle row tagged `happy-path|observe-absence`) +# counts in both columns but only once toward `total`. +matrix_variants = defaultdict(lambda: defaultdict(lambda: defaultdict(int))) +matrix_unique = defaultdict(lambda: defaultdict(int)) +entity_totals = defaultdict(int) +for r in rows: + entity_totals[r['entity']] += 1 + matrix_unique[r['entity']][r['operation']] += 1 + for v in (r['variants'].split('|') if r['variants'] else ['unlabeled']): + matrix_variants[r['entity']][r['operation']][v] += 1 + +mat_csv = os.path.join(OUT, 'coverage_matrix.csv') +with open(mat_csv, 'w', newline='', encoding='utf-8') as fp: + w = csv.writer(fp) + w.writerow(['entity','operation','total'] + variant_cols) + for ent in sorted(entity_totals, key=lambda x: -entity_totals[x]): + for op in op_order: + total = matrix_unique[ent].get(op, 0) + if total == 0: + continue + cell = matrix_variants[ent].get(op, {}) + w.writerow([ent, op, total] + [cell.get(v, 0) for v in variant_cols]) +print(f"wrote {mat_csv}") + +# ---------- 8. coverage_matrix.md ---------- +md_path = os.path.join(OUT, 'coverage_matrix.md') +header_vars = ['happy','bad-req','401','403','404','conflict','pagin/sort','filter','absence','data-driven','unlabeled'] +var_keys = ['happy-path','bad-request','unauthorized','forbidden','not-found','conflict','pagination-sort','filter','observe-absence','data-driven','unlabeled'] +with open(md_path, 'w', encoding='utf-8') as fp: + fp.write('# api-test-generator — Coverage matrix (entity × operation × variant)\n\n') + fp.write(f'Total test declarations: **{len(rows)}** across **{len(entity_totals)}** entities.\n\n') + fp.write('Variants are multi-label — a test can carry more than one tag, so ' + 'matrix columns are **not** mutually exclusive (a lifecycle test tagged ' + '`happy-path|observe-absence` counts in both columns, but only once in ' + '`total`). Labels come from three sources: (1) test-name suffix ' + '(`base` → `happy-path`, `negative empty` → `observe-absence`, ' + '`bpmn`/`dmn`/`drd`/`form`/`path`/`cycle/...`/`oneOf ...` → `data-driven`, ' + '`variant-N - scenario` → `unlabeled`), ' + '(2) test-body shape (`page: {` / `sort: [` → `pagination-sort`, ' + '`filter: {` → `filter`), and (3) fixed labels for the lifecycle and ' + 'request-validation emitters (`happy-path|observe-absence` and ' + '`bad-request` respectively). See `build_coverage.py` for the rule table.\n\n') + fp.write('Legend: ✓ = at least 1, blank = 0.\n\n') + + fp.write('## At-a-glance presence (✓ = ≥1 test)\n\n') + fp.write('| entity | op | total | ' + ' | '.join(header_vars) + ' |\n') + fp.write('|--|--|--:|' + '|'.join(['--']*len(header_vars)) + '|\n') + for ent in sorted(entity_totals, key=lambda x: -entity_totals[x]): + for op in op_order: + cell = matrix_variants[ent].get(op, {}) + total = matrix_unique[ent].get(op, 0) + if total == 0: + continue + marks = ['✓' if cell.get(v,0) > 0 else '' for v in var_keys] + fp.write(f'| {ent} | {op} | {total} | ' + ' | '.join(marks) + ' |\n') + + fp.write('\n## Counts per cell\n\n') + fp.write('| entity | op | total | ' + ' | '.join(header_vars) + ' |\n') + fp.write('|--|--|--:|' + '|'.join(['--:']*len(header_vars)) + '|\n') + for ent in sorted(entity_totals, key=lambda x: -entity_totals[x]): + for op in op_order: + cell = matrix_variants[ent].get(op, {}) + total = matrix_unique[ent].get(op, 0) + if total == 0: + continue + nums = [str(cell.get(v,0)) if cell.get(v,0)>0 else '' for v in var_keys] + fp.write(f'| {ent} | {op} | {total} | ' + ' | '.join(nums) + ' |\n') +print(f"wrote {md_path}") + +# ---------- 9. gaps.md ---------- +gaps_path = os.path.join(OUT, 'gaps.md') +with open(gaps_path, 'w', encoding='utf-8') as fp: + fp.write('# Coverage gaps (heuristic)\n\n') + fp.write(f'Computed across **{len(rows)}** generated test declarations in ' + f'**{len(entity_totals)}** entities.\n\n') + + fp.write('## Entities missing delete-then-observe-absence variant\n\n') + fp.write('Entities that have both `create` and `delete` tests but no test tagged `observe-absence` ' + '(no negative-after-delete check).\n\n') + any_missing = False + for ent in sorted(entity_totals): + cell = matrix_variants[ent] + has_create = matrix_unique[ent].get('create', 0) > 0 or matrix_unique[ent].get('lifecycle', 0) > 0 + has_delete = matrix_unique[ent].get('delete', 0) > 0 or matrix_unique[ent].get('lifecycle', 0) > 0 + absence_hits = sum(cell.get(op, {}).get('observe-absence', 0) for op in op_order) + if has_create and has_delete and absence_hits == 0: + fp.write(f'- **{ent}** — has create+delete but no `observe-absence` test\n') + any_missing = True + if not any_missing: + fp.write('- _(none)_\n') + + fp.write('\n## Entities with no unauthorized (401) coverage\n\n') + for ent in sorted(entity_totals): + if not any(c.get('unauthorized', 0) for c in matrix_variants[ent].values()): + fp.write(f'- {ent}\n') + + fp.write('\n## Entities with no forbidden (403) coverage\n\n') + for ent in sorted(entity_totals): + if not any(c.get('forbidden', 0) for c in matrix_variants[ent].values()): + fp.write(f'- {ent}\n') + + fp.write('\n## Entities with no bad-request (400) coverage\n\n') + for ent in sorted(entity_totals): + if not any(c.get('bad-request', 0) for c in matrix_variants[ent].values()): + fp.write(f'- {ent}\n') + + fp.write('\n## Entities with no not-found (404) coverage\n\n') + for ent in sorted(entity_totals): + if not any(c.get('not-found', 0) for c in matrix_variants[ent].values()): + fp.write(f'- {ent}\n') + + fp.write('\n## Entities with no conflict (409) coverage\n\n') + for ent in sorted(entity_totals): + if not any(c.get('conflict', 0) for c in matrix_variants[ent].values()): + fp.write(f'- {ent}\n') + + fp.write('\n## Search ops with no pagination/sort or filter coverage\n\n') + fp.write('Search operations that have tests but none labeled `pagination-sort` or `filter`.\n\n') + any_search_gap = False + for ent in sorted(entity_totals): + cell = matrix_variants[ent].get('search', {}) + if not cell: + continue + if cell.get('pagination-sort', 0) == 0 and cell.get('filter', 0) == 0: + fp.write(f'- {ent} (search): no pagination-sort/filter labels\n') + any_search_gap = True + if not any_search_gap: + fp.write('- _(none)_\n') +print(f"wrote {gaps_path}") + +# ---------- 10. category_breakdown.md ---------- +# Mirrors upstream's per-category breakdown: Form + per-entity prerequisite, +# observation channel split, form-step counts, variants, and the test rows. +CANONICAL_FORM = { + 'A. Entity Lifecycle (CRUD)': + 'Create Entity → Get Entity (Observe Present) → Update Entity → Search Entity (Observe via list) → Delete Entity → Get Entity (Observe Absence)', + 'B. Membership/Association': + 'Create parent + member (prerequisite) → Assign member → Search members (Observe Present) → Unassign member → Search members (Observe Absence)', + 'C. Deployment Lifecycle': + 'Deploy resource → Get definition (XML/JSON) → Search definitions (Observe Present) → Delete resource → Get definition (Observe Absence)', + 'D. Process-Instance Lifecycle & Ops': + 'Deploy process (prerequisite) → Create instance → Get/Search instance → Cancel/Migrate/Modify/Resolve-incident → Delete → Observe absence. Batch creators wrap N instances per call.', + 'E. Batch-Operation Lifecycle': + 'Create batch (via batch-creating process-instance APIs, prerequisite) → Get batch → Search batch → Search items → Suspend → Cancel', + 'F. User-Task Lifecycle': + 'Deploy process w/ user task (prerequisite) → Create instance → Assign → Update → Search/Get → Get form → Search variables → Complete → Unassign', + 'G. Job Lifecycle & Stats': + 'Deploy process w/ job (prerequisite) → Activate → Complete / Fail / Error / Update → Search jobs → Aggregate (5 statistics endpoints)', + 'H. Incident Lifecycle': + 'Deploy process + failing job (prerequisite) → Incident raised → Get incident → Search → Resolve → Statistics (by definition / by error)', + 'I. Decision-Instance Lifecycle': + 'Deploy DRD/DMN (prerequisite) → Evaluate → Get instance → Search → Delete (single + batch) → Search (Observe Absence)', + 'J/K/L. Observation-only': + 'Perform an action elsewhere (prerequisite) → Get / Search to observe', + 'M. Messaging/Signals': + 'Deploy process with catch event (prerequisite) → Publish/Correlate/Broadcast → Search subscriptions / correlated messages', + 'N. Engine Evaluation': + 'Submit expression / conditional → Receive result (stateless, no entity persisted)', + 'O. System/Admin': + 'Read system state (auth, license, cluster, clock, metrics) or perform admin action (pin/reset clock)', + 'P. Agent-Instance (new in v2)': + 'New v2 endpoint family — get / search agent instances (lifecycle TBD)', + 'Z. Uncategorised': + '(no canonical form)', +} + +cat_order = [ + 'A. Entity Lifecycle (CRUD)', + 'B. Membership/Association', + 'C. Deployment Lifecycle', + 'D. Process-Instance Lifecycle & Ops', + 'E. Batch-Operation Lifecycle', + 'F. User-Task Lifecycle', + 'G. Job Lifecycle & Stats', + 'H. Incident Lifecycle', + 'I. Decision-Instance Lifecycle', + 'J/K/L. Observation-only', + 'M. Messaging/Signals', + 'N. Engine Evaluation', + 'O. System/Admin', + 'P. Agent-Instance (new in v2)', + 'Z. Uncategorised', +] +form_step_order = [ + 'create', 'observe-present-get', 'observe-present-search', 'mutate', + 'delete', 'observe-absence', 'lifecycle', + 'negative-create', 'negative-get', 'negative-update', 'negative-delete', + 'negative-search', 'negative-other', + 'other', +] +variant_order = [ + 'happy-path', 'observe-absence', 'data-driven', 'unlabeled', + 'bad-request', 'unauthorized', 'forbidden', 'not-found', 'conflict', + 'pagination-sort', 'filter', +] + +by_cat = defaultdict(list) +for r in rows: + by_cat[r['category']].append(r) + +cat_path = os.path.join(OUT, 'category_breakdown.md') +fp = open(cat_path, 'w', encoding='utf-8') +fp.write('# api-test-generator — Per-category breakdown\n\n') +fp.write(f'Total test declarations: **{len(rows)}** across **{len(entity_totals)}** entities.\n\n') +fp.write('This file answers, per category: **(1) Form** (the canonical sequence), ' + '**(2) Prerequisite to create**, **(3) Observation channel split** (GET vs Search), ' + '**(4) Variants with counts**, **(5) The actual tests in that category**.\n\n') +fp.write('Categories and the entity → category mapping mirror the upstream ' + '`c8-orchestration-cluster-e2e-test-suite/coverage-analysis/category_breakdown.md` ' + 'so the two files can be diffed side-by-side.\n\n') + +fp.write('## Table of contents\n\n') +def anchor(cat): + a = cat.lower().replace('. ', '-').replace(' ', '-') + for ch in '/()&,': + a = a.replace(ch, '') + return a +for cat in cat_order: + if cat in by_cat: + fp.write(f'- [{cat}](#{anchor(cat)}) — {len(by_cat[cat])} tests\n') +fp.write('\n') + +step_idx = {s: i for i, s in enumerate(form_step_order)} +for cat in cat_order: + if cat not in by_cat: + continue + cat_rows = by_cat[cat] + fp.write(f'## {cat}\n\n') + fp.write(f'**Form**: {CANONICAL_FORM.get(cat, "(no canonical form)")}\n\n') + fp.write(f'**Total tests**: {len(cat_rows)}\n\n') + + by_ent = defaultdict(list) + for r in cat_rows: + by_ent[r['entity']].append(r) + + for ent in sorted(by_ent, key=lambda x: -len(by_ent[x])): + ent_rows = by_ent[ent] + prereqs = sorted({r['prerequisite'] for r in ent_rows}) + prereq_str = ', '.join(prereqs) + + step_counts = defaultdict(int) + for r in ent_rows: + step_counts[r['form_step']] += 1 + + obs_get = sum(1 for r in ent_rows if r['form_step'] == 'observe-present-get') + obs_search = sum(1 for r in ent_rows if r['form_step'] == 'observe-present-search') + + # Split multi-label variants ('happy-path|observe-absence') so each + # label is counted independently — keeps these counts reconcilable + # with the matrix column counts. + var_counts = defaultdict(int) + for r in ent_rows: + for v in (r['variants'].split('|') if r['variants'] else ['unlabeled']): + var_counts[v] += 1 + + files = sorted({r['file'] for r in ent_rows}) + + fp.write(f'### `{ent}` — {len(ent_rows)} tests\n\n') + fp.write(f'- **Prerequisite to create**: {prereq_str}\n') + fp.write(f'- **Files**: {", ".join(f"`{f}`" for f in files)}\n') + fp.write(f'- **Observation channel**: GET = {obs_get}, Search = {obs_search}\n') + + step_line = ', '.join(f'{s}={step_counts[s]}' for s in form_step_order if step_counts.get(s,0)) + fp.write(f'- **Form-step counts**: {step_line}\n') + + var_line = ', '.join(f'{v}={var_counts[v]}' for v in variant_order if var_counts.get(v,0)) + fp.write(f'- **Variants**: {var_line}\n\n') + + fp.write('| form step | variants | file:line | test name |\n') + fp.write('|--|--|--|--|\n') + sorted_rows = sorted( + ent_rows, + key=lambda r: (step_idx.get(r['form_step'], 999), r['file'], r['line']), + ) + for r in sorted_rows: + # Use ', ' between labels so multi-label variants (e.g. + # 'happy-path|observe-absence') don't break the markdown table. + variants_cell = r['variants'].replace('|', ', ') if r['variants'] else '—' + test_name_cell = r['test_name'].replace('|', r'\|') + fp.write(f'| {r["form_step"]} | {variants_cell} | ' + f'`{r["file"]}:{r["line"]}` | {test_name_cell} |\n') + fp.write('\n') + +fp.close() +print(f"wrote {cat_path}") diff --git a/coverage-analysis/category_breakdown.md b/coverage-analysis/category_breakdown.md new file mode 100644 index 0000000..a1d30a2 --- /dev/null +++ b/coverage-analysis/category_breakdown.md @@ -0,0 +1,2166 @@ +# api-test-generator — Per-category breakdown + +Total test declarations: **1617** across **37** entities. + +This file answers, per category: **(1) Form** (the canonical sequence), **(2) Prerequisite to create**, **(3) Observation channel split** (GET vs Search), **(4) Variants with counts**, **(5) The actual tests in that category**. + +Categories and the entity → category mapping mirror the upstream `c8-orchestration-cluster-e2e-test-suite/coverage-analysis/category_breakdown.md` so the two files can be diffed side-by-side. + +## Table of contents + +- [A. Entity Lifecycle (CRUD)](#a-entity-lifecycle-crud) — 361 tests +- [B. Membership/Association](#b-membershipassociation) — 206 tests +- [C. Deployment Lifecycle](#c-deployment-lifecycle) — 149 tests +- [D. Process-Instance Lifecycle & Ops](#d-process-instance-lifecycle--ops) — 282 tests +- [E. Batch-Operation Lifecycle](#e-batch-operation-lifecycle) — 24 tests +- [F. User-Task Lifecycle](#f-user-task-lifecycle) — 65 tests +- [G. Job Lifecycle & Stats](#g-job-lifecycle--stats) — 142 tests +- [H. Incident Lifecycle](#h-incident-lifecycle) — 41 tests +- [I. Decision-Instance Lifecycle](#i-decision-instance-lifecycle) — 72 tests +- [J/K/L. Observation-only](#jkl-observation-only) — 95 tests +- [M. Messaging/Signals](#m-messagingsignals) — 70 tests +- [N. Engine Evaluation](#n-engine-evaluation) — 25 tests +- [O. System/Admin](#o-systemadmin) — 36 tests +- [P. Agent-Instance (new in v2)](#p-agent-instance-new-in-v2) — 49 tests + +## A. Entity Lifecycle (CRUD) + +**Form**: Create Entity → Get Entity (Observe Present) → Update Entity → Search Entity (Observe via list) → Delete Entity → Get Entity (Observe Absence) + +**Total tests**: 361 + +### `cluster-variables` — 62 tests + +- **Prerequisite to create**: none +- **Files**: `createGlobalClusterVariable.feature.spec.ts`, `createTenantClusterVariable.feature.spec.ts`, `deleteGlobalClusterVariable.feature.spec.ts`, `deleteTenantClusterVariable.feature.spec.ts`, `entities/GlobalClusterVariable.lifecycle.spec.ts`, `entities/TenantClusterVariable.lifecycle.spec.ts`, `getGlobalClusterVariable.feature.spec.ts`, `getTenantClusterVariable.feature.spec.ts`, `request-validation/clustervariables-validation-api-tests.spec.ts`, `searchClusterVariables.feature.spec.ts`, `searchClusterVariables.variant.spec.ts`, `updateGlobalClusterVariable.feature.spec.ts`, `updateTenantClusterVariable.feature.spec.ts` +- **Observation channel**: GET = 2, Search = 3 +- **Form-step counts**: create=2, observe-present-get=2, observe-present-search=3, mutate=2, delete=2, observe-absence=1, lifecycle=2, negative-create=25, negative-get=3, negative-update=11, negative-delete=3, negative-search=6 +- **Variants**: happy-path=11, observe-absence=3, data-driven=2, bad-request=48, pagination-sort=2 + +| form step | variants | file:line | test name | +|--|--|--|--| +| create | happy-path | `createGlobalClusterVariable.feature.spec.ts:11` | feature-1 - createGlobalClusterVariable - base (1) | +| create | happy-path | `createTenantClusterVariable.feature.spec.ts:11` | feature-1 - createTenantClusterVariable - base (1) | +| observe-present-get | happy-path | `getGlobalClusterVariable.feature.spec.ts:12` | feature-1 - getGlobalClusterVariable - base (1) | +| observe-present-get | happy-path | `getTenantClusterVariable.feature.spec.ts:12` | feature-1 - getTenantClusterVariable - base (1) | +| observe-present-search | happy-path | `searchClusterVariables.feature.spec.ts:12` | feature-1 - searchClusterVariables - base (1) | +| observe-present-search | data-driven, pagination-sort | `searchClusterVariables.variant.spec.ts:12` | variant-1 - searchClusterVariables - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchClusterVariables.variant.spec.ts:66` | variant-2 - searchClusterVariables - path #1 | +| mutate | happy-path | `updateGlobalClusterVariable.feature.spec.ts:11` | feature-1 - updateGlobalClusterVariable - base (1) | +| mutate | happy-path | `updateTenantClusterVariable.feature.spec.ts:11` | feature-1 - updateTenantClusterVariable - base (1) | +| delete | happy-path | `deleteGlobalClusterVariable.feature.spec.ts:8` | feature-1 - deleteGlobalClusterVariable - base (1) | +| delete | happy-path | `deleteTenantClusterVariable.feature.spec.ts:8` | feature-1 - deleteTenantClusterVariable - base (1) | +| observe-absence | observe-absence | `searchClusterVariables.feature.spec.ts:37` | feature-2 - searchClusterVariables - negative empty (2) | +| lifecycle | happy-path, observe-absence | `entities/GlobalClusterVariable.lifecycle.spec.ts:9` | establish GlobalClusterVariable, observe present, revoke, observe absent | +| lifecycle | happy-path, observe-absence | `entities/TenantClusterVariable.lifecycle.spec.ts:9` | establish TenantClusterVariable, observe present, revoke, observe absent | +| negative-create | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:18` | createGlobalClusterVariable - Additional prop __extraField | +| negative-create | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:39` | createGlobalClusterVariable - Body wrong top-level type | +| negative-create | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:54` | createGlobalClusterVariable - Param name wrong type (#1) | +| negative-create | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:74` | createGlobalClusterVariable - Param name wrong type (#2) | +| negative-create | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:94` | createGlobalClusterVariable - Constraint violation name (#1) | +| negative-create | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:114` | createGlobalClusterVariable - Constraint violation name (#2) | +| negative-create | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:134` | createGlobalClusterVariable - Constraint violation name (#3) | +| negative-create | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:154` | createGlobalClusterVariable - Constraint violation name (#4) | +| negative-create | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:174` | createGlobalClusterVariable - Missing name | +| negative-create | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:191` | createGlobalClusterVariable - Missing value | +| negative-create | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:208` | createGlobalClusterVariable - Missing body | +| negative-create | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:220` | createGlobalClusterVariable - Missing combo name,value | +| negative-create | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:235` | createTenantClusterVariable - Additional prop __extraField | +| negative-create | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:258` | createTenantClusterVariable - Body wrong top-level type | +| negative-create | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:275` | createTenantClusterVariable - Param name wrong type (#1) | +| negative-create | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:297` | createTenantClusterVariable - Param name wrong type (#2) | +| negative-create | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:319` | createTenantClusterVariable - Constraint violation name (#1) | +| negative-create | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:341` | createTenantClusterVariable - Constraint violation name (#2) | +| negative-create | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:363` | createTenantClusterVariable - Constraint violation name (#3) | +| negative-create | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:385` | createTenantClusterVariable - Constraint violation name (#4) | +| negative-create | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:407` | createTenantClusterVariable - Missing name | +| negative-create | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:426` | createTenantClusterVariable - Missing value | +| negative-create | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:445` | createTenantClusterVariable - Missing body | +| negative-create | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:459` | createTenantClusterVariable - Missing combo name,value | +| negative-create | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:476` | createTenantClusterVariable - Path param tenantId pattern violation | +| negative-get | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:540` | getGlobalClusterVariable - Path param name pattern violation | +| negative-get | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:554` | getTenantClusterVariable - Path param name pattern violation | +| negative-get | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:571` | getTenantClusterVariable - Path param tenantId pattern violation | +| negative-update | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:697` | updateGlobalClusterVariable - Additional prop __extraField | +| negative-update | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:717` | updateGlobalClusterVariable - Body wrong top-level type | +| negative-update | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:732` | updateGlobalClusterVariable - Missing value | +| negative-update | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:747` | updateGlobalClusterVariable - Missing body | +| negative-update | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:759` | updateGlobalClusterVariable - Path param name pattern violation | +| negative-update | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:773` | updateTenantClusterVariable - Additional prop __extraField | +| negative-update | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:796` | updateTenantClusterVariable - Body wrong top-level type | +| negative-update | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:814` | updateTenantClusterVariable - Missing value | +| negative-update | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:832` | updateTenantClusterVariable - Missing body | +| negative-update | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:847` | updateTenantClusterVariable - Path param name pattern violation | +| negative-update | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:864` | updateTenantClusterVariable - Path param tenantId pattern violation | +| negative-delete | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:492` | deleteGlobalClusterVariable - Path param name pattern violation | +| negative-delete | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:506` | deleteTenantClusterVariable - Path param name pattern violation | +| negative-delete | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:523` | deleteTenantClusterVariable - Path param tenantId pattern violation | +| negative-search | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:588` | searchClusterVariables - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:607` | searchClusterVariables - Body wrong top-level type | +| negative-search | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:622` | searchClusterVariables - Missing sort.0.field | +| negative-search | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:639` | searchClusterVariables - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:660` | searchClusterVariables - Enum violation sort.0.order | +| negative-search | bad-request | `request-validation/clustervariables-validation-api-tests.spec.ts:681` | searchClusterVariables - Param query.truncateValues wrong type | + +### `mapping-rule` — 49 tests + +- **Prerequisite to create**: none +- **Files**: `createMappingRule.feature.spec.ts`, `deleteMappingRule.feature.spec.ts`, `entities/MappingRule.lifecycle.spec.ts`, `getMappingRule.feature.spec.ts`, `request-validation/mappingrules-validation-api-tests.spec.ts`, `searchMappingRule.feature.spec.ts`, `searchMappingRule.variant.spec.ts`, `updateMappingRule.feature.spec.ts` +- **Observation channel**: GET = 1, Search = 4 +- **Form-step counts**: create=1, observe-present-get=1, observe-present-search=4, mutate=1, delete=1, observe-absence=1, lifecycle=1, negative-create=20, negative-get=1, negative-update=12, negative-delete=1, negative-search=5 +- **Variants**: happy-path=6, observe-absence=2, data-driven=3, bad-request=39, pagination-sort=2, filter=1 + +| form step | variants | file:line | test name | +|--|--|--|--| +| create | happy-path | `createMappingRule.feature.spec.ts:11` | feature-1 - createMappingRule - base (1) | +| observe-present-get | happy-path | `getMappingRule.feature.spec.ts:12` | feature-1 - getMappingRule - base (1) | +| observe-present-search | happy-path | `searchMappingRule.feature.spec.ts:12` | feature-1 - searchMappingRule - base (1) | +| observe-present-search | data-driven, filter | `searchMappingRule.variant.spec.ts:12` | variant-1 - searchMappingRule - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchMappingRule.variant.spec.ts:107` | variant-2 - searchMappingRule - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchMappingRule.variant.spec.ts:161` | variant-3 - searchMappingRule - path #1 | +| mutate | happy-path | `updateMappingRule.feature.spec.ts:11` | feature-1 - updateMappingRule - base (1) | +| delete | happy-path | `deleteMappingRule.feature.spec.ts:8` | feature-1 - deleteMappingRule - base (1) | +| observe-absence | observe-absence | `searchMappingRule.feature.spec.ts:37` | feature-2 - searchMappingRule - negative empty (2) | +| lifecycle | happy-path, observe-absence | `entities/MappingRule.lifecycle.spec.ts:9` | establish MappingRule, observe present, revoke, observe absent | +| negative-create | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:18` | createMappingRule - Additional prop __unexpectedField | +| negative-create | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:39` | createMappingRule - Body wrong top-level type | +| negative-create | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:54` | createMappingRule - Param claimName wrong type (#1) | +| negative-create | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:74` | createMappingRule - Param claimName wrong type (#2) | +| negative-create | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:94` | createMappingRule - Param claimValue wrong type (#1) | +| negative-create | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:114` | createMappingRule - Param claimValue wrong type (#2) | +| negative-create | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:134` | createMappingRule - Param mappingRuleId wrong type (#1) | +| negative-create | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:154` | createMappingRule - Param mappingRuleId wrong type (#2) | +| negative-create | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:174` | createMappingRule - Param name wrong type (#1) | +| negative-create | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:194` | createMappingRule - Param name wrong type (#2) | +| negative-create | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:214` | createMappingRule - Constraint violation mappingRuleId (#1) | +| negative-create | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:237` | createMappingRule - Constraint violation mappingRuleId (#2) | +| negative-create | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:259` | createMappingRule - Constraint violation mappingRuleId (#3) | +| negative-create | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:281` | createMappingRule - Constraint violation mappingRuleId (#4) | +| negative-create | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:304` | createMappingRule - Missing claimName | +| negative-create | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:323` | createMappingRule - Missing claimValue | +| negative-create | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:342` | createMappingRule - Missing mappingRuleId (#1) | +| negative-create | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:361` | createMappingRule - Missing name | +| negative-create | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:380` | createMappingRule - Missing mappingRuleId (#2) | +| negative-create | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:395` | createMappingRule - Missing body | +| negative-get | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:423` | getMappingRule - Path param mappingRuleId pattern violation | +| negative-update | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:530` | updateMappingRule - Additional prop __extraField | +| negative-update | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:552` | updateMappingRule - Body wrong top-level type | +| negative-update | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:569` | updateMappingRule - Param claimName wrong type (#1) | +| negative-update | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:590` | updateMappingRule - Param claimName wrong type (#2) | +| negative-update | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:611` | updateMappingRule - Param claimValue wrong type (#1) | +| negative-update | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:632` | updateMappingRule - Param claimValue wrong type (#2) | +| negative-update | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:653` | updateMappingRule - Param name wrong type (#1) | +| negative-update | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:674` | updateMappingRule - Param name wrong type (#2) | +| negative-update | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:695` | updateMappingRule - Missing claimName | +| negative-update | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:715` | updateMappingRule - Missing claimValue | +| negative-update | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:735` | updateMappingRule - Missing name | +| negative-update | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:755` | updateMappingRule - Path param mappingRuleId pattern violation | +| negative-delete | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:407` | deleteMappingRule - Path param mappingRuleId pattern violation | +| negative-search | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:439` | searchMappingRule - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:456` | searchMappingRule - Body wrong top-level type | +| negative-search | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:471` | searchMappingRule - Missing sort.0.field | +| negative-search | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:488` | searchMappingRule - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/mappingrules-validation-api-tests.spec.ts:509` | searchMappingRule - Enum violation sort.0.order | + +### `global-task-listener` — 48 tests + +- **Prerequisite to create**: none +- **Files**: `createGlobalTaskListener.feature.spec.ts`, `deleteGlobalTaskListener.feature.spec.ts`, `entities/GlobalTaskListener.lifecycle.spec.ts`, `getGlobalTaskListener.feature.spec.ts`, `request-validation/globaltasklisteners-validation-api-tests.spec.ts`, `searchGlobalTaskListeners.feature.spec.ts`, `searchGlobalTaskListeners.variant.spec.ts`, `updateGlobalTaskListener.feature.spec.ts` +- **Observation channel**: GET = 1, Search = 3 +- **Form-step counts**: create=1, observe-present-get=1, observe-present-search=3, mutate=1, delete=1, observe-absence=1, lifecycle=1, negative-create=21, negative-get=1, negative-update=11, negative-delete=1, negative-search=5 +- **Variants**: happy-path=6, observe-absence=2, data-driven=2, bad-request=39, pagination-sort=2 + +| form step | variants | file:line | test name | +|--|--|--|--| +| create | happy-path | `createGlobalTaskListener.feature.spec.ts:11` | feature-1 - createGlobalTaskListener - base (1) | +| observe-present-get | happy-path | `getGlobalTaskListener.feature.spec.ts:12` | feature-1 - getGlobalTaskListener - base (1) | +| observe-present-search | happy-path | `searchGlobalTaskListeners.feature.spec.ts:12` | feature-1 - searchGlobalTaskListeners - base (1) | +| observe-present-search | data-driven, pagination-sort | `searchGlobalTaskListeners.variant.spec.ts:12` | variant-1 - searchGlobalTaskListeners - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchGlobalTaskListeners.variant.spec.ts:66` | variant-2 - searchGlobalTaskListeners - path #1 | +| mutate | happy-path | `updateGlobalTaskListener.feature.spec.ts:11` | feature-1 - updateGlobalTaskListener - base (1) | +| delete | happy-path | `deleteGlobalTaskListener.feature.spec.ts:8` | feature-1 - deleteGlobalTaskListener - base (1) | +| observe-absence | observe-absence | `searchGlobalTaskListeners.feature.spec.ts:37` | feature-2 - searchGlobalTaskListeners - negative empty (2) | +| lifecycle | happy-path, observe-absence | `entities/GlobalTaskListener.lifecycle.spec.ts:9` | establish GlobalTaskListener, observe present, revoke, observe absent | +| negative-create | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:18` | createGlobalTaskListener - Additional prop __extraField | +| negative-create | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:38` | createGlobalTaskListener - Body wrong top-level type | +| negative-create | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:53` | createGlobalTaskListener - Param id wrong type (#1) | +| negative-create | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:72` | createGlobalTaskListener - Param id wrong type (#2) | +| negative-create | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:91` | createGlobalTaskListener - Param type wrong type (#1) | +| negative-create | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:110` | createGlobalTaskListener - Param type wrong type (#2) | +| negative-create | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:129` | createGlobalTaskListener - Constraint violation id (#1) | +| negative-create | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:148` | createGlobalTaskListener - Constraint violation id (#2) | +| negative-create | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:167` | createGlobalTaskListener - Constraint violation id (#3) | +| negative-create | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:186` | createGlobalTaskListener - Constraint violation id (#4) | +| negative-create | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:205` | createGlobalTaskListener - Missing id (#1) | +| negative-create | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:223` | createGlobalTaskListener - Missing type (#1) | +| negative-create | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:241` | createGlobalTaskListener - Enum violation eventTypes.0 | +| negative-create | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:260` | createGlobalTaskListener - Missing eventTypes | +| negative-create | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:278` | createGlobalTaskListener - Missing id (#2) | +| negative-create | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:296` | createGlobalTaskListener - Missing type (#2) | +| negative-create | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:314` | createGlobalTaskListener - Missing body | +| negative-create | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:326` | createGlobalTaskListener - Missing combo id,eventTypes | +| negative-create | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:343` | createGlobalTaskListener - Missing combo id,type | +| negative-create | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:360` | createGlobalTaskListener - Missing combo id,type,eventTypes | +| negative-create | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:377` | createGlobalTaskListener - Missing combo type,eventTypes | +| negative-get | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:410` | getGlobalTaskListener - Path param id pattern violation | +| negative-update | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:515` | updateGlobalTaskListener - Additional prop __extraField | +| negative-update | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:534` | updateGlobalTaskListener - Body wrong top-level type | +| negative-update | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:549` | updateGlobalTaskListener - Param type wrong type (#1) | +| negative-update | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:567` | updateGlobalTaskListener - Param type wrong type (#2) | +| negative-update | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:585` | updateGlobalTaskListener - Missing type (#1) | +| negative-update | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:602` | updateGlobalTaskListener - Enum violation eventTypes.0 | +| negative-update | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:620` | updateGlobalTaskListener - Missing eventTypes | +| negative-update | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:637` | updateGlobalTaskListener - Missing type (#2) | +| negative-update | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:654` | updateGlobalTaskListener - Missing body | +| negative-update | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:666` | updateGlobalTaskListener - Missing combo type,eventTypes | +| negative-update | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:683` | updateGlobalTaskListener - Path param id pattern violation | +| negative-delete | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:396` | deleteGlobalTaskListener - Path param id pattern violation | +| negative-search | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:422` | searchGlobalTaskListeners - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:441` | searchGlobalTaskListeners - Body wrong top-level type | +| negative-search | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:456` | searchGlobalTaskListeners - Missing sort.0.field | +| negative-search | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:473` | searchGlobalTaskListeners - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/globaltasklisteners-validation-api-tests.spec.ts:494` | searchGlobalTaskListeners - Enum violation sort.0.order | + +### `tenant` — 38 tests + +- **Prerequisite to create**: none +- **Files**: `createTenant.feature.spec.ts`, `deleteTenant.feature.spec.ts`, `entities/Tenant.lifecycle.spec.ts`, `getTenant.feature.spec.ts`, `request-validation/tenants-validation-api-tests.spec.ts`, `searchTenants.feature.spec.ts`, `searchTenants.variant.spec.ts`, `updateTenant.feature.spec.ts` +- **Observation channel**: GET = 1, Search = 4 +- **Form-step counts**: create=1, observe-present-get=1, observe-present-search=4, mutate=1, delete=1, observe-absence=1, lifecycle=1, negative-create=14, negative-get=1, negative-update=7, negative-delete=1, negative-search=5 +- **Variants**: happy-path=6, observe-absence=2, data-driven=3, bad-request=28, pagination-sort=2, filter=1 + +| form step | variants | file:line | test name | +|--|--|--|--| +| create | happy-path | `createTenant.feature.spec.ts:11` | feature-1 - createTenant - base (1) | +| observe-present-get | happy-path | `getTenant.feature.spec.ts:12` | feature-1 - getTenant - base (1) | +| observe-present-search | happy-path | `searchTenants.feature.spec.ts:12` | feature-1 - searchTenants - base (1) | +| observe-present-search | data-driven, filter | `searchTenants.variant.spec.ts:12` | variant-1 - searchTenants - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchTenants.variant.spec.ts:63` | variant-2 - searchTenants - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchTenants.variant.spec.ts:115` | variant-3 - searchTenants - path #1 | +| mutate | happy-path | `updateTenant.feature.spec.ts:11` | feature-1 - updateTenant - base (1) | +| delete | happy-path | `deleteTenant.feature.spec.ts:8` | feature-1 - deleteTenant - base (1) | +| observe-absence | observe-absence | `searchTenants.feature.spec.ts:35` | feature-2 - searchTenants - negative empty (2) | +| lifecycle | happy-path, observe-absence | `entities/Tenant.lifecycle.spec.ts:9` | establish Tenant, observe present, revoke, observe absent | +| negative-create | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:189` | createTenant - Additional prop __unexpectedField | +| negative-create | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:208` | createTenant - Body wrong top-level type | +| negative-create | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:223` | createTenant - Param name wrong type (#1) | +| negative-create | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:241` | createTenant - Param name wrong type (#2) | +| negative-create | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:259` | createTenant - Param tenantId wrong type (#1) | +| negative-create | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:277` | createTenant - Param tenantId wrong type (#2) | +| negative-create | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:295` | createTenant - Constraint violation tenantId (#1) | +| negative-create | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:313` | createTenant - Constraint violation tenantId (#2) | +| negative-create | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:331` | createTenant - Constraint violation tenantId (#3) | +| negative-create | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:349` | createTenant - Constraint violation tenantId (#4) | +| negative-create | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:367` | createTenant - Missing name | +| negative-create | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:384` | createTenant - Missing tenantId | +| negative-create | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:401` | createTenant - Missing body | +| negative-create | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:413` | createTenant - Missing combo tenantId,name | +| negative-get | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:440` | getTenant - Path param tenantId pattern violation | +| negative-update | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:1273` | updateTenant - Additional prop __unexpectedField | +| negative-update | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:1291` | updateTenant - Body wrong top-level type | +| negative-update | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:1306` | updateTenant - Param name wrong type (#1) | +| negative-update | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:1323` | updateTenant - Param name wrong type (#2) | +| negative-update | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:1340` | updateTenant - Missing name | +| negative-update | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:1355` | updateTenant - Missing body | +| negative-update | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:1367` | updateTenant - Path param tenantId pattern violation | +| negative-delete | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:428` | deleteTenant - Path param tenantId pattern violation | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:902` | searchTenants - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:919` | searchTenants - Body wrong top-level type | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:934` | searchTenants - Missing sort.0.field | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:951` | searchTenants - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:972` | searchTenants - Enum violation sort.0.order | + +### `authorization` — 37 tests + +- **Prerequisite to create**: owner-entity-or-resource +- **Files**: `createAuthorization.feature.spec.ts`, `deleteAuthorization.feature.spec.ts`, `entities/Authorization.lifecycle.spec.ts`, `getAuthorization.feature.spec.ts`, `request-validation/authorizations-validation-api-tests.spec.ts`, `searchAuthorizations.feature.spec.ts`, `searchAuthorizations.variant.spec.ts`, `updateAuthorization.feature.spec.ts` +- **Observation channel**: GET = 1, Search = 3 +- **Form-step counts**: create=3, observe-present-get=1, observe-present-search=3, mutate=3, delete=1, observe-absence=1, lifecycle=1, negative-create=7, negative-get=1, negative-update=8, negative-delete=1, negative-search=7 +- **Variants**: happy-path=6, observe-absence=2, data-driven=6, bad-request=24, pagination-sort=2 + +| form step | variants | file:line | test name | +|--|--|--|--| +| create | happy-path | `createAuthorization.feature.spec.ts:11` | feature-1 - createAuthorization - base (1) | +| create | data-driven | `createAuthorization.feature.spec.ts:52` | feature-2 - createAuthorization - oneOf group0 variant1 (2) | +| create | data-driven | `createAuthorization.feature.spec.ts:94` | feature-3 - createAuthorization - oneOf group0 variant2 (3) | +| observe-present-get | happy-path | `getAuthorization.feature.spec.ts:12` | feature-1 - getAuthorization - base (1) | +| observe-present-search | happy-path | `searchAuthorizations.feature.spec.ts:12` | feature-1 - searchAuthorizations - base (1) | +| observe-present-search | data-driven, pagination-sort | `searchAuthorizations.variant.spec.ts:12` | variant-1 - searchAuthorizations - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchAuthorizations.variant.spec.ts:66` | variant-2 - searchAuthorizations - path #1 | +| mutate | happy-path | `updateAuthorization.feature.spec.ts:8` | feature-1 - updateAuthorization - base (1) | +| mutate | data-driven | `updateAuthorization.feature.spec.ts:63` | feature-2 - updateAuthorization - oneOf group0 variant1 (2) | +| mutate | data-driven | `updateAuthorization.feature.spec.ts:119` | feature-3 - updateAuthorization - oneOf group0 variant2 (3) | +| delete | happy-path | `deleteAuthorization.feature.spec.ts:8` | feature-1 - deleteAuthorization - base (1) | +| observe-absence | observe-absence | `searchAuthorizations.feature.spec.ts:37` | feature-2 - searchAuthorizations - negative empty (2) | +| lifecycle | happy-path, observe-absence | `entities/Authorization.lifecycle.spec.ts:9` | establish Authorization, observe present, revoke, observe absent | +| negative-create | bad-request | `request-validation/authorizations-validation-api-tests.spec.ts:18` | createAuthorization - Additional prop __extraField | +| negative-create | bad-request | `request-validation/authorizations-validation-api-tests.spec.ts:35` | createAuthorization - Body wrong top-level type | +| negative-create | bad-request | `request-validation/authorizations-validation-api-tests.spec.ts:50` | createAuthorization - Missing body | +| negative-create | bad-request | `request-validation/authorizations-validation-api-tests.spec.ts:62` | createAuthorization - oneOf ambiguous | +| negative-create | bad-request | `request-validation/authorizations-validation-api-tests.spec.ts:84` | createAuthorization - oneOf cross bleed | +| negative-create | bad-request | `request-validation/authorizations-validation-api-tests.spec.ts:106` | createAuthorization - oneOf none match | +| negative-create | bad-request | `request-validation/authorizations-validation-api-tests.spec.ts:127` | createAuthorization - oneOf violation | +| negative-get | bad-request | `request-validation/authorizations-validation-api-tests.spec.ts:165` | getAuthorization - Path param authorizationKey pattern violation | +| negative-update | bad-request | `request-validation/authorizations-validation-api-tests.spec.ts:314` | updateAuthorization - Additional prop __extraField | +| negative-update | bad-request | `request-validation/authorizations-validation-api-tests.spec.ts:333` | updateAuthorization - Body wrong top-level type | +| negative-update | bad-request | `request-validation/authorizations-validation-api-tests.spec.ts:350` | updateAuthorization - Missing body | +| negative-update | bad-request | `request-validation/authorizations-validation-api-tests.spec.ts:364` | updateAuthorization - oneOf ambiguous | +| negative-update | bad-request | `request-validation/authorizations-validation-api-tests.spec.ts:388` | updateAuthorization - oneOf cross bleed | +| negative-update | bad-request | `request-validation/authorizations-validation-api-tests.spec.ts:412` | updateAuthorization - oneOf none match | +| negative-update | bad-request | `request-validation/authorizations-validation-api-tests.spec.ts:435` | updateAuthorization - Path param authorizationKey pattern violation | +| negative-update | bad-request | `request-validation/authorizations-validation-api-tests.spec.ts:451` | updateAuthorization - oneOf violation | +| negative-delete | bad-request | `request-validation/authorizations-validation-api-tests.spec.ts:149` | deleteAuthorization - Path param authorizationKey pattern violation | +| negative-search | bad-request | `request-validation/authorizations-validation-api-tests.spec.ts:181` | searchAuthorizations - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/authorizations-validation-api-tests.spec.ts:200` | searchAuthorizations - Body wrong top-level type | +| negative-search | bad-request | `request-validation/authorizations-validation-api-tests.spec.ts:215` | searchAuthorizations - Missing sort.0.field | +| negative-search | bad-request | `request-validation/authorizations-validation-api-tests.spec.ts:232` | searchAuthorizations - Enum violation filter.ownerType | +| negative-search | bad-request | `request-validation/authorizations-validation-api-tests.spec.ts:251` | searchAuthorizations - Enum violation filter.resourceType | +| negative-search | bad-request | `request-validation/authorizations-validation-api-tests.spec.ts:272` | searchAuthorizations - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/authorizations-validation-api-tests.spec.ts:293` | searchAuthorizations - Enum violation sort.0.order | + +### `role` — 37 tests + +- **Prerequisite to create**: none +- **Files**: `createRole.feature.spec.ts`, `deleteRole.feature.spec.ts`, `entities/Role.lifecycle.spec.ts`, `getRole.feature.spec.ts`, `request-validation/roles-validation-api-tests.spec.ts`, `searchRoles.feature.spec.ts`, `searchRoles.variant.spec.ts`, `updateRole.feature.spec.ts` +- **Observation channel**: GET = 1, Search = 4 +- **Form-step counts**: create=1, observe-present-get=1, observe-present-search=4, mutate=1, delete=1, observe-absence=1, lifecycle=1, negative-create=13, negative-get=1, negative-update=7, negative-delete=1, negative-search=5 +- **Variants**: happy-path=6, observe-absence=2, data-driven=3, bad-request=27, pagination-sort=2, filter=1 + +| form step | variants | file:line | test name | +|--|--|--|--| +| create | happy-path | `createRole.feature.spec.ts:11` | feature-1 - createRole - base (1) | +| observe-present-get | happy-path | `getRole.feature.spec.ts:12` | feature-1 - getRole - base (1) | +| observe-present-search | happy-path | `searchRoles.feature.spec.ts:12` | feature-1 - searchRoles - base (1) | +| observe-present-search | data-driven, filter | `searchRoles.variant.spec.ts:12` | variant-1 - searchRoles - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchRoles.variant.spec.ts:105` | variant-2 - searchRoles - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchRoles.variant.spec.ts:157` | variant-3 - searchRoles - path #1 | +| mutate | happy-path | `updateRole.feature.spec.ts:11` | feature-1 - updateRole - base (1) | +| delete | happy-path | `deleteRole.feature.spec.ts:8` | feature-1 - deleteRole - base (1) | +| observe-absence | observe-absence | `searchRoles.feature.spec.ts:35` | feature-2 - searchRoles - negative empty (2) | +| lifecycle | happy-path, observe-absence | `entities/Role.lifecycle.spec.ts:9` | establish Role, observe present, revoke, observe absent | +| negative-create | bad-request | `request-validation/roles-validation-api-tests.spec.ts:151` | createRole - Additional prop __unexpectedField | +| negative-create | bad-request | `request-validation/roles-validation-api-tests.spec.ts:170` | createRole - Body wrong top-level type | +| negative-create | bad-request | `request-validation/roles-validation-api-tests.spec.ts:185` | createRole - Param name wrong type (#1) | +| negative-create | bad-request | `request-validation/roles-validation-api-tests.spec.ts:203` | createRole - Param name wrong type (#2) | +| negative-create | bad-request | `request-validation/roles-validation-api-tests.spec.ts:221` | createRole - Param roleId wrong type (#1) | +| negative-create | bad-request | `request-validation/roles-validation-api-tests.spec.ts:239` | createRole - Param roleId wrong type (#2) | +| negative-create | bad-request | `request-validation/roles-validation-api-tests.spec.ts:257` | createRole - Constraint violation roleId (#1) | +| negative-create | bad-request | `request-validation/roles-validation-api-tests.spec.ts:276` | createRole - Constraint violation roleId (#2) | +| negative-create | bad-request | `request-validation/roles-validation-api-tests.spec.ts:294` | createRole - Constraint violation roleId (#3) | +| negative-create | bad-request | `request-validation/roles-validation-api-tests.spec.ts:312` | createRole - Constraint violation roleId (#4) | +| negative-create | bad-request | `request-validation/roles-validation-api-tests.spec.ts:331` | createRole - Missing name | +| negative-create | bad-request | `request-validation/roles-validation-api-tests.spec.ts:348` | createRole - Missing roleId | +| negative-create | bad-request | `request-validation/roles-validation-api-tests.spec.ts:365` | createRole - Missing combo roleId,name | +| negative-get | bad-request | `request-validation/roles-validation-api-tests.spec.ts:392` | getRole - Path param roleId pattern violation | +| negative-update | bad-request | `request-validation/roles-validation-api-tests.spec.ts:1054` | updateRole - Additional prop __extraField | +| negative-update | bad-request | `request-validation/roles-validation-api-tests.spec.ts:1072` | updateRole - Body wrong top-level type | +| negative-update | bad-request | `request-validation/roles-validation-api-tests.spec.ts:1087` | updateRole - Param name wrong type (#1) | +| negative-update | bad-request | `request-validation/roles-validation-api-tests.spec.ts:1104` | updateRole - Param name wrong type (#2) | +| negative-update | bad-request | `request-validation/roles-validation-api-tests.spec.ts:1121` | updateRole - Missing name | +| negative-update | bad-request | `request-validation/roles-validation-api-tests.spec.ts:1136` | updateRole - Missing body | +| negative-update | bad-request | `request-validation/roles-validation-api-tests.spec.ts:1148` | updateRole - Path param roleId pattern violation | +| negative-delete | bad-request | `request-validation/roles-validation-api-tests.spec.ts:380` | deleteRole - Path param roleId pattern violation | +| negative-search | bad-request | `request-validation/roles-validation-api-tests.spec.ts:721` | searchRoles - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/roles-validation-api-tests.spec.ts:738` | searchRoles - Body wrong top-level type | +| negative-search | bad-request | `request-validation/roles-validation-api-tests.spec.ts:753` | searchRoles - Missing sort.0.field | +| negative-search | bad-request | `request-validation/roles-validation-api-tests.spec.ts:770` | searchRoles - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/roles-validation-api-tests.spec.ts:791` | searchRoles - Enum violation sort.0.order | + +### `group` — 35 tests + +- **Prerequisite to create**: none +- **Files**: `createGroup.feature.spec.ts`, `deleteGroup.feature.spec.ts`, `entities/Group.lifecycle.spec.ts`, `getGroup.feature.spec.ts`, `request-validation/groups-validation-api-tests.spec.ts`, `searchGroups.feature.spec.ts`, `searchGroups.variant.spec.ts`, `updateGroup.feature.spec.ts` +- **Observation channel**: GET = 1, Search = 3 +- **Form-step counts**: create=1, observe-present-get=1, observe-present-search=3, mutate=1, delete=1, observe-absence=1, lifecycle=1, negative-create=12, negative-get=1, negative-update=7, negative-delete=1, negative-search=5 +- **Variants**: happy-path=6, observe-absence=2, data-driven=2, bad-request=26, pagination-sort=2 + +| form step | variants | file:line | test name | +|--|--|--|--| +| create | happy-path | `createGroup.feature.spec.ts:11` | feature-1 - createGroup - base (1) | +| observe-present-get | happy-path | `getGroup.feature.spec.ts:12` | feature-1 - getGroup - base (1) | +| observe-present-search | happy-path | `searchGroups.feature.spec.ts:12` | feature-1 - searchGroups - base (1) | +| observe-present-search | data-driven, pagination-sort | `searchGroups.variant.spec.ts:12` | variant-1 - searchGroups - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchGroups.variant.spec.ts:64` | variant-2 - searchGroups - path #1 | +| mutate | happy-path | `updateGroup.feature.spec.ts:11` | feature-1 - updateGroup - base (1) | +| delete | happy-path | `deleteGroup.feature.spec.ts:8` | feature-1 - deleteGroup - base (1) | +| observe-absence | observe-absence | `searchGroups.feature.spec.ts:35` | feature-2 - searchGroups - negative empty (2) | +| lifecycle | happy-path, observe-absence | `entities/Group.lifecycle.spec.ts:9` | establish Group, observe present, revoke, observe absent | +| negative-create | bad-request | `request-validation/groups-validation-api-tests.spec.ts:123` | createGroup - Additional prop __unexpectedField | +| negative-create | bad-request | `request-validation/groups-validation-api-tests.spec.ts:142` | createGroup - Body wrong top-level type | +| negative-create | bad-request | `request-validation/groups-validation-api-tests.spec.ts:157` | createGroup - Param groupId wrong type (#1) | +| negative-create | bad-request | `request-validation/groups-validation-api-tests.spec.ts:175` | createGroup - Param groupId wrong type (#2) | +| negative-create | bad-request | `request-validation/groups-validation-api-tests.spec.ts:193` | createGroup - Param name wrong type (#1) | +| negative-create | bad-request | `request-validation/groups-validation-api-tests.spec.ts:211` | createGroup - Param name wrong type (#2) | +| negative-create | bad-request | `request-validation/groups-validation-api-tests.spec.ts:229` | createGroup - Constraint violation groupId (#1) | +| negative-create | bad-request | `request-validation/groups-validation-api-tests.spec.ts:248` | createGroup - Constraint violation groupId (#2) | +| negative-create | bad-request | `request-validation/groups-validation-api-tests.spec.ts:266` | createGroup - Constraint violation groupId (#3) | +| negative-create | bad-request | `request-validation/groups-validation-api-tests.spec.ts:285` | createGroup - Missing groupId | +| negative-create | bad-request | `request-validation/groups-validation-api-tests.spec.ts:302` | createGroup - Missing name | +| negative-create | bad-request | `request-validation/groups-validation-api-tests.spec.ts:319` | createGroup - Missing combo groupId,name | +| negative-get | bad-request | `request-validation/groups-validation-api-tests.spec.ts:349` | getGroup - Path param groupId length-max violation | +| negative-update | bad-request | `request-validation/groups-validation-api-tests.spec.ts:1008` | updateGroup - Additional prop __extraField | +| negative-update | bad-request | `request-validation/groups-validation-api-tests.spec.ts:1026` | updateGroup - Body wrong top-level type | +| negative-update | bad-request | `request-validation/groups-validation-api-tests.spec.ts:1041` | updateGroup - Param name wrong type (#1) | +| negative-update | bad-request | `request-validation/groups-validation-api-tests.spec.ts:1058` | updateGroup - Param name wrong type (#2) | +| negative-update | bad-request | `request-validation/groups-validation-api-tests.spec.ts:1075` | updateGroup - Missing name | +| negative-update | bad-request | `request-validation/groups-validation-api-tests.spec.ts:1090` | updateGroup - Missing body | +| negative-update | bad-request | `request-validation/groups-validation-api-tests.spec.ts:1102` | updateGroup - Path param groupId length-max violation | +| negative-delete | bad-request | `request-validation/groups-validation-api-tests.spec.ts:334` | deleteGroup - Path param groupId length-max violation | +| negative-search | bad-request | `request-validation/groups-validation-api-tests.spec.ts:472` | searchGroups - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/groups-validation-api-tests.spec.ts:489` | searchGroups - Body wrong top-level type | +| negative-search | bad-request | `request-validation/groups-validation-api-tests.spec.ts:504` | searchGroups - Missing sort.0.field | +| negative-search | bad-request | `request-validation/groups-validation-api-tests.spec.ts:521` | searchGroups - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/groups-validation-api-tests.spec.ts:542` | searchGroups - Enum violation sort.0.order | + +### `user` — 34 tests + +- **Prerequisite to create**: none +- **Files**: `createUser.feature.spec.ts`, `deleteUser.feature.spec.ts`, `entities/User.lifecycle.spec.ts`, `getUser.feature.spec.ts`, `request-validation/users-validation-api-tests.spec.ts`, `searchUsers.feature.spec.ts`, `searchUsers.variant.spec.ts`, `updateUser.feature.spec.ts` +- **Observation channel**: GET = 1, Search = 3 +- **Form-step counts**: create=1, observe-present-get=1, observe-present-search=3, mutate=1, delete=1, observe-absence=1, lifecycle=1, negative-create=14, negative-get=1, negative-update=4, negative-delete=1, negative-search=5 +- **Variants**: happy-path=6, observe-absence=2, data-driven=2, bad-request=25, pagination-sort=2 + +| form step | variants | file:line | test name | +|--|--|--|--| +| create | happy-path | `createUser.feature.spec.ts:11` | feature-1 - createUser - base (1) | +| observe-present-get | happy-path | `getUser.feature.spec.ts:12` | feature-1 - getUser - base (1) | +| observe-present-search | happy-path | `searchUsers.feature.spec.ts:12` | feature-1 - searchUsers - base (1) | +| observe-present-search | data-driven, pagination-sort | `searchUsers.variant.spec.ts:12` | variant-1 - searchUsers - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchUsers.variant.spec.ts:64` | variant-2 - searchUsers - path #1 | +| mutate | happy-path | `updateUser.feature.spec.ts:11` | feature-1 - updateUser - base (1) | +| delete | happy-path | `deleteUser.feature.spec.ts:8` | feature-1 - deleteUser - base (1) | +| observe-absence | observe-absence | `searchUsers.feature.spec.ts:35` | feature-2 - searchUsers - negative empty (2) | +| lifecycle | happy-path, observe-absence | `entities/User.lifecycle.spec.ts:9` | establish User, observe present, revoke, observe absent | +| negative-create | bad-request | `request-validation/users-validation-api-tests.spec.ts:18` | createUser - Additional prop __unexpectedField | +| negative-create | bad-request | `request-validation/users-validation-api-tests.spec.ts:37` | createUser - Body wrong top-level type | +| negative-create | bad-request | `request-validation/users-validation-api-tests.spec.ts:52` | createUser - Param password wrong type (#1) | +| negative-create | bad-request | `request-validation/users-validation-api-tests.spec.ts:70` | createUser - Param password wrong type (#2) | +| negative-create | bad-request | `request-validation/users-validation-api-tests.spec.ts:88` | createUser - Param username wrong type (#1) | +| negative-create | bad-request | `request-validation/users-validation-api-tests.spec.ts:106` | createUser - Param username wrong type (#2) | +| negative-create | bad-request | `request-validation/users-validation-api-tests.spec.ts:124` | createUser - Constraint violation username (#1) | +| negative-create | bad-request | `request-validation/users-validation-api-tests.spec.ts:143` | createUser - Constraint violation username (#2) | +| negative-create | bad-request | `request-validation/users-validation-api-tests.spec.ts:161` | createUser - Constraint violation username (#3) | +| negative-create | bad-request | `request-validation/users-validation-api-tests.spec.ts:179` | createUser - Constraint violation username (#4) | +| negative-create | bad-request | `request-validation/users-validation-api-tests.spec.ts:198` | createUser - Missing password | +| negative-create | bad-request | `request-validation/users-validation-api-tests.spec.ts:215` | createUser - Missing username | +| negative-create | bad-request | `request-validation/users-validation-api-tests.spec.ts:232` | createUser - Missing body | +| negative-create | bad-request | `request-validation/users-validation-api-tests.spec.ts:244` | createUser - Missing combo username,password | +| negative-get | bad-request | `request-validation/users-validation-api-tests.spec.ts:271` | getUser - Path param username pattern violation | +| negative-update | bad-request | `request-validation/users-validation-api-tests.spec.ts:374` | updateUser - Additional prop __extraField | +| negative-update | bad-request | `request-validation/users-validation-api-tests.spec.ts:391` | updateUser - Body wrong top-level type | +| negative-update | bad-request | `request-validation/users-validation-api-tests.spec.ts:406` | updateUser - Missing body | +| negative-update | bad-request | `request-validation/users-validation-api-tests.spec.ts:418` | updateUser - Path param username pattern violation | +| negative-delete | bad-request | `request-validation/users-validation-api-tests.spec.ts:259` | deleteUser - Path param username pattern violation | +| negative-search | bad-request | `request-validation/users-validation-api-tests.spec.ts:283` | searchUsers - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/users-validation-api-tests.spec.ts:300` | searchUsers - Body wrong top-level type | +| negative-search | bad-request | `request-validation/users-validation-api-tests.spec.ts:315` | searchUsers - Missing sort.0.field | +| negative-search | bad-request | `request-validation/users-validation-api-tests.spec.ts:332` | searchUsers - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/users-validation-api-tests.spec.ts:353` | searchUsers - Enum violation sort.0.order | + +### `document` — 21 tests + +- **Prerequisite to create**: none +- **Files**: `createDocument.feature.spec.ts`, `createDocument.variant.spec.ts`, `createDocumentLink.feature.spec.ts`, `createDocuments.feature.spec.ts`, `createDocuments.variant.spec.ts`, `deleteDocument.feature.spec.ts`, `entities/Document.lifecycle.spec.ts`, `getDocument.feature.spec.ts`, `request-validation/documents-validation-api-tests.spec.ts` +- **Observation channel**: GET = 1, Search = 0 +- **Form-step counts**: create=7, observe-present-get=1, delete=1, lifecycle=1, negative-create=11 +- **Variants**: happy-path=6, observe-absence=1, data-driven=4, bad-request=11 + +| form step | variants | file:line | test name | +|--|--|--|--| +| create | happy-path | `createDocument.feature.spec.ts:12` | feature-1 - createDocument - base (1) | +| create | data-driven | `createDocument.variant.spec.ts:13` | variant-1 - createDocument - bpmn #1 | +| create | data-driven | `createDocument.variant.spec.ts:76` | variant-2 - createDocument - bpmn #1 | +| create | happy-path | `createDocumentLink.feature.spec.ts:12` | feature-1 - createDocumentLink - base (1) | +| create | happy-path | `createDocuments.feature.spec.ts:12` | feature-1 - createDocuments - base (1) | +| create | data-driven | `createDocuments.variant.spec.ts:13` | variant-1 - createDocuments - bpmn #1 | +| create | data-driven | `createDocuments.variant.spec.ts:74` | variant-2 - createDocuments - bpmn #1 | +| observe-present-get | happy-path | `getDocument.feature.spec.ts:9` | feature-1 - getDocument - base (1) | +| delete | happy-path | `deleteDocument.feature.spec.ts:9` | feature-1 - deleteDocument - base (1) | +| lifecycle | happy-path, observe-absence | `entities/Document.lifecycle.spec.ts:9` | establish Document, observe present, revoke, observe absent | +| negative-create | bad-request | `request-validation/documents-validation-api-tests.spec.ts:18` | createDocument - Additional prop __unexpectedField | +| negative-create | bad-request | `request-validation/documents-validation-api-tests.spec.ts:38` | createDocument - Missing body | +| negative-create | bad-request | `request-validation/documents-validation-api-tests.spec.ts:55` | createDocument - Missing file | +| negative-create | bad-request | `request-validation/documents-validation-api-tests.spec.ts:72` | createDocument - Param query.documentId wrong type | +| negative-create | bad-request | `request-validation/documents-validation-api-tests.spec.ts:92` | createDocumentLink - Additional prop __extraField | +| negative-create | bad-request | `request-validation/documents-validation-api-tests.spec.ts:110` | createDocumentLink - Body wrong top-level type | +| negative-create | bad-request | `request-validation/documents-validation-api-tests.spec.ts:125` | createDocumentLink - Param timeToLive wrong type (#1) | +| negative-create | bad-request | `request-validation/documents-validation-api-tests.spec.ts:142` | createDocumentLink - Param timeToLive wrong type (#2) | +| negative-create | bad-request | `request-validation/documents-validation-api-tests.spec.ts:159` | createDocuments - Additional prop __unexpectedField | +| negative-create | bad-request | `request-validation/documents-validation-api-tests.spec.ts:179` | createDocuments - Missing body | +| negative-create | bad-request | `request-validation/documents-validation-api-tests.spec.ts:196` | createDocuments - Missing files | + +## B. Membership/Association + +**Form**: Create parent + member (prerequisite) → Assign member → Search members (Observe Present) → Unassign member → Search members (Observe Absence) + +**Total tests**: 206 + +### `tenant` — 82 tests + +- **Prerequisite to create**: tenant + client, tenant + group, tenant + group-id, tenant + mapping-rule, tenant + role, tenant + user +- **Files**: `assignClientToTenant.feature.spec.ts`, `assignGroupToTenant.feature.spec.ts`, `assignMappingRuleToTenant.feature.spec.ts`, `assignRoleToTenant.feature.spec.ts`, `assignUserToTenant.feature.spec.ts`, `edges/TenantClientMembership.lifecycle.spec.ts`, `edges/TenantGroupMembership.lifecycle.spec.ts`, `edges/TenantMappingRuleMembership.lifecycle.spec.ts`, `edges/TenantRoleMembership.lifecycle.spec.ts`, `edges/TenantUserMembership.lifecycle.spec.ts`, `request-validation/tenants-validation-api-tests.spec.ts`, `searchClientsForTenant.feature.spec.ts`, `searchClientsForTenant.variant.spec.ts`, `searchGroupIdsForTenant.feature.spec.ts`, `searchGroupIdsForTenant.variant.spec.ts`, `searchMappingRulesForTenant.feature.spec.ts`, `searchMappingRulesForTenant.variant.spec.ts`, `searchRolesForTenant.feature.spec.ts`, `searchRolesForTenant.variant.spec.ts`, `searchUsersForTenant.feature.spec.ts`, `searchUsersForTenant.variant.spec.ts`, `unassignClientFromTenant.feature.spec.ts`, `unassignGroupFromTenant.feature.spec.ts`, `unassignMappingRuleFromTenant.feature.spec.ts`, `unassignRoleFromTenant.feature.spec.ts`, `unassignUserFromTenant.feature.spec.ts` +- **Observation channel**: GET = 0, Search = 17 +- **Form-step counts**: observe-present-search=17, mutate=5, delete=5, lifecycle=5, negative-update=10, negative-delete=10, negative-search=30 +- **Variants**: happy-path=20, observe-absence=5, data-driven=12, bad-request=50, pagination-sort=10, filter=2 + +| form step | variants | file:line | test name | +|--|--|--|--| +| observe-present-search | happy-path | `searchClientsForTenant.feature.spec.ts:12` | feature-1 - searchClientsForTenant - base (1) | +| observe-present-search | data-driven, pagination-sort | `searchClientsForTenant.variant.spec.ts:12` | variant-1 - searchClientsForTenant - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchClientsForTenant.variant.spec.ts:88` | variant-2 - searchClientsForTenant - path #1 | +| observe-present-search | happy-path | `searchGroupIdsForTenant.feature.spec.ts:12` | feature-1 - searchGroupIdsForTenant - base (1) | +| observe-present-search | data-driven, pagination-sort | `searchGroupIdsForTenant.variant.spec.ts:12` | variant-1 - searchGroupIdsForTenant - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchGroupIdsForTenant.variant.spec.ts:88` | variant-2 - searchGroupIdsForTenant - path #1 | +| observe-present-search | happy-path | `searchMappingRulesForTenant.feature.spec.ts:12` | feature-1 - searchMappingRulesForTenant - base (1) | +| observe-present-search | data-driven, filter | `searchMappingRulesForTenant.variant.spec.ts:12` | variant-1 - searchMappingRulesForTenant - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchMappingRulesForTenant.variant.spec.ts:126` | variant-2 - searchMappingRulesForTenant - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchMappingRulesForTenant.variant.spec.ts:203` | variant-3 - searchMappingRulesForTenant - path #1 | +| observe-present-search | happy-path | `searchRolesForTenant.feature.spec.ts:12` | feature-1 - searchRolesForTenant - base (1) | +| observe-present-search | data-driven, filter | `searchRolesForTenant.variant.spec.ts:12` | variant-1 - searchRolesForTenant - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchRolesForTenant.variant.spec.ts:126` | variant-2 - searchRolesForTenant - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchRolesForTenant.variant.spec.ts:203` | variant-3 - searchRolesForTenant - path #1 | +| observe-present-search | happy-path | `searchUsersForTenant.feature.spec.ts:12` | feature-1 - searchUsersForTenant - base (1) | +| observe-present-search | data-driven, pagination-sort | `searchUsersForTenant.variant.spec.ts:12` | variant-1 - searchUsersForTenant - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchUsersForTenant.variant.spec.ts:88` | variant-2 - searchUsersForTenant - path #1 | +| mutate | happy-path | `assignClientToTenant.feature.spec.ts:8` | feature-1 - assignClientToTenant - base (1) | +| mutate | happy-path | `assignGroupToTenant.feature.spec.ts:8` | feature-1 - assignGroupToTenant - base (1) | +| mutate | happy-path | `assignMappingRuleToTenant.feature.spec.ts:8` | feature-1 - assignMappingRuleToTenant - base (1) | +| mutate | happy-path | `assignRoleToTenant.feature.spec.ts:8` | feature-1 - assignRoleToTenant - base (1) | +| mutate | happy-path | `assignUserToTenant.feature.spec.ts:8` | feature-1 - assignUserToTenant - base (1) | +| delete | happy-path | `unassignClientFromTenant.feature.spec.ts:8` | feature-1 - unassignClientFromTenant - base (1) | +| delete | happy-path | `unassignGroupFromTenant.feature.spec.ts:8` | feature-1 - unassignGroupFromTenant - base (1) | +| delete | happy-path | `unassignMappingRuleFromTenant.feature.spec.ts:8` | feature-1 - unassignMappingRuleFromTenant - base (1) | +| delete | happy-path | `unassignRoleFromTenant.feature.spec.ts:8` | feature-1 - unassignRoleFromTenant - base (1) | +| delete | happy-path | `unassignUserFromTenant.feature.spec.ts:8` | feature-1 - unassignUserFromTenant - base (1) | +| lifecycle | happy-path, observe-absence | `edges/TenantClientMembership.lifecycle.spec.ts:9` | establish TenantClientMembership, observe present, revoke, observe absent | +| lifecycle | happy-path, observe-absence | `edges/TenantGroupMembership.lifecycle.spec.ts:9` | establish TenantGroupMembership, observe present, revoke, observe absent | +| lifecycle | happy-path, observe-absence | `edges/TenantMappingRuleMembership.lifecycle.spec.ts:9` | establish TenantMappingRuleMembership, observe present, revoke, observe absent | +| lifecycle | happy-path, observe-absence | `edges/TenantRoleMembership.lifecycle.spec.ts:9` | establish TenantRoleMembership, observe present, revoke, observe absent | +| lifecycle | happy-path, observe-absence | `edges/TenantUserMembership.lifecycle.spec.ts:9` | establish TenantUserMembership, observe present, revoke, observe absent | +| negative-update | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:18` | assignClientToTenant - Path param clientId pattern violation | +| negative-update | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:35` | assignClientToTenant - Path param tenantId pattern violation | +| negative-update | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:52` | assignGroupToTenant - Path param groupId length-max violation | +| negative-update | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:70` | assignGroupToTenant - Path param tenantId pattern violation | +| negative-update | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:87` | assignMappingRuleToTenant - Path param mappingRuleId pattern violation | +| negative-update | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:104` | assignMappingRuleToTenant - Path param tenantId pattern violation | +| negative-update | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:121` | assignRoleToTenant - Path param roleId pattern violation | +| negative-update | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:138` | assignRoleToTenant - Path param tenantId pattern violation | +| negative-update | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:155` | assignUserToTenant - Path param tenantId pattern violation | +| negative-update | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:172` | assignUserToTenant - Path param username pattern violation | +| negative-delete | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:1102` | unassignClientFromTenant - Path param clientId pattern violation | +| negative-delete | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:1119` | unassignClientFromTenant - Path param tenantId pattern violation | +| negative-delete | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:1136` | unassignGroupFromTenant - Path param groupId length-max violation | +| negative-delete | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:1154` | unassignGroupFromTenant - Path param tenantId pattern violation | +| negative-delete | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:1171` | unassignMappingRuleFromTenant - Path param mappingRuleId pattern violation | +| negative-delete | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:1188` | unassignMappingRuleFromTenant - Path param tenantId pattern violation | +| negative-delete | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:1205` | unassignRoleFromTenant - Path param roleId pattern violation | +| negative-delete | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:1222` | unassignRoleFromTenant - Path param tenantId pattern violation | +| negative-delete | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:1239` | unassignUserFromTenant - Path param tenantId pattern violation | +| negative-delete | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:1256` | unassignUserFromTenant - Path param username pattern violation | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:452` | searchClientsForTenant - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:471` | searchClientsForTenant - Body wrong top-level type | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:486` | searchClientsForTenant - Missing sort.0.field | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:503` | searchClientsForTenant - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:524` | searchClientsForTenant - Enum violation sort.0.order | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:545` | searchClientsForTenant - Path param tenantId pattern violation | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:561` | searchGroupIdsForTenant - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:580` | searchGroupIdsForTenant - Body wrong top-level type | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:595` | searchGroupIdsForTenant - Missing sort.0.field | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:612` | searchGroupIdsForTenant - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:633` | searchGroupIdsForTenant - Enum violation sort.0.order | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:654` | searchGroupIdsForTenant - Path param tenantId pattern violation | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:670` | searchMappingRulesForTenant - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:691` | searchMappingRulesForTenant - Body wrong top-level type | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:708` | searchMappingRulesForTenant - Missing sort.0.field | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:727` | searchMappingRulesForTenant - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:752` | searchMappingRulesForTenant - Enum violation sort.0.order | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:777` | searchMappingRulesForTenant - Path param tenantId pattern violation | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:793` | searchRolesForTenant - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:812` | searchRolesForTenant - Body wrong top-level type | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:827` | searchRolesForTenant - Missing sort.0.field | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:844` | searchRolesForTenant - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:865` | searchRolesForTenant - Enum violation sort.0.order | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:886` | searchRolesForTenant - Path param tenantId pattern violation | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:993` | searchUsersForTenant - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:1012` | searchUsersForTenant - Body wrong top-level type | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:1027` | searchUsersForTenant - Missing sort.0.field | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:1044` | searchUsersForTenant - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:1065` | searchUsersForTenant - Enum violation sort.0.order | +| negative-search | bad-request | `request-validation/tenants-validation-api-tests.spec.ts:1086` | searchUsersForTenant - Path param tenantId pattern violation | + +### `role` — 65 tests + +- **Prerequisite to create**: client + role, group + role, mapping-rule + role, role + client, role + group, role + mapping-rule, role + user, user + role +- **Files**: `assignRoleToClient.feature.spec.ts`, `assignRoleToGroup.feature.spec.ts`, `assignRoleToMappingRule.feature.spec.ts`, `assignRoleToUser.feature.spec.ts`, `edges/RoleClientMembership.lifecycle.spec.ts`, `edges/RoleGroupMembership.lifecycle.spec.ts`, `edges/RoleMappingRuleMembership.lifecycle.spec.ts`, `edges/RoleUserMembership.lifecycle.spec.ts`, `request-validation/roles-validation-api-tests.spec.ts`, `searchClientsForRole.feature.spec.ts`, `searchClientsForRole.variant.spec.ts`, `searchGroupsForRole.feature.spec.ts`, `searchGroupsForRole.variant.spec.ts`, `searchMappingRulesForRole.feature.spec.ts`, `searchMappingRulesForRole.variant.spec.ts`, `searchUsersForRole.feature.spec.ts`, `searchUsersForRole.variant.spec.ts`, `unassignRoleFromClient.feature.spec.ts`, `unassignRoleFromGroup.feature.spec.ts`, `unassignRoleFromMappingRule.feature.spec.ts`, `unassignRoleFromUser.feature.spec.ts` +- **Observation channel**: GET = 0, Search = 13 +- **Form-step counts**: observe-present-search=13, mutate=4, delete=4, lifecycle=4, negative-update=8, negative-delete=8, negative-search=24 +- **Variants**: happy-path=16, observe-absence=4, data-driven=9, bad-request=40, pagination-sort=8, filter=1 + +| form step | variants | file:line | test name | +|--|--|--|--| +| observe-present-search | happy-path | `searchClientsForRole.feature.spec.ts:12` | feature-1 - searchClientsForRole - base (1) | +| observe-present-search | data-driven, pagination-sort | `searchClientsForRole.variant.spec.ts:12` | variant-1 - searchClientsForRole - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchClientsForRole.variant.spec.ts:86` | variant-2 - searchClientsForRole - path #1 | +| observe-present-search | happy-path | `searchGroupsForRole.feature.spec.ts:12` | feature-1 - searchGroupsForRole - base (1) | +| observe-present-search | data-driven, pagination-sort | `searchGroupsForRole.variant.spec.ts:12` | variant-1 - searchGroupsForRole - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchGroupsForRole.variant.spec.ts:86` | variant-2 - searchGroupsForRole - path #1 | +| observe-present-search | happy-path | `searchMappingRulesForRole.feature.spec.ts:12` | feature-1 - searchMappingRulesForRole - base (1) | +| observe-present-search | data-driven, filter | `searchMappingRulesForRole.variant.spec.ts:12` | variant-1 - searchMappingRulesForRole - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchMappingRulesForRole.variant.spec.ts:124` | variant-2 - searchMappingRulesForRole - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchMappingRulesForRole.variant.spec.ts:199` | variant-3 - searchMappingRulesForRole - path #1 | +| observe-present-search | happy-path | `searchUsersForRole.feature.spec.ts:12` | feature-1 - searchUsersForRole - base (1) | +| observe-present-search | data-driven, pagination-sort | `searchUsersForRole.variant.spec.ts:12` | variant-1 - searchUsersForRole - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchUsersForRole.variant.spec.ts:86` | variant-2 - searchUsersForRole - path #1 | +| mutate | happy-path | `assignRoleToClient.feature.spec.ts:8` | feature-1 - assignRoleToClient - base (1) | +| mutate | happy-path | `assignRoleToGroup.feature.spec.ts:8` | feature-1 - assignRoleToGroup - base (1) | +| mutate | happy-path | `assignRoleToMappingRule.feature.spec.ts:8` | feature-1 - assignRoleToMappingRule - base (1) | +| mutate | happy-path | `assignRoleToUser.feature.spec.ts:8` | feature-1 - assignRoleToUser - base (1) | +| delete | happy-path | `unassignRoleFromClient.feature.spec.ts:8` | feature-1 - unassignRoleFromClient - base (1) | +| delete | happy-path | `unassignRoleFromGroup.feature.spec.ts:8` | feature-1 - unassignRoleFromGroup - base (1) | +| delete | happy-path | `unassignRoleFromMappingRule.feature.spec.ts:8` | feature-1 - unassignRoleFromMappingRule - base (1) | +| delete | happy-path | `unassignRoleFromUser.feature.spec.ts:8` | feature-1 - unassignRoleFromUser - base (1) | +| lifecycle | happy-path, observe-absence | `edges/RoleClientMembership.lifecycle.spec.ts:9` | establish RoleClientMembership, observe present, revoke, observe absent | +| lifecycle | happy-path, observe-absence | `edges/RoleGroupMembership.lifecycle.spec.ts:9` | establish RoleGroupMembership, observe present, revoke, observe absent | +| lifecycle | happy-path, observe-absence | `edges/RoleMappingRuleMembership.lifecycle.spec.ts:9` | establish RoleMappingRuleMembership, observe present, revoke, observe absent | +| lifecycle | happy-path, observe-absence | `edges/RoleUserMembership.lifecycle.spec.ts:9` | establish RoleUserMembership, observe present, revoke, observe absent | +| negative-update | bad-request | `request-validation/roles-validation-api-tests.spec.ts:18` | assignRoleToClient - Path param clientId pattern violation | +| negative-update | bad-request | `request-validation/roles-validation-api-tests.spec.ts:35` | assignRoleToClient - Path param roleId pattern violation | +| negative-update | bad-request | `request-validation/roles-validation-api-tests.spec.ts:52` | assignRoleToGroup - Path param groupId length-max violation | +| negative-update | bad-request | `request-validation/roles-validation-api-tests.spec.ts:70` | assignRoleToGroup - Path param roleId pattern violation | +| negative-update | bad-request | `request-validation/roles-validation-api-tests.spec.ts:85` | assignRoleToMappingRule - Path param mappingRuleId pattern violation | +| negative-update | bad-request | `request-validation/roles-validation-api-tests.spec.ts:102` | assignRoleToMappingRule - Path param roleId pattern violation | +| negative-update | bad-request | `request-validation/roles-validation-api-tests.spec.ts:119` | assignRoleToUser - Path param roleId pattern violation | +| negative-update | bad-request | `request-validation/roles-validation-api-tests.spec.ts:134` | assignRoleToUser - Path param username pattern violation | +| negative-delete | bad-request | `request-validation/roles-validation-api-tests.spec.ts:917` | unassignRoleFromClient - Path param clientId pattern violation | +| negative-delete | bad-request | `request-validation/roles-validation-api-tests.spec.ts:934` | unassignRoleFromClient - Path param roleId pattern violation | +| negative-delete | bad-request | `request-validation/roles-validation-api-tests.spec.ts:951` | unassignRoleFromGroup - Path param groupId length-max violation | +| negative-delete | bad-request | `request-validation/roles-validation-api-tests.spec.ts:969` | unassignRoleFromGroup - Path param roleId pattern violation | +| negative-delete | bad-request | `request-validation/roles-validation-api-tests.spec.ts:986` | unassignRoleFromMappingRule - Path param mappingRuleId pattern violation | +| negative-delete | bad-request | `request-validation/roles-validation-api-tests.spec.ts:1003` | unassignRoleFromMappingRule - Path param roleId pattern violation | +| negative-delete | bad-request | `request-validation/roles-validation-api-tests.spec.ts:1020` | unassignRoleFromUser - Path param roleId pattern violation | +| negative-delete | bad-request | `request-validation/roles-validation-api-tests.spec.ts:1037` | unassignRoleFromUser - Path param username pattern violation | +| negative-search | bad-request | `request-validation/roles-validation-api-tests.spec.ts:404` | searchClientsForRole - Additional prop __extraField | +| negative-search | bad-request | `request-validation/roles-validation-api-tests.spec.ts:421` | searchClientsForRole - Body wrong top-level type | +| negative-search | bad-request | `request-validation/roles-validation-api-tests.spec.ts:436` | searchClientsForRole - Missing sort.0.field | +| negative-search | bad-request | `request-validation/roles-validation-api-tests.spec.ts:453` | searchClientsForRole - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/roles-validation-api-tests.spec.ts:474` | searchClientsForRole - Enum violation sort.0.order | +| negative-search | bad-request | `request-validation/roles-validation-api-tests.spec.ts:495` | searchClientsForRole - Path param roleId pattern violation | +| negative-search | bad-request | `request-validation/roles-validation-api-tests.spec.ts:509` | searchGroupsForRole - Additional prop __extraField | +| negative-search | bad-request | `request-validation/roles-validation-api-tests.spec.ts:526` | searchGroupsForRole - Body wrong top-level type | +| negative-search | bad-request | `request-validation/roles-validation-api-tests.spec.ts:541` | searchGroupsForRole - Missing sort.0.field | +| negative-search | bad-request | `request-validation/roles-validation-api-tests.spec.ts:558` | searchGroupsForRole - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/roles-validation-api-tests.spec.ts:579` | searchGroupsForRole - Enum violation sort.0.order | +| negative-search | bad-request | `request-validation/roles-validation-api-tests.spec.ts:600` | searchGroupsForRole - Path param roleId pattern violation | +| negative-search | bad-request | `request-validation/roles-validation-api-tests.spec.ts:614` | searchMappingRulesForRole - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/roles-validation-api-tests.spec.ts:633` | searchMappingRulesForRole - Body wrong top-level type | +| negative-search | bad-request | `request-validation/roles-validation-api-tests.spec.ts:648` | searchMappingRulesForRole - Missing sort.0.field | +| negative-search | bad-request | `request-validation/roles-validation-api-tests.spec.ts:665` | searchMappingRulesForRole - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/roles-validation-api-tests.spec.ts:686` | searchMappingRulesForRole - Enum violation sort.0.order | +| negative-search | bad-request | `request-validation/roles-validation-api-tests.spec.ts:707` | searchMappingRulesForRole - Path param roleId pattern violation | +| negative-search | bad-request | `request-validation/roles-validation-api-tests.spec.ts:812` | searchUsersForRole - Additional prop __extraField | +| negative-search | bad-request | `request-validation/roles-validation-api-tests.spec.ts:829` | searchUsersForRole - Body wrong top-level type | +| negative-search | bad-request | `request-validation/roles-validation-api-tests.spec.ts:844` | searchUsersForRole - Missing sort.0.field | +| negative-search | bad-request | `request-validation/roles-validation-api-tests.spec.ts:861` | searchUsersForRole - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/roles-validation-api-tests.spec.ts:882` | searchUsersForRole - Enum violation sort.0.order | +| negative-search | bad-request | `request-validation/roles-validation-api-tests.spec.ts:903` | searchUsersForRole - Path param roleId pattern violation | + +### `group` — 59 tests + +- **Prerequisite to create**: group + client, group + mapping-rule, group + role, group + user +- **Files**: `assignClientToGroup.feature.spec.ts`, `assignMappingRuleToGroup.feature.spec.ts`, `assignUserToGroup.feature.spec.ts`, `edges/GroupClientMembership.lifecycle.spec.ts`, `edges/GroupMappingRuleMembership.lifecycle.spec.ts`, `edges/GroupUserMembership.lifecycle.spec.ts`, `request-validation/groups-validation-api-tests.spec.ts`, `searchClientsForGroup.feature.spec.ts`, `searchClientsForGroup.variant.spec.ts`, `searchMappingRulesForGroup.feature.spec.ts`, `searchMappingRulesForGroup.variant.spec.ts`, `searchRolesForGroup.feature.spec.ts`, `searchRolesForGroup.variant.spec.ts`, `searchUsersForGroup.feature.spec.ts`, `searchUsersForGroup.variant.spec.ts`, `unassignClientFromGroup.feature.spec.ts`, `unassignMappingRuleFromGroup.feature.spec.ts`, `unassignUserFromGroup.feature.spec.ts` +- **Observation channel**: GET = 0, Search = 14 +- **Form-step counts**: observe-present-search=14, mutate=3, delete=3, lifecycle=3, negative-update=6, negative-delete=6, negative-search=24 +- **Variants**: happy-path=13, observe-absence=3, data-driven=10, bad-request=36, pagination-sort=8, filter=2 + +| form step | variants | file:line | test name | +|--|--|--|--| +| observe-present-search | happy-path | `searchClientsForGroup.feature.spec.ts:12` | feature-1 - searchClientsForGroup - base (1) | +| observe-present-search | data-driven, pagination-sort | `searchClientsForGroup.variant.spec.ts:12` | variant-1 - searchClientsForGroup - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchClientsForGroup.variant.spec.ts:86` | variant-2 - searchClientsForGroup - path #1 | +| observe-present-search | happy-path | `searchMappingRulesForGroup.feature.spec.ts:12` | feature-1 - searchMappingRulesForGroup - base (1) | +| observe-present-search | data-driven, filter | `searchMappingRulesForGroup.variant.spec.ts:12` | variant-1 - searchMappingRulesForGroup - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchMappingRulesForGroup.variant.spec.ts:84` | variant-2 - searchMappingRulesForGroup - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchMappingRulesForGroup.variant.spec.ts:159` | variant-3 - searchMappingRulesForGroup - path #1 | +| observe-present-search | happy-path | `searchRolesForGroup.feature.spec.ts:12` | feature-1 - searchRolesForGroup - base (1) | +| observe-present-search | data-driven, filter | `searchRolesForGroup.variant.spec.ts:12` | variant-1 - searchRolesForGroup - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchRolesForGroup.variant.spec.ts:84` | variant-2 - searchRolesForGroup - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchRolesForGroup.variant.spec.ts:159` | variant-3 - searchRolesForGroup - path #1 | +| observe-present-search | happy-path | `searchUsersForGroup.feature.spec.ts:12` | feature-1 - searchUsersForGroup - base (1) | +| observe-present-search | data-driven, pagination-sort | `searchUsersForGroup.variant.spec.ts:12` | variant-1 - searchUsersForGroup - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchUsersForGroup.variant.spec.ts:86` | variant-2 - searchUsersForGroup - path #1 | +| mutate | happy-path | `assignClientToGroup.feature.spec.ts:8` | feature-1 - assignClientToGroup - base (1) | +| mutate | happy-path | `assignMappingRuleToGroup.feature.spec.ts:8` | feature-1 - assignMappingRuleToGroup - base (1) | +| mutate | happy-path | `assignUserToGroup.feature.spec.ts:8` | feature-1 - assignUserToGroup - base (1) | +| delete | happy-path | `unassignClientFromGroup.feature.spec.ts:8` | feature-1 - unassignClientFromGroup - base (1) | +| delete | happy-path | `unassignMappingRuleFromGroup.feature.spec.ts:8` | feature-1 - unassignMappingRuleFromGroup - base (1) | +| delete | happy-path | `unassignUserFromGroup.feature.spec.ts:8` | feature-1 - unassignUserFromGroup - base (1) | +| lifecycle | happy-path, observe-absence | `edges/GroupClientMembership.lifecycle.spec.ts:9` | establish GroupClientMembership, observe present, revoke, observe absent | +| lifecycle | happy-path, observe-absence | `edges/GroupMappingRuleMembership.lifecycle.spec.ts:9` | establish GroupMappingRuleMembership, observe present, revoke, observe absent | +| lifecycle | happy-path, observe-absence | `edges/GroupUserMembership.lifecycle.spec.ts:9` | establish GroupUserMembership, observe present, revoke, observe absent | +| negative-update | bad-request | `request-validation/groups-validation-api-tests.spec.ts:18` | assignClientToGroup - Path param clientId pattern violation | +| negative-update | bad-request | `request-validation/groups-validation-api-tests.spec.ts:35` | assignClientToGroup - Path param groupId length-max violation | +| negative-update | bad-request | `request-validation/groups-validation-api-tests.spec.ts:53` | assignMappingRuleToGroup - Path param groupId length-max violation | +| negative-update | bad-request | `request-validation/groups-validation-api-tests.spec.ts:71` | assignMappingRuleToGroup - Path param mappingRuleId pattern violation | +| negative-update | bad-request | `request-validation/groups-validation-api-tests.spec.ts:88` | assignUserToGroup - Path param groupId length-max violation | +| negative-update | bad-request | `request-validation/groups-validation-api-tests.spec.ts:106` | assignUserToGroup - Path param username pattern violation | +| negative-delete | bad-request | `request-validation/groups-validation-api-tests.spec.ts:903` | unassignClientFromGroup - Path param clientId pattern violation | +| negative-delete | bad-request | `request-validation/groups-validation-api-tests.spec.ts:920` | unassignClientFromGroup - Path param groupId length-max violation | +| negative-delete | bad-request | `request-validation/groups-validation-api-tests.spec.ts:938` | unassignMappingRuleFromGroup - Path param groupId length-max violation | +| negative-delete | bad-request | `request-validation/groups-validation-api-tests.spec.ts:956` | unassignMappingRuleFromGroup - Path param mappingRuleId pattern violation | +| negative-delete | bad-request | `request-validation/groups-validation-api-tests.spec.ts:973` | unassignUserFromGroup - Path param groupId length-max violation | +| negative-delete | bad-request | `request-validation/groups-validation-api-tests.spec.ts:991` | unassignUserFromGroup - Path param username pattern violation | +| negative-search | bad-request | `request-validation/groups-validation-api-tests.spec.ts:364` | searchClientsForGroup - Additional prop __extraField | +| negative-search | bad-request | `request-validation/groups-validation-api-tests.spec.ts:381` | searchClientsForGroup - Body wrong top-level type | +| negative-search | bad-request | `request-validation/groups-validation-api-tests.spec.ts:396` | searchClientsForGroup - Missing sort.0.field | +| negative-search | bad-request | `request-validation/groups-validation-api-tests.spec.ts:413` | searchClientsForGroup - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/groups-validation-api-tests.spec.ts:434` | searchClientsForGroup - Enum violation sort.0.order | +| negative-search | bad-request | `request-validation/groups-validation-api-tests.spec.ts:455` | searchClientsForGroup - Path param groupId length-max violation | +| negative-search | bad-request | `request-validation/groups-validation-api-tests.spec.ts:563` | searchMappingRulesForGroup - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/groups-validation-api-tests.spec.ts:584` | searchMappingRulesForGroup - Body wrong top-level type | +| negative-search | bad-request | `request-validation/groups-validation-api-tests.spec.ts:601` | searchMappingRulesForGroup - Missing sort.0.field | +| negative-search | bad-request | `request-validation/groups-validation-api-tests.spec.ts:620` | searchMappingRulesForGroup - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/groups-validation-api-tests.spec.ts:645` | searchMappingRulesForGroup - Enum violation sort.0.order | +| negative-search | bad-request | `request-validation/groups-validation-api-tests.spec.ts:670` | searchMappingRulesForGroup - Path param groupId length-max violation | +| negative-search | bad-request | `request-validation/groups-validation-api-tests.spec.ts:687` | searchRolesForGroup - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/groups-validation-api-tests.spec.ts:704` | searchRolesForGroup - Body wrong top-level type | +| negative-search | bad-request | `request-validation/groups-validation-api-tests.spec.ts:719` | searchRolesForGroup - Missing sort.0.field | +| negative-search | bad-request | `request-validation/groups-validation-api-tests.spec.ts:736` | searchRolesForGroup - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/groups-validation-api-tests.spec.ts:757` | searchRolesForGroup - Enum violation sort.0.order | +| negative-search | bad-request | `request-validation/groups-validation-api-tests.spec.ts:778` | searchRolesForGroup - Path param groupId length-max violation | +| negative-search | bad-request | `request-validation/groups-validation-api-tests.spec.ts:795` | searchUsersForGroup - Additional prop __extraField | +| negative-search | bad-request | `request-validation/groups-validation-api-tests.spec.ts:812` | searchUsersForGroup - Body wrong top-level type | +| negative-search | bad-request | `request-validation/groups-validation-api-tests.spec.ts:827` | searchUsersForGroup - Missing sort.0.field | +| negative-search | bad-request | `request-validation/groups-validation-api-tests.spec.ts:844` | searchUsersForGroup - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/groups-validation-api-tests.spec.ts:865` | searchUsersForGroup - Enum violation sort.0.order | +| negative-search | bad-request | `request-validation/groups-validation-api-tests.spec.ts:886` | searchUsersForGroup - Path param groupId length-max violation | + +## C. Deployment Lifecycle + +**Form**: Deploy resource → Get definition (XML/JSON) → Search definitions (Observe Present) → Delete resource → Get definition (Observe Absence) + +**Total tests**: 149 + +### `process-definition` — 70 tests + +- **Prerequisite to create**: deployed-process +- **Files**: `getProcessDefinition.feature.spec.ts`, `getProcessDefinitionInstanceStatistics.feature.spec.ts`, `getProcessDefinitionInstanceVersionStatistics.feature.spec.ts`, `getProcessDefinitionInstanceVersionStatistics.variant.spec.ts`, `getProcessDefinitionMessageSubscriptionStatistics.feature.spec.ts`, `getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts`, `getProcessDefinitionStatistics.feature.spec.ts`, `getProcessDefinitionStatistics.variant.spec.ts`, `getProcessDefinitionXML.feature.spec.ts`, `getStartProcessForm.feature.spec.ts`, `request-validation/processdefinitions-validation-api-tests.spec.ts`, `searchProcessDefinitions.feature.spec.ts`, `searchProcessDefinitions.variant.spec.ts` +- **Observation channel**: GET = 21, Search = 5 +- **Form-step counts**: observe-present-get=21, observe-present-search=5, observe-absence=1, negative-get=38, negative-search=5 +- **Variants**: happy-path=8, observe-absence=1, data-driven=18, bad-request=43, pagination-sort=3, filter=16 + +| form step | variants | file:line | test name | +|--|--|--|--| +| observe-present-get | happy-path | `getProcessDefinition.feature.spec.ts:13` | feature-1 - getProcessDefinition - base (1) | +| observe-present-get | happy-path | `getProcessDefinitionInstanceStatistics.feature.spec.ts:11` | feature-1 - getProcessDefinitionInstanceStatistics - base (1) | +| observe-present-get | happy-path, filter | `getProcessDefinitionInstanceVersionStatistics.feature.spec.ts:12` | feature-1 - getProcessDefinitionInstanceVersionStatistics - base (1) | +| observe-present-get | data-driven, filter | `getProcessDefinitionInstanceVersionStatistics.variant.spec.ts:12` | variant-1 - getProcessDefinitionInstanceVersionStatistics - bpmn #1 | +| observe-present-get | happy-path | `getProcessDefinitionMessageSubscriptionStatistics.feature.spec.ts:11` | feature-1 - getProcessDefinitionMessageSubscriptionStatistics - base (1) | +| observe-present-get | data-driven, pagination-sort | `getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts:13` | variant-1 - getProcessDefinitionMessageSubscriptionStatistics - path #1 | +| observe-present-get | data-driven, filter | `getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts:72` | variant-2 - getProcessDefinitionMessageSubscriptionStatistics - path #1 | +| observe-present-get | data-driven, filter | `getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts:133` | variant-3 - getProcessDefinitionMessageSubscriptionStatistics - bpmn #1 | +| observe-present-get | data-driven, filter | `getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts:190` | variant-4 - getProcessDefinitionMessageSubscriptionStatistics - bpmn #1 | +| observe-present-get | data-driven, filter | `getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts:268` | variant-5 - getProcessDefinitionMessageSubscriptionStatistics - bpmn #1 | +| observe-present-get | happy-path | `getProcessDefinitionStatistics.feature.spec.ts:12` | feature-1 - getProcessDefinitionStatistics - base (1) | +| observe-present-get | data-driven, filter | `getProcessDefinitionStatistics.variant.spec.ts:12` | variant-1 - getProcessDefinitionStatistics - bpmn #1 | +| observe-present-get | data-driven, filter | `getProcessDefinitionStatistics.variant.spec.ts:86` | variant-2 - getProcessDefinitionStatistics - bpmn #1 | +| observe-present-get | data-driven, filter | `getProcessDefinitionStatistics.variant.spec.ts:160` | variant-3 - getProcessDefinitionStatistics - bpmn #1 | +| observe-present-get | data-driven, filter | `getProcessDefinitionStatistics.variant.spec.ts:214` | variant-4 - getProcessDefinitionStatistics - bpmn #1 | +| observe-present-get | data-driven, filter | `getProcessDefinitionStatistics.variant.spec.ts:268` | variant-5 - getProcessDefinitionStatistics - bpmn #1 | +| observe-present-get | data-driven, filter | `getProcessDefinitionStatistics.variant.spec.ts:346` | variant-6 - getProcessDefinitionStatistics - bpmn #1 | +| observe-present-get | data-driven, filter | `getProcessDefinitionStatistics.variant.spec.ts:424` | variant-7 - getProcessDefinitionStatistics - bpmn #1 | +| observe-present-get | data-driven, filter | `getProcessDefinitionStatistics.variant.spec.ts:482` | variant-8 - getProcessDefinitionStatistics - bpmn #1 | +| observe-present-get | happy-path | `getProcessDefinitionXML.feature.spec.ts:10` | feature-1 - getProcessDefinitionXML - base (1) | +| observe-present-get | happy-path | `getStartProcessForm.feature.spec.ts:13` | feature-1 - getStartProcessForm - base (1) | +| observe-present-search | happy-path | `searchProcessDefinitions.feature.spec.ts:13` | feature-1 - searchProcessDefinitions - base (1) | +| observe-present-search | data-driven, filter | `searchProcessDefinitions.variant.spec.ts:13` | variant-1 - searchProcessDefinitions - path #1 | +| observe-present-search | data-driven, filter | `searchProcessDefinitions.variant.spec.ts:86` | variant-2 - searchProcessDefinitions - bpmn #1 | +| observe-present-search | data-driven, pagination-sort | `searchProcessDefinitions.variant.spec.ts:138` | variant-3 - searchProcessDefinitions - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchProcessDefinitions.variant.spec.ts:214` | variant-4 - searchProcessDefinitions - path #1 | +| observe-absence | observe-absence | `searchProcessDefinitions.feature.spec.ts:60` | feature-2 - searchProcessDefinitions - negative empty (2) | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:18` | getProcessDefinition - Path param processDefinitionKey pattern violation | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:34` | getProcessDefinitionInstanceStatistics - Additional prop __extraField | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:53` | getProcessDefinitionInstanceStatistics - Body wrong top-level type | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:70` | getProcessDefinitionInstanceStatistics - Missing sort.0.field | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:89` | getProcessDefinitionInstanceStatistics - Enum violation sort.0.field | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:112` | getProcessDefinitionInstanceStatistics - Enum violation sort.0.order | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:135` | getProcessDefinitionInstanceVersionStatistics - Additional prop __extraField | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:158` | getProcessDefinitionInstanceVersionStatistics - Body wrong top-level type | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:175` | getProcessDefinitionInstanceVersionStatistics - Param filter.processDefinitionId wrong type (#1) | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:197` | getProcessDefinitionInstanceVersionStatistics - Param filter.processDefinitionId wrong type (#2) | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:219` | getProcessDefinitionInstanceVersionStatistics - Param filter.tenantId wrong type (#1) | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:241` | getProcessDefinitionInstanceVersionStatistics - Param filter.tenantId wrong type (#2) | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:263` | getProcessDefinitionInstanceVersionStatistics - Constraint violation filter.processDefinitionId (#1) | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:285` | getProcessDefinitionInstanceVersionStatistics - Constraint violation filter.processDefinitionId (#2) | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:307` | getProcessDefinitionInstanceVersionStatistics - Constraint violation filter.tenantId (#1) | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:329` | getProcessDefinitionInstanceVersionStatistics - Constraint violation filter.tenantId (#2) | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:351` | getProcessDefinitionInstanceVersionStatistics - Constraint violation filter.tenantId (#3) | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:373` | getProcessDefinitionInstanceVersionStatistics - Constraint violation filter.tenantId (#4) | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:395` | getProcessDefinitionInstanceVersionStatistics - Missing filter.processDefinitionId | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:414` | getProcessDefinitionInstanceVersionStatistics - Missing sort.0.field | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:436` | getProcessDefinitionInstanceVersionStatistics - Enum violation sort.0.field | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:463` | getProcessDefinitionInstanceVersionStatistics - Enum violation sort.0.order | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:490` | getProcessDefinitionInstanceVersionStatistics - Missing filter | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:507` | getProcessDefinitionInstanceVersionStatistics - Missing body | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:521` | getProcessDefinitionMessageSubscriptionStatistics - Additional prop __extraField | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:540` | getProcessDefinitionMessageSubscriptionStatistics - Body wrong top-level type | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:557` | getProcessDefinitionMessageSubscriptionStatistics - Missing page.after | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:576` | getProcessDefinitionStatistics - Additional prop __unexpectedField | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:598` | getProcessDefinitionStatistics - Body wrong top-level type | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:618` | getProcessDefinitionStatistics - Missing filter.$or.0.variables.0.name | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:650` | getProcessDefinitionStatistics - Missing filter.$or.0.variables.0.value | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:682` | getProcessDefinitionStatistics - Missing filter.variables.0.name | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:710` | getProcessDefinitionStatistics - Missing filter.variables.0.value | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:738` | getProcessDefinitionStatistics - Path param processDefinitionKey pattern violation | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:755` | getProcessDefinitionStatistics - uniqueItems violation filter.$or.0.tags | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:783` | getProcessDefinitionStatistics - uniqueItems violation filter.tags | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:807` | getProcessDefinitionXML - Path param processDefinitionKey pattern violation | +| negative-get | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:823` | getStartProcessForm - Path param processDefinitionKey pattern violation | +| negative-search | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:839` | searchProcessDefinitions - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:858` | searchProcessDefinitions - Body wrong top-level type | +| negative-search | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:873` | searchProcessDefinitions - Missing sort.0.field | +| negative-search | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:890` | searchProcessDefinitions - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/processdefinitions-validation-api-tests.spec.ts:911` | searchProcessDefinitions - Enum violation sort.0.order | + +### `resource` — 36 tests + +- **Prerequisite to create**: none +- **Files**: `createDeployment.feature.spec.ts`, `createDeployment.variant.spec.ts`, `deleteResource.feature.spec.ts`, `getResource.feature.spec.ts`, `getResourceContent.feature.spec.ts`, `getResourceContentBinary.feature.spec.ts`, `request-validation/deployments-validation-api-tests.spec.ts`, `request-validation/resources-validation-api-tests.spec.ts`, `searchResources.feature.spec.ts`, `searchResources.variant.spec.ts` +- **Observation channel**: GET = 3, Search = 6 +- **Form-step counts**: create=5, observe-present-get=3, observe-present-search=6, delete=1, observe-absence=1, negative-create=8, negative-delete=7, negative-search=5 +- **Variants**: happy-path=5, observe-absence=1, data-driven=10, bad-request=20, pagination-sort=2, filter=3 + +| form step | variants | file:line | test name | +|--|--|--|--| +| create | data-driven | `createDeployment.feature.spec.ts:12` | feature-1 - createDeployment - bpmn (1) | +| create | data-driven | `createDeployment.feature.spec.ts:41` | feature-2 - createDeployment - form (2) | +| create | data-driven | `createDeployment.feature.spec.ts:70` | feature-3 - createDeployment - dmn (3) | +| create | data-driven | `createDeployment.feature.spec.ts:99` | feature-4 - createDeployment - drd (4) | +| create | data-driven | `createDeployment.variant.spec.ts:12` | variant-1 - createDeployment - path #1 | +| observe-present-get | happy-path | `getResource.feature.spec.ts:12` | feature-1 - getResource - base (1) | +| observe-present-get | happy-path | `getResourceContent.feature.spec.ts:9` | feature-1 - getResourceContent - base (1) | +| observe-present-get | happy-path | `getResourceContentBinary.feature.spec.ts:9` | feature-1 - getResourceContentBinary - base (1) | +| observe-present-search | happy-path | `searchResources.feature.spec.ts:12` | feature-1 - searchResources - base (1) | +| observe-present-search | data-driven, filter | `searchResources.variant.spec.ts:13` | variant-1 - searchResources - bpmn #1 | +| observe-present-search | data-driven, filter | `searchResources.variant.spec.ts:62` | variant-2 - searchResources - path #1 | +| observe-present-search | data-driven, filter | `searchResources.variant.spec.ts:130` | variant-3 - searchResources - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchResources.variant.spec.ts:180` | variant-4 - searchResources - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchResources.variant.spec.ts:232` | variant-5 - searchResources - path #1 | +| delete | happy-path | `deleteResource.feature.spec.ts:11` | feature-1 - deleteResource - base (1) | +| observe-absence | observe-absence | `searchResources.feature.spec.ts:35` | feature-2 - searchResources - negative empty (2) | +| negative-create | bad-request | `request-validation/deployments-validation-api-tests.spec.ts:18` | createDeployment - Additional prop __unexpectedField | +| negative-create | bad-request | `request-validation/deployments-validation-api-tests.spec.ts:39` | createDeployment - Param tenantId wrong type | +| negative-create | bad-request | `request-validation/deployments-validation-api-tests.spec.ts:59` | createDeployment - Constraint violation tenantId (#1) | +| negative-create | bad-request | `request-validation/deployments-validation-api-tests.spec.ts:79` | createDeployment - Constraint violation tenantId (#2) | +| negative-create | bad-request | `request-validation/deployments-validation-api-tests.spec.ts:99` | createDeployment - Constraint violation tenantId (#3) | +| negative-create | bad-request | `request-validation/deployments-validation-api-tests.spec.ts:119` | createDeployment - Constraint violation tenantId (#4) | +| negative-create | bad-request | `request-validation/deployments-validation-api-tests.spec.ts:139` | createDeployment - Missing body | +| negative-create | bad-request | `request-validation/deployments-validation-api-tests.spec.ts:156` | createDeployment - Missing resources | +| negative-delete | bad-request | `request-validation/resources-validation-api-tests.spec.ts:18` | deleteResource - Additional prop __unexpectedField | +| negative-delete | bad-request | `request-validation/resources-validation-api-tests.spec.ts:38` | deleteResource - Body wrong top-level type | +| negative-delete | bad-request | `request-validation/resources-validation-api-tests.spec.ts:55` | deleteResource - Param operationReference wrong type (#1) | +| negative-delete | bad-request | `request-validation/resources-validation-api-tests.spec.ts:76` | deleteResource - Param operationReference wrong type (#2) | +| negative-delete | bad-request | `request-validation/resources-validation-api-tests.spec.ts:97` | deleteResource - Constraint violation operationReference (#1) | +| negative-delete | bad-request | `request-validation/resources-validation-api-tests.spec.ts:118` | deleteResource - Constraint violation operationReference (#2) | +| negative-delete | bad-request | `request-validation/resources-validation-api-tests.spec.ts:139` | deleteResource - Constraint violation operationReference (#3) | +| negative-search | bad-request | `request-validation/resources-validation-api-tests.spec.ts:160` | searchResources - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/resources-validation-api-tests.spec.ts:177` | searchResources - Body wrong top-level type | +| negative-search | bad-request | `request-validation/resources-validation-api-tests.spec.ts:192` | searchResources - Missing sort.0.field | +| negative-search | bad-request | `request-validation/resources-validation-api-tests.spec.ts:209` | searchResources - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/resources-validation-api-tests.spec.ts:230` | searchResources - Enum violation sort.0.order | + +### `decision-definition` — 28 tests + +- **Prerequisite to create**: deployed-decision +- **Files**: `evaluateDecision.feature.spec.ts`, `evaluateDecision.variant.spec.ts`, `getDecisionDefinition.feature.spec.ts`, `getDecisionDefinitionXML.feature.spec.ts`, `request-validation/decisiondefinitions-validation-api-tests.spec.ts`, `searchDecisionDefinitions.feature.spec.ts`, `searchDecisionDefinitions.variant.spec.ts` +- **Observation channel**: GET = 2, Search = 7 +- **Form-step counts**: create=4, observe-present-get=2, observe-present-search=7, observe-absence=1, negative-create=7, negative-get=2, negative-search=5 +- **Variants**: happy-path=4, observe-absence=1, data-driven=9, bad-request=14, pagination-sort=2, filter=4 + +| form step | variants | file:line | test name | +|--|--|--|--| +| create | happy-path | `evaluateDecision.feature.spec.ts:12` | feature-1 - evaluateDecision - base (1) | +| create | data-driven | `evaluateDecision.feature.spec.ts:61` | feature-2 - evaluateDecision - oneOf group0 Decision evaluation by ID (2) | +| create | data-driven | `evaluateDecision.feature.spec.ts:113` | feature-3 - evaluateDecision - oneOf group0 Decision evaluation by key (3) | +| create | data-driven | `evaluateDecision.variant.spec.ts:12` | variant-1 - evaluateDecision - dmn #1 | +| observe-present-get | happy-path | `getDecisionDefinition.feature.spec.ts:13` | feature-1 - getDecisionDefinition - base (1) | +| observe-present-get | happy-path | `getDecisionDefinitionXML.feature.spec.ts:10` | feature-1 - getDecisionDefinitionXML - base (1) | +| observe-present-search | happy-path | `searchDecisionDefinitions.feature.spec.ts:12` | feature-1 - searchDecisionDefinitions - base (1) | +| observe-present-search | data-driven, filter | `searchDecisionDefinitions.variant.spec.ts:13` | variant-1 - searchDecisionDefinitions - dmn #1 | +| observe-present-search | data-driven, filter | `searchDecisionDefinitions.variant.spec.ts:64` | variant-2 - searchDecisionDefinitions - path #1 | +| observe-present-search | data-driven, filter | `searchDecisionDefinitions.variant.spec.ts:117` | variant-3 - searchDecisionDefinitions - dmn #1 | +| observe-present-search | data-driven, filter | `searchDecisionDefinitions.variant.spec.ts:168` | variant-4 - searchDecisionDefinitions - drd #1 | +| observe-present-search | data-driven, pagination-sort | `searchDecisionDefinitions.variant.spec.ts:219` | variant-5 - searchDecisionDefinitions - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchDecisionDefinitions.variant.spec.ts:273` | variant-6 - searchDecisionDefinitions - path #1 | +| observe-absence | observe-absence | `searchDecisionDefinitions.feature.spec.ts:37` | feature-2 - searchDecisionDefinitions - negative empty (2) | +| negative-create | bad-request | `request-validation/decisiondefinitions-validation-api-tests.spec.ts:18` | evaluateDecision - Additional prop __extraField | +| negative-create | bad-request | `request-validation/decisiondefinitions-validation-api-tests.spec.ts:35` | evaluateDecision - Body wrong top-level type | +| negative-create | bad-request | `request-validation/decisiondefinitions-validation-api-tests.spec.ts:50` | evaluateDecision - Missing body | +| negative-create | bad-request | `request-validation/decisiondefinitions-validation-api-tests.spec.ts:62` | evaluateDecision - oneOf ambiguous | +| negative-create | bad-request | `request-validation/decisiondefinitions-validation-api-tests.spec.ts:80` | evaluateDecision - oneOf cross bleed | +| negative-create | bad-request | `request-validation/decisiondefinitions-validation-api-tests.spec.ts:98` | evaluateDecision - oneOf none match | +| negative-create | bad-request | `request-validation/decisiondefinitions-validation-api-tests.spec.ts:113` | evaluateDecision - oneOf violation | +| negative-get | bad-request | `request-validation/decisiondefinitions-validation-api-tests.spec.ts:131` | getDecisionDefinition - Path param decisionDefinitionKey pattern violation | +| negative-get | bad-request | `request-validation/decisiondefinitions-validation-api-tests.spec.ts:147` | getDecisionDefinitionXML - Path param decisionDefinitionKey pattern violation | +| negative-search | bad-request | `request-validation/decisiondefinitions-validation-api-tests.spec.ts:163` | searchDecisionDefinitions - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/decisiondefinitions-validation-api-tests.spec.ts:182` | searchDecisionDefinitions - Body wrong top-level type | +| negative-search | bad-request | `request-validation/decisiondefinitions-validation-api-tests.spec.ts:197` | searchDecisionDefinitions - Missing sort.0.field | +| negative-search | bad-request | `request-validation/decisiondefinitions-validation-api-tests.spec.ts:214` | searchDecisionDefinitions - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/decisiondefinitions-validation-api-tests.spec.ts:235` | searchDecisionDefinitions - Enum violation sort.0.order | + +### `decision-requirements` — 15 tests + +- **Prerequisite to create**: deployed-drd +- **Files**: `getDecisionRequirements.feature.spec.ts`, `getDecisionRequirementsXML.feature.spec.ts`, `request-validation/decisionrequirements-validation-api-tests.spec.ts`, `searchDecisionRequirements.feature.spec.ts`, `searchDecisionRequirements.variant.spec.ts` +- **Observation channel**: GET = 2, Search = 5 +- **Form-step counts**: observe-present-get=2, observe-present-search=5, observe-absence=1, negative-get=2, negative-search=5 +- **Variants**: happy-path=3, observe-absence=1, data-driven=4, bad-request=7, pagination-sort=2, filter=2 + +| form step | variants | file:line | test name | +|--|--|--|--| +| observe-present-get | happy-path | `getDecisionRequirements.feature.spec.ts:13` | feature-1 - getDecisionRequirements - base (1) | +| observe-present-get | happy-path | `getDecisionRequirementsXML.feature.spec.ts:10` | feature-1 - getDecisionRequirementsXML - base (1) | +| observe-present-search | happy-path | `searchDecisionRequirements.feature.spec.ts:12` | feature-1 - searchDecisionRequirements - base (1) | +| observe-present-search | data-driven, filter | `searchDecisionRequirements.variant.spec.ts:13` | variant-1 - searchDecisionRequirements - drd #1 | +| observe-present-search | data-driven, filter | `searchDecisionRequirements.variant.spec.ts:64` | variant-2 - searchDecisionRequirements - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchDecisionRequirements.variant.spec.ts:116` | variant-3 - searchDecisionRequirements - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchDecisionRequirements.variant.spec.ts:170` | variant-4 - searchDecisionRequirements - path #1 | +| observe-absence | observe-absence | `searchDecisionRequirements.feature.spec.ts:37` | feature-2 - searchDecisionRequirements - negative empty (2) | +| negative-get | bad-request | `request-validation/decisionrequirements-validation-api-tests.spec.ts:18` | getDecisionRequirements - Path param decisionRequirementsKey pattern violation | +| negative-get | bad-request | `request-validation/decisionrequirements-validation-api-tests.spec.ts:34` | getDecisionRequirementsXML - Path param decisionRequirementsKey pattern violation | +| negative-search | bad-request | `request-validation/decisionrequirements-validation-api-tests.spec.ts:50` | searchDecisionRequirements - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/decisionrequirements-validation-api-tests.spec.ts:69` | searchDecisionRequirements - Body wrong top-level type | +| negative-search | bad-request | `request-validation/decisionrequirements-validation-api-tests.spec.ts:84` | searchDecisionRequirements - Missing sort.0.field | +| negative-search | bad-request | `request-validation/decisionrequirements-validation-api-tests.spec.ts:101` | searchDecisionRequirements - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/decisionrequirements-validation-api-tests.spec.ts:124` | searchDecisionRequirements - Enum violation sort.0.order | + +## D. Process-Instance Lifecycle & Ops + +**Form**: Deploy process (prerequisite) → Create instance → Get/Search instance → Cancel/Migrate/Modify/Resolve-incident → Delete → Observe absence. Batch creators wrap N instances per call. + +**Total tests**: 282 + +### `process-instance` — 282 tests + +- **Prerequisite to create**: deployed-process +- **Files**: `cancelProcessInstance.feature.spec.ts`, `cancelProcessInstancesBatchOperation.feature.spec.ts`, `cancelProcessInstancesBatchOperation.variant.spec.ts`, `createProcessInstance.feature.spec.ts`, `createProcessInstance.variant.spec.ts`, `deleteProcessInstance.feature.spec.ts`, `deleteProcessInstancesBatchOperation.feature.spec.ts`, `deleteProcessInstancesBatchOperation.variant.spec.ts`, `getProcessInstance.feature.spec.ts`, `getProcessInstanceCallHierarchy.feature.spec.ts`, `getProcessInstanceSequenceFlows.feature.spec.ts`, `getProcessInstanceStatistics.feature.spec.ts`, `migrateProcessInstance.feature.spec.ts`, `migrateProcessInstance.variant.spec.ts`, `migrateProcessInstancesBatchOperation.feature.spec.ts`, `migrateProcessInstancesBatchOperation.variant.spec.ts`, `modifyProcessInstance.feature.spec.ts`, `modifyProcessInstance.variant.spec.ts`, `modifyProcessInstancesBatchOperation.feature.spec.ts`, `modifyProcessInstancesBatchOperation.variant.spec.ts`, `request-validation/processinstances-validation-api-tests.spec.ts`, `resolveIncidentsBatchOperation.feature.spec.ts`, `resolveIncidentsBatchOperation.variant.spec.ts`, `resolveProcessInstanceIncidents.feature.spec.ts`, `searchProcessInstanceIncidents.feature.spec.ts`, `searchProcessInstanceIncidents.variant.spec.ts`, `searchProcessInstances.feature.spec.ts`, `searchProcessInstances.variant.spec.ts` +- **Observation channel**: GET = 4, Search = 20 +- **Form-step counts**: create=8, observe-present-get=4, observe-present-search=20, mutate=50, delete=24, observe-absence=1, negative-create=6, negative-get=4, negative-update=98, negative-delete=50, negative-search=17 +- **Variants**: happy-path=17, observe-absence=1, data-driven=89, bad-request=175, pagination-sort=4, filter=73 + +| form step | variants | file:line | test name | +|--|--|--|--| +| create | happy-path | `createProcessInstance.feature.spec.ts:12` | feature-1 - createProcessInstance - base (1) | +| create | data-driven | `createProcessInstance.feature.spec.ts:57` | feature-2 - createProcessInstance - oneOf group0 Process creation by key (2) | +| create | data-driven | `createProcessInstance.feature.spec.ts:105` | feature-3 - createProcessInstance - oneOf group0 Process creation by id (3) | +| create | data-driven | `createProcessInstance.variant.spec.ts:13` | variant-1 - createProcessInstance - bpmn #1 | +| create | data-driven | `createProcessInstance.variant.spec.ts:66` | variant-2 - createProcessInstance - bpmn #1 | +| create | data-driven | `createProcessInstance.variant.spec.ts:119` | variant-3 - createProcessInstance - bpmn #1 | +| create | data-driven | `createProcessInstance.variant.spec.ts:187` | variant-4 - createProcessInstance - bpmn #1 | +| create | data-driven | `createProcessInstance.variant.spec.ts:283` | variant-5 - createProcessInstance - bpmn #1 | +| observe-present-get | happy-path | `getProcessInstance.feature.spec.ts:13` | feature-1 - getProcessInstance - base (1) | +| observe-present-get | happy-path | `getProcessInstanceCallHierarchy.feature.spec.ts:10` | feature-1 - getProcessInstanceCallHierarchy - base (1) | +| observe-present-get | happy-path | `getProcessInstanceSequenceFlows.feature.spec.ts:13` | feature-1 - getProcessInstanceSequenceFlows - base (1) | +| observe-present-get | happy-path | `getProcessInstanceStatistics.feature.spec.ts:13` | feature-1 - getProcessInstanceStatistics - base (1) | +| observe-present-search | happy-path | `searchProcessInstanceIncidents.feature.spec.ts:13` | feature-1 - searchProcessInstanceIncidents - base (1) | +| observe-present-search | data-driven, filter | `searchProcessInstanceIncidents.variant.spec.ts:13` | variant-1 - searchProcessInstanceIncidents - cycle/bpmn+bpmn #1 | +| observe-present-search | data-driven, filter | `searchProcessInstanceIncidents.variant.spec.ts:109` | variant-2 - searchProcessInstanceIncidents - bpmn #1 | +| observe-present-search | data-driven, filter | `searchProcessInstanceIncidents.variant.spec.ts:187` | variant-3 - searchProcessInstanceIncidents - bpmn #1 | +| observe-present-search | data-driven, filter | `searchProcessInstanceIncidents.variant.spec.ts:297` | variant-4 - searchProcessInstanceIncidents - bpmn #1 | +| observe-present-search | data-driven, pagination-sort | `searchProcessInstanceIncidents.variant.spec.ts:407` | variant-5 - searchProcessInstanceIncidents - bpmn #1 | +| observe-present-search | data-driven, pagination-sort | `searchProcessInstanceIncidents.variant.spec.ts:512` | variant-6 - searchProcessInstanceIncidents - bpmn #1 | +| observe-present-search | happy-path | `searchProcessInstances.feature.spec.ts:13` | feature-1 - searchProcessInstances - base (1) | +| observe-present-search | data-driven, filter | `searchProcessInstances.variant.spec.ts:13` | variant-1 - searchProcessInstances - path #1 | +| observe-present-search | data-driven, filter | `searchProcessInstances.variant.spec.ts:87` | variant-2 - searchProcessInstances - bpmn #1 | +| observe-present-search | data-driven, filter | `searchProcessInstances.variant.spec.ts:161` | variant-3 - searchProcessInstances - bpmn #1 | +| observe-present-search | data-driven, filter | `searchProcessInstances.variant.spec.ts:235` | variant-4 - searchProcessInstances - bpmn #1 | +| observe-present-search | data-driven, filter | `searchProcessInstances.variant.spec.ts:337` | variant-5 - searchProcessInstances - bpmn #1 | +| observe-present-search | data-driven, filter | `searchProcessInstances.variant.spec.ts:440` | variant-6 - searchProcessInstances - path #1 | +| observe-present-search | data-driven, filter | `searchProcessInstances.variant.spec.ts:518` | variant-7 - searchProcessInstances - bpmn #1 | +| observe-present-search | data-driven, filter | `searchProcessInstances.variant.spec.ts:596` | variant-8 - searchProcessInstances - bpmn #1 | +| observe-present-search | data-driven, filter | `searchProcessInstances.variant.spec.ts:674` | variant-9 - searchProcessInstances - bpmn #1 | +| observe-present-search | data-driven, filter | `searchProcessInstances.variant.spec.ts:780` | variant-10 - searchProcessInstances - bpmn #1 | +| observe-present-search | data-driven, pagination-sort | `searchProcessInstances.variant.spec.ts:887` | variant-11 - searchProcessInstances - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchProcessInstances.variant.spec.ts:983` | variant-12 - searchProcessInstances - path #1 | +| mutate | happy-path | `migrateProcessInstance.feature.spec.ts:9` | feature-1 - migrateProcessInstance - base (1) | +| mutate | data-driven | `migrateProcessInstance.variant.spec.ts:9` | variant-1 - migrateProcessInstance - cycle/bpmn+bpmn #1 | +| mutate | data-driven | `migrateProcessInstance.variant.spec.ts:121` | variant-2 - migrateProcessInstance - cycle/bpmn+bpmn #1 | +| mutate | happy-path, filter | `migrateProcessInstancesBatchOperation.feature.spec.ts:12` | feature-1 - migrateProcessInstancesBatchOperation - base (1) | +| mutate | data-driven, filter | `migrateProcessInstancesBatchOperation.variant.spec.ts:12` | variant-1 - migrateProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `migrateProcessInstancesBatchOperation.variant.spec.ts:66` | variant-2 - migrateProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `migrateProcessInstancesBatchOperation.variant.spec.ts:141` | variant-3 - migrateProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `migrateProcessInstancesBatchOperation.variant.spec.ts:216` | variant-4 - migrateProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `migrateProcessInstancesBatchOperation.variant.spec.ts:271` | variant-5 - migrateProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `migrateProcessInstancesBatchOperation.variant.spec.ts:326` | variant-6 - migrateProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `migrateProcessInstancesBatchOperation.variant.spec.ts:384` | variant-7 - migrateProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `migrateProcessInstancesBatchOperation.variant.spec.ts:463` | variant-8 - migrateProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `migrateProcessInstancesBatchOperation.variant.spec.ts:542` | variant-9 - migrateProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `migrateProcessInstancesBatchOperation.variant.spec.ts:601` | variant-10 - migrateProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `migrateProcessInstancesBatchOperation.variant.spec.ts:660` | variant-11 - migrateProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `migrateProcessInstancesBatchOperation.variant.spec.ts:720` | variant-12 - migrateProcessInstancesBatchOperation - bpmn #1 | +| mutate | happy-path | `modifyProcessInstance.feature.spec.ts:9` | feature-1 - modifyProcessInstance - base (1) | +| mutate | data-driven | `modifyProcessInstance.variant.spec.ts:9` | variant-1 - modifyProcessInstance - bpmn #1 | +| mutate | data-driven | `modifyProcessInstance.variant.spec.ts:102` | variant-2 - modifyProcessInstance - bpmn #1 | +| mutate | data-driven | `modifyProcessInstance.variant.spec.ts:195` | variant-3 - modifyProcessInstance - bpmn #1 | +| mutate | data-driven | `modifyProcessInstance.variant.spec.ts:290` | variant-4 - modifyProcessInstance - bpmn #1 | +| mutate | data-driven | `modifyProcessInstance.variant.spec.ts:385` | variant-5 - modifyProcessInstance - bpmn #1 | +| mutate | data-driven | `modifyProcessInstance.variant.spec.ts:478` | variant-6 - modifyProcessInstance - bpmn #1 | +| mutate | data-driven | `modifyProcessInstance.variant.spec.ts:573` | variant-7 - modifyProcessInstance - bpmn #1 | +| mutate | data-driven | `modifyProcessInstance.variant.spec.ts:666` | variant-8 - modifyProcessInstance - bpmn #1 | +| mutate | happy-path, filter | `modifyProcessInstancesBatchOperation.feature.spec.ts:11` | feature-1 - modifyProcessInstancesBatchOperation - base (1) | +| mutate | data-driven, filter | `modifyProcessInstancesBatchOperation.variant.spec.ts:12` | variant-1 - modifyProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `modifyProcessInstancesBatchOperation.variant.spec.ts:65` | variant-2 - modifyProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `modifyProcessInstancesBatchOperation.variant.spec.ts:139` | variant-3 - modifyProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `modifyProcessInstancesBatchOperation.variant.spec.ts:213` | variant-4 - modifyProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `modifyProcessInstancesBatchOperation.variant.spec.ts:315` | variant-5 - modifyProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `modifyProcessInstancesBatchOperation.variant.spec.ts:417` | variant-6 - modifyProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `modifyProcessInstancesBatchOperation.variant.spec.ts:474` | variant-7 - modifyProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `modifyProcessInstancesBatchOperation.variant.spec.ts:552` | variant-8 - modifyProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `modifyProcessInstancesBatchOperation.variant.spec.ts:630` | variant-9 - modifyProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `modifyProcessInstancesBatchOperation.variant.spec.ts:736` | variant-10 - modifyProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `modifyProcessInstancesBatchOperation.variant.spec.ts:842` | variant-11 - modifyProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `modifyProcessInstancesBatchOperation.variant.spec.ts:946` | variant-12 - modifyProcessInstancesBatchOperation - bpmn #1 | +| mutate | happy-path, filter | `resolveIncidentsBatchOperation.feature.spec.ts:11` | feature-1 - resolveIncidentsBatchOperation - base (1) | +| mutate | data-driven, filter | `resolveIncidentsBatchOperation.variant.spec.ts:12` | variant-1 - resolveIncidentsBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `resolveIncidentsBatchOperation.variant.spec.ts:64` | variant-2 - resolveIncidentsBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `resolveIncidentsBatchOperation.variant.spec.ts:137` | variant-3 - resolveIncidentsBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `resolveIncidentsBatchOperation.variant.spec.ts:210` | variant-4 - resolveIncidentsBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `resolveIncidentsBatchOperation.variant.spec.ts:311` | variant-5 - resolveIncidentsBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `resolveIncidentsBatchOperation.variant.spec.ts:412` | variant-6 - resolveIncidentsBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `resolveIncidentsBatchOperation.variant.spec.ts:468` | variant-7 - resolveIncidentsBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `resolveIncidentsBatchOperation.variant.spec.ts:545` | variant-8 - resolveIncidentsBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `resolveIncidentsBatchOperation.variant.spec.ts:622` | variant-9 - resolveIncidentsBatchOperation - bpmn #1 | +| mutate | data-driven, filter | `resolveIncidentsBatchOperation.variant.spec.ts:727` | variant-10 - resolveIncidentsBatchOperation - bpmn #1 | +| mutate | happy-path | `resolveProcessInstanceIncidents.feature.spec.ts:12` | feature-1 - resolveProcessInstanceIncidents - base (1) | +| delete | happy-path | `cancelProcessInstance.feature.spec.ts:9` | feature-1 - cancelProcessInstance - base (1) | +| delete | happy-path, filter | `cancelProcessInstancesBatchOperation.feature.spec.ts:11` | feature-1 - cancelProcessInstancesBatchOperation - base (1) | +| delete | data-driven, filter | `cancelProcessInstancesBatchOperation.variant.spec.ts:12` | variant-1 - cancelProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven, filter | `cancelProcessInstancesBatchOperation.variant.spec.ts:64` | variant-2 - cancelProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven, filter | `cancelProcessInstancesBatchOperation.variant.spec.ts:137` | variant-3 - cancelProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven, filter | `cancelProcessInstancesBatchOperation.variant.spec.ts:210` | variant-4 - cancelProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven, filter | `cancelProcessInstancesBatchOperation.variant.spec.ts:311` | variant-5 - cancelProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven, filter | `cancelProcessInstancesBatchOperation.variant.spec.ts:412` | variant-6 - cancelProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven, filter | `cancelProcessInstancesBatchOperation.variant.spec.ts:468` | variant-7 - cancelProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven, filter | `cancelProcessInstancesBatchOperation.variant.spec.ts:545` | variant-8 - cancelProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven, filter | `cancelProcessInstancesBatchOperation.variant.spec.ts:622` | variant-9 - cancelProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven, filter | `cancelProcessInstancesBatchOperation.variant.spec.ts:727` | variant-10 - cancelProcessInstancesBatchOperation - bpmn #1 | +| delete | happy-path | `deleteProcessInstance.feature.spec.ts:10` | feature-1 - deleteProcessInstance - base (1) | +| delete | happy-path, filter | `deleteProcessInstancesBatchOperation.feature.spec.ts:11` | feature-1 - deleteProcessInstancesBatchOperation - base (1) | +| delete | data-driven, filter | `deleteProcessInstancesBatchOperation.variant.spec.ts:12` | variant-1 - deleteProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven, filter | `deleteProcessInstancesBatchOperation.variant.spec.ts:64` | variant-2 - deleteProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven, filter | `deleteProcessInstancesBatchOperation.variant.spec.ts:137` | variant-3 - deleteProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven, filter | `deleteProcessInstancesBatchOperation.variant.spec.ts:210` | variant-4 - deleteProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven, filter | `deleteProcessInstancesBatchOperation.variant.spec.ts:311` | variant-5 - deleteProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven, filter | `deleteProcessInstancesBatchOperation.variant.spec.ts:412` | variant-6 - deleteProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven, filter | `deleteProcessInstancesBatchOperation.variant.spec.ts:468` | variant-7 - deleteProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven, filter | `deleteProcessInstancesBatchOperation.variant.spec.ts:545` | variant-8 - deleteProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven, filter | `deleteProcessInstancesBatchOperation.variant.spec.ts:622` | variant-9 - deleteProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven, filter | `deleteProcessInstancesBatchOperation.variant.spec.ts:727` | variant-10 - deleteProcessInstancesBatchOperation - bpmn #1 | +| observe-absence | observe-absence | `searchProcessInstances.feature.spec.ts:80` | feature-2 - searchProcessInstances - negative empty (2) | +| negative-create | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:556` | createProcessInstance - Body wrong top-level type | +| negative-create | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:571` | createProcessInstance - Missing body | +| negative-create | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:583` | createProcessInstance - oneOf ambiguous | +| negative-create | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:601` | createProcessInstance - oneOf cross bleed | +| negative-create | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:619` | createProcessInstance - oneOf none match | +| negative-create | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:634` | createProcessInstance - oneOf violation | +| negative-get | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1190` | getProcessInstance - Path param processInstanceKey pattern violation | +| negative-get | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1206` | getProcessInstanceCallHierarchy - Path param processInstanceKey pattern violation | +| negative-get | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1222` | getProcessInstanceSequenceFlows - Path param processInstanceKey pattern violation | +| negative-get | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1238` | getProcessInstanceStatistics - Path param processInstanceKey pattern violation | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1254` | migrateProcessInstance - Additional prop __unexpectedField | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1283` | migrateProcessInstance - Body wrong top-level type | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1300` | migrateProcessInstance - Param operationReference wrong type (#1) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1328` | migrateProcessInstance - Param operationReference wrong type (#2) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1356` | migrateProcessInstance - Param targetProcessDefinitionKey wrong type (#1) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1384` | migrateProcessInstance - Param targetProcessDefinitionKey wrong type (#2) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1412` | migrateProcessInstance - Constraint violation operationReference (#1) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1440` | migrateProcessInstance - Constraint violation operationReference (#2) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1468` | migrateProcessInstance - Constraint violation operationReference (#3) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1496` | migrateProcessInstance - Missing mappingInstructions.0.sourceElementId | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1522` | migrateProcessInstance - Missing mappingInstructions.0.targetElementId | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1548` | migrateProcessInstance - Missing targetProcessDefinitionKey (#1) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1574` | migrateProcessInstance - Missing mappingInstructions | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1593` | migrateProcessInstance - Missing targetProcessDefinitionKey (#2) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1614` | migrateProcessInstance - Missing body | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1628` | migrateProcessInstance - Missing combo targetProcessDefinitionKey,mappingInstructions | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1647` | migrateProcessInstance - Path param processInstanceKey pattern violation | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1663` | migrateProcessInstancesBatchOperation - Additional prop __unexpectedField | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1695` | migrateProcessInstancesBatchOperation - Body wrong top-level type | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1712` | migrateProcessInstancesBatchOperation - Param migrationPlan.targetProcessDefinitionKey wrong type (#1) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1743` | migrateProcessInstancesBatchOperation - Param migrationPlan.targetProcessDefinitionKey wrong type (#2) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1774` | migrateProcessInstancesBatchOperation - Param operationReference wrong type (#1) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1805` | migrateProcessInstancesBatchOperation - Param operationReference wrong type (#2) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1836` | migrateProcessInstancesBatchOperation - Constraint violation filter.tags (#1) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1867` | migrateProcessInstancesBatchOperation - Constraint violation filter.tags (#2) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1898` | migrateProcessInstancesBatchOperation - Constraint violation operationReference (#1) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1929` | migrateProcessInstancesBatchOperation - Constraint violation operationReference (#2) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1960` | migrateProcessInstancesBatchOperation - Constraint violation operationReference (#3) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1991` | migrateProcessInstancesBatchOperation - Missing filter (#1) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2018` | migrateProcessInstancesBatchOperation - Missing filter.$or.0.variables.0.name | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2056` | migrateProcessInstancesBatchOperation - Missing filter.$or.0.variables.0.value | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2094` | migrateProcessInstancesBatchOperation - Missing filter.variables.0.name | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2128` | migrateProcessInstancesBatchOperation - Missing filter.variables.0.value | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2162` | migrateProcessInstancesBatchOperation - Missing migrationPlan (#1) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2181` | migrateProcessInstancesBatchOperation - Missing migrationPlan.mappingInstructions | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2203` | migrateProcessInstancesBatchOperation - Missing migrationPlan.mappingInstructions.0.sourceElementId | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2230` | migrateProcessInstancesBatchOperation - Missing migrationPlan.mappingInstructions.0.targetElementId | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2257` | migrateProcessInstancesBatchOperation - Missing migrationPlan.targetProcessDefinitionKey | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2284` | migrateProcessInstancesBatchOperation - Missing filter (#2) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2303` | migrateProcessInstancesBatchOperation - Missing migrationPlan (#2) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2322` | migrateProcessInstancesBatchOperation - Missing body | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2334` | migrateProcessInstancesBatchOperation - Missing combo filter,migrationPlan | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2351` | migrateProcessInstancesBatchOperation - uniqueItems violation filter.$or.0.tags | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2387` | migrateProcessInstancesBatchOperation - uniqueItems violation filter.tags | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2418` | modifyProcessInstance - Additional prop __unexpectedField | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2440` | modifyProcessInstance - Body wrong top-level type | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2457` | modifyProcessInstance - Param operationReference wrong type (#1) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2478` | modifyProcessInstance - Param operationReference wrong type (#2) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2499` | modifyProcessInstance - Constraint violation operationReference (#1) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2520` | modifyProcessInstance - Constraint violation operationReference (#2) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2541` | modifyProcessInstance - Constraint violation operationReference (#3) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2562` | modifyProcessInstance - Missing activateInstructions.0.elementId | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2583` | modifyProcessInstance - Missing activateInstructions.0.variableInstructions.0.variables | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2609` | modifyProcessInstance - Missing moveInstructions.0.sourceElementInstruction | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2634` | modifyProcessInstance - Missing moveInstructions.0.targetElementId | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2659` | modifyProcessInstance - Missing moveInstructions.0.variableInstructions.0.variables | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2686` | modifyProcessInstance - Missing body | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2700` | modifyProcessInstance - Path param processInstanceKey pattern violation | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2716` | modifyProcessInstancesBatchOperation - Additional prop __unexpectedField | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2745` | modifyProcessInstancesBatchOperation - Body wrong top-level type | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2762` | modifyProcessInstancesBatchOperation - Param operationReference wrong type (#1) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2790` | modifyProcessInstancesBatchOperation - Param operationReference wrong type (#2) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2818` | modifyProcessInstancesBatchOperation - Constraint violation filter.tags (#1) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2846` | modifyProcessInstancesBatchOperation - Constraint violation filter.tags (#2) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2874` | modifyProcessInstancesBatchOperation - Constraint violation operationReference (#1) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2902` | modifyProcessInstancesBatchOperation - Constraint violation operationReference (#2) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2930` | modifyProcessInstancesBatchOperation - Constraint violation operationReference (#3) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2958` | modifyProcessInstancesBatchOperation - Missing filter (#1) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:2982` | modifyProcessInstancesBatchOperation - Missing filter.$or.0.variables.0.name | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3017` | modifyProcessInstancesBatchOperation - Missing filter.$or.0.variables.0.value | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3052` | modifyProcessInstancesBatchOperation - Missing filter.variables.0.name | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3083` | modifyProcessInstancesBatchOperation - Missing filter.variables.0.value | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3114` | modifyProcessInstancesBatchOperation - Missing moveInstructions (#1) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3133` | modifyProcessInstancesBatchOperation - Missing moveInstructions.0.sourceElementId | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3157` | modifyProcessInstancesBatchOperation - Missing moveInstructions.0.targetElementId | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3181` | modifyProcessInstancesBatchOperation - Missing filter (#2) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3200` | modifyProcessInstancesBatchOperation - Missing moveInstructions (#2) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3219` | modifyProcessInstancesBatchOperation - Missing body | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3231` | modifyProcessInstancesBatchOperation - Missing combo filter,moveInstructions | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3248` | modifyProcessInstancesBatchOperation - uniqueItems violation filter.$or.0.tags | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3281` | modifyProcessInstancesBatchOperation - uniqueItems violation filter.tags | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3309` | resolveIncidentsBatchOperation - Additional prop __unexpectedField | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3332` | resolveIncidentsBatchOperation - Body wrong top-level type | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3349` | resolveIncidentsBatchOperation - Param operationReference wrong type (#1) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3371` | resolveIncidentsBatchOperation - Param operationReference wrong type (#2) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3393` | resolveIncidentsBatchOperation - Constraint violation filter.tags (#1) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3415` | resolveIncidentsBatchOperation - Constraint violation filter.tags (#2) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3437` | resolveIncidentsBatchOperation - Constraint violation operationReference (#1) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3459` | resolveIncidentsBatchOperation - Constraint violation operationReference (#2) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3481` | resolveIncidentsBatchOperation - Constraint violation operationReference (#3) | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3503` | resolveIncidentsBatchOperation - Missing filter.$or.0.variables.0.name | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3532` | resolveIncidentsBatchOperation - Missing filter.$or.0.variables.0.value | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3561` | resolveIncidentsBatchOperation - Missing filter.variables.0.name | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3586` | resolveIncidentsBatchOperation - Missing filter.variables.0.value | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3611` | resolveIncidentsBatchOperation - Missing filter | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3626` | resolveIncidentsBatchOperation - uniqueItems violation filter.$or.0.tags | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3653` | resolveIncidentsBatchOperation - uniqueItems violation filter.tags | +| negative-update | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3675` | resolveProcessInstanceIncidents - Path param processInstanceKey pattern violation | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:18` | cancelProcessInstance - Additional prop __unexpectedField | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:40` | cancelProcessInstance - Body wrong top-level type | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:57` | cancelProcessInstance - Param operationReference wrong type (#1) | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:78` | cancelProcessInstance - Param operationReference wrong type (#2) | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:99` | cancelProcessInstance - Constraint violation operationReference (#1) | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:120` | cancelProcessInstance - Constraint violation operationReference (#2) | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:141` | cancelProcessInstance - Constraint violation operationReference (#3) | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:162` | cancelProcessInstance - Path param processInstanceKey pattern violation | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:178` | cancelProcessInstancesBatchOperation - Additional prop __unexpectedField | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:201` | cancelProcessInstancesBatchOperation - Body wrong top-level type | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:218` | cancelProcessInstancesBatchOperation - Param operationReference wrong type (#1) | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:240` | cancelProcessInstancesBatchOperation - Param operationReference wrong type (#2) | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:262` | cancelProcessInstancesBatchOperation - Constraint violation filter.tags (#1) | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:284` | cancelProcessInstancesBatchOperation - Constraint violation filter.tags (#2) | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:306` | cancelProcessInstancesBatchOperation - Constraint violation operationReference (#1) | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:328` | cancelProcessInstancesBatchOperation - Constraint violation operationReference (#2) | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:350` | cancelProcessInstancesBatchOperation - Constraint violation operationReference (#3) | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:372` | cancelProcessInstancesBatchOperation - Missing filter.$or.0.variables.0.name | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:401` | cancelProcessInstancesBatchOperation - Missing filter.$or.0.variables.0.value | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:430` | cancelProcessInstancesBatchOperation - Missing filter.variables.0.name | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:455` | cancelProcessInstancesBatchOperation - Missing filter.variables.0.value | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:480` | cancelProcessInstancesBatchOperation - Missing filter | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:495` | cancelProcessInstancesBatchOperation - Missing body | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:507` | cancelProcessInstancesBatchOperation - uniqueItems violation filter.$or.0.tags | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:534` | cancelProcessInstancesBatchOperation - uniqueItems violation filter.tags | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:652` | deleteProcessInstance - Additional prop __unexpectedField | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:674` | deleteProcessInstance - Body wrong top-level type | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:691` | deleteProcessInstance - Param operationReference wrong type (#1) | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:712` | deleteProcessInstance - Param operationReference wrong type (#2) | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:733` | deleteProcessInstance - Constraint violation operationReference (#1) | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:754` | deleteProcessInstance - Constraint violation operationReference (#2) | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:775` | deleteProcessInstance - Constraint violation operationReference (#3) | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:796` | deleteProcessInstance - Path param processInstanceKey pattern violation | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:812` | deleteProcessInstancesBatchOperation - Additional prop __unexpectedField | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:835` | deleteProcessInstancesBatchOperation - Body wrong top-level type | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:852` | deleteProcessInstancesBatchOperation - Param operationReference wrong type (#1) | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:874` | deleteProcessInstancesBatchOperation - Param operationReference wrong type (#2) | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:896` | deleteProcessInstancesBatchOperation - Constraint violation filter.tags (#1) | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:918` | deleteProcessInstancesBatchOperation - Constraint violation filter.tags (#2) | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:940` | deleteProcessInstancesBatchOperation - Constraint violation operationReference (#1) | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:962` | deleteProcessInstancesBatchOperation - Constraint violation operationReference (#2) | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:984` | deleteProcessInstancesBatchOperation - Constraint violation operationReference (#3) | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1006` | deleteProcessInstancesBatchOperation - Missing filter.$or.0.variables.0.name | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1035` | deleteProcessInstancesBatchOperation - Missing filter.$or.0.variables.0.value | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1064` | deleteProcessInstancesBatchOperation - Missing filter.variables.0.name | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1089` | deleteProcessInstancesBatchOperation - Missing filter.variables.0.value | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1114` | deleteProcessInstancesBatchOperation - Missing filter | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1129` | deleteProcessInstancesBatchOperation - Missing body | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1141` | deleteProcessInstancesBatchOperation - uniqueItems violation filter.$or.0.tags | +| negative-delete | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:1168` | deleteProcessInstancesBatchOperation - uniqueItems violation filter.tags | +| negative-search | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3691` | searchProcessInstanceIncidents - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3712` | searchProcessInstanceIncidents - Body wrong top-level type | +| negative-search | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3731` | searchProcessInstanceIncidents - Missing sort.0.field | +| negative-search | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3750` | searchProcessInstanceIncidents - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3775` | searchProcessInstanceIncidents - Enum violation sort.0.order | +| negative-search | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3800` | searchProcessInstanceIncidents - Path param processInstanceKey pattern violation | +| negative-search | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3816` | searchProcessInstances - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3835` | searchProcessInstances - Body wrong top-level type | +| negative-search | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3850` | searchProcessInstances - Missing filter.$or.0.variables.0.name | +| negative-search | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3879` | searchProcessInstances - Missing filter.$or.0.variables.0.value | +| negative-search | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3908` | searchProcessInstances - Missing filter.variables.0.name | +| negative-search | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3933` | searchProcessInstances - Missing filter.variables.0.value | +| negative-search | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3958` | searchProcessInstances - Missing sort.0.field | +| negative-search | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3975` | searchProcessInstances - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:3996` | searchProcessInstances - Enum violation sort.0.order | +| negative-search | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:4017` | searchProcessInstances - uniqueItems violation filter.$or.0.tags | +| negative-search | bad-request | `request-validation/processinstances-validation-api-tests.spec.ts:4042` | searchProcessInstances - uniqueItems violation filter.tags | + +## E. Batch-Operation Lifecycle + +**Form**: Create batch (via batch-creating process-instance APIs, prerequisite) → Get batch → Search batch → Search items → Suspend → Cancel + +**Total tests**: 24 + +### `batch-operation` — 14 tests + +- **Prerequisite to create**: running-process-instance(s) +- **Files**: `cancelBatchOperation.feature.spec.ts`, `getBatchOperation.feature.spec.ts`, `request-validation/batchoperations-validation-api-tests.spec.ts`, `resumeBatchOperation.feature.spec.ts`, `searchBatchOperations.feature.spec.ts`, `searchBatchOperations.variant.spec.ts`, `suspendBatchOperation.feature.spec.ts` +- **Observation channel**: GET = 1, Search = 3 +- **Form-step counts**: observe-present-get=1, observe-present-search=3, mutate=2, delete=1, observe-absence=1, negative-search=6 +- **Variants**: happy-path=5, observe-absence=1, data-driven=2, bad-request=6, pagination-sort=2, filter=4 + +| form step | variants | file:line | test name | +|--|--|--|--| +| observe-present-get | happy-path, filter | `getBatchOperation.feature.spec.ts:12` | feature-1 - getBatchOperation - base (1) | +| observe-present-search | happy-path | `searchBatchOperations.feature.spec.ts:12` | feature-1 - searchBatchOperations - base (1) | +| observe-present-search | data-driven, pagination-sort | `searchBatchOperations.variant.spec.ts:12` | variant-1 - searchBatchOperations - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchBatchOperations.variant.spec.ts:66` | variant-2 - searchBatchOperations - path #1 | +| mutate | happy-path, filter | `resumeBatchOperation.feature.spec.ts:8` | feature-1 - resumeBatchOperation - base (1) | +| mutate | happy-path, filter | `suspendBatchOperation.feature.spec.ts:8` | feature-1 - suspendBatchOperation - base (1) | +| delete | happy-path, filter | `cancelBatchOperation.feature.spec.ts:8` | feature-1 - cancelBatchOperation - base (1) | +| observe-absence | observe-absence | `searchBatchOperations.feature.spec.ts:37` | feature-2 - searchBatchOperations - negative empty (2) | +| negative-search | bad-request | `request-validation/batchoperations-validation-api-tests.spec.ts:18` | searchBatchOperations - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/batchoperations-validation-api-tests.spec.ts:37` | searchBatchOperations - Body wrong top-level type | +| negative-search | bad-request | `request-validation/batchoperations-validation-api-tests.spec.ts:52` | searchBatchOperations - Missing sort.0.field | +| negative-search | bad-request | `request-validation/batchoperations-validation-api-tests.spec.ts:69` | searchBatchOperations - Enum violation filter.actorType | +| negative-search | bad-request | `request-validation/batchoperations-validation-api-tests.spec.ts:88` | searchBatchOperations - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/batchoperations-validation-api-tests.spec.ts:109` | searchBatchOperations - Enum violation sort.0.order | + +### `batch-operation-item` — 10 tests + +- **Prerequisite to create**: running-batch-operation +- **Files**: `request-validation/batchoperationitems-validation-api-tests.spec.ts`, `searchBatchOperationItems.feature.spec.ts`, `searchBatchOperationItems.variant.spec.ts` +- **Observation channel**: GET = 0, Search = 4 +- **Form-step counts**: observe-present-search=4, observe-absence=1, negative-search=5 +- **Variants**: happy-path=1, observe-absence=1, data-driven=3, bad-request=5, pagination-sort=2, filter=1 + +| form step | variants | file:line | test name | +|--|--|--|--| +| observe-present-search | happy-path | `searchBatchOperationItems.feature.spec.ts:12` | feature-1 - searchBatchOperationItems - base (1) | +| observe-present-search | data-driven, filter | `searchBatchOperationItems.variant.spec.ts:13` | variant-1 - searchBatchOperationItems - bpmn #1 | +| observe-present-search | data-driven, pagination-sort | `searchBatchOperationItems.variant.spec.ts:84` | variant-2 - searchBatchOperationItems - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchBatchOperationItems.variant.spec.ts:138` | variant-3 - searchBatchOperationItems - path #1 | +| observe-absence | observe-absence | `searchBatchOperationItems.feature.spec.ts:37` | feature-2 - searchBatchOperationItems - negative empty (2) | +| negative-search | bad-request | `request-validation/batchoperationitems-validation-api-tests.spec.ts:18` | searchBatchOperationItems - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/batchoperationitems-validation-api-tests.spec.ts:37` | searchBatchOperationItems - Body wrong top-level type | +| negative-search | bad-request | `request-validation/batchoperationitems-validation-api-tests.spec.ts:52` | searchBatchOperationItems - Missing sort.0.field | +| negative-search | bad-request | `request-validation/batchoperationitems-validation-api-tests.spec.ts:69` | searchBatchOperationItems - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/batchoperationitems-validation-api-tests.spec.ts:90` | searchBatchOperationItems - Enum violation sort.0.order | + +## F. User-Task Lifecycle + +**Form**: Deploy process w/ user task (prerequisite) → Create instance → Assign → Update → Search/Get → Get form → Search variables → Complete → Unassign + +**Total tests**: 65 + +### `user-task` — 65 tests + +- **Prerequisite to create**: running-process-instance-with-user-task +- **Files**: `assignUserTask.feature.spec.ts`, `completeUserTask.feature.spec.ts`, `getFormByKey.feature.spec.ts`, `getUserTask.feature.spec.ts`, `getUserTaskForm.feature.spec.ts`, `request-validation/forms-validation-api-tests.spec.ts`, `request-validation/usertasks-validation-api-tests.spec.ts`, `searchUserTaskAuditLogs.feature.spec.ts`, `searchUserTaskEffectiveVariables.feature.spec.ts`, `searchUserTaskVariables.feature.spec.ts`, `searchUserTasks.feature.spec.ts`, `searchUserTasks.variant.spec.ts`, `unassignUserTask.feature.spec.ts`, `updateUserTask.feature.spec.ts` +- **Observation channel**: GET = 3, Search = 13 +- **Form-step counts**: observe-present-get=3, observe-present-search=13, mutate=3, delete=1, observe-absence=1, negative-get=3, negative-update=10, negative-delete=1, negative-search=30 +- **Variants**: happy-path=11, observe-absence=1, data-driven=9, bad-request=44, pagination-sort=2, filter=7 + +| form step | variants | file:line | test name | +|--|--|--|--| +| observe-present-get | happy-path | `getFormByKey.feature.spec.ts:13` | feature-1 - getFormByKey - base (1) | +| observe-present-get | happy-path | `getUserTask.feature.spec.ts:12` | feature-1 - getUserTask - base (1) | +| observe-present-get | happy-path | `getUserTaskForm.feature.spec.ts:12` | feature-1 - getUserTaskForm - base (1) | +| observe-present-search | happy-path | `searchUserTaskAuditLogs.feature.spec.ts:12` | feature-1 - searchUserTaskAuditLogs - base (1) | +| observe-present-search | happy-path | `searchUserTaskEffectiveVariables.feature.spec.ts:12` | feature-1 - searchUserTaskEffectiveVariables - base (1) | +| observe-present-search | happy-path | `searchUserTaskVariables.feature.spec.ts:12` | feature-1 - searchUserTaskVariables - base (1) | +| observe-present-search | happy-path | `searchUserTasks.feature.spec.ts:12` | feature-1 - searchUserTasks - base (1) | +| observe-present-search | data-driven, filter | `searchUserTasks.variant.spec.ts:13` | variant-1 - searchUserTasks - bpmn #1 | +| observe-present-search | data-driven, filter | `searchUserTasks.variant.spec.ts:114` | variant-2 - searchUserTasks - bpmn #1 | +| observe-present-search | data-driven, filter | `searchUserTasks.variant.spec.ts:164` | variant-3 - searchUserTasks - path #1 | +| observe-present-search | data-driven, filter | `searchUserTasks.variant.spec.ts:232` | variant-4 - searchUserTasks - bpmn #1 | +| observe-present-search | data-driven, filter | `searchUserTasks.variant.spec.ts:282` | variant-5 - searchUserTasks - bpmn #1 | +| observe-present-search | data-driven, filter | `searchUserTasks.variant.spec.ts:353` | variant-6 - searchUserTasks - bpmn #1 | +| observe-present-search | data-driven, filter | `searchUserTasks.variant.spec.ts:454` | variant-7 - searchUserTasks - bpmn #1 | +| observe-present-search | data-driven, pagination-sort | `searchUserTasks.variant.spec.ts:552` | variant-8 - searchUserTasks - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchUserTasks.variant.spec.ts:604` | variant-9 - searchUserTasks - path #1 | +| mutate | happy-path | `assignUserTask.feature.spec.ts:8` | feature-1 - assignUserTask - base (1) | +| mutate | happy-path | `completeUserTask.feature.spec.ts:8` | feature-1 - completeUserTask - base (1) | +| mutate | happy-path | `updateUserTask.feature.spec.ts:8` | feature-1 - updateUserTask - base (1) | +| delete | happy-path | `unassignUserTask.feature.spec.ts:8` | feature-1 - unassignUserTask - base (1) | +| observe-absence | observe-absence | `searchUserTasks.feature.spec.ts:35` | feature-2 - searchUserTasks - negative empty (2) | +| negative-get | bad-request | `request-validation/forms-validation-api-tests.spec.ts:18` | getFormByKey - Path param formKey pattern violation | +| negative-get | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:136` | getUserTask - Path param userTaskKey pattern violation | +| negative-get | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:148` | getUserTaskForm - Path param userTaskKey pattern violation | +| negative-update | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:18` | assignUserTask - Additional prop __unexpectedField | +| negative-update | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:37` | assignUserTask - Body wrong top-level type | +| negative-update | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:54` | assignUserTask - Missing body | +| negative-update | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:68` | assignUserTask - Path param userTaskKey pattern violation | +| negative-update | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:84` | completeUserTask - Additional prop __unexpectedField | +| negative-update | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:103` | completeUserTask - Body wrong top-level type | +| negative-update | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:120` | completeUserTask - Path param userTaskKey pattern violation | +| negative-update | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:779` | updateUserTask - Additional prop __unexpectedField | +| negative-update | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:796` | updateUserTask - Body wrong top-level type | +| negative-update | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:811` | updateUserTask - Path param userTaskKey pattern violation | +| negative-delete | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:763` | unassignUserTask - Path param userTaskKey pattern violation | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:162` | searchUserTaskAuditLogs - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:183` | searchUserTaskAuditLogs - Body wrong top-level type | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:200` | searchUserTaskAuditLogs - Missing sort.0.field | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:219` | searchUserTaskAuditLogs - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:242` | searchUserTaskAuditLogs - Enum violation sort.0.order | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:265` | searchUserTaskAuditLogs - Path param userTaskKey pattern violation | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:281` | searchUserTaskEffectiveVariables - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:302` | searchUserTaskEffectiveVariables - Body wrong top-level type | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:321` | searchUserTaskEffectiveVariables - Missing sort.0.field | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:340` | searchUserTaskEffectiveVariables - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:365` | searchUserTaskEffectiveVariables - Enum violation sort.0.order | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:390` | searchUserTaskEffectiveVariables - Path param userTaskKey pattern violation | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:406` | searchUserTaskEffectiveVariables - Param query.truncateValues wrong type | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:422` | searchUserTasks - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:439` | searchUserTasks - Body wrong top-level type | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:454` | searchUserTasks - Missing filter.localVariables.0.name | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:477` | searchUserTasks - Missing filter.localVariables.0.value | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:500` | searchUserTasks - Missing filter.processInstanceVariables.0.name | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:525` | searchUserTasks - Missing filter.processInstanceVariables.0.value | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:550` | searchUserTasks - Missing sort.0.field | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:567` | searchUserTasks - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:588` | searchUserTasks - Enum violation sort.0.order | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:609` | searchUserTasks - uniqueItems violation filter.tags | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:628` | searchUserTaskVariables - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:649` | searchUserTaskVariables - Body wrong top-level type | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:666` | searchUserTaskVariables - Missing sort.0.field | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:685` | searchUserTaskVariables - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:708` | searchUserTaskVariables - Enum violation sort.0.order | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:731` | searchUserTaskVariables - Path param userTaskKey pattern violation | +| negative-search | bad-request | `request-validation/usertasks-validation-api-tests.spec.ts:747` | searchUserTaskVariables - Param query.truncateValues wrong type | + +## G. Job Lifecycle & Stats + +**Form**: Deploy process w/ job (prerequisite) → Activate → Complete / Fail / Error / Update → Search jobs → Aggregate (5 statistics endpoints) + +**Total tests**: 142 + +### `job` — 142 tests + +- **Prerequisite to create**: running-process-instance-with-job +- **Files**: `activateJobs.feature.spec.ts`, `activateJobs.variant.spec.ts`, `completeJob.feature.spec.ts`, `completeJob.variant.spec.ts`, `failJob.feature.spec.ts`, `getGlobalJobStatistics.feature.spec.ts`, `getJobErrorStatistics.feature.spec.ts`, `getJobErrorStatistics.variant.spec.ts`, `getJobTimeSeriesStatistics.feature.spec.ts`, `getJobTimeSeriesStatistics.variant.spec.ts`, `getJobTypeStatistics.feature.spec.ts`, `getJobTypeStatistics.variant.spec.ts`, `getJobWorkerStatistics.feature.spec.ts`, `getJobWorkerStatistics.variant.spec.ts`, `request-validation/jobs-validation-api-tests.spec.ts`, `searchJobs.feature.spec.ts`, `searchJobs.variant.spec.ts`, `throwJobError.feature.spec.ts`, `updateJob.feature.spec.ts` +- **Observation channel**: GET = 9, Search = 7 +- **Form-step counts**: create=3, observe-present-get=9, observe-present-search=7, mutate=6, observe-absence=2, negative-create=28, negative-get=58, negative-update=24, negative-search=5 +- **Variants**: happy-path=11, observe-absence=2, data-driven=14, bad-request=115, pagination-sort=6, filter=10 + +| form step | variants | file:line | test name | +|--|--|--|--| +| create | happy-path | `activateJobs.feature.spec.ts:12` | feature-1 - activateJobs - base (1) | +| create | data-driven | `activateJobs.variant.spec.ts:12` | variant-1 - activateJobs - path #1 | +| create | happy-path | `throwJobError.feature.spec.ts:9` | feature-1 - throwJobError - base (1) | +| observe-present-get | happy-path | `getGlobalJobStatistics.feature.spec.ts:12` | feature-1 - getGlobalJobStatistics - base (1) | +| observe-present-get | happy-path, filter | `getJobErrorStatistics.feature.spec.ts:11` | feature-1 - getJobErrorStatistics - base (1) | +| observe-present-get | data-driven, pagination-sort, filter | `getJobErrorStatistics.variant.spec.ts:12` | variant-1 - getJobErrorStatistics - path #1 | +| observe-present-get | happy-path, filter | `getJobTimeSeriesStatistics.feature.spec.ts:11` | feature-1 - getJobTimeSeriesStatistics - base (1) | +| observe-present-get | data-driven, pagination-sort, filter | `getJobTimeSeriesStatistics.variant.spec.ts:12` | variant-1 - getJobTimeSeriesStatistics - path #1 | +| observe-present-get | happy-path | `getJobTypeStatistics.feature.spec.ts:11` | feature-1 - getJobTypeStatistics - base (1) | +| observe-present-get | data-driven, pagination-sort | `getJobTypeStatistics.variant.spec.ts:12` | variant-1 - getJobTypeStatistics - path #1 | +| observe-present-get | happy-path, filter | `getJobWorkerStatistics.feature.spec.ts:11` | feature-1 - getJobWorkerStatistics - base (1) | +| observe-present-get | data-driven, pagination-sort, filter | `getJobWorkerStatistics.variant.spec.ts:12` | variant-1 - getJobWorkerStatistics - path #1 | +| observe-present-search | happy-path | `searchJobs.feature.spec.ts:13` | feature-1 - searchJobs - base (1) | +| observe-present-search | data-driven, filter | `searchJobs.variant.spec.ts:13` | variant-1 - searchJobs - bpmn #1 | +| observe-present-search | data-driven, filter | `searchJobs.variant.spec.ts:116` | variant-2 - searchJobs - bpmn #1 | +| observe-present-search | data-driven, filter | `searchJobs.variant.spec.ts:219` | variant-3 - searchJobs - path #1 | +| observe-present-search | data-driven, filter | `searchJobs.variant.spec.ts:293` | variant-4 - searchJobs - bpmn #1 | +| observe-present-search | data-driven, pagination-sort | `searchJobs.variant.spec.ts:366` | variant-5 - searchJobs - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchJobs.variant.spec.ts:462` | variant-6 - searchJobs - path #1 | +| mutate | happy-path | `completeJob.feature.spec.ts:9` | feature-1 - completeJob - base (1) | +| mutate | data-driven | `completeJob.feature.spec.ts:93` | feature-2 - completeJob - oneOf result variant1 (2) | +| mutate | data-driven | `completeJob.feature.spec.ts:178` | feature-3 - completeJob - oneOf result variant2 (3) | +| mutate | data-driven | `completeJob.variant.spec.ts:9` | variant-1 - completeJob - bpmn #1 | +| mutate | happy-path | `failJob.feature.spec.ts:9` | feature-1 - failJob - base (1) | +| mutate | happy-path | `updateJob.feature.spec.ts:9` | feature-1 - updateJob - base (1) | +| observe-absence | observe-absence | `activateJobs.feature.spec.ts:78` | feature-2 - activateJobs - negative empty (2) | +| observe-absence | observe-absence | `searchJobs.feature.spec.ts:80` | feature-2 - searchJobs - negative empty (2) | +| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:18` | activateJobs - Additional prop __unexpectedField | +| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:40` | activateJobs - Body wrong top-level type | +| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:55` | activateJobs - Param maxJobsToActivate wrong type (#1) | +| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:76` | activateJobs - Param maxJobsToActivate wrong type (#2) | +| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:97` | activateJobs - Param requestTimeout wrong type (#1) | +| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:118` | activateJobs - Param requestTimeout wrong type (#2) | +| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:139` | activateJobs - Param tenantFilter wrong type (#1) | +| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:160` | activateJobs - Param tenantFilter wrong type (#2) | +| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:181` | activateJobs - Param timeout wrong type (#1) | +| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:202` | activateJobs - Param timeout wrong type (#2) | +| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:223` | activateJobs - Param type wrong type (#1) | +| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:244` | activateJobs - Param type wrong type (#2) | +| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:265` | activateJobs - Enum violation tenantFilter | +| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:286` | activateJobs - Missing maxJobsToActivate | +| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:304` | activateJobs - Missing timeout | +| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:322` | activateJobs - Missing type | +| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:340` | activateJobs - Missing body | +| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:352` | activateJobs - Missing combo maxJobsToActivate,timeout | +| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:369` | activateJobs - Missing combo type,maxJobsToActivate | +| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:386` | activateJobs - Missing combo type,maxJobsToActivate,timeout | +| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:403` | activateJobs - Missing combo type,timeout | +| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1810` | throwJobError - Additional prop __unexpectedField | +| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1828` | throwJobError - Body wrong top-level type | +| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1843` | throwJobError - Param errorCode wrong type (#1) | +| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1860` | throwJobError - Param errorCode wrong type (#2) | +| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1877` | throwJobError - Missing errorCode | +| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1892` | throwJobError - Missing body | +| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1904` | throwJobError - Path param jobKey pattern violation | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:582` | getGlobalJobStatistics - Missing param query.from | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:597` | getGlobalJobStatistics - Missing param query.to | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:612` | getGlobalJobStatistics - Param query.from wrong type | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:628` | getGlobalJobStatistics - Param query.to wrong type | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:644` | getJobErrorStatistics - Additional prop __extraField | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:666` | getJobErrorStatistics - Body wrong top-level type | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:681` | getJobErrorStatistics - Param filter.from wrong type (#1) | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:704` | getJobErrorStatistics - Param filter.from wrong type (#2) | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:727` | getJobErrorStatistics - Param filter.jobType wrong type (#1) | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:750` | getJobErrorStatistics - Param filter.jobType wrong type (#2) | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:773` | getJobErrorStatistics - Param filter.to wrong type (#1) | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:794` | getJobErrorStatistics - Param filter.to wrong type (#2) | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:815` | getJobErrorStatistics - Missing filter.from | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:835` | getJobErrorStatistics - Missing filter.jobType | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:855` | getJobErrorStatistics - Missing filter.to | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:875` | getJobErrorStatistics - Missing page.after | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:897` | getJobErrorStatistics - format invalid filter.from | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:918` | getJobErrorStatistics - format invalid filter.to | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:939` | getJobErrorStatistics - Missing filter | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:954` | getJobErrorStatistics - Missing body | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:966` | getJobTimeSeriesStatistics - Additional prop __extraField | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:990` | getJobTimeSeriesStatistics - Body wrong top-level type | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1005` | getJobTimeSeriesStatistics - Param filter.from wrong type (#1) | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1028` | getJobTimeSeriesStatistics - Param filter.from wrong type (#2) | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1051` | getJobTimeSeriesStatistics - Param filter.jobType wrong type (#1) | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1074` | getJobTimeSeriesStatistics - Param filter.jobType wrong type (#2) | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1097` | getJobTimeSeriesStatistics - Param filter.to wrong type (#1) | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1120` | getJobTimeSeriesStatistics - Param filter.to wrong type (#2) | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1143` | getJobTimeSeriesStatistics - Missing filter.from | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1163` | getJobTimeSeriesStatistics - Missing filter.jobType | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1183` | getJobTimeSeriesStatistics - Missing filter.to | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1203` | getJobTimeSeriesStatistics - Missing page.after | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1225` | getJobTimeSeriesStatistics - format invalid filter.from | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1246` | getJobTimeSeriesStatistics - format invalid filter.to | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1267` | getJobTimeSeriesStatistics - Missing filter | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1282` | getJobTimeSeriesStatistics - Missing body | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1294` | getJobTypeStatistics - Additional prop __extraField | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1311` | getJobTypeStatistics - Body wrong top-level type | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1326` | getJobTypeStatistics - Missing filter.from | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1345` | getJobTypeStatistics - Missing filter.to | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1364` | getJobTypeStatistics - Missing page.after | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1381` | getJobTypeStatistics - Missing body | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1393` | getJobWorkerStatistics - Additional prop __extraField | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1415` | getJobWorkerStatistics - Body wrong top-level type | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1430` | getJobWorkerStatistics - Param filter.from wrong type (#1) | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1453` | getJobWorkerStatistics - Param filter.from wrong type (#2) | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1476` | getJobWorkerStatistics - Param filter.jobType wrong type (#1) | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1499` | getJobWorkerStatistics - Param filter.jobType wrong type (#2) | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1522` | getJobWorkerStatistics - Param filter.to wrong type (#1) | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1545` | getJobWorkerStatistics - Param filter.to wrong type (#2) | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1568` | getJobWorkerStatistics - Missing filter.from | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1588` | getJobWorkerStatistics - Missing filter.jobType | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1608` | getJobWorkerStatistics - Missing filter.to | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1628` | getJobWorkerStatistics - Missing page.after | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1650` | getJobWorkerStatistics - format invalid filter.from | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1671` | getJobWorkerStatistics - format invalid filter.to | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1692` | getJobWorkerStatistics - Missing filter | +| negative-get | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1707` | getJobWorkerStatistics - Missing body | +| negative-update | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:420` | completeJob - Additional prop __unexpectedField | +| negative-update | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:437` | completeJob - Body wrong top-level type | +| negative-update | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:452` | completeJob - Path param jobKey pattern violation | +| negative-update | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:464` | failJob - Additional prop __unexpectedField | +| negative-update | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:483` | failJob - Body wrong top-level type | +| negative-update | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:498` | failJob - Param retries wrong type (#1) | +| negative-update | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:516` | failJob - Param retries wrong type (#2) | +| negative-update | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:534` | failJob - Param retryBackOff wrong type (#1) | +| negative-update | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:552` | failJob - Param retryBackOff wrong type (#2) | +| negative-update | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:570` | failJob - Path param jobKey pattern violation | +| negative-update | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1916` | updateJob - Additional prop __unexpectedField | +| negative-update | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1938` | updateJob - Body wrong top-level type | +| negative-update | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1953` | updateJob - Param changeset.retries wrong type (#1) | +| negative-update | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1974` | updateJob - Param changeset.retries wrong type (#2) | +| negative-update | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1995` | updateJob - Param changeset.timeout wrong type (#1) | +| negative-update | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:2016` | updateJob - Param changeset.timeout wrong type (#2) | +| negative-update | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:2037` | updateJob - Param operationReference wrong type (#1) | +| negative-update | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:2058` | updateJob - Param operationReference wrong type (#2) | +| negative-update | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:2079` | updateJob - Constraint violation operationReference (#1) | +| negative-update | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:2102` | updateJob - Constraint violation operationReference (#2) | +| negative-update | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:2125` | updateJob - Constraint violation operationReference (#3) | +| negative-update | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:2148` | updateJob - Missing changeset | +| negative-update | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:2163` | updateJob - Missing body | +| negative-update | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:2175` | updateJob - Path param jobKey pattern violation | +| negative-search | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1719` | searchJobs - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1736` | searchJobs - Body wrong top-level type | +| negative-search | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1751` | searchJobs - Missing sort.0.field | +| negative-search | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1768` | searchJobs - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:1789` | searchJobs - Enum violation sort.0.order | + +## H. Incident Lifecycle + +**Form**: Deploy process + failing job (prerequisite) → Incident raised → Get incident → Search → Resolve → Statistics (by definition / by error) + +**Total tests**: 41 + +### `incident` — 41 tests + +- **Prerequisite to create**: running-process-instance-with-failing-job +- **Files**: `getIncident.feature.spec.ts`, `getProcessInstanceStatisticsByDefinition.feature.spec.ts`, `getProcessInstanceStatisticsByError.feature.spec.ts`, `request-validation/incidents-validation-api-tests.spec.ts`, `resolveIncident.feature.spec.ts`, `searchIncidents.feature.spec.ts`, `searchIncidents.variant.spec.ts` +- **Observation channel**: GET = 3, Search = 7 +- **Form-step counts**: observe-present-get=3, observe-present-search=7, mutate=1, observe-absence=1, negative-get=16, negative-update=8, negative-search=5 +- **Variants**: happy-path=5, observe-absence=1, data-driven=6, bad-request=29, pagination-sort=2, filter=5 + +| form step | variants | file:line | test name | +|--|--|--|--| +| observe-present-get | happy-path | `getIncident.feature.spec.ts:12` | feature-1 - getIncident - base (1) | +| observe-present-get | happy-path, filter | `getProcessInstanceStatisticsByDefinition.feature.spec.ts:11` | feature-1 - getProcessInstanceStatisticsByDefinition - base (1) | +| observe-present-get | happy-path | `getProcessInstanceStatisticsByError.feature.spec.ts:11` | feature-1 - getProcessInstanceStatisticsByError - base (1) | +| observe-present-search | happy-path | `searchIncidents.feature.spec.ts:12` | feature-1 - searchIncidents - base (1) | +| observe-present-search | data-driven, filter | `searchIncidents.variant.spec.ts:13` | variant-1 - searchIncidents - bpmn #1 | +| observe-present-search | data-driven, filter | `searchIncidents.variant.spec.ts:63` | variant-2 - searchIncidents - bpmn #1 | +| observe-present-search | data-driven, filter | `searchIncidents.variant.spec.ts:134` | variant-3 - searchIncidents - bpmn #1 | +| observe-present-search | data-driven, filter | `searchIncidents.variant.spec.ts:236` | variant-4 - searchIncidents - bpmn #1 | +| observe-present-search | data-driven, pagination-sort | `searchIncidents.variant.spec.ts:338` | variant-5 - searchIncidents - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchIncidents.variant.spec.ts:390` | variant-6 - searchIncidents - path #1 | +| mutate | happy-path | `resolveIncident.feature.spec.ts:8` | feature-1 - resolveIncident - base (1) | +| observe-absence | observe-absence | `searchIncidents.feature.spec.ts:35` | feature-2 - searchIncidents - negative empty (2) | +| negative-get | bad-request | `request-validation/incidents-validation-api-tests.spec.ts:18` | getIncident - Path param incidentKey pattern violation | +| negative-get | bad-request | `request-validation/incidents-validation-api-tests.spec.ts:30` | getProcessInstanceStatisticsByDefinition - Additional prop __extraField | +| negative-get | bad-request | `request-validation/incidents-validation-api-tests.spec.ts:52` | getProcessInstanceStatisticsByDefinition - Body wrong top-level type | +| negative-get | bad-request | `request-validation/incidents-validation-api-tests.spec.ts:69` | getProcessInstanceStatisticsByDefinition - Param filter.errorHashCode wrong type (#1) | +| negative-get | bad-request | `request-validation/incidents-validation-api-tests.spec.ts:90` | getProcessInstanceStatisticsByDefinition - Param filter.errorHashCode wrong type (#2) | +| negative-get | bad-request | `request-validation/incidents-validation-api-tests.spec.ts:111` | getProcessInstanceStatisticsByDefinition - Missing filter.errorHashCode | +| negative-get | bad-request | `request-validation/incidents-validation-api-tests.spec.ts:130` | getProcessInstanceStatisticsByDefinition - Missing sort.0.field | +| negative-get | bad-request | `request-validation/incidents-validation-api-tests.spec.ts:152` | getProcessInstanceStatisticsByDefinition - Enum violation sort.0.field | +| negative-get | bad-request | `request-validation/incidents-validation-api-tests.spec.ts:178` | getProcessInstanceStatisticsByDefinition - Enum violation sort.0.order | +| negative-get | bad-request | `request-validation/incidents-validation-api-tests.spec.ts:204` | getProcessInstanceStatisticsByDefinition - Missing filter | +| negative-get | bad-request | `request-validation/incidents-validation-api-tests.spec.ts:221` | getProcessInstanceStatisticsByDefinition - Missing body | +| negative-get | bad-request | `request-validation/incidents-validation-api-tests.spec.ts:233` | getProcessInstanceStatisticsByError - Additional prop __unexpectedField | +| negative-get | bad-request | `request-validation/incidents-validation-api-tests.spec.ts:252` | getProcessInstanceStatisticsByError - Body wrong top-level type | +| negative-get | bad-request | `request-validation/incidents-validation-api-tests.spec.ts:269` | getProcessInstanceStatisticsByError - Missing sort.0.field | +| negative-get | bad-request | `request-validation/incidents-validation-api-tests.spec.ts:288` | getProcessInstanceStatisticsByError - Enum violation sort.0.field | +| negative-get | bad-request | `request-validation/incidents-validation-api-tests.spec.ts:311` | getProcessInstanceStatisticsByError - Enum violation sort.0.order | +| negative-update | bad-request | `request-validation/incidents-validation-api-tests.spec.ts:334` | resolveIncident - Additional prop __unexpectedField | +| negative-update | bad-request | `request-validation/incidents-validation-api-tests.spec.ts:354` | resolveIncident - Body wrong top-level type | +| negative-update | bad-request | `request-validation/incidents-validation-api-tests.spec.ts:371` | resolveIncident - Param operationReference wrong type (#1) | +| negative-update | bad-request | `request-validation/incidents-validation-api-tests.spec.ts:392` | resolveIncident - Param operationReference wrong type (#2) | +| negative-update | bad-request | `request-validation/incidents-validation-api-tests.spec.ts:413` | resolveIncident - Constraint violation operationReference (#1) | +| negative-update | bad-request | `request-validation/incidents-validation-api-tests.spec.ts:434` | resolveIncident - Constraint violation operationReference (#2) | +| negative-update | bad-request | `request-validation/incidents-validation-api-tests.spec.ts:455` | resolveIncident - Constraint violation operationReference (#3) | +| negative-update | bad-request | `request-validation/incidents-validation-api-tests.spec.ts:476` | resolveIncident - Path param incidentKey pattern violation | +| negative-search | bad-request | `request-validation/incidents-validation-api-tests.spec.ts:492` | searchIncidents - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/incidents-validation-api-tests.spec.ts:509` | searchIncidents - Body wrong top-level type | +| negative-search | bad-request | `request-validation/incidents-validation-api-tests.spec.ts:524` | searchIncidents - Missing sort.0.field | +| negative-search | bad-request | `request-validation/incidents-validation-api-tests.spec.ts:541` | searchIncidents - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/incidents-validation-api-tests.spec.ts:562` | searchIncidents - Enum violation sort.0.order | + +## I. Decision-Instance Lifecycle + +**Form**: Deploy DRD/DMN (prerequisite) → Evaluate → Get instance → Search → Delete (single + batch) → Search (Observe Absence) + +**Total tests**: 72 + +### `decision-instance` — 72 tests + +- **Prerequisite to create**: deployed-decision +- **Files**: `deleteDecisionInstance.feature.spec.ts`, `deleteDecisionInstancesBatchOperation.feature.spec.ts`, `deleteDecisionInstancesBatchOperation.variant.spec.ts`, `getDecisionInstance.feature.spec.ts`, `request-validation/decisioninstances-validation-api-tests.spec.ts`, `searchDecisionInstances.feature.spec.ts`, `searchDecisionInstances.variant.spec.ts` +- **Observation channel**: GET = 1, Search = 13 +- **Form-step counts**: observe-present-get=1, observe-present-search=13, delete=12, observe-absence=1, negative-get=1, negative-delete=38, negative-search=6 +- **Variants**: happy-path=4, observe-absence=1, data-driven=22, bad-request=45, pagination-sort=2, filter=21 + +| form step | variants | file:line | test name | +|--|--|--|--| +| observe-present-get | happy-path | `getDecisionInstance.feature.spec.ts:13` | feature-1 - getDecisionInstance - base (1) | +| observe-present-search | happy-path | `searchDecisionInstances.feature.spec.ts:12` | feature-1 - searchDecisionInstances - base (1) | +| observe-present-search | data-driven, filter | `searchDecisionInstances.variant.spec.ts:13` | variant-1 - searchDecisionInstances - dmn #1 | +| observe-present-search | data-driven, filter | `searchDecisionInstances.variant.spec.ts:92` | variant-2 - searchDecisionInstances - dmn #1 | +| observe-present-search | data-driven, filter | `searchDecisionInstances.variant.spec.ts:143` | variant-3 - searchDecisionInstances - path #1 | +| observe-present-search | data-driven, filter | `searchDecisionInstances.variant.spec.ts:195` | variant-4 - searchDecisionInstances - dmn #1 | +| observe-present-search | data-driven, filter | `searchDecisionInstances.variant.spec.ts:274` | variant-5 - searchDecisionInstances - bpmn #1 | +| observe-present-search | data-driven, filter | `searchDecisionInstances.variant.spec.ts:326` | variant-6 - searchDecisionInstances - bpmn #1 | +| observe-present-search | data-driven, filter | `searchDecisionInstances.variant.spec.ts:399` | variant-7 - searchDecisionInstances - dmn #1 | +| observe-present-search | data-driven, filter | `searchDecisionInstances.variant.spec.ts:450` | variant-8 - searchDecisionInstances - bpmn #1 | +| observe-present-search | data-driven, filter | `searchDecisionInstances.variant.spec.ts:552` | variant-9 - searchDecisionInstances - dmn #1 | +| observe-present-search | data-driven, filter | `searchDecisionInstances.variant.spec.ts:603` | variant-10 - searchDecisionInstances - drd #1 | +| observe-present-search | data-driven, pagination-sort | `searchDecisionInstances.variant.spec.ts:654` | variant-11 - searchDecisionInstances - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchDecisionInstances.variant.spec.ts:708` | variant-12 - searchDecisionInstances - path #1 | +| delete | happy-path | `deleteDecisionInstance.feature.spec.ts:9` | feature-1 - deleteDecisionInstance - base (1) | +| delete | happy-path, filter | `deleteDecisionInstancesBatchOperation.feature.spec.ts:11` | feature-1 - deleteDecisionInstancesBatchOperation - base (1) | +| delete | data-driven, filter | `deleteDecisionInstancesBatchOperation.variant.spec.ts:12` | variant-1 - deleteDecisionInstancesBatchOperation - dmn #1 | +| delete | data-driven, filter | `deleteDecisionInstancesBatchOperation.variant.spec.ts:90` | variant-2 - deleteDecisionInstancesBatchOperation - dmn #1 | +| delete | data-driven, filter | `deleteDecisionInstancesBatchOperation.variant.spec.ts:140` | variant-3 - deleteDecisionInstancesBatchOperation - path #1 | +| delete | data-driven, filter | `deleteDecisionInstancesBatchOperation.variant.spec.ts:191` | variant-4 - deleteDecisionInstancesBatchOperation - dmn #1 | +| delete | data-driven, filter | `deleteDecisionInstancesBatchOperation.variant.spec.ts:269` | variant-5 - deleteDecisionInstancesBatchOperation - bpmn #1 | +| delete | data-driven, filter | `deleteDecisionInstancesBatchOperation.variant.spec.ts:321` | variant-6 - deleteDecisionInstancesBatchOperation - bpmn #1 | +| delete | data-driven, filter | `deleteDecisionInstancesBatchOperation.variant.spec.ts:393` | variant-7 - deleteDecisionInstancesBatchOperation - dmn #1 | +| delete | data-driven, filter | `deleteDecisionInstancesBatchOperation.variant.spec.ts:443` | variant-8 - deleteDecisionInstancesBatchOperation - bpmn #1 | +| delete | data-driven, filter | `deleteDecisionInstancesBatchOperation.variant.spec.ts:544` | variant-9 - deleteDecisionInstancesBatchOperation - dmn #1 | +| delete | data-driven, filter | `deleteDecisionInstancesBatchOperation.variant.spec.ts:594` | variant-10 - deleteDecisionInstancesBatchOperation - drd #1 | +| observe-absence | observe-absence | `searchDecisionInstances.feature.spec.ts:37` | feature-2 - searchDecisionInstances - negative empty (2) | +| negative-get | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:979` | getDecisionInstance - Path param decisionEvaluationInstanceKey pattern violation | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:18` | deleteDecisionInstance - Additional prop __unexpectedField | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:40` | deleteDecisionInstance - Body wrong top-level type | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:57` | deleteDecisionInstance - Param operationReference wrong type (#1) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:78` | deleteDecisionInstance - Param operationReference wrong type (#2) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:99` | deleteDecisionInstance - Constraint violation operationReference (#1) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:120` | deleteDecisionInstance - Constraint violation operationReference (#2) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:141` | deleteDecisionInstance - Constraint violation operationReference (#3) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:162` | deleteDecisionInstance - Path param decisionEvaluationKey pattern violation | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:178` | deleteDecisionInstancesBatchOperation - Additional prop __unexpectedField | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:207` | deleteDecisionInstancesBatchOperation - Body wrong top-level type | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:224` | deleteDecisionInstancesBatchOperation - Param filter.decisionDefinitionId wrong type (#1) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:252` | deleteDecisionInstancesBatchOperation - Param filter.decisionDefinitionId wrong type (#2) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:280` | deleteDecisionInstancesBatchOperation - Param filter.decisionDefinitionType wrong type (#1) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:308` | deleteDecisionInstancesBatchOperation - Param filter.decisionDefinitionType wrong type (#2) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:336` | deleteDecisionInstancesBatchOperation - Param filter.decisionDefinitionVersion wrong type (#1) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:364` | deleteDecisionInstancesBatchOperation - Param filter.decisionDefinitionVersion wrong type (#2) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:392` | deleteDecisionInstancesBatchOperation - Param filter.decisionEvaluationKey wrong type (#1) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:420` | deleteDecisionInstancesBatchOperation - Param filter.decisionEvaluationKey wrong type (#2) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:448` | deleteDecisionInstancesBatchOperation - Param filter.processDefinitionKey wrong type (#1) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:476` | deleteDecisionInstancesBatchOperation - Param filter.processDefinitionKey wrong type (#2) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:504` | deleteDecisionInstancesBatchOperation - Param filter.processInstanceKey wrong type (#1) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:532` | deleteDecisionInstancesBatchOperation - Param filter.processInstanceKey wrong type (#2) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:560` | deleteDecisionInstancesBatchOperation - Param filter.tenantId wrong type (#1) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:588` | deleteDecisionInstancesBatchOperation - Param filter.tenantId wrong type (#2) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:616` | deleteDecisionInstancesBatchOperation - Param operationReference wrong type (#1) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:644` | deleteDecisionInstancesBatchOperation - Param operationReference wrong type (#2) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:672` | deleteDecisionInstancesBatchOperation - Constraint violation filter.decisionDefinitionId (#1) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:700` | deleteDecisionInstancesBatchOperation - Constraint violation filter.decisionDefinitionId (#2) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:728` | deleteDecisionInstancesBatchOperation - Constraint violation filter.tenantId (#1) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:756` | deleteDecisionInstancesBatchOperation - Constraint violation filter.tenantId (#2) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:784` | deleteDecisionInstancesBatchOperation - Constraint violation filter.tenantId (#3) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:812` | deleteDecisionInstancesBatchOperation - Constraint violation filter.tenantId (#4) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:840` | deleteDecisionInstancesBatchOperation - Constraint violation operationReference (#1) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:868` | deleteDecisionInstancesBatchOperation - Constraint violation operationReference (#2) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:896` | deleteDecisionInstancesBatchOperation - Constraint violation operationReference (#3) | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:924` | deleteDecisionInstancesBatchOperation - Enum violation filter.decisionDefinitionType | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:952` | deleteDecisionInstancesBatchOperation - Missing filter | +| negative-delete | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:967` | deleteDecisionInstancesBatchOperation - Missing body | +| negative-search | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:995` | searchDecisionInstances - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:1014` | searchDecisionInstances - Body wrong top-level type | +| negative-search | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:1029` | searchDecisionInstances - Missing sort.0.field | +| negative-search | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:1046` | searchDecisionInstances - Enum violation filter.decisionDefinitionType | +| negative-search | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:1067` | searchDecisionInstances - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/decisioninstances-validation-api-tests.spec.ts:1088` | searchDecisionInstances - Enum violation sort.0.order | + +## J/K/L. Observation-only + +**Form**: Perform an action elsewhere (prerequisite) → Get / Search to observe + +**Total tests**: 95 + +### `element-instance` — 55 tests + +- **Prerequisite to create**: running-process-instance +- **Files**: `activateAdHocSubProcessActivities.feature.spec.ts`, `activateAdHocSubProcessActivities.variant.spec.ts`, `createElementInstanceVariables.feature.spec.ts`, `getElementInstance.feature.spec.ts`, `request-validation/elementinstances-validation-api-tests.spec.ts`, `searchElementInstanceIncidents.feature.spec.ts`, `searchElementInstanceIncidents.variant.spec.ts`, `searchElementInstances.feature.spec.ts`, `searchElementInstances.variant.spec.ts` +- **Observation channel**: GET = 1, Search = 20 +- **Form-step counts**: create=3, observe-present-get=1, observe-present-search=20, observe-absence=1, negative-create=16, negative-get=1, negative-search=13 +- **Variants**: happy-path=5, observe-absence=1, data-driven=19, bad-request=30, pagination-sort=4, filter=12 + +| form step | variants | file:line | test name | +|--|--|--|--| +| create | happy-path | `activateAdHocSubProcessActivities.feature.spec.ts:9` | feature-1 - activateAdHocSubProcessActivities - base (1) | +| create | data-driven | `activateAdHocSubProcessActivities.variant.spec.ts:9` | variant-1 - activateAdHocSubProcessActivities - bpmn #1 | +| create | happy-path | `createElementInstanceVariables.feature.spec.ts:9` | feature-1 - createElementInstanceVariables - base (1) | +| observe-present-get | happy-path | `getElementInstance.feature.spec.ts:13` | feature-1 - getElementInstance - base (1) | +| observe-present-search | happy-path | `searchElementInstanceIncidents.feature.spec.ts:13` | feature-1 - searchElementInstanceIncidents - base (1) | +| observe-present-search | data-driven, filter | `searchElementInstanceIncidents.variant.spec.ts:13` | variant-1 - searchElementInstanceIncidents - bpmn #1 | +| observe-present-search | data-driven, filter | `searchElementInstanceIncidents.variant.spec.ts:122` | variant-2 - searchElementInstanceIncidents - bpmn #1 | +| observe-present-search | data-driven, filter | `searchElementInstanceIncidents.variant.spec.ts:231` | variant-3 - searchElementInstanceIncidents - bpmn #1 | +| observe-present-search | data-driven, filter | `searchElementInstanceIncidents.variant.spec.ts:340` | variant-4 - searchElementInstanceIncidents - bpmn #1 | +| observe-present-search | data-driven, pagination-sort | `searchElementInstanceIncidents.variant.spec.ts:449` | variant-5 - searchElementInstanceIncidents - bpmn #1 | +| observe-present-search | data-driven, pagination-sort | `searchElementInstanceIncidents.variant.spec.ts:584` | variant-6 - searchElementInstanceIncidents - bpmn #1 | +| observe-present-search | happy-path | `searchElementInstances.feature.spec.ts:12` | feature-1 - searchElementInstances - base (1) | +| observe-present-search | data-driven | `searchElementInstances.feature.spec.ts:63` | feature-3 - searchElementInstances - oneOf filter.elementInstanceScopeKey variant1 (3) | +| observe-present-search | data-driven | `searchElementInstances.feature.spec.ts:91` | feature-4 - searchElementInstances - oneOf filter.elementInstanceScopeKey variant2 (4) | +| observe-present-search | data-driven, filter | `searchElementInstances.variant.spec.ts:13` | variant-1 - searchElementInstances - bpmn #1 | +| observe-present-search | data-driven, filter | `searchElementInstances.variant.spec.ts:63` | variant-2 - searchElementInstances - bpmn #1 | +| observe-present-search | data-driven, filter | `searchElementInstances.variant.spec.ts:162` | variant-3 - searchElementInstances - path #1 | +| observe-present-search | data-driven, filter | `searchElementInstances.variant.spec.ts:213` | variant-4 - searchElementInstances - bpmn #1 | +| observe-present-search | data-driven, filter | `searchElementInstances.variant.spec.ts:312` | variant-5 - searchElementInstances - bpmn #1 | +| observe-present-search | data-driven, filter | `searchElementInstances.variant.spec.ts:382` | variant-6 - searchElementInstances - bpmn #1 | +| observe-present-search | data-driven, filter | `searchElementInstances.variant.spec.ts:432` | variant-7 - searchElementInstances - bpmn #1 | +| observe-present-search | data-driven, filter | `searchElementInstances.variant.spec.ts:594` | variant-8 - searchElementInstances - bpmn #1 | +| observe-present-search | data-driven, pagination-sort | `searchElementInstances.variant.spec.ts:693` | variant-9 - searchElementInstances - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchElementInstances.variant.spec.ts:747` | variant-10 - searchElementInstances - path #1 | +| observe-absence | observe-absence | `searchElementInstances.feature.spec.ts:37` | feature-2 - searchElementInstances - negative empty (2) | +| negative-create | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:18` | activateAdHocSubProcessActivities - Additional prop __extraField | +| negative-create | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:45` | activateAdHocSubProcessActivities - Body wrong top-level type | +| negative-create | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:65` | activateAdHocSubProcessActivities - Missing elements.0.elementId | +| negative-create | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:87` | activateAdHocSubProcessActivities - Missing elements | +| negative-create | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:105` | activateAdHocSubProcessActivities - Missing body | +| negative-create | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:120` | activateAdHocSubProcessActivities - Path param adHocSubProcessInstanceKey pattern violation | +| negative-create | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:137` | createElementInstanceVariables - Additional prop __unexpectedField | +| negative-create | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:160` | createElementInstanceVariables - Body wrong top-level type | +| negative-create | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:179` | createElementInstanceVariables - Param operationReference wrong type (#1) | +| negative-create | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:201` | createElementInstanceVariables - Param operationReference wrong type (#2) | +| negative-create | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:223` | createElementInstanceVariables - Constraint violation operationReference (#1) | +| negative-create | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:245` | createElementInstanceVariables - Constraint violation operationReference (#2) | +| negative-create | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:267` | createElementInstanceVariables - Constraint violation operationReference (#3) | +| negative-create | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:289` | createElementInstanceVariables - Missing variables | +| negative-create | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:306` | createElementInstanceVariables - Missing body | +| negative-create | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:320` | createElementInstanceVariables - Path param elementInstanceKey pattern violation | +| negative-get | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:336` | getElementInstance - Path param elementInstanceKey pattern violation | +| negative-search | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:352` | searchElementInstanceIncidents - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:373` | searchElementInstanceIncidents - Body wrong top-level type | +| negative-search | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:392` | searchElementInstanceIncidents - Missing sort.0.field | +| negative-search | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:411` | searchElementInstanceIncidents - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:436` | searchElementInstanceIncidents - Enum violation sort.0.order | +| negative-search | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:461` | searchElementInstanceIncidents - Missing body | +| negative-search | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:475` | searchElementInstanceIncidents - Path param elementInstanceKey pattern violation | +| negative-search | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:491` | searchElementInstances - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:510` | searchElementInstances - Body wrong top-level type | +| negative-search | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:525` | searchElementInstances - Missing sort.0.field | +| negative-search | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:542` | searchElementInstances - Enum violation filter.type | +| negative-search | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:561` | searchElementInstances - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/elementinstances-validation-api-tests.spec.ts:582` | searchElementInstances - Enum violation sort.0.order | + +### `audit-log` — 24 tests + +- **Prerequisite to create**: any-prior-action +- **Files**: `getAuditLog.feature.spec.ts`, `request-validation/auditlogs-validation-api-tests.spec.ts`, `searchAuditLogs.feature.spec.ts`, `searchAuditLogs.variant.spec.ts` +- **Observation channel**: GET = 1, Search = 16 +- **Form-step counts**: observe-present-get=1, observe-present-search=16, observe-absence=1, negative-get=1, negative-search=5 +- **Variants**: happy-path=2, observe-absence=1, data-driven=11, unlabeled=4, bad-request=6, pagination-sort=2, filter=13 + +| form step | variants | file:line | test name | +|--|--|--|--| +| observe-present-get | happy-path | `getAuditLog.feature.spec.ts:12` | feature-1 - getAuditLog - base (1) | +| observe-present-search | happy-path | `searchAuditLogs.feature.spec.ts:12` | feature-1 - searchAuditLogs - base (1) | +| observe-present-search | unlabeled, filter | `searchAuditLogs.variant.spec.ts:13` | variant-1 - scenario | +| observe-present-search | data-driven, filter | `searchAuditLogs.variant.spec.ts:42` | variant-2 - searchAuditLogs - bpmn #1 | +| observe-present-search | data-driven, filter | `searchAuditLogs.variant.spec.ts:92` | variant-3 - searchAuditLogs - bpmn #1 | +| observe-present-search | data-driven, filter | `searchAuditLogs.variant.spec.ts:163` | variant-4 - searchAuditLogs - bpmn #1 | +| observe-present-search | unlabeled, filter | `searchAuditLogs.variant.spec.ts:265` | variant-5 - scenario | +| observe-present-search | unlabeled, filter | `searchAuditLogs.variant.spec.ts:293` | variant-6 - scenario | +| observe-present-search | data-driven, filter | `searchAuditLogs.variant.spec.ts:322` | variant-7 - searchAuditLogs - form #1 | +| observe-present-search | data-driven, filter | `searchAuditLogs.variant.spec.ts:371` | variant-8 - searchAuditLogs - bpmn #1 | +| observe-present-search | data-driven, filter | `searchAuditLogs.variant.spec.ts:421` | variant-9 - searchAuditLogs - bpmn #1 | +| observe-present-search | data-driven, filter | `searchAuditLogs.variant.spec.ts:523` | variant-10 - searchAuditLogs - drd #1 | +| observe-present-search | data-driven, filter | `searchAuditLogs.variant.spec.ts:572` | variant-11 - searchAuditLogs - dmn #1 | +| observe-present-search | data-driven, filter | `searchAuditLogs.variant.spec.ts:621` | variant-12 - searchAuditLogs - dmn #1 | +| observe-present-search | unlabeled, filter | `searchAuditLogs.variant.spec.ts:697` | variant-13 - scenario | +| observe-present-search | data-driven, pagination-sort | `searchAuditLogs.variant.spec.ts:725` | variant-14 - searchAuditLogs - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchAuditLogs.variant.spec.ts:777` | variant-15 - searchAuditLogs - path #1 | +| observe-absence | observe-absence | `searchAuditLogs.feature.spec.ts:35` | feature-2 - searchAuditLogs - negative empty (2) | +| negative-get | bad-request | `request-validation/auditlogs-validation-api-tests.spec.ts:18` | getAuditLog - Path param auditLogKey pattern violation | +| negative-search | bad-request | `request-validation/auditlogs-validation-api-tests.spec.ts:30` | searchAuditLogs - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/auditlogs-validation-api-tests.spec.ts:47` | searchAuditLogs - Body wrong top-level type | +| negative-search | bad-request | `request-validation/auditlogs-validation-api-tests.spec.ts:62` | searchAuditLogs - Missing sort.0.field | +| negative-search | bad-request | `request-validation/auditlogs-validation-api-tests.spec.ts:79` | searchAuditLogs - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/auditlogs-validation-api-tests.spec.ts:100` | searchAuditLogs - Enum violation sort.0.order | + +### `variable` — 16 tests + +- **Prerequisite to create**: running-process-instance +- **Files**: `getVariable.feature.spec.ts`, `request-validation/variables-validation-api-tests.spec.ts`, `searchVariables.feature.spec.ts`, `searchVariables.variant.spec.ts` +- **Observation channel**: GET = 1, Search = 7 +- **Form-step counts**: observe-present-get=1, observe-present-search=7, observe-absence=1, negative-get=1, negative-search=6 +- **Variants**: happy-path=2, observe-absence=1, data-driven=4, unlabeled=2, bad-request=7, pagination-sort=2, filter=4 + +| form step | variants | file:line | test name | +|--|--|--|--| +| observe-present-get | happy-path | `getVariable.feature.spec.ts:12` | feature-1 - getVariable - base (1) | +| observe-present-search | happy-path | `searchVariables.feature.spec.ts:12` | feature-1 - searchVariables - base (1) | +| observe-present-search | data-driven, filter | `searchVariables.variant.spec.ts:13` | variant-1 - searchVariables - path #1 | +| observe-present-search | unlabeled, filter | `searchVariables.variant.spec.ts:64` | variant-2 - scenario | +| observe-present-search | unlabeled, filter | `searchVariables.variant.spec.ts:93` | variant-3 - scenario | +| observe-present-search | data-driven, filter | `searchVariables.variant.spec.ts:122` | variant-4 - searchVariables - bpmn #1 | +| observe-present-search | data-driven, pagination-sort | `searchVariables.variant.spec.ts:191` | variant-5 - searchVariables - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchVariables.variant.spec.ts:243` | variant-6 - searchVariables - path #1 | +| observe-absence | observe-absence | `searchVariables.feature.spec.ts:35` | feature-2 - searchVariables - negative empty (2) | +| negative-get | bad-request | `request-validation/variables-validation-api-tests.spec.ts:18` | getVariable - Path param variableKey pattern violation | +| negative-search | bad-request | `request-validation/variables-validation-api-tests.spec.ts:30` | searchVariables - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/variables-validation-api-tests.spec.ts:47` | searchVariables - Body wrong top-level type | +| negative-search | bad-request | `request-validation/variables-validation-api-tests.spec.ts:62` | searchVariables - Missing sort.0.field | +| negative-search | bad-request | `request-validation/variables-validation-api-tests.spec.ts:79` | searchVariables - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/variables-validation-api-tests.spec.ts:100` | searchVariables - Enum violation sort.0.order | +| negative-search | bad-request | `request-validation/variables-validation-api-tests.spec.ts:121` | searchVariables - Param query.truncateValues wrong type | + +## M. Messaging/Signals + +**Form**: Deploy process with catch event (prerequisite) → Publish/Correlate/Broadcast → Search subscriptions / correlated messages + +**Total tests**: 70 + +### `message` — 30 tests + +- **Prerequisite to create**: deployed-process-with-message-catch-event +- **Files**: `correlateMessage.feature.spec.ts`, `correlateMessage.variant.spec.ts`, `publishMessage.feature.spec.ts`, `publishMessage.variant.spec.ts`, `request-validation/messages-validation-api-tests.spec.ts` +- **Observation channel**: GET = 0, Search = 0 +- **Form-step counts**: create=4, negative-create=26 +- **Variants**: happy-path=2, data-driven=2, bad-request=26 + +| form step | variants | file:line | test name | +|--|--|--|--| +| create | happy-path | `correlateMessage.feature.spec.ts:11` | feature-1 - correlateMessage - base (1) | +| create | data-driven | `correlateMessage.variant.spec.ts:11` | variant-1 - correlateMessage - path #1 | +| create | happy-path | `publishMessage.feature.spec.ts:11` | feature-1 - publishMessage - base (1) | +| create | data-driven | `publishMessage.variant.spec.ts:11` | variant-1 - publishMessage - path #1 | +| negative-create | bad-request | `request-validation/messages-validation-api-tests.spec.ts:18` | correlateMessage - Additional prop __unexpectedField | +| negative-create | bad-request | `request-validation/messages-validation-api-tests.spec.ts:37` | correlateMessage - Body wrong top-level type | +| negative-create | bad-request | `request-validation/messages-validation-api-tests.spec.ts:52` | correlateMessage - Param name wrong type (#1) | +| negative-create | bad-request | `request-validation/messages-validation-api-tests.spec.ts:70` | correlateMessage - Param name wrong type (#2) | +| negative-create | bad-request | `request-validation/messages-validation-api-tests.spec.ts:88` | correlateMessage - Param tenantId wrong type (#1) | +| negative-create | bad-request | `request-validation/messages-validation-api-tests.spec.ts:106` | correlateMessage - Param tenantId wrong type (#2) | +| negative-create | bad-request | `request-validation/messages-validation-api-tests.spec.ts:124` | correlateMessage - Constraint violation tenantId (#1) | +| negative-create | bad-request | `request-validation/messages-validation-api-tests.spec.ts:142` | correlateMessage - Constraint violation tenantId (#2) | +| negative-create | bad-request | `request-validation/messages-validation-api-tests.spec.ts:160` | correlateMessage - Constraint violation tenantId (#3) | +| negative-create | bad-request | `request-validation/messages-validation-api-tests.spec.ts:178` | correlateMessage - Constraint violation tenantId (#4) | +| negative-create | bad-request | `request-validation/messages-validation-api-tests.spec.ts:196` | correlateMessage - Missing name | +| negative-create | bad-request | `request-validation/messages-validation-api-tests.spec.ts:211` | correlateMessage - Missing body | +| negative-create | bad-request | `request-validation/messages-validation-api-tests.spec.ts:223` | publishMessage - Additional prop __unexpectedField | +| negative-create | bad-request | `request-validation/messages-validation-api-tests.spec.ts:243` | publishMessage - Body wrong top-level type | +| negative-create | bad-request | `request-validation/messages-validation-api-tests.spec.ts:258` | publishMessage - Param name wrong type (#1) | +| negative-create | bad-request | `request-validation/messages-validation-api-tests.spec.ts:277` | publishMessage - Param name wrong type (#2) | +| negative-create | bad-request | `request-validation/messages-validation-api-tests.spec.ts:296` | publishMessage - Param tenantId wrong type (#1) | +| negative-create | bad-request | `request-validation/messages-validation-api-tests.spec.ts:315` | publishMessage - Param tenantId wrong type (#2) | +| negative-create | bad-request | `request-validation/messages-validation-api-tests.spec.ts:334` | publishMessage - Param timeToLive wrong type (#1) | +| negative-create | bad-request | `request-validation/messages-validation-api-tests.spec.ts:353` | publishMessage - Param timeToLive wrong type (#2) | +| negative-create | bad-request | `request-validation/messages-validation-api-tests.spec.ts:372` | publishMessage - Constraint violation tenantId (#1) | +| negative-create | bad-request | `request-validation/messages-validation-api-tests.spec.ts:391` | publishMessage - Constraint violation tenantId (#2) | +| negative-create | bad-request | `request-validation/messages-validation-api-tests.spec.ts:410` | publishMessage - Constraint violation tenantId (#3) | +| negative-create | bad-request | `request-validation/messages-validation-api-tests.spec.ts:429` | publishMessage - Constraint violation tenantId (#4) | +| negative-create | bad-request | `request-validation/messages-validation-api-tests.spec.ts:448` | publishMessage - Missing name | +| negative-create | bad-request | `request-validation/messages-validation-api-tests.spec.ts:463` | publishMessage - Missing body | + +### `signal` — 14 tests + +- **Prerequisite to create**: deployed-process-with-signal-catch-event +- **Files**: `broadcastSignal.feature.spec.ts`, `broadcastSignal.variant.spec.ts`, `request-validation/signals-validation-api-tests.spec.ts` +- **Observation channel**: GET = 0, Search = 0 +- **Form-step counts**: create=2, negative-create=12 +- **Variants**: happy-path=1, data-driven=1, bad-request=12 + +| form step | variants | file:line | test name | +|--|--|--|--| +| create | happy-path | `broadcastSignal.feature.spec.ts:11` | feature-1 - broadcastSignal - base (1) | +| create | data-driven | `broadcastSignal.variant.spec.ts:11` | variant-1 - broadcastSignal - path #1 | +| negative-create | bad-request | `request-validation/signals-validation-api-tests.spec.ts:18` | broadcastSignal - Additional prop __unexpectedField | +| negative-create | bad-request | `request-validation/signals-validation-api-tests.spec.ts:37` | broadcastSignal - Body wrong top-level type | +| negative-create | bad-request | `request-validation/signals-validation-api-tests.spec.ts:52` | broadcastSignal - Param signalName wrong type (#1) | +| negative-create | bad-request | `request-validation/signals-validation-api-tests.spec.ts:70` | broadcastSignal - Param signalName wrong type (#2) | +| negative-create | bad-request | `request-validation/signals-validation-api-tests.spec.ts:88` | broadcastSignal - Param tenantId wrong type (#1) | +| negative-create | bad-request | `request-validation/signals-validation-api-tests.spec.ts:106` | broadcastSignal - Param tenantId wrong type (#2) | +| negative-create | bad-request | `request-validation/signals-validation-api-tests.spec.ts:124` | broadcastSignal - Constraint violation tenantId (#1) | +| negative-create | bad-request | `request-validation/signals-validation-api-tests.spec.ts:142` | broadcastSignal - Constraint violation tenantId (#2) | +| negative-create | bad-request | `request-validation/signals-validation-api-tests.spec.ts:160` | broadcastSignal - Constraint violation tenantId (#3) | +| negative-create | bad-request | `request-validation/signals-validation-api-tests.spec.ts:178` | broadcastSignal - Constraint violation tenantId (#4) | +| negative-create | bad-request | `request-validation/signals-validation-api-tests.spec.ts:196` | broadcastSignal - Missing signalName | +| negative-create | bad-request | `request-validation/signals-validation-api-tests.spec.ts:211` | broadcastSignal - Missing body | + +### `correlated-message-subscription` — 13 tests + +- **Prerequisite to create**: deployed-process-with-message-catch-event + correlated-message +- **Files**: `request-validation/correlatedmessagesubscriptions-validation-api-tests.spec.ts`, `searchCorrelatedMessageSubscriptions.feature.spec.ts`, `searchCorrelatedMessageSubscriptions.variant.spec.ts` +- **Observation channel**: GET = 0, Search = 7 +- **Form-step counts**: observe-present-search=7, observe-absence=1, negative-search=5 +- **Variants**: happy-path=1, observe-absence=1, data-driven=6, bad-request=5, pagination-sort=2, filter=4 + +| form step | variants | file:line | test name | +|--|--|--|--| +| observe-present-search | happy-path | `searchCorrelatedMessageSubscriptions.feature.spec.ts:12` | feature-1 - searchCorrelatedMessageSubscriptions - base (1) | +| observe-present-search | data-driven, filter | `searchCorrelatedMessageSubscriptions.variant.spec.ts:13` | variant-1 - searchCorrelatedMessageSubscriptions - bpmn #1 | +| observe-present-search | data-driven, filter | `searchCorrelatedMessageSubscriptions.variant.spec.ts:117` | variant-2 - searchCorrelatedMessageSubscriptions - bpmn #1 | +| observe-present-search | data-driven, filter | `searchCorrelatedMessageSubscriptions.variant.spec.ts:170` | variant-3 - searchCorrelatedMessageSubscriptions - bpmn #1 | +| observe-present-search | data-driven, filter | `searchCorrelatedMessageSubscriptions.variant.spec.ts:244` | variant-4 - searchCorrelatedMessageSubscriptions - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchCorrelatedMessageSubscriptions.variant.spec.ts:305` | variant-5 - searchCorrelatedMessageSubscriptions - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchCorrelatedMessageSubscriptions.variant.spec.ts:360` | variant-6 - searchCorrelatedMessageSubscriptions - path #1 | +| observe-absence | observe-absence | `searchCorrelatedMessageSubscriptions.feature.spec.ts:38` | feature-2 - searchCorrelatedMessageSubscriptions - negative empty (2) | +| negative-search | bad-request | `request-validation/correlatedmessagesubscriptions-validation-api-tests.spec.ts:18` | searchCorrelatedMessageSubscriptions - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/correlatedmessagesubscriptions-validation-api-tests.spec.ts:37` | searchCorrelatedMessageSubscriptions - Body wrong top-level type | +| negative-search | bad-request | `request-validation/correlatedmessagesubscriptions-validation-api-tests.spec.ts:54` | searchCorrelatedMessageSubscriptions - Missing sort.0.field | +| negative-search | bad-request | `request-validation/correlatedmessagesubscriptions-validation-api-tests.spec.ts:73` | searchCorrelatedMessageSubscriptions - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/correlatedmessagesubscriptions-validation-api-tests.spec.ts:96` | searchCorrelatedMessageSubscriptions - Enum violation sort.0.order | + +### `message-subscriptions` — 13 tests + +- **Prerequisite to create**: deployed-process-with-message-catch-event +- **Files**: `request-validation/messagesubscriptions-validation-api-tests.spec.ts`, `searchMessageSubscriptions.feature.spec.ts`, `searchMessageSubscriptions.variant.spec.ts` +- **Observation channel**: GET = 0, Search = 7 +- **Form-step counts**: observe-present-search=7, observe-absence=1, negative-search=5 +- **Variants**: happy-path=1, observe-absence=1, data-driven=6, bad-request=5, pagination-sort=2, filter=4 + +| form step | variants | file:line | test name | +|--|--|--|--| +| observe-present-search | happy-path | `searchMessageSubscriptions.feature.spec.ts:12` | feature-1 - searchMessageSubscriptions - base (1) | +| observe-present-search | data-driven, filter | `searchMessageSubscriptions.variant.spec.ts:13` | variant-1 - searchMessageSubscriptions - path #1 | +| observe-present-search | data-driven, filter | `searchMessageSubscriptions.variant.spec.ts:69` | variant-2 - searchMessageSubscriptions - bpmn #1 | +| observe-present-search | data-driven, filter | `searchMessageSubscriptions.variant.spec.ts:121` | variant-3 - searchMessageSubscriptions - bpmn #1 | +| observe-present-search | data-driven, filter | `searchMessageSubscriptions.variant.spec.ts:195` | variant-4 - searchMessageSubscriptions - bpmn #1 | +| observe-present-search | data-driven, pagination-sort | `searchMessageSubscriptions.variant.spec.ts:298` | variant-5 - searchMessageSubscriptions - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchMessageSubscriptions.variant.spec.ts:352` | variant-6 - searchMessageSubscriptions - path #1 | +| observe-absence | observe-absence | `searchMessageSubscriptions.feature.spec.ts:37` | feature-2 - searchMessageSubscriptions - negative empty (2) | +| negative-search | bad-request | `request-validation/messagesubscriptions-validation-api-tests.spec.ts:18` | searchMessageSubscriptions - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/messagesubscriptions-validation-api-tests.spec.ts:37` | searchMessageSubscriptions - Body wrong top-level type | +| negative-search | bad-request | `request-validation/messagesubscriptions-validation-api-tests.spec.ts:52` | searchMessageSubscriptions - Missing sort.0.field | +| negative-search | bad-request | `request-validation/messagesubscriptions-validation-api-tests.spec.ts:69` | searchMessageSubscriptions - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/messagesubscriptions-validation-api-tests.spec.ts:92` | searchMessageSubscriptions - Enum violation sort.0.order | + +## N. Engine Evaluation + +**Form**: Submit expression / conditional → Receive result (stateless, no entity persisted) + +**Total tests**: 25 + +### `conditional` — 15 tests + +- **Prerequisite to create**: none +- **Files**: `evaluateConditionals.feature.spec.ts`, `evaluateConditionals.variant.spec.ts`, `request-validation/conditionals-validation-api-tests.spec.ts` +- **Observation channel**: GET = 0, Search = 0 +- **Form-step counts**: create=3, negative-create=12 +- **Variants**: happy-path=1, data-driven=2, bad-request=12 + +| form step | variants | file:line | test name | +|--|--|--|--| +| create | happy-path | `evaluateConditionals.feature.spec.ts:11` | feature-1 - evaluateConditionals - base (1) | +| create | data-driven | `evaluateConditionals.variant.spec.ts:12` | variant-1 - evaluateConditionals - path #1 | +| create | data-driven | `evaluateConditionals.variant.spec.ts:62` | variant-2 - evaluateConditionals - bpmn #1 | +| negative-create | bad-request | `request-validation/conditionals-validation-api-tests.spec.ts:18` | evaluateConditionals - Additional prop __extraField | +| negative-create | bad-request | `request-validation/conditionals-validation-api-tests.spec.ts:38` | evaluateConditionals - Body wrong top-level type | +| negative-create | bad-request | `request-validation/conditionals-validation-api-tests.spec.ts:53` | evaluateConditionals - Param processDefinitionKey wrong type (#1) | +| negative-create | bad-request | `request-validation/conditionals-validation-api-tests.spec.ts:74` | evaluateConditionals - Param processDefinitionKey wrong type (#2) | +| negative-create | bad-request | `request-validation/conditionals-validation-api-tests.spec.ts:95` | evaluateConditionals - Param tenantId wrong type (#1) | +| negative-create | bad-request | `request-validation/conditionals-validation-api-tests.spec.ts:114` | evaluateConditionals - Param tenantId wrong type (#2) | +| negative-create | bad-request | `request-validation/conditionals-validation-api-tests.spec.ts:133` | evaluateConditionals - Constraint violation tenantId (#1) | +| negative-create | bad-request | `request-validation/conditionals-validation-api-tests.spec.ts:154` | evaluateConditionals - Constraint violation tenantId (#2) | +| negative-create | bad-request | `request-validation/conditionals-validation-api-tests.spec.ts:175` | evaluateConditionals - Constraint violation tenantId (#3) | +| negative-create | bad-request | `request-validation/conditionals-validation-api-tests.spec.ts:196` | evaluateConditionals - Constraint violation tenantId (#4) | +| negative-create | bad-request | `request-validation/conditionals-validation-api-tests.spec.ts:217` | evaluateConditionals - Missing variables | +| negative-create | bad-request | `request-validation/conditionals-validation-api-tests.spec.ts:232` | evaluateConditionals - Missing body | + +### `expression` — 10 tests + +- **Prerequisite to create**: none +- **Files**: `evaluateExpression.feature.spec.ts`, `evaluateExpression.variant.spec.ts`, `request-validation/expression-validation-api-tests.spec.ts` +- **Observation channel**: GET = 0, Search = 0 +- **Form-step counts**: create=2, negative-create=8 +- **Variants**: happy-path=1, unlabeled=1, bad-request=8 + +| form step | variants | file:line | test name | +|--|--|--|--| +| create | happy-path | `evaluateExpression.feature.spec.ts:11` | feature-1 - evaluateExpression - base (1) | +| create | unlabeled | `evaluateExpression.variant.spec.ts:11` | variant-1 - scenario | +| negative-create | bad-request | `request-validation/expression-validation-api-tests.spec.ts:18` | evaluateExpression - Additional prop __extraField | +| negative-create | bad-request | `request-validation/expression-validation-api-tests.spec.ts:37` | evaluateExpression - Body wrong top-level type | +| negative-create | bad-request | `request-validation/expression-validation-api-tests.spec.ts:52` | evaluateExpression - Param expression wrong type (#1) | +| negative-create | bad-request | `request-validation/expression-validation-api-tests.spec.ts:70` | evaluateExpression - Param expression wrong type (#2) | +| negative-create | bad-request | `request-validation/expression-validation-api-tests.spec.ts:88` | evaluateExpression - Param scopeKey wrong type (#1) | +| negative-create | bad-request | `request-validation/expression-validation-api-tests.spec.ts:106` | evaluateExpression - Param scopeKey wrong type (#2) | +| negative-create | bad-request | `request-validation/expression-validation-api-tests.spec.ts:124` | evaluateExpression - Missing expression | +| negative-create | bad-request | `request-validation/expression-validation-api-tests.spec.ts:139` | evaluateExpression - Missing body | + +## O. System/Admin + +**Form**: Read system state (auth, license, cluster, clock, metrics) or perform admin action (pin/reset clock) + +**Total tests**: 36 + +### `setup` — 15 tests + +- **Prerequisite to create**: none +- **Files**: `createAdminUser.feature.spec.ts`, `request-validation/setup-validation-api-tests.spec.ts` +- **Observation channel**: GET = 0, Search = 0 +- **Form-step counts**: create=1, negative-create=14 +- **Variants**: happy-path=1, bad-request=14 + +| form step | variants | file:line | test name | +|--|--|--|--| +| create | happy-path | `createAdminUser.feature.spec.ts:11` | feature-1 - createAdminUser - base (1) | +| negative-create | bad-request | `request-validation/setup-validation-api-tests.spec.ts:18` | createAdminUser - Additional prop __unexpectedField | +| negative-create | bad-request | `request-validation/setup-validation-api-tests.spec.ts:37` | createAdminUser - Body wrong top-level type | +| negative-create | bad-request | `request-validation/setup-validation-api-tests.spec.ts:52` | createAdminUser - Param password wrong type (#1) | +| negative-create | bad-request | `request-validation/setup-validation-api-tests.spec.ts:70` | createAdminUser - Param password wrong type (#2) | +| negative-create | bad-request | `request-validation/setup-validation-api-tests.spec.ts:88` | createAdminUser - Param username wrong type (#1) | +| negative-create | bad-request | `request-validation/setup-validation-api-tests.spec.ts:106` | createAdminUser - Param username wrong type (#2) | +| negative-create | bad-request | `request-validation/setup-validation-api-tests.spec.ts:124` | createAdminUser - Constraint violation username (#1) | +| negative-create | bad-request | `request-validation/setup-validation-api-tests.spec.ts:143` | createAdminUser - Constraint violation username (#2) | +| negative-create | bad-request | `request-validation/setup-validation-api-tests.spec.ts:161` | createAdminUser - Constraint violation username (#3) | +| negative-create | bad-request | `request-validation/setup-validation-api-tests.spec.ts:179` | createAdminUser - Constraint violation username (#4) | +| negative-create | bad-request | `request-validation/setup-validation-api-tests.spec.ts:198` | createAdminUser - Missing password | +| negative-create | bad-request | `request-validation/setup-validation-api-tests.spec.ts:215` | createAdminUser - Missing username | +| negative-create | bad-request | `request-validation/setup-validation-api-tests.spec.ts:232` | createAdminUser - Missing body | +| negative-create | bad-request | `request-validation/setup-validation-api-tests.spec.ts:244` | createAdminUser - Missing combo username,password | + +### `system` — 9 tests + +- **Prerequisite to create**: none +- **Files**: `getSystemConfiguration.feature.spec.ts`, `getUsageMetrics.feature.spec.ts`, `request-validation/system-validation-api-tests.spec.ts` +- **Observation channel**: GET = 2, Search = 0 +- **Form-step counts**: observe-present-get=2, negative-get=7 +- **Variants**: happy-path=2, bad-request=7 + +| form step | variants | file:line | test name | +|--|--|--|--| +| observe-present-get | happy-path | `getSystemConfiguration.feature.spec.ts:11` | feature-1 - getSystemConfiguration - base (1) | +| observe-present-get | happy-path | `getUsageMetrics.feature.spec.ts:12` | feature-1 - getUsageMetrics - base (1) | +| negative-get | bad-request | `request-validation/system-validation-api-tests.spec.ts:18` | getUsageMetrics - Query param tenantId pattern violation | +| negative-get | bad-request | `request-validation/system-validation-api-tests.spec.ts:32` | getUsageMetrics - Missing param query.endTime | +| negative-get | bad-request | `request-validation/system-validation-api-tests.spec.ts:48` | getUsageMetrics - Missing param query.startTime | +| negative-get | bad-request | `request-validation/system-validation-api-tests.spec.ts:64` | getUsageMetrics - Param query.endTime wrong type | +| negative-get | bad-request | `request-validation/system-validation-api-tests.spec.ts:81` | getUsageMetrics - Param query.startTime wrong type | +| negative-get | bad-request | `request-validation/system-validation-api-tests.spec.ts:98` | getUsageMetrics - Param query.tenantId wrong type | +| negative-get | bad-request | `request-validation/system-validation-api-tests.spec.ts:115` | getUsageMetrics - Param query.withTenants wrong type | + +### `clock` — 8 tests + +- **Prerequisite to create**: none +- **Files**: `pinClock.feature.spec.ts`, `request-validation/clock-validation-api-tests.spec.ts`, `resetClock.feature.spec.ts` +- **Observation channel**: GET = 0, Search = 0 +- **Form-step counts**: create=1, mutate=1, negative-create=6 +- **Variants**: happy-path=2, bad-request=6 + +| form step | variants | file:line | test name | +|--|--|--|--| +| create | happy-path | `pinClock.feature.spec.ts:8` | feature-1 - pinClock - base (1) | +| mutate | happy-path | `resetClock.feature.spec.ts:8` | feature-1 - resetClock - base (1) | +| negative-create | bad-request | `request-validation/clock-validation-api-tests.spec.ts:18` | pinClock - Additional prop __unexpectedField | +| negative-create | bad-request | `request-validation/clock-validation-api-tests.spec.ts:36` | pinClock - Body wrong top-level type | +| negative-create | bad-request | `request-validation/clock-validation-api-tests.spec.ts:51` | pinClock - Param timestamp wrong type (#1) | +| negative-create | bad-request | `request-validation/clock-validation-api-tests.spec.ts:68` | pinClock - Param timestamp wrong type (#2) | +| negative-create | bad-request | `request-validation/clock-validation-api-tests.spec.ts:85` | pinClock - Missing timestamp | +| negative-create | bad-request | `request-validation/clock-validation-api-tests.spec.ts:100` | pinClock - Missing body | + +### `authentication` — 1 tests + +- **Prerequisite to create**: authenticated-user +- **Files**: `getAuthentication.feature.spec.ts` +- **Observation channel**: GET = 1, Search = 0 +- **Form-step counts**: observe-present-get=1 +- **Variants**: happy-path=1 + +| form step | variants | file:line | test name | +|--|--|--|--| +| observe-present-get | happy-path | `getAuthentication.feature.spec.ts:11` | feature-1 - getAuthentication - base (1) | + +### `license` — 1 tests + +- **Prerequisite to create**: none +- **Files**: `getLicense.feature.spec.ts` +- **Observation channel**: GET = 1, Search = 0 +- **Form-step counts**: observe-present-get=1 +- **Variants**: happy-path=1 + +| form step | variants | file:line | test name | +|--|--|--|--| +| observe-present-get | happy-path | `getLicense.feature.spec.ts:11` | feature-1 - getLicense - base (1) | + +### `status` — 1 tests + +- **Prerequisite to create**: none +- **Files**: `getStatus.feature.spec.ts` +- **Observation channel**: GET = 1, Search = 0 +- **Form-step counts**: observe-present-get=1 +- **Variants**: happy-path=1 + +| form step | variants | file:line | test name | +|--|--|--|--| +| observe-present-get | happy-path | `getStatus.feature.spec.ts:8` | feature-1 - getStatus - base (1) | + +### `topology` — 1 tests + +- **Prerequisite to create**: none +- **Files**: `getTopology.feature.spec.ts` +- **Observation channel**: GET = 1, Search = 0 +- **Form-step counts**: observe-present-get=1 +- **Variants**: happy-path=1 + +| form step | variants | file:line | test name | +|--|--|--|--| +| observe-present-get | happy-path | `getTopology.feature.spec.ts:11` | feature-1 - getTopology - base (1) | + +## P. Agent-Instance (new in v2) + +**Form**: New v2 endpoint family — get / search agent instances (lifecycle TBD) + +**Total tests**: 49 + +### `agent-instance` — 49 tests + +- **Prerequisite to create**: unknown +- **Files**: `createAgentInstance.feature.spec.ts`, `getAgentInstance.feature.spec.ts`, `request-validation/agentinstances-validation-api-tests.spec.ts`, `searchAgentInstances.feature.spec.ts`, `searchAgentInstances.variant.spec.ts`, `updateAgentInstance.feature.spec.ts` +- **Observation channel**: GET = 1, Search = 8 +- **Form-step counts**: create=1, observe-present-get=1, observe-present-search=8, mutate=1, observe-absence=1, negative-create=21, negative-get=1, negative-update=10, negative-search=5 +- **Variants**: happy-path=4, observe-absence=1, data-driven=7, bad-request=37, pagination-sort=2, filter=5 + +| form step | variants | file:line | test name | +|--|--|--|--| +| create | happy-path | `createAgentInstance.feature.spec.ts:12` | feature-1 - createAgentInstance - base (1) | +| observe-present-get | happy-path | `getAgentInstance.feature.spec.ts:13` | feature-1 - getAgentInstance - base (1) | +| observe-present-search | happy-path | `searchAgentInstances.feature.spec.ts:12` | feature-1 - searchAgentInstances - base (1) | +| observe-present-search | data-driven, filter | `searchAgentInstances.variant.spec.ts:13` | variant-1 - searchAgentInstances - bpmn #1 | +| observe-present-search | data-driven, filter | `searchAgentInstances.variant.spec.ts:155` | variant-2 - searchAgentInstances - bpmn #1 | +| observe-present-search | data-driven, filter | `searchAgentInstances.variant.spec.ts:256` | variant-3 - searchAgentInstances - bpmn #1 | +| observe-present-search | data-driven, filter | `searchAgentInstances.variant.spec.ts:329` | variant-4 - searchAgentInstances - bpmn #1 | +| observe-present-search | data-driven, filter | `searchAgentInstances.variant.spec.ts:381` | variant-5 - searchAgentInstances - bpmn #1 | +| observe-present-search | data-driven, pagination-sort | `searchAgentInstances.variant.spec.ts:482` | variant-6 - searchAgentInstances - path #1 | +| observe-present-search | data-driven, pagination-sort | `searchAgentInstances.variant.spec.ts:546` | variant-7 - searchAgentInstances - path #1 | +| mutate | happy-path | `updateAgentInstance.feature.spec.ts:9` | feature-1 - updateAgentInstance - base (1) | +| observe-absence | observe-absence | `searchAgentInstances.feature.spec.ts:37` | feature-2 - searchAgentInstances - negative empty (2) | +| negative-create | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:18` | createAgentInstance - Additional prop __extraField | +| negative-create | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:41` | createAgentInstance - Body wrong top-level type | +| negative-create | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:56` | createAgentInstance - Param definition.model wrong type (#1) | +| negative-create | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:80` | createAgentInstance - Param definition.model wrong type (#2) | +| negative-create | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:104` | createAgentInstance - Param definition.provider wrong type (#1) | +| negative-create | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:128` | createAgentInstance - Param definition.provider wrong type (#2) | +| negative-create | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:152` | createAgentInstance - Param definition.systemPrompt wrong type (#1) | +| negative-create | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:176` | createAgentInstance - Param definition.systemPrompt wrong type (#2) | +| negative-create | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:200` | createAgentInstance - Param elementInstanceKey wrong type (#1) | +| negative-create | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:224` | createAgentInstance - Param elementInstanceKey wrong type (#2) | +| negative-create | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:248` | createAgentInstance - Missing definition.model | +| negative-create | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:269` | createAgentInstance - Missing definition.provider | +| negative-create | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:290` | createAgentInstance - Missing definition.systemPrompt | +| negative-create | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:311` | createAgentInstance - Missing elementInstanceKey (#1) | +| negative-create | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:332` | createAgentInstance - Missing limits.maxModelCalls | +| negative-create | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:358` | createAgentInstance - Missing limits.maxTokens | +| negative-create | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:384` | createAgentInstance - Missing limits.maxToolCalls | +| negative-create | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:410` | createAgentInstance - Missing definition | +| negative-create | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:427` | createAgentInstance - Missing elementInstanceKey (#2) | +| negative-create | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:444` | createAgentInstance - Missing body | +| negative-create | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:456` | createAgentInstance - Missing combo elementInstanceKey,definition | +| negative-get | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:473` | getAgentInstance - Path param agentInstanceKey pattern violation | +| negative-update | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:582` | updateAgentInstance - Additional prop __extraField | +| negative-update | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:602` | updateAgentInstance - Body wrong top-level type | +| negative-update | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:619` | updateAgentInstance - Param status wrong type (#1) | +| negative-update | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:638` | updateAgentInstance - Param status wrong type (#2) | +| negative-update | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:657` | updateAgentInstance - Missing tools.0.description | +| negative-update | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:681` | updateAgentInstance - Missing tools.0.elementId | +| negative-update | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:705` | updateAgentInstance - Missing tools.0.name | +| negative-update | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:729` | updateAgentInstance - Enum violation status | +| negative-update | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:748` | updateAgentInstance - Missing body | +| negative-update | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:762` | updateAgentInstance - Path param agentInstanceKey pattern violation | +| negative-search | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:489` | searchAgentInstances - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:508` | searchAgentInstances - Body wrong top-level type | +| negative-search | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:523` | searchAgentInstances - Missing sort.0.field | +| negative-search | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:540` | searchAgentInstances - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:561` | searchAgentInstances - Enum violation sort.0.order | + diff --git a/coverage-analysis/coverage_matrix.csv b/coverage-analysis/coverage_matrix.csv new file mode 100644 index 0000000..58f5415 --- /dev/null +++ b/coverage-analysis/coverage_matrix.csv @@ -0,0 +1,113 @@ +entity,operation,total,happy-path,bad-request,unauthorized,forbidden,not-found,conflict,pagination-sort,filter,observe-absence,data-driven,unlabeled +process-instance,create,14,1,6,0,0,0,0,0,0,0,7,0 +process-instance,get,8,4,4,0,0,0,0,0,0,0,0,0 +process-instance,update,148,6,98,0,0,0,0,0,37,0,44,0 +process-instance,delete,74,4,50,0,0,0,0,0,22,0,20,0 +process-instance,search,38,2,17,0,0,0,0,4,14,1,18,0 +job,create,32,2,28,0,0,0,0,0,0,1,1,0 +job,get,67,5,58,0,0,0,0,4,6,0,4,0 +job,update,30,3,24,0,0,0,0,0,0,0,3,0 +job,search,13,1,5,0,0,0,0,2,4,1,6,0 +tenant,create,15,1,14,0,0,0,0,0,0,0,0,0 +tenant,get,2,1,1,0,0,0,0,0,0,0,0,0 +tenant,update,23,6,17,0,0,0,0,0,0,0,0,0 +tenant,delete,17,6,11,0,0,0,0,0,0,0,0,0 +tenant,search,57,6,35,0,0,0,0,12,3,1,15,0 +tenant,lifecycle,6,6,0,0,0,0,0,0,0,6,0,0 +role,create,14,1,13,0,0,0,0,0,0,0,0,0 +role,get,2,1,1,0,0,0,0,0,0,0,0,0 +role,update,20,5,15,0,0,0,0,0,0,0,0,0 +role,delete,14,5,9,0,0,0,0,0,0,0,0,0 +role,search,47,5,29,0,0,0,0,10,2,1,12,0 +role,lifecycle,5,5,0,0,0,0,0,0,0,5,0,0 +group,create,13,1,12,0,0,0,0,0,0,0,0,0 +group,get,2,1,1,0,0,0,0,0,0,0,0,0 +group,update,17,4,13,0,0,0,0,0,0,0,0,0 +group,delete,11,4,7,0,0,0,0,0,0,0,0,0 +group,search,47,5,29,0,0,0,0,10,2,1,12,0 +group,lifecycle,4,4,0,0,0,0,0,0,0,4,0,0 +decision-instance,get,2,1,1,0,0,0,0,0,0,0,0,0 +decision-instance,delete,50,2,38,0,0,0,0,0,11,0,10,0 +decision-instance,search,20,1,6,0,0,0,0,2,10,1,12,0 +process-definition,get,59,7,38,0,0,0,0,1,14,0,14,0 +process-definition,search,11,1,5,0,0,0,0,2,2,1,4,0 +user-task,get,6,3,3,0,0,0,0,0,0,0,0,0 +user-task,update,13,3,10,0,0,0,0,0,0,0,0,0 +user-task,delete,2,1,1,0,0,0,0,0,0,0,0,0 +user-task,search,44,4,30,0,0,0,0,2,7,1,9,0 +cluster-variables,create,27,2,25,0,0,0,0,0,0,0,0,0 +cluster-variables,get,5,2,3,0,0,0,0,0,0,0,0,0 +cluster-variables,update,13,2,11,0,0,0,0,0,0,0,0,0 +cluster-variables,delete,5,2,3,0,0,0,0,0,0,0,0,0 +cluster-variables,search,10,1,6,0,0,0,0,2,0,1,2,0 +cluster-variables,lifecycle,2,2,0,0,0,0,0,0,0,2,0,0 +element-instance,create,19,2,16,0,0,0,0,0,0,0,1,0 +element-instance,get,2,1,1,0,0,0,0,0,0,0,0,0 +element-instance,search,34,2,13,0,0,0,0,4,12,1,18,0 +agent-instance,create,22,1,21,0,0,0,0,0,0,0,0,0 +agent-instance,get,2,1,1,0,0,0,0,0,0,0,0,0 +agent-instance,update,11,1,10,0,0,0,0,0,0,0,0,0 +agent-instance,search,14,1,5,0,0,0,0,2,5,1,7,0 +mapping-rule,create,21,1,20,0,0,0,0,0,0,0,0,0 +mapping-rule,get,2,1,1,0,0,0,0,0,0,0,0,0 +mapping-rule,update,13,1,12,0,0,0,0,0,0,0,0,0 +mapping-rule,delete,2,1,1,0,0,0,0,0,0,0,0,0 +mapping-rule,search,10,1,5,0,0,0,0,2,1,1,3,0 +mapping-rule,lifecycle,1,1,0,0,0,0,0,0,0,1,0,0 +global-task-listener,create,22,1,21,0,0,0,0,0,0,0,0,0 +global-task-listener,get,2,1,1,0,0,0,0,0,0,0,0,0 +global-task-listener,update,12,1,11,0,0,0,0,0,0,0,0,0 +global-task-listener,delete,2,1,1,0,0,0,0,0,0,0,0,0 +global-task-listener,search,9,1,5,0,0,0,0,2,0,1,2,0 +global-task-listener,lifecycle,1,1,0,0,0,0,0,0,0,1,0,0 +incident,get,19,3,16,0,0,0,0,0,1,0,0,0 +incident,update,9,1,8,0,0,0,0,0,0,0,0,0 +incident,search,13,1,5,0,0,0,0,2,4,1,6,0 +authorization,create,10,1,7,0,0,0,0,0,0,0,2,0 +authorization,get,2,1,1,0,0,0,0,0,0,0,0,0 +authorization,update,11,1,8,0,0,0,0,0,0,0,2,0 +authorization,delete,2,1,1,0,0,0,0,0,0,0,0,0 +authorization,search,11,1,7,0,0,0,0,2,0,1,2,0 +authorization,lifecycle,1,1,0,0,0,0,0,0,0,1,0,0 +resource,create,13,0,8,0,0,0,0,0,0,0,5,0 +resource,get,3,3,0,0,0,0,0,0,0,0,0,0 +resource,delete,8,1,7,0,0,0,0,0,0,0,0,0 +resource,search,12,1,5,0,0,0,0,2,3,1,5,0 +user,create,15,1,14,0,0,0,0,0,0,0,0,0 +user,get,2,1,1,0,0,0,0,0,0,0,0,0 +user,update,5,1,4,0,0,0,0,0,0,0,0,0 +user,delete,2,1,1,0,0,0,0,0,0,0,0,0 +user,search,9,1,5,0,0,0,0,2,0,1,2,0 +user,lifecycle,1,1,0,0,0,0,0,0,0,1,0,0 +message,create,30,2,26,0,0,0,0,0,0,0,2,0 +decision-definition,create,11,1,7,0,0,0,0,0,0,0,3,0 +decision-definition,get,4,2,2,0,0,0,0,0,0,0,0,0 +decision-definition,search,13,1,5,0,0,0,0,2,4,1,6,0 +audit-log,get,2,1,1,0,0,0,0,0,0,0,0,0 +audit-log,search,22,1,5,0,0,0,0,2,13,1,11,4 +document,create,18,3,11,0,0,0,0,0,0,0,4,0 +document,get,1,1,0,0,0,0,0,0,0,0,0,0 +document,delete,1,1,0,0,0,0,0,0,0,0,0,0 +document,lifecycle,1,1,0,0,0,0,0,0,0,1,0,0 +variable,get,2,1,1,0,0,0,0,0,0,0,0,0 +variable,search,14,1,6,0,0,0,0,2,4,1,4,2 +setup,create,15,1,14,0,0,0,0,0,0,0,0,0 +conditional,create,15,1,12,0,0,0,0,0,0,0,2,0 +decision-requirements,get,4,2,2,0,0,0,0,0,0,0,0,0 +decision-requirements,search,11,1,5,0,0,0,0,2,2,1,4,0 +signal,create,14,1,12,0,0,0,0,0,0,0,1,0 +batch-operation,get,1,1,0,0,0,0,0,0,1,0,0,0 +batch-operation,update,2,2,0,0,0,0,0,0,2,0,0,0 +batch-operation,delete,1,1,0,0,0,0,0,0,1,0,0,0 +batch-operation,search,10,1,6,0,0,0,0,2,0,1,2,0 +correlated-message-subscription,search,13,1,5,0,0,0,0,2,4,1,6,0 +message-subscriptions,search,13,1,5,0,0,0,0,2,4,1,6,0 +expression,create,10,1,8,0,0,0,0,0,0,0,0,1 +batch-operation-item,search,10,1,5,0,0,0,0,2,1,1,3,0 +system,get,9,2,7,0,0,0,0,0,0,0,0,0 +clock,create,7,1,6,0,0,0,0,0,0,0,0,0 +clock,update,1,1,0,0,0,0,0,0,0,0,0,0 +authentication,get,1,1,0,0,0,0,0,0,0,0,0,0 +license,get,1,1,0,0,0,0,0,0,0,0,0,0 +status,get,1,1,0,0,0,0,0,0,0,0,0,0 +topology,get,1,1,0,0,0,0,0,0,0,0,0,0 diff --git a/coverage-analysis/coverage_matrix.md b/coverage-analysis/coverage_matrix.md new file mode 100644 index 0000000..f926a0e --- /dev/null +++ b/coverage-analysis/coverage_matrix.md @@ -0,0 +1,241 @@ +# api-test-generator — Coverage matrix (entity × operation × variant) + +Total test declarations: **1617** across **37** entities. + +Variants are multi-label — a test can carry more than one tag, so matrix columns are **not** mutually exclusive (a lifecycle test tagged `happy-path|observe-absence` counts in both columns, but only once in `total`). Labels come from three sources: (1) test-name suffix (`base` → `happy-path`, `negative empty` → `observe-absence`, `bpmn`/`dmn`/`drd`/`form`/`path`/`cycle/...`/`oneOf ...` → `data-driven`, `variant-N - scenario` → `unlabeled`), (2) test-body shape (`page: {` / `sort: [` → `pagination-sort`, `filter: {` → `filter`), and (3) fixed labels for the lifecycle and request-validation emitters (`happy-path|observe-absence` and `bad-request` respectively). See `build_coverage.py` for the rule table. + +Legend: ✓ = at least 1, blank = 0. + +## At-a-glance presence (✓ = ≥1 test) + +| entity | op | total | happy | bad-req | 401 | 403 | 404 | conflict | pagin/sort | filter | absence | data-driven | unlabeled | +|--|--|--:|--|--|--|--|--|--|--|--|--|--|--| +| process-instance | create | 14 | ✓ | ✓ | | | | | | | | ✓ | | +| process-instance | get | 8 | ✓ | ✓ | | | | | | | | | | +| process-instance | update | 148 | ✓ | ✓ | | | | | | ✓ | | ✓ | | +| process-instance | delete | 74 | ✓ | ✓ | | | | | | ✓ | | ✓ | | +| process-instance | search | 38 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | +| job | create | 32 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| job | get | 67 | ✓ | ✓ | | | | | ✓ | ✓ | | ✓ | | +| job | update | 30 | ✓ | ✓ | | | | | | | | ✓ | | +| job | search | 13 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | +| tenant | create | 15 | ✓ | ✓ | | | | | | | | | | +| tenant | get | 2 | ✓ | ✓ | | | | | | | | | | +| tenant | update | 23 | ✓ | ✓ | | | | | | | | | | +| tenant | delete | 17 | ✓ | ✓ | | | | | | | | | | +| tenant | search | 57 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | +| tenant | lifecycle | 6 | ✓ | | | | | | | | ✓ | | | +| role | create | 14 | ✓ | ✓ | | | | | | | | | | +| role | get | 2 | ✓ | ✓ | | | | | | | | | | +| role | update | 20 | ✓ | ✓ | | | | | | | | | | +| role | delete | 14 | ✓ | ✓ | | | | | | | | | | +| role | search | 47 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | +| role | lifecycle | 5 | ✓ | | | | | | | | ✓ | | | +| group | create | 13 | ✓ | ✓ | | | | | | | | | | +| group | get | 2 | ✓ | ✓ | | | | | | | | | | +| group | update | 17 | ✓ | ✓ | | | | | | | | | | +| group | delete | 11 | ✓ | ✓ | | | | | | | | | | +| group | search | 47 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | +| group | lifecycle | 4 | ✓ | | | | | | | | ✓ | | | +| decision-instance | get | 2 | ✓ | ✓ | | | | | | | | | | +| decision-instance | delete | 50 | ✓ | ✓ | | | | | | ✓ | | ✓ | | +| decision-instance | search | 20 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | +| process-definition | get | 59 | ✓ | ✓ | | | | | ✓ | ✓ | | ✓ | | +| process-definition | search | 11 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | +| user-task | get | 6 | ✓ | ✓ | | | | | | | | | | +| user-task | update | 13 | ✓ | ✓ | | | | | | | | | | +| user-task | delete | 2 | ✓ | ✓ | | | | | | | | | | +| user-task | search | 44 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | +| cluster-variables | create | 27 | ✓ | ✓ | | | | | | | | | | +| cluster-variables | get | 5 | ✓ | ✓ | | | | | | | | | | +| cluster-variables | update | 13 | ✓ | ✓ | | | | | | | | | | +| cluster-variables | delete | 5 | ✓ | ✓ | | | | | | | | | | +| cluster-variables | search | 10 | ✓ | ✓ | | | | | ✓ | | ✓ | ✓ | | +| cluster-variables | lifecycle | 2 | ✓ | | | | | | | | ✓ | | | +| element-instance | create | 19 | ✓ | ✓ | | | | | | | | ✓ | | +| element-instance | get | 2 | ✓ | ✓ | | | | | | | | | | +| element-instance | search | 34 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | +| agent-instance | create | 22 | ✓ | ✓ | | | | | | | | | | +| agent-instance | get | 2 | ✓ | ✓ | | | | | | | | | | +| agent-instance | update | 11 | ✓ | ✓ | | | | | | | | | | +| agent-instance | search | 14 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | +| mapping-rule | create | 21 | ✓ | ✓ | | | | | | | | | | +| mapping-rule | get | 2 | ✓ | ✓ | | | | | | | | | | +| mapping-rule | update | 13 | ✓ | ✓ | | | | | | | | | | +| mapping-rule | delete | 2 | ✓ | ✓ | | | | | | | | | | +| mapping-rule | search | 10 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | +| mapping-rule | lifecycle | 1 | ✓ | | | | | | | | ✓ | | | +| global-task-listener | create | 22 | ✓ | ✓ | | | | | | | | | | +| global-task-listener | get | 2 | ✓ | ✓ | | | | | | | | | | +| global-task-listener | update | 12 | ✓ | ✓ | | | | | | | | | | +| global-task-listener | delete | 2 | ✓ | ✓ | | | | | | | | | | +| global-task-listener | search | 9 | ✓ | ✓ | | | | | ✓ | | ✓ | ✓ | | +| global-task-listener | lifecycle | 1 | ✓ | | | | | | | | ✓ | | | +| incident | get | 19 | ✓ | ✓ | | | | | | ✓ | | | | +| incident | update | 9 | ✓ | ✓ | | | | | | | | | | +| incident | search | 13 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | +| authorization | create | 10 | ✓ | ✓ | | | | | | | | ✓ | | +| authorization | get | 2 | ✓ | ✓ | | | | | | | | | | +| authorization | update | 11 | ✓ | ✓ | | | | | | | | ✓ | | +| authorization | delete | 2 | ✓ | ✓ | | | | | | | | | | +| authorization | search | 11 | ✓ | ✓ | | | | | ✓ | | ✓ | ✓ | | +| authorization | lifecycle | 1 | ✓ | | | | | | | | ✓ | | | +| resource | create | 13 | | ✓ | | | | | | | | ✓ | | +| resource | get | 3 | ✓ | | | | | | | | | | | +| resource | delete | 8 | ✓ | ✓ | | | | | | | | | | +| resource | search | 12 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | +| user | create | 15 | ✓ | ✓ | | | | | | | | | | +| user | get | 2 | ✓ | ✓ | | | | | | | | | | +| user | update | 5 | ✓ | ✓ | | | | | | | | | | +| user | delete | 2 | ✓ | ✓ | | | | | | | | | | +| user | search | 9 | ✓ | ✓ | | | | | ✓ | | ✓ | ✓ | | +| user | lifecycle | 1 | ✓ | | | | | | | | ✓ | | | +| message | create | 30 | ✓ | ✓ | | | | | | | | ✓ | | +| decision-definition | create | 11 | ✓ | ✓ | | | | | | | | ✓ | | +| decision-definition | get | 4 | ✓ | ✓ | | | | | | | | | | +| decision-definition | search | 13 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | +| audit-log | get | 2 | ✓ | ✓ | | | | | | | | | | +| audit-log | search | 22 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | ✓ | +| document | create | 18 | ✓ | ✓ | | | | | | | | ✓ | | +| document | get | 1 | ✓ | | | | | | | | | | | +| document | delete | 1 | ✓ | | | | | | | | | | | +| document | lifecycle | 1 | ✓ | | | | | | | | ✓ | | | +| variable | get | 2 | ✓ | ✓ | | | | | | | | | | +| variable | search | 14 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | ✓ | +| setup | create | 15 | ✓ | ✓ | | | | | | | | | | +| conditional | create | 15 | ✓ | ✓ | | | | | | | | ✓ | | +| decision-requirements | get | 4 | ✓ | ✓ | | | | | | | | | | +| decision-requirements | search | 11 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | +| signal | create | 14 | ✓ | ✓ | | | | | | | | ✓ | | +| batch-operation | get | 1 | ✓ | | | | | | | ✓ | | | | +| batch-operation | update | 2 | ✓ | | | | | | | ✓ | | | | +| batch-operation | delete | 1 | ✓ | | | | | | | ✓ | | | | +| batch-operation | search | 10 | ✓ | ✓ | | | | | ✓ | | ✓ | ✓ | | +| correlated-message-subscription | search | 13 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | +| message-subscriptions | search | 13 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | +| expression | create | 10 | ✓ | ✓ | | | | | | | | | ✓ | +| batch-operation-item | search | 10 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | +| system | get | 9 | ✓ | ✓ | | | | | | | | | | +| clock | create | 7 | ✓ | ✓ | | | | | | | | | | +| clock | update | 1 | ✓ | | | | | | | | | | | +| authentication | get | 1 | ✓ | | | | | | | | | | | +| license | get | 1 | ✓ | | | | | | | | | | | +| status | get | 1 | ✓ | | | | | | | | | | | +| topology | get | 1 | ✓ | | | | | | | | | | | + +## Counts per cell + +| entity | op | total | happy | bad-req | 401 | 403 | 404 | conflict | pagin/sort | filter | absence | data-driven | unlabeled | +|--|--|--:|--:|--:|--:|--:|--:|--:|--:|--:|--:|--:|--:| +| process-instance | create | 14 | 1 | 6 | | | | | | | | 7 | | +| process-instance | get | 8 | 4 | 4 | | | | | | | | | | +| process-instance | update | 148 | 6 | 98 | | | | | | 37 | | 44 | | +| process-instance | delete | 74 | 4 | 50 | | | | | | 22 | | 20 | | +| process-instance | search | 38 | 2 | 17 | | | | | 4 | 14 | 1 | 18 | | +| job | create | 32 | 2 | 28 | | | | | | | 1 | 1 | | +| job | get | 67 | 5 | 58 | | | | | 4 | 6 | | 4 | | +| job | update | 30 | 3 | 24 | | | | | | | | 3 | | +| job | search | 13 | 1 | 5 | | | | | 2 | 4 | 1 | 6 | | +| tenant | create | 15 | 1 | 14 | | | | | | | | | | +| tenant | get | 2 | 1 | 1 | | | | | | | | | | +| tenant | update | 23 | 6 | 17 | | | | | | | | | | +| tenant | delete | 17 | 6 | 11 | | | | | | | | | | +| tenant | search | 57 | 6 | 35 | | | | | 12 | 3 | 1 | 15 | | +| tenant | lifecycle | 6 | 6 | | | | | | | | 6 | | | +| role | create | 14 | 1 | 13 | | | | | | | | | | +| role | get | 2 | 1 | 1 | | | | | | | | | | +| role | update | 20 | 5 | 15 | | | | | | | | | | +| role | delete | 14 | 5 | 9 | | | | | | | | | | +| role | search | 47 | 5 | 29 | | | | | 10 | 2 | 1 | 12 | | +| role | lifecycle | 5 | 5 | | | | | | | | 5 | | | +| group | create | 13 | 1 | 12 | | | | | | | | | | +| group | get | 2 | 1 | 1 | | | | | | | | | | +| group | update | 17 | 4 | 13 | | | | | | | | | | +| group | delete | 11 | 4 | 7 | | | | | | | | | | +| group | search | 47 | 5 | 29 | | | | | 10 | 2 | 1 | 12 | | +| group | lifecycle | 4 | 4 | | | | | | | | 4 | | | +| decision-instance | get | 2 | 1 | 1 | | | | | | | | | | +| decision-instance | delete | 50 | 2 | 38 | | | | | | 11 | | 10 | | +| decision-instance | search | 20 | 1 | 6 | | | | | 2 | 10 | 1 | 12 | | +| process-definition | get | 59 | 7 | 38 | | | | | 1 | 14 | | 14 | | +| process-definition | search | 11 | 1 | 5 | | | | | 2 | 2 | 1 | 4 | | +| user-task | get | 6 | 3 | 3 | | | | | | | | | | +| user-task | update | 13 | 3 | 10 | | | | | | | | | | +| user-task | delete | 2 | 1 | 1 | | | | | | | | | | +| user-task | search | 44 | 4 | 30 | | | | | 2 | 7 | 1 | 9 | | +| cluster-variables | create | 27 | 2 | 25 | | | | | | | | | | +| cluster-variables | get | 5 | 2 | 3 | | | | | | | | | | +| cluster-variables | update | 13 | 2 | 11 | | | | | | | | | | +| cluster-variables | delete | 5 | 2 | 3 | | | | | | | | | | +| cluster-variables | search | 10 | 1 | 6 | | | | | 2 | | 1 | 2 | | +| cluster-variables | lifecycle | 2 | 2 | | | | | | | | 2 | | | +| element-instance | create | 19 | 2 | 16 | | | | | | | | 1 | | +| element-instance | get | 2 | 1 | 1 | | | | | | | | | | +| element-instance | search | 34 | 2 | 13 | | | | | 4 | 12 | 1 | 18 | | +| agent-instance | create | 22 | 1 | 21 | | | | | | | | | | +| agent-instance | get | 2 | 1 | 1 | | | | | | | | | | +| agent-instance | update | 11 | 1 | 10 | | | | | | | | | | +| agent-instance | search | 14 | 1 | 5 | | | | | 2 | 5 | 1 | 7 | | +| mapping-rule | create | 21 | 1 | 20 | | | | | | | | | | +| mapping-rule | get | 2 | 1 | 1 | | | | | | | | | | +| mapping-rule | update | 13 | 1 | 12 | | | | | | | | | | +| mapping-rule | delete | 2 | 1 | 1 | | | | | | | | | | +| mapping-rule | search | 10 | 1 | 5 | | | | | 2 | 1 | 1 | 3 | | +| mapping-rule | lifecycle | 1 | 1 | | | | | | | | 1 | | | +| global-task-listener | create | 22 | 1 | 21 | | | | | | | | | | +| global-task-listener | get | 2 | 1 | 1 | | | | | | | | | | +| global-task-listener | update | 12 | 1 | 11 | | | | | | | | | | +| global-task-listener | delete | 2 | 1 | 1 | | | | | | | | | | +| global-task-listener | search | 9 | 1 | 5 | | | | | 2 | | 1 | 2 | | +| global-task-listener | lifecycle | 1 | 1 | | | | | | | | 1 | | | +| incident | get | 19 | 3 | 16 | | | | | | 1 | | | | +| incident | update | 9 | 1 | 8 | | | | | | | | | | +| incident | search | 13 | 1 | 5 | | | | | 2 | 4 | 1 | 6 | | +| authorization | create | 10 | 1 | 7 | | | | | | | | 2 | | +| authorization | get | 2 | 1 | 1 | | | | | | | | | | +| authorization | update | 11 | 1 | 8 | | | | | | | | 2 | | +| authorization | delete | 2 | 1 | 1 | | | | | | | | | | +| authorization | search | 11 | 1 | 7 | | | | | 2 | | 1 | 2 | | +| authorization | lifecycle | 1 | 1 | | | | | | | | 1 | | | +| resource | create | 13 | | 8 | | | | | | | | 5 | | +| resource | get | 3 | 3 | | | | | | | | | | | +| resource | delete | 8 | 1 | 7 | | | | | | | | | | +| resource | search | 12 | 1 | 5 | | | | | 2 | 3 | 1 | 5 | | +| user | create | 15 | 1 | 14 | | | | | | | | | | +| user | get | 2 | 1 | 1 | | | | | | | | | | +| user | update | 5 | 1 | 4 | | | | | | | | | | +| user | delete | 2 | 1 | 1 | | | | | | | | | | +| user | search | 9 | 1 | 5 | | | | | 2 | | 1 | 2 | | +| user | lifecycle | 1 | 1 | | | | | | | | 1 | | | +| message | create | 30 | 2 | 26 | | | | | | | | 2 | | +| decision-definition | create | 11 | 1 | 7 | | | | | | | | 3 | | +| decision-definition | get | 4 | 2 | 2 | | | | | | | | | | +| decision-definition | search | 13 | 1 | 5 | | | | | 2 | 4 | 1 | 6 | | +| audit-log | get | 2 | 1 | 1 | | | | | | | | | | +| audit-log | search | 22 | 1 | 5 | | | | | 2 | 13 | 1 | 11 | 4 | +| document | create | 18 | 3 | 11 | | | | | | | | 4 | | +| document | get | 1 | 1 | | | | | | | | | | | +| document | delete | 1 | 1 | | | | | | | | | | | +| document | lifecycle | 1 | 1 | | | | | | | | 1 | | | +| variable | get | 2 | 1 | 1 | | | | | | | | | | +| variable | search | 14 | 1 | 6 | | | | | 2 | 4 | 1 | 4 | 2 | +| setup | create | 15 | 1 | 14 | | | | | | | | | | +| conditional | create | 15 | 1 | 12 | | | | | | | | 2 | | +| decision-requirements | get | 4 | 2 | 2 | | | | | | | | | | +| decision-requirements | search | 11 | 1 | 5 | | | | | 2 | 2 | 1 | 4 | | +| signal | create | 14 | 1 | 12 | | | | | | | | 1 | | +| batch-operation | get | 1 | 1 | | | | | | | 1 | | | | +| batch-operation | update | 2 | 2 | | | | | | | 2 | | | | +| batch-operation | delete | 1 | 1 | | | | | | | 1 | | | | +| batch-operation | search | 10 | 1 | 6 | | | | | 2 | | 1 | 2 | | +| correlated-message-subscription | search | 13 | 1 | 5 | | | | | 2 | 4 | 1 | 6 | | +| message-subscriptions | search | 13 | 1 | 5 | | | | | 2 | 4 | 1 | 6 | | +| expression | create | 10 | 1 | 8 | | | | | | | | | 1 | +| batch-operation-item | search | 10 | 1 | 5 | | | | | 2 | 1 | 1 | 3 | | +| system | get | 9 | 2 | 7 | | | | | | | | | | +| clock | create | 7 | 1 | 6 | | | | | | | | | | +| clock | update | 1 | 1 | | | | | | | | | | | +| authentication | get | 1 | 1 | | | | | | | | | | | +| license | get | 1 | 1 | | | | | | | | | | | +| status | get | 1 | 1 | | | | | | | | | | | +| topology | get | 1 | 1 | | | | | | | | | | | diff --git a/coverage-analysis/gaps.md b/coverage-analysis/gaps.md new file mode 100644 index 0000000..66c7a84 --- /dev/null +++ b/coverage-analysis/gaps.md @@ -0,0 +1,182 @@ +# Coverage gaps (heuristic) + +Computed across **1617** generated test declarations in **37** entities. + +## Entities missing delete-then-observe-absence variant + +Entities that have both `create` and `delete` tests but no test tagged `observe-absence` (no negative-after-delete check). + +- _(none)_ + +## Entities with no unauthorized (401) coverage + +- agent-instance +- audit-log +- authentication +- authorization +- batch-operation +- batch-operation-item +- clock +- cluster-variables +- conditional +- correlated-message-subscription +- decision-definition +- decision-instance +- decision-requirements +- document +- element-instance +- expression +- global-task-listener +- group +- incident +- job +- license +- mapping-rule +- message +- message-subscriptions +- process-definition +- process-instance +- resource +- role +- setup +- signal +- status +- system +- tenant +- topology +- user +- user-task +- variable + +## Entities with no forbidden (403) coverage + +- agent-instance +- audit-log +- authentication +- authorization +- batch-operation +- batch-operation-item +- clock +- cluster-variables +- conditional +- correlated-message-subscription +- decision-definition +- decision-instance +- decision-requirements +- document +- element-instance +- expression +- global-task-listener +- group +- incident +- job +- license +- mapping-rule +- message +- message-subscriptions +- process-definition +- process-instance +- resource +- role +- setup +- signal +- status +- system +- tenant +- topology +- user +- user-task +- variable + +## Entities with no bad-request (400) coverage + +- authentication +- license +- status +- topology + +## Entities with no not-found (404) coverage + +- agent-instance +- audit-log +- authentication +- authorization +- batch-operation +- batch-operation-item +- clock +- cluster-variables +- conditional +- correlated-message-subscription +- decision-definition +- decision-instance +- decision-requirements +- document +- element-instance +- expression +- global-task-listener +- group +- incident +- job +- license +- mapping-rule +- message +- message-subscriptions +- process-definition +- process-instance +- resource +- role +- setup +- signal +- status +- system +- tenant +- topology +- user +- user-task +- variable + +## Entities with no conflict (409) coverage + +- agent-instance +- audit-log +- authentication +- authorization +- batch-operation +- batch-operation-item +- clock +- cluster-variables +- conditional +- correlated-message-subscription +- decision-definition +- decision-instance +- decision-requirements +- document +- element-instance +- expression +- global-task-listener +- group +- incident +- job +- license +- mapping-rule +- message +- message-subscriptions +- process-definition +- process-instance +- resource +- role +- setup +- signal +- status +- system +- tenant +- topology +- user +- user-task +- variable + +## Search ops with no pagination/sort or filter coverage + +Search operations that have tests but none labeled `pagination-sort` or `filter`. + +- _(none)_ diff --git a/coverage-analysis/lifecycle_disjoint.md b/coverage-analysis/lifecycle_disjoint.md new file mode 100644 index 0000000..368fd26 --- /dev/null +++ b/coverage-analysis/lifecycle_disjoint.md @@ -0,0 +1,131 @@ +# Entity-lifecycle disjoint: generator vs upstream OCA + +Answers @jwulf's ask on #279: +> Can you please analyse the disjoint between the 10 new generated tests and +> the ~30 tests in the OCA suite. + +The 10 new generated tests are the entity-lifecycle suite under +`generated/camunda-oca/playwright/entities/.lifecycle.spec.ts`, +produced by the `EntityLifecycle` scenario template (#280). The ~30 +upstream tests are the matching slice of category **A. Entity Lifecycle +(CRUD)** in [c8-orchestration-cluster-e2e-test-suite/coverage-analysis](https://github.com/camunda/camunda/tree/main/qa/c8-orchestration-cluster-e2e-test-suite/coverage-analysis) +(snapshot [camunda/camunda#53387](https://github.com/camunda/camunda/pull/53387)). + +## The 10 generated tests + +Each test runs the full lifecycle in **one** `test()` block: +`create → present → update → present → delete → absent`. One test per entity +spec; cluster-variables has two namespace variants (global / per-tenant). + +| spec file | entity slug | +|---|---| +| `entities/Authorization.lifecycle.spec.ts` | `authorization` | +| `entities/Document.lifecycle.spec.ts` | `document` | +| `entities/GlobalClusterVariable.lifecycle.spec.ts` | `cluster-variables` (global namespace) | +| `entities/TenantClusterVariable.lifecycle.spec.ts` | `cluster-variables` (per-tenant namespace) | +| `entities/GlobalTaskListener.lifecycle.spec.ts` | `global-task-listener` | +| `entities/Group.lifecycle.spec.ts` | `group` | +| `entities/MappingRule.lifecycle.spec.ts` | `mapping-rule` | +| `entities/Role.lifecycle.spec.ts` | `role` | +| `entities/Tenant.lifecycle.spec.ts` | `tenant` | +| `entities/User.lifecycle.spec.ts` | `user` | + +## Upstream's matching slice — 333 tests across the same 9 entities + +Category A. Entity Lifecycle (CRUD), restricted to the 9 entities the +generator's EntityLifecycle template covers: + +| entity | create | get | mutate | delete | search | observe-absence | negative | **total** | +|---|---:|---:|---:|---:|---:|---:|---:|---:| +| authorization | 10 | 1 | 5 | 3 | 6 | 0 | 53 | **78** | +| cluster-variables | 3 | 2 | 23 | 2 | 12 | 0 | 25 | **67** | +| document | 4 | 1 | 0 | 1 | 0 | 0 | 17 | **23** | +| global-task-listener | 3 | 0 | 2 | 1 | 5 | 1 | 18 | **30** | +| group | 1 | 1 | 1 | 1 | 2 | 0 | 11 | **17** | +| mapping-rule | 1 | 1 | 1 | 1 | 7 | 0 | 16 | **27** | +| role | 1 | 1 | 2 | 1 | 4 | 0 | 15 | **24** | +| tenant | 1 | 1 | 3 | 2 | 6 | 0 | 24 | **37** | +| user | 4 | 1 | 4 | 1 | 5 | 0 | 15 | **30** | +| **total** | **28** | **9** | **41** | **13** | **47** | **1** | **194** | **333** | + +Josh's "~30" likely refers to the "core lifecycle slice" — one happy-path +test per CRUD step per entity. By that definition there are **43** +upstream tests (5 happy-path steps × 9 entities, minus a few entities +that lack mutate or search). The full upstream coverage of these 9 +entities is 333 tests. + +## What only the generator catches + +1. **Full lifecycle as a single atomic flow.** Each generator test asserts + `create → present → update → present → delete → absent` inside one + `test()`. Upstream's 333 tests cover the same phases but **split across + separate tests** — no upstream test asserts the entire chain in one + go. This catches state-cleanup bugs where individual operations all + pass in isolation but the end-to-end flow leaves orphaned state. +2. **observe-absence after delete on 9 entities.** Upstream has exactly + **one** test in `observe-absence` form-step for these 9 entities + (global-task-listener). The generator includes "observe absent" in + every one of its 10 tests → +9 net observe-absence coverage. + +## What only upstream catches + +1. **Multiple happy-path variants per CRUD step.** Generator: 1 create + per entity. Upstream: + - `authorization` has **10** create tests (one per owner type: client, + group, mapping-rule, role, user × single/multiple permissionTypes). + - `cluster-variables` has **23** mutate tests (different field combos + and namespace variants). + - `user` has 4 create tests, 4 mutate tests. +2. **Search coverage.** Upstream has **47** happy-path search-related + tests across these 9 entities (filter, pagination, sort). The + generator's lifecycle emitter doesn't search at all. The generator's + `feature` + `variant` emitters cover happy-path search separately, + so this is only a "lifecycle slice" gap, not an overall gap. +3. **Negative paths.** Upstream has **194** negative tests across these + 9 entities (400/401/403/404/409). The generator's `request-validation` + emitter covers 400-class negatives separately (1071 tests + suite-wide); the generator emits **0** for 401/403/404/409 across the + entire suite. So: + - 400 — generator has parallel coverage via `request-validation/`. + - 401/403/404/409 — generator has **no** coverage for these 9 entities + (or any entity). Tracked in #279, methodology in #277. + +## True disjoint, summarised + +| What it catches | Generator (10 lifecycle tests) | Upstream (333 tests) | +|---|:-:|:-:| +| Create works | ✓ (1 per entity) | ✓ (28 — multiple variants per entity) | +| Get works | ✓ (1 per entity) | ✓ (9) | +| Update works | ✓ (1 per entity) | ✓ (41 — heavy variant coverage on cluster-variables and authorization) | +| Delete works | ✓ (1 per entity) | ✓ (13) | +| Search works | — (not in lifecycle template) | ✓ (47) | +| Entity is observably gone after delete | ✓ (10 — in every test) | ⚠ (1 — only global-task-listener) | +| Full lifecycle as a single atomic flow | ✓ (each test = full chain) | ✗ | +| Create rejected with bad body (400) | (via `request-validation/`) | ✓ (many per entity) | +| Get / Update returns 404 for missing entity | ✗ | ✓ (many) | +| 401 unauthorized | ✗ | ✓ (many) | +| 403 forbidden | ✗ | ✓ (many) | +| 409 conflict on duplicate create | ✗ | ✓ (many) | + +## Net assessment + +- **Coverage breadth on the lifecycle slice**: upstream wins by roughly + 5–6×. 333 tests vs 10. Most of the upstream advantage is in negative + paths (194) and search variants (47) — both of which are addressed by + other generator emitters (`request-validation/` for 400; feature + + variant for happy-path search). So the *unique-to-upstream* coverage + on this slice is mostly 401/403/404/409 + per-entity create/update + variants. +- **Coverage depth on the lifecycle slice**: generator wins on + composite-flow assertion and observe-absence. Each generator test + exercises the full state-transition chain — a class of bug + (e.g. "delete returns 204 but record stays in the DB") that 333 + individual-step upstream tests don't catch. +- **Recommended next moves to close the lifecycle disjoint** (in priority order): + 1. 404 emitter — would add observe-absence + missing-entity coverage + on get/update/delete across all entities (#279). + 2. Per-entity variant expansion for create — authorization's 10 + owner-type variants are real cases the generator's single create + misses. Likely an ABox enrichment task (#277). + 3. 401/403/409 emitters — depend on deployment-mode and + duplicatePolicy ABox slices (#277). diff --git a/coverage-analysis/tests.csv b/coverage-analysis/tests.csv new file mode 100644 index 0000000..c033d32 --- /dev/null +++ b/coverage-analysis/tests.csv @@ -0,0 +1,1618 @@ +file,line,source,entity,category,operation,form_step,prerequisite,method,path,operationId,variants,test_name +activateAdHocSubProcessActivities.feature.spec.ts,9,feature,element-instance,J/K/L. Observation-only,create,create,running-process-instance,POST,/element-instances/ad-hoc-activities/{adHocSubProcessInstanceKey}/activation,activateAdHocSubProcessActivities,happy-path,feature-1 - activateAdHocSubProcessActivities - base (1) +activateAdHocSubProcessActivities.variant.spec.ts,9,variant,element-instance,J/K/L. Observation-only,create,create,running-process-instance,POST,/element-instances/ad-hoc-activities/{adHocSubProcessInstanceKey}/activation,activateAdHocSubProcessActivities,data-driven,variant-1 - activateAdHocSubProcessActivities - bpmn #1 +activateJobs.feature.spec.ts,12,feature,job,G. Job Lifecycle & Stats,create,create,running-process-instance-with-job,POST,/jobs/activation,activateJobs,happy-path,feature-1 - activateJobs - base (1) +activateJobs.feature.spec.ts,78,feature,job,G. Job Lifecycle & Stats,create,observe-absence,running-process-instance-with-job,POST,/jobs/activation,activateJobs,observe-absence,feature-2 - activateJobs - negative empty (2) +activateJobs.variant.spec.ts,12,variant,job,G. Job Lifecycle & Stats,create,create,running-process-instance-with-job,POST,/jobs/activation,activateJobs,data-driven,variant-1 - activateJobs - path #1 +assignClientToGroup.feature.spec.ts,8,feature,group,B. Membership/Association,update,mutate,group + client,PUT,/groups/{groupId}/clients/{clientId},assignClientToGroup,happy-path,feature-1 - assignClientToGroup - base (1) +assignClientToTenant.feature.spec.ts,8,feature,tenant,B. Membership/Association,update,mutate,tenant + client,PUT,/tenants/{tenantId}/clients/{clientId},assignClientToTenant,happy-path,feature-1 - assignClientToTenant - base (1) +assignGroupToTenant.feature.spec.ts,8,feature,tenant,B. Membership/Association,update,mutate,tenant + group,PUT,/tenants/{tenantId}/groups/{groupId},assignGroupToTenant,happy-path,feature-1 - assignGroupToTenant - base (1) +assignMappingRuleToGroup.feature.spec.ts,8,feature,group,B. Membership/Association,update,mutate,group + mapping-rule,PUT,/groups/{groupId}/mapping-rules/{mappingRuleId},assignMappingRuleToGroup,happy-path,feature-1 - assignMappingRuleToGroup - base (1) +assignMappingRuleToTenant.feature.spec.ts,8,feature,tenant,B. Membership/Association,update,mutate,tenant + mapping-rule,PUT,/tenants/{tenantId}/mapping-rules/{mappingRuleId},assignMappingRuleToTenant,happy-path,feature-1 - assignMappingRuleToTenant - base (1) +assignRoleToClient.feature.spec.ts,8,feature,role,B. Membership/Association,update,mutate,client + role,PUT,/roles/{roleId}/clients/{clientId},assignRoleToClient,happy-path,feature-1 - assignRoleToClient - base (1) +assignRoleToGroup.feature.spec.ts,8,feature,role,B. Membership/Association,update,mutate,group + role,PUT,/roles/{roleId}/groups/{groupId},assignRoleToGroup,happy-path,feature-1 - assignRoleToGroup - base (1) +assignRoleToMappingRule.feature.spec.ts,8,feature,role,B. Membership/Association,update,mutate,mapping-rule + role,PUT,/roles/{roleId}/mapping-rules/{mappingRuleId},assignRoleToMappingRule,happy-path,feature-1 - assignRoleToMappingRule - base (1) +assignRoleToTenant.feature.spec.ts,8,feature,tenant,B. Membership/Association,update,mutate,tenant + role,PUT,/tenants/{tenantId}/roles/{roleId},assignRoleToTenant,happy-path,feature-1 - assignRoleToTenant - base (1) +assignRoleToUser.feature.spec.ts,8,feature,role,B. Membership/Association,update,mutate,user + role,PUT,/roles/{roleId}/users/{username},assignRoleToUser,happy-path,feature-1 - assignRoleToUser - base (1) +assignUserTask.feature.spec.ts,8,feature,user-task,F. User-Task Lifecycle,update,mutate,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/assignment,assignUserTask,happy-path,feature-1 - assignUserTask - base (1) +assignUserToGroup.feature.spec.ts,8,feature,group,B. Membership/Association,update,mutate,group + user,PUT,/groups/{groupId}/users/{username},assignUserToGroup,happy-path,feature-1 - assignUserToGroup - base (1) +assignUserToTenant.feature.spec.ts,8,feature,tenant,B. Membership/Association,update,mutate,tenant + user,PUT,/tenants/{tenantId}/users/{username},assignUserToTenant,happy-path,feature-1 - assignUserToTenant - base (1) +broadcastSignal.feature.spec.ts,11,feature,signal,M. Messaging/Signals,create,create,deployed-process-with-signal-catch-event,POST,/signals/broadcast,broadcastSignal,happy-path,feature-1 - broadcastSignal - base (1) +broadcastSignal.variant.spec.ts,11,variant,signal,M. Messaging/Signals,create,create,deployed-process-with-signal-catch-event,POST,/signals/broadcast,broadcastSignal,data-driven,variant-1 - broadcastSignal - path #1 +cancelBatchOperation.feature.spec.ts,8,feature,batch-operation,E. Batch-Operation Lifecycle,delete,delete,running-process-instance(s),POST,/batch-operations/{batchOperationKey}/cancellation,cancelBatchOperation,happy-path|filter,feature-1 - cancelBatchOperation - base (1) +cancelProcessInstance.feature.spec.ts,9,feature,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/{processInstanceKey}/cancellation,cancelProcessInstance,happy-path,feature-1 - cancelProcessInstance - base (1) +cancelProcessInstancesBatchOperation.feature.spec.ts,11,feature,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,happy-path|filter,feature-1 - cancelProcessInstancesBatchOperation - base (1) +cancelProcessInstancesBatchOperation.variant.spec.ts,12,variant,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven|filter,variant-1 - cancelProcessInstancesBatchOperation - bpmn #1 +cancelProcessInstancesBatchOperation.variant.spec.ts,64,variant,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven|filter,variant-2 - cancelProcessInstancesBatchOperation - bpmn #1 +cancelProcessInstancesBatchOperation.variant.spec.ts,137,variant,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven|filter,variant-3 - cancelProcessInstancesBatchOperation - bpmn #1 +cancelProcessInstancesBatchOperation.variant.spec.ts,210,variant,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven|filter,variant-4 - cancelProcessInstancesBatchOperation - bpmn #1 +cancelProcessInstancesBatchOperation.variant.spec.ts,311,variant,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven|filter,variant-5 - cancelProcessInstancesBatchOperation - bpmn #1 +cancelProcessInstancesBatchOperation.variant.spec.ts,412,variant,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven|filter,variant-6 - cancelProcessInstancesBatchOperation - bpmn #1 +cancelProcessInstancesBatchOperation.variant.spec.ts,468,variant,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven|filter,variant-7 - cancelProcessInstancesBatchOperation - bpmn #1 +cancelProcessInstancesBatchOperation.variant.spec.ts,545,variant,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven|filter,variant-8 - cancelProcessInstancesBatchOperation - bpmn #1 +cancelProcessInstancesBatchOperation.variant.spec.ts,622,variant,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven|filter,variant-9 - cancelProcessInstancesBatchOperation - bpmn #1 +cancelProcessInstancesBatchOperation.variant.spec.ts,727,variant,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven|filter,variant-10 - cancelProcessInstancesBatchOperation - bpmn #1 +completeJob.feature.spec.ts,9,feature,job,G. Job Lifecycle & Stats,update,mutate,running-process-instance-with-job,POST,/jobs/{jobKey}/completion,completeJob,happy-path,feature-1 - completeJob - base (1) +completeJob.feature.spec.ts,93,feature,job,G. Job Lifecycle & Stats,update,mutate,running-process-instance-with-job,POST,/jobs/{jobKey}/completion,completeJob,data-driven,feature-2 - completeJob - oneOf result variant1 (2) +completeJob.feature.spec.ts,178,feature,job,G. Job Lifecycle & Stats,update,mutate,running-process-instance-with-job,POST,/jobs/{jobKey}/completion,completeJob,data-driven,feature-3 - completeJob - oneOf result variant2 (3) +completeJob.variant.spec.ts,9,variant,job,G. Job Lifecycle & Stats,update,mutate,running-process-instance-with-job,POST,/jobs/{jobKey}/completion,completeJob,data-driven,variant-1 - completeJob - bpmn #1 +completeUserTask.feature.spec.ts,8,feature,user-task,F. User-Task Lifecycle,update,mutate,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/completion,completeUserTask,happy-path,feature-1 - completeUserTask - base (1) +correlateMessage.feature.spec.ts,11,feature,message,M. Messaging/Signals,create,create,deployed-process-with-message-catch-event,POST,/messages/correlation,correlateMessage,happy-path,feature-1 - correlateMessage - base (1) +correlateMessage.variant.spec.ts,11,variant,message,M. Messaging/Signals,create,create,deployed-process-with-message-catch-event,POST,/messages/correlation,correlateMessage,data-driven,variant-1 - correlateMessage - path #1 +createAdminUser.feature.spec.ts,11,feature,setup,O. System/Admin,create,create,none,POST,/setup/user,createAdminUser,happy-path,feature-1 - createAdminUser - base (1) +createAgentInstance.feature.spec.ts,12,feature,agent-instance,P. Agent-Instance (new in v2),create,create,unknown,POST,/agent-instances,createAgentInstance,happy-path,feature-1 - createAgentInstance - base (1) +createAuthorization.feature.spec.ts,11,feature,authorization,A. Entity Lifecycle (CRUD),create,create,owner-entity-or-resource,POST,/authorizations,createAuthorization,happy-path,feature-1 - createAuthorization - base (1) +createAuthorization.feature.spec.ts,52,feature,authorization,A. Entity Lifecycle (CRUD),create,create,owner-entity-or-resource,POST,/authorizations,createAuthorization,data-driven,feature-2 - createAuthorization - oneOf group0 variant1 (2) +createAuthorization.feature.spec.ts,94,feature,authorization,A. Entity Lifecycle (CRUD),create,create,owner-entity-or-resource,POST,/authorizations,createAuthorization,data-driven,feature-3 - createAuthorization - oneOf group0 variant2 (3) +createDeployment.feature.spec.ts,12,feature,resource,C. Deployment Lifecycle,create,create,none,POST,/deployments,createDeployment,data-driven,feature-1 - createDeployment - bpmn (1) +createDeployment.feature.spec.ts,41,feature,resource,C. Deployment Lifecycle,create,create,none,POST,/deployments,createDeployment,data-driven,feature-2 - createDeployment - form (2) +createDeployment.feature.spec.ts,70,feature,resource,C. Deployment Lifecycle,create,create,none,POST,/deployments,createDeployment,data-driven,feature-3 - createDeployment - dmn (3) +createDeployment.feature.spec.ts,99,feature,resource,C. Deployment Lifecycle,create,create,none,POST,/deployments,createDeployment,data-driven,feature-4 - createDeployment - drd (4) +createDeployment.variant.spec.ts,12,variant,resource,C. Deployment Lifecycle,create,create,none,POST,/deployments,createDeployment,data-driven,variant-1 - createDeployment - path #1 +createDocument.feature.spec.ts,12,feature,document,A. Entity Lifecycle (CRUD),create,create,none,POST,/documents,createDocument,happy-path,feature-1 - createDocument - base (1) +createDocument.variant.spec.ts,13,variant,document,A. Entity Lifecycle (CRUD),create,create,none,POST,/documents,createDocument,data-driven,variant-1 - createDocument - bpmn #1 +createDocument.variant.spec.ts,76,variant,document,A. Entity Lifecycle (CRUD),create,create,none,POST,/documents,createDocument,data-driven,variant-2 - createDocument - bpmn #1 +createDocumentLink.feature.spec.ts,12,feature,document,A. Entity Lifecycle (CRUD),create,create,none,POST,/documents/{documentId}/links,createDocumentLink,happy-path,feature-1 - createDocumentLink - base (1) +createDocuments.feature.spec.ts,12,feature,document,A. Entity Lifecycle (CRUD),create,create,none,POST,/documents/batch,createDocuments,happy-path,feature-1 - createDocuments - base (1) +createDocuments.variant.spec.ts,13,variant,document,A. Entity Lifecycle (CRUD),create,create,none,POST,/documents/batch,createDocuments,data-driven,variant-1 - createDocuments - bpmn #1 +createDocuments.variant.spec.ts,74,variant,document,A. Entity Lifecycle (CRUD),create,create,none,POST,/documents/batch,createDocuments,data-driven,variant-2 - createDocuments - bpmn #1 +createElementInstanceVariables.feature.spec.ts,9,feature,element-instance,J/K/L. Observation-only,create,create,running-process-instance,PUT,/element-instances/{elementInstanceKey}/variables,createElementInstanceVariables,happy-path,feature-1 - createElementInstanceVariables - base (1) +createGlobalClusterVariable.feature.spec.ts,11,feature,cluster-variables,A. Entity Lifecycle (CRUD),create,create,none,POST,/cluster-variables/global,createGlobalClusterVariable,happy-path,feature-1 - createGlobalClusterVariable - base (1) +createGlobalTaskListener.feature.spec.ts,11,feature,global-task-listener,A. Entity Lifecycle (CRUD),create,create,none,POST,/global-task-listeners,createGlobalTaskListener,happy-path,feature-1 - createGlobalTaskListener - base (1) +createGroup.feature.spec.ts,11,feature,group,A. Entity Lifecycle (CRUD),create,create,none,POST,/groups,createGroup,happy-path,feature-1 - createGroup - base (1) +createMappingRule.feature.spec.ts,11,feature,mapping-rule,A. Entity Lifecycle (CRUD),create,create,none,POST,/mapping-rules,createMappingRule,happy-path,feature-1 - createMappingRule - base (1) +createProcessInstance.feature.spec.ts,12,feature,process-instance,D. Process-Instance Lifecycle & Ops,create,create,deployed-process,POST,/process-instances,createProcessInstance,happy-path,feature-1 - createProcessInstance - base (1) +createProcessInstance.feature.spec.ts,57,feature,process-instance,D. Process-Instance Lifecycle & Ops,create,create,deployed-process,POST,/process-instances,createProcessInstance,data-driven,feature-2 - createProcessInstance - oneOf group0 Process creation by key (2) +createProcessInstance.feature.spec.ts,105,feature,process-instance,D. Process-Instance Lifecycle & Ops,create,create,deployed-process,POST,/process-instances,createProcessInstance,data-driven,feature-3 - createProcessInstance - oneOf group0 Process creation by id (3) +createProcessInstance.variant.spec.ts,13,variant,process-instance,D. Process-Instance Lifecycle & Ops,create,create,deployed-process,POST,/process-instances,createProcessInstance,data-driven,variant-1 - createProcessInstance - bpmn #1 +createProcessInstance.variant.spec.ts,66,variant,process-instance,D. Process-Instance Lifecycle & Ops,create,create,deployed-process,POST,/process-instances,createProcessInstance,data-driven,variant-2 - createProcessInstance - bpmn #1 +createProcessInstance.variant.spec.ts,119,variant,process-instance,D. Process-Instance Lifecycle & Ops,create,create,deployed-process,POST,/process-instances,createProcessInstance,data-driven,variant-3 - createProcessInstance - bpmn #1 +createProcessInstance.variant.spec.ts,187,variant,process-instance,D. Process-Instance Lifecycle & Ops,create,create,deployed-process,POST,/process-instances,createProcessInstance,data-driven,variant-4 - createProcessInstance - bpmn #1 +createProcessInstance.variant.spec.ts,283,variant,process-instance,D. Process-Instance Lifecycle & Ops,create,create,deployed-process,POST,/process-instances,createProcessInstance,data-driven,variant-5 - createProcessInstance - bpmn #1 +createRole.feature.spec.ts,11,feature,role,A. Entity Lifecycle (CRUD),create,create,none,POST,/roles,createRole,happy-path,feature-1 - createRole - base (1) +createTenant.feature.spec.ts,11,feature,tenant,A. Entity Lifecycle (CRUD),create,create,none,POST,/tenants,createTenant,happy-path,feature-1 - createTenant - base (1) +createTenantClusterVariable.feature.spec.ts,11,feature,cluster-variables,A. Entity Lifecycle (CRUD),create,create,none,POST,/cluster-variables/tenants/{tenantId},createTenantClusterVariable,happy-path,feature-1 - createTenantClusterVariable - base (1) +createUser.feature.spec.ts,11,feature,user,A. Entity Lifecycle (CRUD),create,create,none,POST,/users,createUser,happy-path,feature-1 - createUser - base (1) +deleteAuthorization.feature.spec.ts,8,feature,authorization,A. Entity Lifecycle (CRUD),delete,delete,owner-entity-or-resource,DELETE,/authorizations/{authorizationKey},deleteAuthorization,happy-path,feature-1 - deleteAuthorization - base (1) +deleteDecisionInstance.feature.spec.ts,9,feature,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/{decisionEvaluationKey}/deletion,deleteDecisionInstance,happy-path,feature-1 - deleteDecisionInstance - base (1) +deleteDecisionInstancesBatchOperation.feature.spec.ts,11,feature,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,happy-path|filter,feature-1 - deleteDecisionInstancesBatchOperation - base (1) +deleteDecisionInstancesBatchOperation.variant.spec.ts,12,variant,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven|filter,variant-1 - deleteDecisionInstancesBatchOperation - dmn #1 +deleteDecisionInstancesBatchOperation.variant.spec.ts,90,variant,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven|filter,variant-2 - deleteDecisionInstancesBatchOperation - dmn #1 +deleteDecisionInstancesBatchOperation.variant.spec.ts,140,variant,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven|filter,variant-3 - deleteDecisionInstancesBatchOperation - path #1 +deleteDecisionInstancesBatchOperation.variant.spec.ts,191,variant,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven|filter,variant-4 - deleteDecisionInstancesBatchOperation - dmn #1 +deleteDecisionInstancesBatchOperation.variant.spec.ts,269,variant,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven|filter,variant-5 - deleteDecisionInstancesBatchOperation - bpmn #1 +deleteDecisionInstancesBatchOperation.variant.spec.ts,321,variant,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven|filter,variant-6 - deleteDecisionInstancesBatchOperation - bpmn #1 +deleteDecisionInstancesBatchOperation.variant.spec.ts,393,variant,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven|filter,variant-7 - deleteDecisionInstancesBatchOperation - dmn #1 +deleteDecisionInstancesBatchOperation.variant.spec.ts,443,variant,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven|filter,variant-8 - deleteDecisionInstancesBatchOperation - bpmn #1 +deleteDecisionInstancesBatchOperation.variant.spec.ts,544,variant,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven|filter,variant-9 - deleteDecisionInstancesBatchOperation - dmn #1 +deleteDecisionInstancesBatchOperation.variant.spec.ts,594,variant,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven|filter,variant-10 - deleteDecisionInstancesBatchOperation - drd #1 +deleteDocument.feature.spec.ts,9,feature,document,A. Entity Lifecycle (CRUD),delete,delete,none,DELETE,/documents/{documentId},deleteDocument,happy-path,feature-1 - deleteDocument - base (1) +deleteGlobalClusterVariable.feature.spec.ts,8,feature,cluster-variables,A. Entity Lifecycle (CRUD),delete,delete,none,DELETE,/cluster-variables/global/{name},deleteGlobalClusterVariable,happy-path,feature-1 - deleteGlobalClusterVariable - base (1) +deleteGlobalTaskListener.feature.spec.ts,8,feature,global-task-listener,A. Entity Lifecycle (CRUD),delete,delete,none,DELETE,/global-task-listeners/{id},deleteGlobalTaskListener,happy-path,feature-1 - deleteGlobalTaskListener - base (1) +deleteGroup.feature.spec.ts,8,feature,group,A. Entity Lifecycle (CRUD),delete,delete,none,DELETE,/groups/{groupId},deleteGroup,happy-path,feature-1 - deleteGroup - base (1) +deleteMappingRule.feature.spec.ts,8,feature,mapping-rule,A. Entity Lifecycle (CRUD),delete,delete,none,DELETE,/mapping-rules/{mappingRuleId},deleteMappingRule,happy-path,feature-1 - deleteMappingRule - base (1) +deleteProcessInstance.feature.spec.ts,10,feature,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/{processInstanceKey}/deletion,deleteProcessInstance,happy-path,feature-1 - deleteProcessInstance - base (1) +deleteProcessInstancesBatchOperation.feature.spec.ts,11,feature,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,happy-path|filter,feature-1 - deleteProcessInstancesBatchOperation - base (1) +deleteProcessInstancesBatchOperation.variant.spec.ts,12,variant,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven|filter,variant-1 - deleteProcessInstancesBatchOperation - bpmn #1 +deleteProcessInstancesBatchOperation.variant.spec.ts,64,variant,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven|filter,variant-2 - deleteProcessInstancesBatchOperation - bpmn #1 +deleteProcessInstancesBatchOperation.variant.spec.ts,137,variant,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven|filter,variant-3 - deleteProcessInstancesBatchOperation - bpmn #1 +deleteProcessInstancesBatchOperation.variant.spec.ts,210,variant,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven|filter,variant-4 - deleteProcessInstancesBatchOperation - bpmn #1 +deleteProcessInstancesBatchOperation.variant.spec.ts,311,variant,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven|filter,variant-5 - deleteProcessInstancesBatchOperation - bpmn #1 +deleteProcessInstancesBatchOperation.variant.spec.ts,412,variant,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven|filter,variant-6 - deleteProcessInstancesBatchOperation - bpmn #1 +deleteProcessInstancesBatchOperation.variant.spec.ts,468,variant,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven|filter,variant-7 - deleteProcessInstancesBatchOperation - bpmn #1 +deleteProcessInstancesBatchOperation.variant.spec.ts,545,variant,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven|filter,variant-8 - deleteProcessInstancesBatchOperation - bpmn #1 +deleteProcessInstancesBatchOperation.variant.spec.ts,622,variant,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven|filter,variant-9 - deleteProcessInstancesBatchOperation - bpmn #1 +deleteProcessInstancesBatchOperation.variant.spec.ts,727,variant,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven|filter,variant-10 - deleteProcessInstancesBatchOperation - bpmn #1 +deleteResource.feature.spec.ts,11,feature,resource,C. Deployment Lifecycle,delete,delete,none,POST,/resources/{resourceKey}/deletion,deleteResource,happy-path,feature-1 - deleteResource - base (1) +deleteRole.feature.spec.ts,8,feature,role,A. Entity Lifecycle (CRUD),delete,delete,none,DELETE,/roles/{roleId},deleteRole,happy-path,feature-1 - deleteRole - base (1) +deleteTenant.feature.spec.ts,8,feature,tenant,A. Entity Lifecycle (CRUD),delete,delete,none,DELETE,/tenants/{tenantId},deleteTenant,happy-path,feature-1 - deleteTenant - base (1) +deleteTenantClusterVariable.feature.spec.ts,8,feature,cluster-variables,A. Entity Lifecycle (CRUD),delete,delete,none,DELETE,/cluster-variables/tenants/{tenantId}/{name},deleteTenantClusterVariable,happy-path,feature-1 - deleteTenantClusterVariable - base (1) +deleteUser.feature.spec.ts,8,feature,user,A. Entity Lifecycle (CRUD),delete,delete,none,DELETE,/users/{username},deleteUser,happy-path,feature-1 - deleteUser - base (1) +evaluateConditionals.feature.spec.ts,11,feature,conditional,N. Engine Evaluation,create,create,none,POST,/conditionals/evaluation,evaluateConditionals,happy-path,feature-1 - evaluateConditionals - base (1) +evaluateConditionals.variant.spec.ts,12,variant,conditional,N. Engine Evaluation,create,create,none,POST,/conditionals/evaluation,evaluateConditionals,data-driven,variant-1 - evaluateConditionals - path #1 +evaluateConditionals.variant.spec.ts,62,variant,conditional,N. Engine Evaluation,create,create,none,POST,/conditionals/evaluation,evaluateConditionals,data-driven,variant-2 - evaluateConditionals - bpmn #1 +evaluateDecision.feature.spec.ts,12,feature,decision-definition,C. Deployment Lifecycle,create,create,deployed-decision,POST,/decision-definitions/evaluation,evaluateDecision,happy-path,feature-1 - evaluateDecision - base (1) +evaluateDecision.feature.spec.ts,61,feature,decision-definition,C. Deployment Lifecycle,create,create,deployed-decision,POST,/decision-definitions/evaluation,evaluateDecision,data-driven,feature-2 - evaluateDecision - oneOf group0 Decision evaluation by ID (2) +evaluateDecision.feature.spec.ts,113,feature,decision-definition,C. Deployment Lifecycle,create,create,deployed-decision,POST,/decision-definitions/evaluation,evaluateDecision,data-driven,feature-3 - evaluateDecision - oneOf group0 Decision evaluation by key (3) +evaluateDecision.variant.spec.ts,12,variant,decision-definition,C. Deployment Lifecycle,create,create,deployed-decision,POST,/decision-definitions/evaluation,evaluateDecision,data-driven,variant-1 - evaluateDecision - dmn #1 +evaluateExpression.feature.spec.ts,11,feature,expression,N. Engine Evaluation,create,create,none,POST,/expression/evaluation,evaluateExpression,happy-path,feature-1 - evaluateExpression - base (1) +evaluateExpression.variant.spec.ts,11,variant,expression,N. Engine Evaluation,create,create,none,POST,/expression/evaluation,evaluateExpression,unlabeled,variant-1 - scenario +failJob.feature.spec.ts,9,feature,job,G. Job Lifecycle & Stats,update,mutate,running-process-instance-with-job,POST,/jobs/{jobKey}/failure,failJob,happy-path,feature-1 - failJob - base (1) +getAgentInstance.feature.spec.ts,13,feature,agent-instance,P. Agent-Instance (new in v2),get,observe-present-get,unknown,GET,/agent-instances/{agentInstanceKey},getAgentInstance,happy-path,feature-1 - getAgentInstance - base (1) +getAuditLog.feature.spec.ts,12,feature,audit-log,J/K/L. Observation-only,get,observe-present-get,any-prior-action,GET,/audit-logs/{auditLogKey},getAuditLog,happy-path,feature-1 - getAuditLog - base (1) +getAuthentication.feature.spec.ts,11,feature,authentication,O. System/Admin,get,observe-present-get,authenticated-user,GET,/authentication/me,getAuthentication,happy-path,feature-1 - getAuthentication - base (1) +getAuthorization.feature.spec.ts,12,feature,authorization,A. Entity Lifecycle (CRUD),get,observe-present-get,owner-entity-or-resource,GET,/authorizations/{authorizationKey},getAuthorization,happy-path,feature-1 - getAuthorization - base (1) +getBatchOperation.feature.spec.ts,12,feature,batch-operation,E. Batch-Operation Lifecycle,get,observe-present-get,running-process-instance(s),GET,/batch-operations/{batchOperationKey},getBatchOperation,happy-path|filter,feature-1 - getBatchOperation - base (1) +getDecisionDefinition.feature.spec.ts,13,feature,decision-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-decision,GET,/decision-definitions/{decisionDefinitionKey},getDecisionDefinition,happy-path,feature-1 - getDecisionDefinition - base (1) +getDecisionDefinitionXML.feature.spec.ts,10,feature,decision-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-decision,GET,/decision-definitions/{decisionDefinitionKey}/xml,getDecisionDefinitionXML,happy-path,feature-1 - getDecisionDefinitionXML - base (1) +getDecisionInstance.feature.spec.ts,13,feature,decision-instance,I. Decision-Instance Lifecycle,get,observe-present-get,deployed-decision,GET,/decision-instances/{decisionEvaluationInstanceKey},getDecisionInstance,happy-path,feature-1 - getDecisionInstance - base (1) +getDecisionRequirements.feature.spec.ts,13,feature,decision-requirements,C. Deployment Lifecycle,get,observe-present-get,deployed-drd,GET,/decision-requirements/{decisionRequirementsKey},getDecisionRequirements,happy-path,feature-1 - getDecisionRequirements - base (1) +getDecisionRequirementsXML.feature.spec.ts,10,feature,decision-requirements,C. Deployment Lifecycle,get,observe-present-get,deployed-drd,GET,/decision-requirements/{decisionRequirementsKey}/xml,getDecisionRequirementsXML,happy-path,feature-1 - getDecisionRequirementsXML - base (1) +getDocument.feature.spec.ts,9,feature,document,A. Entity Lifecycle (CRUD),get,observe-present-get,none,GET,/documents/{documentId},getDocument,happy-path,feature-1 - getDocument - base (1) +getElementInstance.feature.spec.ts,13,feature,element-instance,J/K/L. Observation-only,get,observe-present-get,running-process-instance,GET,/element-instances/{elementInstanceKey},getElementInstance,happy-path,feature-1 - getElementInstance - base (1) +getFormByKey.feature.spec.ts,13,feature,user-task,F. User-Task Lifecycle,get,observe-present-get,running-process-instance-with-user-task,GET,/forms/{formKey},getFormByKey,happy-path,feature-1 - getFormByKey - base (1) +getGlobalClusterVariable.feature.spec.ts,12,feature,cluster-variables,A. Entity Lifecycle (CRUD),get,observe-present-get,none,GET,/cluster-variables/global/{name},getGlobalClusterVariable,happy-path,feature-1 - getGlobalClusterVariable - base (1) +getGlobalJobStatistics.feature.spec.ts,12,feature,job,G. Job Lifecycle & Stats,get,observe-present-get,running-process-instance-with-job,GET,/jobs/statistics/global,getGlobalJobStatistics,happy-path,feature-1 - getGlobalJobStatistics - base (1) +getGlobalTaskListener.feature.spec.ts,12,feature,global-task-listener,A. Entity Lifecycle (CRUD),get,observe-present-get,none,GET,/global-task-listeners/{id},getGlobalTaskListener,happy-path,feature-1 - getGlobalTaskListener - base (1) +getGroup.feature.spec.ts,12,feature,group,A. Entity Lifecycle (CRUD),get,observe-present-get,none,GET,/groups/{groupId},getGroup,happy-path,feature-1 - getGroup - base (1) +getIncident.feature.spec.ts,12,feature,incident,H. Incident Lifecycle,get,observe-present-get,running-process-instance-with-failing-job,GET,/incidents/{incidentKey},getIncident,happy-path,feature-1 - getIncident - base (1) +getJobErrorStatistics.feature.spec.ts,11,feature,job,G. Job Lifecycle & Stats,get,observe-present-get,running-process-instance-with-job,POST,/jobs/statistics/errors,getJobErrorStatistics,happy-path|filter,feature-1 - getJobErrorStatistics - base (1) +getJobErrorStatistics.variant.spec.ts,12,variant,job,G. Job Lifecycle & Stats,get,observe-present-get,running-process-instance-with-job,POST,/jobs/statistics/errors,getJobErrorStatistics,data-driven|pagination-sort|filter,variant-1 - getJobErrorStatistics - path #1 +getJobTimeSeriesStatistics.feature.spec.ts,11,feature,job,G. Job Lifecycle & Stats,get,observe-present-get,running-process-instance-with-job,POST,/jobs/statistics/time-series,getJobTimeSeriesStatistics,happy-path|filter,feature-1 - getJobTimeSeriesStatistics - base (1) +getJobTimeSeriesStatistics.variant.spec.ts,12,variant,job,G. Job Lifecycle & Stats,get,observe-present-get,running-process-instance-with-job,POST,/jobs/statistics/time-series,getJobTimeSeriesStatistics,data-driven|pagination-sort|filter,variant-1 - getJobTimeSeriesStatistics - path #1 +getJobTypeStatistics.feature.spec.ts,11,feature,job,G. Job Lifecycle & Stats,get,observe-present-get,running-process-instance-with-job,POST,/jobs/statistics/by-types,getJobTypeStatistics,happy-path,feature-1 - getJobTypeStatistics - base (1) +getJobTypeStatistics.variant.spec.ts,12,variant,job,G. Job Lifecycle & Stats,get,observe-present-get,running-process-instance-with-job,POST,/jobs/statistics/by-types,getJobTypeStatistics,data-driven|pagination-sort,variant-1 - getJobTypeStatistics - path #1 +getJobWorkerStatistics.feature.spec.ts,11,feature,job,G. Job Lifecycle & Stats,get,observe-present-get,running-process-instance-with-job,POST,/jobs/statistics/by-workers,getJobWorkerStatistics,happy-path|filter,feature-1 - getJobWorkerStatistics - base (1) +getJobWorkerStatistics.variant.spec.ts,12,variant,job,G. Job Lifecycle & Stats,get,observe-present-get,running-process-instance-with-job,POST,/jobs/statistics/by-workers,getJobWorkerStatistics,data-driven|pagination-sort|filter,variant-1 - getJobWorkerStatistics - path #1 +getLicense.feature.spec.ts,11,feature,license,O. System/Admin,get,observe-present-get,none,GET,/license,getLicense,happy-path,feature-1 - getLicense - base (1) +getMappingRule.feature.spec.ts,12,feature,mapping-rule,A. Entity Lifecycle (CRUD),get,observe-present-get,none,GET,/mapping-rules/{mappingRuleId},getMappingRule,happy-path,feature-1 - getMappingRule - base (1) +getProcessDefinition.feature.spec.ts,13,feature,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,GET,/process-definitions/{processDefinitionKey},getProcessDefinition,happy-path,feature-1 - getProcessDefinition - base (1) +getProcessDefinitionInstanceStatistics.feature.spec.ts,11,feature,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/process-instances,getProcessDefinitionInstanceStatistics,happy-path,feature-1 - getProcessDefinitionInstanceStatistics - base (1) +getProcessDefinitionInstanceVersionStatistics.feature.spec.ts,12,feature,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/process-instances-by-version,getProcessDefinitionInstanceVersionStatistics,happy-path|filter,feature-1 - getProcessDefinitionInstanceVersionStatistics - base (1) +getProcessDefinitionInstanceVersionStatistics.variant.spec.ts,12,variant,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/process-instances-by-version,getProcessDefinitionInstanceVersionStatistics,data-driven|filter,variant-1 - getProcessDefinitionInstanceVersionStatistics - bpmn #1 +getProcessDefinitionMessageSubscriptionStatistics.feature.spec.ts,11,feature,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/message-subscriptions,getProcessDefinitionMessageSubscriptionStatistics,happy-path,feature-1 - getProcessDefinitionMessageSubscriptionStatistics - base (1) +getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts,13,variant,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/message-subscriptions,getProcessDefinitionMessageSubscriptionStatistics,data-driven|pagination-sort,variant-1 - getProcessDefinitionMessageSubscriptionStatistics - path #1 +getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts,72,variant,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/message-subscriptions,getProcessDefinitionMessageSubscriptionStatistics,data-driven|filter,variant-2 - getProcessDefinitionMessageSubscriptionStatistics - path #1 +getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts,133,variant,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/message-subscriptions,getProcessDefinitionMessageSubscriptionStatistics,data-driven|filter,variant-3 - getProcessDefinitionMessageSubscriptionStatistics - bpmn #1 +getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts,190,variant,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/message-subscriptions,getProcessDefinitionMessageSubscriptionStatistics,data-driven|filter,variant-4 - getProcessDefinitionMessageSubscriptionStatistics - bpmn #1 +getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts,268,variant,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/message-subscriptions,getProcessDefinitionMessageSubscriptionStatistics,data-driven|filter,variant-5 - getProcessDefinitionMessageSubscriptionStatistics - bpmn #1 +getProcessDefinitionStatistics.feature.spec.ts,12,feature,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,happy-path,feature-1 - getProcessDefinitionStatistics - base (1) +getProcessDefinitionStatistics.variant.spec.ts,12,variant,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,data-driven|filter,variant-1 - getProcessDefinitionStatistics - bpmn #1 +getProcessDefinitionStatistics.variant.spec.ts,86,variant,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,data-driven|filter,variant-2 - getProcessDefinitionStatistics - bpmn #1 +getProcessDefinitionStatistics.variant.spec.ts,160,variant,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,data-driven|filter,variant-3 - getProcessDefinitionStatistics - bpmn #1 +getProcessDefinitionStatistics.variant.spec.ts,214,variant,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,data-driven|filter,variant-4 - getProcessDefinitionStatistics - bpmn #1 +getProcessDefinitionStatistics.variant.spec.ts,268,variant,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,data-driven|filter,variant-5 - getProcessDefinitionStatistics - bpmn #1 +getProcessDefinitionStatistics.variant.spec.ts,346,variant,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,data-driven|filter,variant-6 - getProcessDefinitionStatistics - bpmn #1 +getProcessDefinitionStatistics.variant.spec.ts,424,variant,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,data-driven|filter,variant-7 - getProcessDefinitionStatistics - bpmn #1 +getProcessDefinitionStatistics.variant.spec.ts,482,variant,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,data-driven|filter,variant-8 - getProcessDefinitionStatistics - bpmn #1 +getProcessDefinitionXML.feature.spec.ts,10,feature,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,GET,/process-definitions/{processDefinitionKey}/xml,getProcessDefinitionXML,happy-path,feature-1 - getProcessDefinitionXML - base (1) +getProcessInstance.feature.spec.ts,13,feature,process-instance,D. Process-Instance Lifecycle & Ops,get,observe-present-get,deployed-process,GET,/process-instances/{processInstanceKey},getProcessInstance,happy-path,feature-1 - getProcessInstance - base (1) +getProcessInstanceCallHierarchy.feature.spec.ts,10,feature,process-instance,D. Process-Instance Lifecycle & Ops,get,observe-present-get,deployed-process,GET,/process-instances/{processInstanceKey}/call-hierarchy,getProcessInstanceCallHierarchy,happy-path,feature-1 - getProcessInstanceCallHierarchy - base (1) +getProcessInstanceSequenceFlows.feature.spec.ts,13,feature,process-instance,D. Process-Instance Lifecycle & Ops,get,observe-present-get,deployed-process,GET,/process-instances/{processInstanceKey}/sequence-flows,getProcessInstanceSequenceFlows,happy-path,feature-1 - getProcessInstanceSequenceFlows - base (1) +getProcessInstanceStatistics.feature.spec.ts,13,feature,process-instance,D. Process-Instance Lifecycle & Ops,get,observe-present-get,deployed-process,GET,/process-instances/{processInstanceKey}/statistics/element-instances,getProcessInstanceStatistics,happy-path,feature-1 - getProcessInstanceStatistics - base (1) +getProcessInstanceStatisticsByDefinition.feature.spec.ts,11,feature,incident,H. Incident Lifecycle,get,observe-present-get,running-process-instance-with-failing-job,POST,/incidents/statistics/process-instances-by-definition,getProcessInstanceStatisticsByDefinition,happy-path|filter,feature-1 - getProcessInstanceStatisticsByDefinition - base (1) +getProcessInstanceStatisticsByError.feature.spec.ts,11,feature,incident,H. Incident Lifecycle,get,observe-present-get,running-process-instance-with-failing-job,POST,/incidents/statistics/process-instances-by-error,getProcessInstanceStatisticsByError,happy-path,feature-1 - getProcessInstanceStatisticsByError - base (1) +getResource.feature.spec.ts,12,feature,resource,C. Deployment Lifecycle,get,observe-present-get,none,GET,/resources/{resourceKey},getResource,happy-path,feature-1 - getResource - base (1) +getResourceContent.feature.spec.ts,9,feature,resource,C. Deployment Lifecycle,get,observe-present-get,none,GET,/resources/{resourceKey}/content,getResourceContent,happy-path,feature-1 - getResourceContent - base (1) +getResourceContentBinary.feature.spec.ts,9,feature,resource,C. Deployment Lifecycle,get,observe-present-get,none,GET,/resources/{resourceKey}/content/binary,getResourceContentBinary,happy-path,feature-1 - getResourceContentBinary - base (1) +getRole.feature.spec.ts,12,feature,role,A. Entity Lifecycle (CRUD),get,observe-present-get,none,GET,/roles/{roleId},getRole,happy-path,feature-1 - getRole - base (1) +getStartProcessForm.feature.spec.ts,13,feature,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,GET,/process-definitions/{processDefinitionKey}/form,getStartProcessForm,happy-path,feature-1 - getStartProcessForm - base (1) +getStatus.feature.spec.ts,8,feature,status,O. System/Admin,get,observe-present-get,none,GET,/status,getStatus,happy-path,feature-1 - getStatus - base (1) +getSystemConfiguration.feature.spec.ts,11,feature,system,O. System/Admin,get,observe-present-get,none,GET,/system/configuration,getSystemConfiguration,happy-path,feature-1 - getSystemConfiguration - base (1) +getTenant.feature.spec.ts,12,feature,tenant,A. Entity Lifecycle (CRUD),get,observe-present-get,none,GET,/tenants/{tenantId},getTenant,happy-path,feature-1 - getTenant - base (1) +getTenantClusterVariable.feature.spec.ts,12,feature,cluster-variables,A. Entity Lifecycle (CRUD),get,observe-present-get,none,GET,/cluster-variables/tenants/{tenantId}/{name},getTenantClusterVariable,happy-path,feature-1 - getTenantClusterVariable - base (1) +getTopology.feature.spec.ts,11,feature,topology,O. System/Admin,get,observe-present-get,none,GET,/topology,getTopology,happy-path,feature-1 - getTopology - base (1) +getUsageMetrics.feature.spec.ts,12,feature,system,O. System/Admin,get,observe-present-get,none,GET,/system/usage-metrics,getUsageMetrics,happy-path,feature-1 - getUsageMetrics - base (1) +getUser.feature.spec.ts,12,feature,user,A. Entity Lifecycle (CRUD),get,observe-present-get,none,GET,/users/{username},getUser,happy-path,feature-1 - getUser - base (1) +getUserTask.feature.spec.ts,12,feature,user-task,F. User-Task Lifecycle,get,observe-present-get,running-process-instance-with-user-task,GET,/user-tasks/{userTaskKey},getUserTask,happy-path,feature-1 - getUserTask - base (1) +getUserTaskForm.feature.spec.ts,12,feature,user-task,F. User-Task Lifecycle,get,observe-present-get,running-process-instance-with-user-task,GET,/user-tasks/{userTaskKey}/form,getUserTaskForm,happy-path,feature-1 - getUserTaskForm - base (1) +getVariable.feature.spec.ts,12,feature,variable,J/K/L. Observation-only,get,observe-present-get,running-process-instance,GET,/variables/{variableKey},getVariable,happy-path,feature-1 - getVariable - base (1) +migrateProcessInstance.feature.spec.ts,9,feature,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/{processInstanceKey}/migration,migrateProcessInstance,happy-path,feature-1 - migrateProcessInstance - base (1) +migrateProcessInstance.variant.spec.ts,9,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/{processInstanceKey}/migration,migrateProcessInstance,data-driven,variant-1 - migrateProcessInstance - cycle/bpmn+bpmn #1 +migrateProcessInstance.variant.spec.ts,121,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/{processInstanceKey}/migration,migrateProcessInstance,data-driven,variant-2 - migrateProcessInstance - cycle/bpmn+bpmn #1 +migrateProcessInstancesBatchOperation.feature.spec.ts,12,feature,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,happy-path|filter,feature-1 - migrateProcessInstancesBatchOperation - base (1) +migrateProcessInstancesBatchOperation.variant.spec.ts,12,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven|filter,variant-1 - migrateProcessInstancesBatchOperation - bpmn #1 +migrateProcessInstancesBatchOperation.variant.spec.ts,66,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven|filter,variant-2 - migrateProcessInstancesBatchOperation - bpmn #1 +migrateProcessInstancesBatchOperation.variant.spec.ts,141,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven|filter,variant-3 - migrateProcessInstancesBatchOperation - bpmn #1 +migrateProcessInstancesBatchOperation.variant.spec.ts,216,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven|filter,variant-4 - migrateProcessInstancesBatchOperation - bpmn #1 +migrateProcessInstancesBatchOperation.variant.spec.ts,271,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven|filter,variant-5 - migrateProcessInstancesBatchOperation - bpmn #1 +migrateProcessInstancesBatchOperation.variant.spec.ts,326,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven|filter,variant-6 - migrateProcessInstancesBatchOperation - bpmn #1 +migrateProcessInstancesBatchOperation.variant.spec.ts,384,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven|filter,variant-7 - migrateProcessInstancesBatchOperation - bpmn #1 +migrateProcessInstancesBatchOperation.variant.spec.ts,463,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven|filter,variant-8 - migrateProcessInstancesBatchOperation - bpmn #1 +migrateProcessInstancesBatchOperation.variant.spec.ts,542,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven|filter,variant-9 - migrateProcessInstancesBatchOperation - bpmn #1 +migrateProcessInstancesBatchOperation.variant.spec.ts,601,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven|filter,variant-10 - migrateProcessInstancesBatchOperation - bpmn #1 +migrateProcessInstancesBatchOperation.variant.spec.ts,660,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven|filter,variant-11 - migrateProcessInstancesBatchOperation - bpmn #1 +migrateProcessInstancesBatchOperation.variant.spec.ts,720,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven|filter,variant-12 - migrateProcessInstancesBatchOperation - bpmn #1 +modifyProcessInstance.feature.spec.ts,9,feature,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/{processInstanceKey}/modification,modifyProcessInstance,happy-path,feature-1 - modifyProcessInstance - base (1) +modifyProcessInstance.variant.spec.ts,9,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/{processInstanceKey}/modification,modifyProcessInstance,data-driven,variant-1 - modifyProcessInstance - bpmn #1 +modifyProcessInstance.variant.spec.ts,102,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/{processInstanceKey}/modification,modifyProcessInstance,data-driven,variant-2 - modifyProcessInstance - bpmn #1 +modifyProcessInstance.variant.spec.ts,195,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/{processInstanceKey}/modification,modifyProcessInstance,data-driven,variant-3 - modifyProcessInstance - bpmn #1 +modifyProcessInstance.variant.spec.ts,290,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/{processInstanceKey}/modification,modifyProcessInstance,data-driven,variant-4 - modifyProcessInstance - bpmn #1 +modifyProcessInstance.variant.spec.ts,385,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/{processInstanceKey}/modification,modifyProcessInstance,data-driven,variant-5 - modifyProcessInstance - bpmn #1 +modifyProcessInstance.variant.spec.ts,478,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/{processInstanceKey}/modification,modifyProcessInstance,data-driven,variant-6 - modifyProcessInstance - bpmn #1 +modifyProcessInstance.variant.spec.ts,573,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/{processInstanceKey}/modification,modifyProcessInstance,data-driven,variant-7 - modifyProcessInstance - bpmn #1 +modifyProcessInstance.variant.spec.ts,666,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/{processInstanceKey}/modification,modifyProcessInstance,data-driven,variant-8 - modifyProcessInstance - bpmn #1 +modifyProcessInstancesBatchOperation.feature.spec.ts,11,feature,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,happy-path|filter,feature-1 - modifyProcessInstancesBatchOperation - base (1) +modifyProcessInstancesBatchOperation.variant.spec.ts,12,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven|filter,variant-1 - modifyProcessInstancesBatchOperation - bpmn #1 +modifyProcessInstancesBatchOperation.variant.spec.ts,65,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven|filter,variant-2 - modifyProcessInstancesBatchOperation - bpmn #1 +modifyProcessInstancesBatchOperation.variant.spec.ts,139,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven|filter,variant-3 - modifyProcessInstancesBatchOperation - bpmn #1 +modifyProcessInstancesBatchOperation.variant.spec.ts,213,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven|filter,variant-4 - modifyProcessInstancesBatchOperation - bpmn #1 +modifyProcessInstancesBatchOperation.variant.spec.ts,315,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven|filter,variant-5 - modifyProcessInstancesBatchOperation - bpmn #1 +modifyProcessInstancesBatchOperation.variant.spec.ts,417,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven|filter,variant-6 - modifyProcessInstancesBatchOperation - bpmn #1 +modifyProcessInstancesBatchOperation.variant.spec.ts,474,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven|filter,variant-7 - modifyProcessInstancesBatchOperation - bpmn #1 +modifyProcessInstancesBatchOperation.variant.spec.ts,552,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven|filter,variant-8 - modifyProcessInstancesBatchOperation - bpmn #1 +modifyProcessInstancesBatchOperation.variant.spec.ts,630,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven|filter,variant-9 - modifyProcessInstancesBatchOperation - bpmn #1 +modifyProcessInstancesBatchOperation.variant.spec.ts,736,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven|filter,variant-10 - modifyProcessInstancesBatchOperation - bpmn #1 +modifyProcessInstancesBatchOperation.variant.spec.ts,842,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven|filter,variant-11 - modifyProcessInstancesBatchOperation - bpmn #1 +modifyProcessInstancesBatchOperation.variant.spec.ts,946,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven|filter,variant-12 - modifyProcessInstancesBatchOperation - bpmn #1 +pinClock.feature.spec.ts,8,feature,clock,O. System/Admin,create,create,none,PUT,/clock,pinClock,happy-path,feature-1 - pinClock - base (1) +publishMessage.feature.spec.ts,11,feature,message,M. Messaging/Signals,create,create,deployed-process-with-message-catch-event,POST,/messages/publication,publishMessage,happy-path,feature-1 - publishMessage - base (1) +publishMessage.variant.spec.ts,11,variant,message,M. Messaging/Signals,create,create,deployed-process-with-message-catch-event,POST,/messages/publication,publishMessage,data-driven,variant-1 - publishMessage - path #1 +resetClock.feature.spec.ts,8,feature,clock,O. System/Admin,update,mutate,none,POST,/clock/reset,resetClock,happy-path,feature-1 - resetClock - base (1) +resolveIncident.feature.spec.ts,8,feature,incident,H. Incident Lifecycle,update,mutate,running-process-instance-with-failing-job,POST,/incidents/{incidentKey}/resolution,resolveIncident,happy-path,feature-1 - resolveIncident - base (1) +resolveIncidentsBatchOperation.feature.spec.ts,11,feature,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,happy-path|filter,feature-1 - resolveIncidentsBatchOperation - base (1) +resolveIncidentsBatchOperation.variant.spec.ts,12,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven|filter,variant-1 - resolveIncidentsBatchOperation - bpmn #1 +resolveIncidentsBatchOperation.variant.spec.ts,64,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven|filter,variant-2 - resolveIncidentsBatchOperation - bpmn #1 +resolveIncidentsBatchOperation.variant.spec.ts,137,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven|filter,variant-3 - resolveIncidentsBatchOperation - bpmn #1 +resolveIncidentsBatchOperation.variant.spec.ts,210,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven|filter,variant-4 - resolveIncidentsBatchOperation - bpmn #1 +resolveIncidentsBatchOperation.variant.spec.ts,311,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven|filter,variant-5 - resolveIncidentsBatchOperation - bpmn #1 +resolveIncidentsBatchOperation.variant.spec.ts,412,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven|filter,variant-6 - resolveIncidentsBatchOperation - bpmn #1 +resolveIncidentsBatchOperation.variant.spec.ts,468,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven|filter,variant-7 - resolveIncidentsBatchOperation - bpmn #1 +resolveIncidentsBatchOperation.variant.spec.ts,545,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven|filter,variant-8 - resolveIncidentsBatchOperation - bpmn #1 +resolveIncidentsBatchOperation.variant.spec.ts,622,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven|filter,variant-9 - resolveIncidentsBatchOperation - bpmn #1 +resolveIncidentsBatchOperation.variant.spec.ts,727,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven|filter,variant-10 - resolveIncidentsBatchOperation - bpmn #1 +resolveProcessInstanceIncidents.feature.spec.ts,12,feature,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/{processInstanceKey}/incident-resolution,resolveProcessInstanceIncidents,happy-path,feature-1 - resolveProcessInstanceIncidents - base (1) +resumeBatchOperation.feature.spec.ts,8,feature,batch-operation,E. Batch-Operation Lifecycle,update,mutate,running-process-instance(s),POST,/batch-operations/{batchOperationKey}/resumption,resumeBatchOperation,happy-path|filter,feature-1 - resumeBatchOperation - base (1) +searchAgentInstances.feature.spec.ts,12,feature,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,happy-path,feature-1 - searchAgentInstances - base (1) +searchAgentInstances.feature.spec.ts,37,feature,agent-instance,P. Agent-Instance (new in v2),search,observe-absence,unknown,POST,/agent-instances/search,searchAgentInstances,observe-absence,feature-2 - searchAgentInstances - negative empty (2) +searchAgentInstances.variant.spec.ts,13,variant,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,data-driven|filter,variant-1 - searchAgentInstances - bpmn #1 +searchAgentInstances.variant.spec.ts,155,variant,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,data-driven|filter,variant-2 - searchAgentInstances - bpmn #1 +searchAgentInstances.variant.spec.ts,256,variant,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,data-driven|filter,variant-3 - searchAgentInstances - bpmn #1 +searchAgentInstances.variant.spec.ts,329,variant,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,data-driven|filter,variant-4 - searchAgentInstances - bpmn #1 +searchAgentInstances.variant.spec.ts,381,variant,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,data-driven|filter,variant-5 - searchAgentInstances - bpmn #1 +searchAgentInstances.variant.spec.ts,482,variant,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,data-driven|pagination-sort,variant-6 - searchAgentInstances - path #1 +searchAgentInstances.variant.spec.ts,546,variant,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,data-driven|pagination-sort,variant-7 - searchAgentInstances - path #1 +searchAuditLogs.feature.spec.ts,12,feature,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,happy-path,feature-1 - searchAuditLogs - base (1) +searchAuditLogs.feature.spec.ts,35,feature,audit-log,J/K/L. Observation-only,search,observe-absence,any-prior-action,POST,/audit-logs/search,searchAuditLogs,observe-absence,feature-2 - searchAuditLogs - negative empty (2) +searchAuditLogs.variant.spec.ts,13,variant,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,unlabeled|filter,variant-1 - scenario +searchAuditLogs.variant.spec.ts,42,variant,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven|filter,variant-2 - searchAuditLogs - bpmn #1 +searchAuditLogs.variant.spec.ts,92,variant,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven|filter,variant-3 - searchAuditLogs - bpmn #1 +searchAuditLogs.variant.spec.ts,163,variant,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven|filter,variant-4 - searchAuditLogs - bpmn #1 +searchAuditLogs.variant.spec.ts,265,variant,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,unlabeled|filter,variant-5 - scenario +searchAuditLogs.variant.spec.ts,293,variant,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,unlabeled|filter,variant-6 - scenario +searchAuditLogs.variant.spec.ts,322,variant,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven|filter,variant-7 - searchAuditLogs - form #1 +searchAuditLogs.variant.spec.ts,371,variant,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven|filter,variant-8 - searchAuditLogs - bpmn #1 +searchAuditLogs.variant.spec.ts,421,variant,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven|filter,variant-9 - searchAuditLogs - bpmn #1 +searchAuditLogs.variant.spec.ts,523,variant,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven|filter,variant-10 - searchAuditLogs - drd #1 +searchAuditLogs.variant.spec.ts,572,variant,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven|filter,variant-11 - searchAuditLogs - dmn #1 +searchAuditLogs.variant.spec.ts,621,variant,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven|filter,variant-12 - searchAuditLogs - dmn #1 +searchAuditLogs.variant.spec.ts,697,variant,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,unlabeled|filter,variant-13 - scenario +searchAuditLogs.variant.spec.ts,725,variant,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven|pagination-sort,variant-14 - searchAuditLogs - path #1 +searchAuditLogs.variant.spec.ts,777,variant,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven|pagination-sort,variant-15 - searchAuditLogs - path #1 +searchAuthorizations.feature.spec.ts,12,feature,authorization,A. Entity Lifecycle (CRUD),search,observe-present-search,owner-entity-or-resource,POST,/authorizations/search,searchAuthorizations,happy-path,feature-1 - searchAuthorizations - base (1) +searchAuthorizations.feature.spec.ts,37,feature,authorization,A. Entity Lifecycle (CRUD),search,observe-absence,owner-entity-or-resource,POST,/authorizations/search,searchAuthorizations,observe-absence,feature-2 - searchAuthorizations - negative empty (2) +searchAuthorizations.variant.spec.ts,12,variant,authorization,A. Entity Lifecycle (CRUD),search,observe-present-search,owner-entity-or-resource,POST,/authorizations/search,searchAuthorizations,data-driven|pagination-sort,variant-1 - searchAuthorizations - path #1 +searchAuthorizations.variant.spec.ts,66,variant,authorization,A. Entity Lifecycle (CRUD),search,observe-present-search,owner-entity-or-resource,POST,/authorizations/search,searchAuthorizations,data-driven|pagination-sort,variant-2 - searchAuthorizations - path #1 +searchBatchOperationItems.feature.spec.ts,12,feature,batch-operation-item,E. Batch-Operation Lifecycle,search,observe-present-search,running-batch-operation,POST,/batch-operation-items/search,searchBatchOperationItems,happy-path,feature-1 - searchBatchOperationItems - base (1) +searchBatchOperationItems.feature.spec.ts,37,feature,batch-operation-item,E. Batch-Operation Lifecycle,search,observe-absence,running-batch-operation,POST,/batch-operation-items/search,searchBatchOperationItems,observe-absence,feature-2 - searchBatchOperationItems - negative empty (2) +searchBatchOperationItems.variant.spec.ts,13,variant,batch-operation-item,E. Batch-Operation Lifecycle,search,observe-present-search,running-batch-operation,POST,/batch-operation-items/search,searchBatchOperationItems,data-driven|filter,variant-1 - searchBatchOperationItems - bpmn #1 +searchBatchOperationItems.variant.spec.ts,84,variant,batch-operation-item,E. Batch-Operation Lifecycle,search,observe-present-search,running-batch-operation,POST,/batch-operation-items/search,searchBatchOperationItems,data-driven|pagination-sort,variant-2 - searchBatchOperationItems - path #1 +searchBatchOperationItems.variant.spec.ts,138,variant,batch-operation-item,E. Batch-Operation Lifecycle,search,observe-present-search,running-batch-operation,POST,/batch-operation-items/search,searchBatchOperationItems,data-driven|pagination-sort,variant-3 - searchBatchOperationItems - path #1 +searchBatchOperations.feature.spec.ts,12,feature,batch-operation,E. Batch-Operation Lifecycle,search,observe-present-search,running-process-instance(s),POST,/batch-operations/search,searchBatchOperations,happy-path,feature-1 - searchBatchOperations - base (1) +searchBatchOperations.feature.spec.ts,37,feature,batch-operation,E. Batch-Operation Lifecycle,search,observe-absence,running-process-instance(s),POST,/batch-operations/search,searchBatchOperations,observe-absence,feature-2 - searchBatchOperations - negative empty (2) +searchBatchOperations.variant.spec.ts,12,variant,batch-operation,E. Batch-Operation Lifecycle,search,observe-present-search,running-process-instance(s),POST,/batch-operations/search,searchBatchOperations,data-driven|pagination-sort,variant-1 - searchBatchOperations - path #1 +searchBatchOperations.variant.spec.ts,66,variant,batch-operation,E. Batch-Operation Lifecycle,search,observe-present-search,running-process-instance(s),POST,/batch-operations/search,searchBatchOperations,data-driven|pagination-sort,variant-2 - searchBatchOperations - path #1 +searchClientsForGroup.feature.spec.ts,12,feature,group,B. Membership/Association,search,observe-present-search,group + client,POST,/groups/{groupId}/clients/search,searchClientsForGroup,happy-path,feature-1 - searchClientsForGroup - base (1) +searchClientsForGroup.variant.spec.ts,12,variant,group,B. Membership/Association,search,observe-present-search,group + client,POST,/groups/{groupId}/clients/search,searchClientsForGroup,data-driven|pagination-sort,variant-1 - searchClientsForGroup - path #1 +searchClientsForGroup.variant.spec.ts,86,variant,group,B. Membership/Association,search,observe-present-search,group + client,POST,/groups/{groupId}/clients/search,searchClientsForGroup,data-driven|pagination-sort,variant-2 - searchClientsForGroup - path #1 +searchClientsForRole.feature.spec.ts,12,feature,role,B. Membership/Association,search,observe-present-search,role + client,POST,/roles/{roleId}/clients/search,searchClientsForRole,happy-path,feature-1 - searchClientsForRole - base (1) +searchClientsForRole.variant.spec.ts,12,variant,role,B. Membership/Association,search,observe-present-search,role + client,POST,/roles/{roleId}/clients/search,searchClientsForRole,data-driven|pagination-sort,variant-1 - searchClientsForRole - path #1 +searchClientsForRole.variant.spec.ts,86,variant,role,B. Membership/Association,search,observe-present-search,role + client,POST,/roles/{roleId}/clients/search,searchClientsForRole,data-driven|pagination-sort,variant-2 - searchClientsForRole - path #1 +searchClientsForTenant.feature.spec.ts,12,feature,tenant,B. Membership/Association,search,observe-present-search,tenant + client,POST,/tenants/{tenantId}/clients/search,searchClientsForTenant,happy-path,feature-1 - searchClientsForTenant - base (1) +searchClientsForTenant.variant.spec.ts,12,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + client,POST,/tenants/{tenantId}/clients/search,searchClientsForTenant,data-driven|pagination-sort,variant-1 - searchClientsForTenant - path #1 +searchClientsForTenant.variant.spec.ts,88,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + client,POST,/tenants/{tenantId}/clients/search,searchClientsForTenant,data-driven|pagination-sort,variant-2 - searchClientsForTenant - path #1 +searchClusterVariables.feature.spec.ts,12,feature,cluster-variables,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/cluster-variables/search,searchClusterVariables,happy-path,feature-1 - searchClusterVariables - base (1) +searchClusterVariables.feature.spec.ts,37,feature,cluster-variables,A. Entity Lifecycle (CRUD),search,observe-absence,none,POST,/cluster-variables/search,searchClusterVariables,observe-absence,feature-2 - searchClusterVariables - negative empty (2) +searchClusterVariables.variant.spec.ts,12,variant,cluster-variables,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/cluster-variables/search,searchClusterVariables,data-driven|pagination-sort,variant-1 - searchClusterVariables - path #1 +searchClusterVariables.variant.spec.ts,66,variant,cluster-variables,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/cluster-variables/search,searchClusterVariables,data-driven|pagination-sort,variant-2 - searchClusterVariables - path #1 +searchCorrelatedMessageSubscriptions.feature.spec.ts,12,feature,correlated-message-subscription,M. Messaging/Signals,search,observe-present-search,deployed-process-with-message-catch-event + correlated-message,POST,/correlated-message-subscriptions/search,searchCorrelatedMessageSubscriptions,happy-path,feature-1 - searchCorrelatedMessageSubscriptions - base (1) +searchCorrelatedMessageSubscriptions.feature.spec.ts,38,feature,correlated-message-subscription,M. Messaging/Signals,search,observe-absence,deployed-process-with-message-catch-event + correlated-message,POST,/correlated-message-subscriptions/search,searchCorrelatedMessageSubscriptions,observe-absence,feature-2 - searchCorrelatedMessageSubscriptions - negative empty (2) +searchCorrelatedMessageSubscriptions.variant.spec.ts,13,variant,correlated-message-subscription,M. Messaging/Signals,search,observe-present-search,deployed-process-with-message-catch-event + correlated-message,POST,/correlated-message-subscriptions/search,searchCorrelatedMessageSubscriptions,data-driven|filter,variant-1 - searchCorrelatedMessageSubscriptions - bpmn #1 +searchCorrelatedMessageSubscriptions.variant.spec.ts,117,variant,correlated-message-subscription,M. Messaging/Signals,search,observe-present-search,deployed-process-with-message-catch-event + correlated-message,POST,/correlated-message-subscriptions/search,searchCorrelatedMessageSubscriptions,data-driven|filter,variant-2 - searchCorrelatedMessageSubscriptions - bpmn #1 +searchCorrelatedMessageSubscriptions.variant.spec.ts,170,variant,correlated-message-subscription,M. Messaging/Signals,search,observe-present-search,deployed-process-with-message-catch-event + correlated-message,POST,/correlated-message-subscriptions/search,searchCorrelatedMessageSubscriptions,data-driven|filter,variant-3 - searchCorrelatedMessageSubscriptions - bpmn #1 +searchCorrelatedMessageSubscriptions.variant.spec.ts,244,variant,correlated-message-subscription,M. Messaging/Signals,search,observe-present-search,deployed-process-with-message-catch-event + correlated-message,POST,/correlated-message-subscriptions/search,searchCorrelatedMessageSubscriptions,data-driven|filter,variant-4 - searchCorrelatedMessageSubscriptions - path #1 +searchCorrelatedMessageSubscriptions.variant.spec.ts,305,variant,correlated-message-subscription,M. Messaging/Signals,search,observe-present-search,deployed-process-with-message-catch-event + correlated-message,POST,/correlated-message-subscriptions/search,searchCorrelatedMessageSubscriptions,data-driven|pagination-sort,variant-5 - searchCorrelatedMessageSubscriptions - path #1 +searchCorrelatedMessageSubscriptions.variant.spec.ts,360,variant,correlated-message-subscription,M. Messaging/Signals,search,observe-present-search,deployed-process-with-message-catch-event + correlated-message,POST,/correlated-message-subscriptions/search,searchCorrelatedMessageSubscriptions,data-driven|pagination-sort,variant-6 - searchCorrelatedMessageSubscriptions - path #1 +searchDecisionDefinitions.feature.spec.ts,12,feature,decision-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-definitions/search,searchDecisionDefinitions,happy-path,feature-1 - searchDecisionDefinitions - base (1) +searchDecisionDefinitions.feature.spec.ts,37,feature,decision-definition,C. Deployment Lifecycle,search,observe-absence,deployed-decision,POST,/decision-definitions/search,searchDecisionDefinitions,observe-absence,feature-2 - searchDecisionDefinitions - negative empty (2) +searchDecisionDefinitions.variant.spec.ts,13,variant,decision-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-definitions/search,searchDecisionDefinitions,data-driven|filter,variant-1 - searchDecisionDefinitions - dmn #1 +searchDecisionDefinitions.variant.spec.ts,64,variant,decision-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-definitions/search,searchDecisionDefinitions,data-driven|filter,variant-2 - searchDecisionDefinitions - path #1 +searchDecisionDefinitions.variant.spec.ts,117,variant,decision-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-definitions/search,searchDecisionDefinitions,data-driven|filter,variant-3 - searchDecisionDefinitions - dmn #1 +searchDecisionDefinitions.variant.spec.ts,168,variant,decision-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-definitions/search,searchDecisionDefinitions,data-driven|filter,variant-4 - searchDecisionDefinitions - drd #1 +searchDecisionDefinitions.variant.spec.ts,219,variant,decision-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-definitions/search,searchDecisionDefinitions,data-driven|pagination-sort,variant-5 - searchDecisionDefinitions - path #1 +searchDecisionDefinitions.variant.spec.ts,273,variant,decision-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-definitions/search,searchDecisionDefinitions,data-driven|pagination-sort,variant-6 - searchDecisionDefinitions - path #1 +searchDecisionInstances.feature.spec.ts,12,feature,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,happy-path,feature-1 - searchDecisionInstances - base (1) +searchDecisionInstances.feature.spec.ts,37,feature,decision-instance,I. Decision-Instance Lifecycle,search,observe-absence,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,observe-absence,feature-2 - searchDecisionInstances - negative empty (2) +searchDecisionInstances.variant.spec.ts,13,variant,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven|filter,variant-1 - searchDecisionInstances - dmn #1 +searchDecisionInstances.variant.spec.ts,92,variant,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven|filter,variant-2 - searchDecisionInstances - dmn #1 +searchDecisionInstances.variant.spec.ts,143,variant,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven|filter,variant-3 - searchDecisionInstances - path #1 +searchDecisionInstances.variant.spec.ts,195,variant,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven|filter,variant-4 - searchDecisionInstances - dmn #1 +searchDecisionInstances.variant.spec.ts,274,variant,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven|filter,variant-5 - searchDecisionInstances - bpmn #1 +searchDecisionInstances.variant.spec.ts,326,variant,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven|filter,variant-6 - searchDecisionInstances - bpmn #1 +searchDecisionInstances.variant.spec.ts,399,variant,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven|filter,variant-7 - searchDecisionInstances - dmn #1 +searchDecisionInstances.variant.spec.ts,450,variant,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven|filter,variant-8 - searchDecisionInstances - bpmn #1 +searchDecisionInstances.variant.spec.ts,552,variant,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven|filter,variant-9 - searchDecisionInstances - dmn #1 +searchDecisionInstances.variant.spec.ts,603,variant,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven|filter,variant-10 - searchDecisionInstances - drd #1 +searchDecisionInstances.variant.spec.ts,654,variant,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven|pagination-sort,variant-11 - searchDecisionInstances - path #1 +searchDecisionInstances.variant.spec.ts,708,variant,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven|pagination-sort,variant-12 - searchDecisionInstances - path #1 +searchDecisionRequirements.feature.spec.ts,12,feature,decision-requirements,C. Deployment Lifecycle,search,observe-present-search,deployed-drd,POST,/decision-requirements/search,searchDecisionRequirements,happy-path,feature-1 - searchDecisionRequirements - base (1) +searchDecisionRequirements.feature.spec.ts,37,feature,decision-requirements,C. Deployment Lifecycle,search,observe-absence,deployed-drd,POST,/decision-requirements/search,searchDecisionRequirements,observe-absence,feature-2 - searchDecisionRequirements - negative empty (2) +searchDecisionRequirements.variant.spec.ts,13,variant,decision-requirements,C. Deployment Lifecycle,search,observe-present-search,deployed-drd,POST,/decision-requirements/search,searchDecisionRequirements,data-driven|filter,variant-1 - searchDecisionRequirements - drd #1 +searchDecisionRequirements.variant.spec.ts,64,variant,decision-requirements,C. Deployment Lifecycle,search,observe-present-search,deployed-drd,POST,/decision-requirements/search,searchDecisionRequirements,data-driven|filter,variant-2 - searchDecisionRequirements - path #1 +searchDecisionRequirements.variant.spec.ts,116,variant,decision-requirements,C. Deployment Lifecycle,search,observe-present-search,deployed-drd,POST,/decision-requirements/search,searchDecisionRequirements,data-driven|pagination-sort,variant-3 - searchDecisionRequirements - path #1 +searchDecisionRequirements.variant.spec.ts,170,variant,decision-requirements,C. Deployment Lifecycle,search,observe-present-search,deployed-drd,POST,/decision-requirements/search,searchDecisionRequirements,data-driven|pagination-sort,variant-4 - searchDecisionRequirements - path #1 +searchElementInstanceIncidents.feature.spec.ts,13,feature,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/{elementInstanceKey}/incidents/search,searchElementInstanceIncidents,happy-path,feature-1 - searchElementInstanceIncidents - base (1) +searchElementInstanceIncidents.variant.spec.ts,13,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/{elementInstanceKey}/incidents/search,searchElementInstanceIncidents,data-driven|filter,variant-1 - searchElementInstanceIncidents - bpmn #1 +searchElementInstanceIncidents.variant.spec.ts,122,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/{elementInstanceKey}/incidents/search,searchElementInstanceIncidents,data-driven|filter,variant-2 - searchElementInstanceIncidents - bpmn #1 +searchElementInstanceIncidents.variant.spec.ts,231,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/{elementInstanceKey}/incidents/search,searchElementInstanceIncidents,data-driven|filter,variant-3 - searchElementInstanceIncidents - bpmn #1 +searchElementInstanceIncidents.variant.spec.ts,340,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/{elementInstanceKey}/incidents/search,searchElementInstanceIncidents,data-driven|filter,variant-4 - searchElementInstanceIncidents - bpmn #1 +searchElementInstanceIncidents.variant.spec.ts,449,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/{elementInstanceKey}/incidents/search,searchElementInstanceIncidents,data-driven|pagination-sort,variant-5 - searchElementInstanceIncidents - bpmn #1 +searchElementInstanceIncidents.variant.spec.ts,584,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/{elementInstanceKey}/incidents/search,searchElementInstanceIncidents,data-driven|pagination-sort,variant-6 - searchElementInstanceIncidents - bpmn #1 +searchElementInstances.feature.spec.ts,12,feature,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,happy-path,feature-1 - searchElementInstances - base (1) +searchElementInstances.feature.spec.ts,37,feature,element-instance,J/K/L. Observation-only,search,observe-absence,running-process-instance,POST,/element-instances/search,searchElementInstances,observe-absence,feature-2 - searchElementInstances - negative empty (2) +searchElementInstances.feature.spec.ts,63,feature,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,feature-3 - searchElementInstances - oneOf filter.elementInstanceScopeKey variant1 (3) +searchElementInstances.feature.spec.ts,91,feature,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,feature-4 - searchElementInstances - oneOf filter.elementInstanceScopeKey variant2 (4) +searchElementInstances.variant.spec.ts,13,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven|filter,variant-1 - searchElementInstances - bpmn #1 +searchElementInstances.variant.spec.ts,63,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven|filter,variant-2 - searchElementInstances - bpmn #1 +searchElementInstances.variant.spec.ts,162,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven|filter,variant-3 - searchElementInstances - path #1 +searchElementInstances.variant.spec.ts,213,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven|filter,variant-4 - searchElementInstances - bpmn #1 +searchElementInstances.variant.spec.ts,312,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven|filter,variant-5 - searchElementInstances - bpmn #1 +searchElementInstances.variant.spec.ts,382,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven|filter,variant-6 - searchElementInstances - bpmn #1 +searchElementInstances.variant.spec.ts,432,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven|filter,variant-7 - searchElementInstances - bpmn #1 +searchElementInstances.variant.spec.ts,594,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven|filter,variant-8 - searchElementInstances - bpmn #1 +searchElementInstances.variant.spec.ts,693,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven|pagination-sort,variant-9 - searchElementInstances - path #1 +searchElementInstances.variant.spec.ts,747,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven|pagination-sort,variant-10 - searchElementInstances - path #1 +searchGlobalTaskListeners.feature.spec.ts,12,feature,global-task-listener,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/global-task-listeners/search,searchGlobalTaskListeners,happy-path,feature-1 - searchGlobalTaskListeners - base (1) +searchGlobalTaskListeners.feature.spec.ts,37,feature,global-task-listener,A. Entity Lifecycle (CRUD),search,observe-absence,none,POST,/global-task-listeners/search,searchGlobalTaskListeners,observe-absence,feature-2 - searchGlobalTaskListeners - negative empty (2) +searchGlobalTaskListeners.variant.spec.ts,12,variant,global-task-listener,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/global-task-listeners/search,searchGlobalTaskListeners,data-driven|pagination-sort,variant-1 - searchGlobalTaskListeners - path #1 +searchGlobalTaskListeners.variant.spec.ts,66,variant,global-task-listener,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/global-task-listeners/search,searchGlobalTaskListeners,data-driven|pagination-sort,variant-2 - searchGlobalTaskListeners - path #1 +searchGroupIdsForTenant.feature.spec.ts,12,feature,tenant,B. Membership/Association,search,observe-present-search,tenant + group-id,POST,/tenants/{tenantId}/groups/search,searchGroupIdsForTenant,happy-path,feature-1 - searchGroupIdsForTenant - base (1) +searchGroupIdsForTenant.variant.spec.ts,12,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + group-id,POST,/tenants/{tenantId}/groups/search,searchGroupIdsForTenant,data-driven|pagination-sort,variant-1 - searchGroupIdsForTenant - path #1 +searchGroupIdsForTenant.variant.spec.ts,88,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + group-id,POST,/tenants/{tenantId}/groups/search,searchGroupIdsForTenant,data-driven|pagination-sort,variant-2 - searchGroupIdsForTenant - path #1 +searchGroups.feature.spec.ts,12,feature,group,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/groups/search,searchGroups,happy-path,feature-1 - searchGroups - base (1) +searchGroups.feature.spec.ts,35,feature,group,A. Entity Lifecycle (CRUD),search,observe-absence,none,POST,/groups/search,searchGroups,observe-absence,feature-2 - searchGroups - negative empty (2) +searchGroups.variant.spec.ts,12,variant,group,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/groups/search,searchGroups,data-driven|pagination-sort,variant-1 - searchGroups - path #1 +searchGroups.variant.spec.ts,64,variant,group,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/groups/search,searchGroups,data-driven|pagination-sort,variant-2 - searchGroups - path #1 +searchGroupsForRole.feature.spec.ts,12,feature,role,B. Membership/Association,search,observe-present-search,role + group,POST,/roles/{roleId}/groups/search,searchGroupsForRole,happy-path,feature-1 - searchGroupsForRole - base (1) +searchGroupsForRole.variant.spec.ts,12,variant,role,B. Membership/Association,search,observe-present-search,role + group,POST,/roles/{roleId}/groups/search,searchGroupsForRole,data-driven|pagination-sort,variant-1 - searchGroupsForRole - path #1 +searchGroupsForRole.variant.spec.ts,86,variant,role,B. Membership/Association,search,observe-present-search,role + group,POST,/roles/{roleId}/groups/search,searchGroupsForRole,data-driven|pagination-sort,variant-2 - searchGroupsForRole - path #1 +searchIncidents.feature.spec.ts,12,feature,incident,H. Incident Lifecycle,search,observe-present-search,running-process-instance-with-failing-job,POST,/incidents/search,searchIncidents,happy-path,feature-1 - searchIncidents - base (1) +searchIncidents.feature.spec.ts,35,feature,incident,H. Incident Lifecycle,search,observe-absence,running-process-instance-with-failing-job,POST,/incidents/search,searchIncidents,observe-absence,feature-2 - searchIncidents - negative empty (2) +searchIncidents.variant.spec.ts,13,variant,incident,H. Incident Lifecycle,search,observe-present-search,running-process-instance-with-failing-job,POST,/incidents/search,searchIncidents,data-driven|filter,variant-1 - searchIncidents - bpmn #1 +searchIncidents.variant.spec.ts,63,variant,incident,H. Incident Lifecycle,search,observe-present-search,running-process-instance-with-failing-job,POST,/incidents/search,searchIncidents,data-driven|filter,variant-2 - searchIncidents - bpmn #1 +searchIncidents.variant.spec.ts,134,variant,incident,H. Incident Lifecycle,search,observe-present-search,running-process-instance-with-failing-job,POST,/incidents/search,searchIncidents,data-driven|filter,variant-3 - searchIncidents - bpmn #1 +searchIncidents.variant.spec.ts,236,variant,incident,H. Incident Lifecycle,search,observe-present-search,running-process-instance-with-failing-job,POST,/incidents/search,searchIncidents,data-driven|filter,variant-4 - searchIncidents - bpmn #1 +searchIncidents.variant.spec.ts,338,variant,incident,H. Incident Lifecycle,search,observe-present-search,running-process-instance-with-failing-job,POST,/incidents/search,searchIncidents,data-driven|pagination-sort,variant-5 - searchIncidents - path #1 +searchIncidents.variant.spec.ts,390,variant,incident,H. Incident Lifecycle,search,observe-present-search,running-process-instance-with-failing-job,POST,/incidents/search,searchIncidents,data-driven|pagination-sort,variant-6 - searchIncidents - path #1 +searchJobs.feature.spec.ts,13,feature,job,G. Job Lifecycle & Stats,search,observe-present-search,running-process-instance-with-job,POST,/jobs/search,searchJobs,happy-path,feature-1 - searchJobs - base (1) +searchJobs.feature.spec.ts,80,feature,job,G. Job Lifecycle & Stats,search,observe-absence,running-process-instance-with-job,POST,/jobs/search,searchJobs,observe-absence,feature-2 - searchJobs - negative empty (2) +searchJobs.variant.spec.ts,13,variant,job,G. Job Lifecycle & Stats,search,observe-present-search,running-process-instance-with-job,POST,/jobs/search,searchJobs,data-driven|filter,variant-1 - searchJobs - bpmn #1 +searchJobs.variant.spec.ts,116,variant,job,G. Job Lifecycle & Stats,search,observe-present-search,running-process-instance-with-job,POST,/jobs/search,searchJobs,data-driven|filter,variant-2 - searchJobs - bpmn #1 +searchJobs.variant.spec.ts,219,variant,job,G. Job Lifecycle & Stats,search,observe-present-search,running-process-instance-with-job,POST,/jobs/search,searchJobs,data-driven|filter,variant-3 - searchJobs - path #1 +searchJobs.variant.spec.ts,293,variant,job,G. Job Lifecycle & Stats,search,observe-present-search,running-process-instance-with-job,POST,/jobs/search,searchJobs,data-driven|filter,variant-4 - searchJobs - bpmn #1 +searchJobs.variant.spec.ts,366,variant,job,G. Job Lifecycle & Stats,search,observe-present-search,running-process-instance-with-job,POST,/jobs/search,searchJobs,data-driven|pagination-sort,variant-5 - searchJobs - path #1 +searchJobs.variant.spec.ts,462,variant,job,G. Job Lifecycle & Stats,search,observe-present-search,running-process-instance-with-job,POST,/jobs/search,searchJobs,data-driven|pagination-sort,variant-6 - searchJobs - path #1 +searchMappingRule.feature.spec.ts,12,feature,mapping-rule,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/mapping-rules/search,searchMappingRule,happy-path,feature-1 - searchMappingRule - base (1) +searchMappingRule.feature.spec.ts,37,feature,mapping-rule,A. Entity Lifecycle (CRUD),search,observe-absence,none,POST,/mapping-rules/search,searchMappingRule,observe-absence,feature-2 - searchMappingRule - negative empty (2) +searchMappingRule.variant.spec.ts,12,variant,mapping-rule,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/mapping-rules/search,searchMappingRule,data-driven|filter,variant-1 - searchMappingRule - path #1 +searchMappingRule.variant.spec.ts,107,variant,mapping-rule,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/mapping-rules/search,searchMappingRule,data-driven|pagination-sort,variant-2 - searchMappingRule - path #1 +searchMappingRule.variant.spec.ts,161,variant,mapping-rule,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/mapping-rules/search,searchMappingRule,data-driven|pagination-sort,variant-3 - searchMappingRule - path #1 +searchMappingRulesForGroup.feature.spec.ts,12,feature,group,B. Membership/Association,search,observe-present-search,group + mapping-rule,POST,/groups/{groupId}/mapping-rules/search,searchMappingRulesForGroup,happy-path,feature-1 - searchMappingRulesForGroup - base (1) +searchMappingRulesForGroup.variant.spec.ts,12,variant,group,B. Membership/Association,search,observe-present-search,group + mapping-rule,POST,/groups/{groupId}/mapping-rules/search,searchMappingRulesForGroup,data-driven|filter,variant-1 - searchMappingRulesForGroup - path #1 +searchMappingRulesForGroup.variant.spec.ts,84,variant,group,B. Membership/Association,search,observe-present-search,group + mapping-rule,POST,/groups/{groupId}/mapping-rules/search,searchMappingRulesForGroup,data-driven|pagination-sort,variant-2 - searchMappingRulesForGroup - path #1 +searchMappingRulesForGroup.variant.spec.ts,159,variant,group,B. Membership/Association,search,observe-present-search,group + mapping-rule,POST,/groups/{groupId}/mapping-rules/search,searchMappingRulesForGroup,data-driven|pagination-sort,variant-3 - searchMappingRulesForGroup - path #1 +searchMappingRulesForRole.feature.spec.ts,12,feature,role,B. Membership/Association,search,observe-present-search,role + mapping-rule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,happy-path,feature-1 - searchMappingRulesForRole - base (1) +searchMappingRulesForRole.variant.spec.ts,12,variant,role,B. Membership/Association,search,observe-present-search,role + mapping-rule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,data-driven|filter,variant-1 - searchMappingRulesForRole - path #1 +searchMappingRulesForRole.variant.spec.ts,124,variant,role,B. Membership/Association,search,observe-present-search,role + mapping-rule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,data-driven|pagination-sort,variant-2 - searchMappingRulesForRole - path #1 +searchMappingRulesForRole.variant.spec.ts,199,variant,role,B. Membership/Association,search,observe-present-search,role + mapping-rule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,data-driven|pagination-sort,variant-3 - searchMappingRulesForRole - path #1 +searchMappingRulesForTenant.feature.spec.ts,12,feature,tenant,B. Membership/Association,search,observe-present-search,tenant + mapping-rule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,happy-path,feature-1 - searchMappingRulesForTenant - base (1) +searchMappingRulesForTenant.variant.spec.ts,12,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + mapping-rule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,data-driven|filter,variant-1 - searchMappingRulesForTenant - path #1 +searchMappingRulesForTenant.variant.spec.ts,126,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + mapping-rule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,data-driven|pagination-sort,variant-2 - searchMappingRulesForTenant - path #1 +searchMappingRulesForTenant.variant.spec.ts,203,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + mapping-rule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,data-driven|pagination-sort,variant-3 - searchMappingRulesForTenant - path #1 +searchMessageSubscriptions.feature.spec.ts,12,feature,message-subscriptions,M. Messaging/Signals,search,observe-present-search,deployed-process-with-message-catch-event,POST,/message-subscriptions/search,searchMessageSubscriptions,happy-path,feature-1 - searchMessageSubscriptions - base (1) +searchMessageSubscriptions.feature.spec.ts,37,feature,message-subscriptions,M. Messaging/Signals,search,observe-absence,deployed-process-with-message-catch-event,POST,/message-subscriptions/search,searchMessageSubscriptions,observe-absence,feature-2 - searchMessageSubscriptions - negative empty (2) +searchMessageSubscriptions.variant.spec.ts,13,variant,message-subscriptions,M. Messaging/Signals,search,observe-present-search,deployed-process-with-message-catch-event,POST,/message-subscriptions/search,searchMessageSubscriptions,data-driven|filter,variant-1 - searchMessageSubscriptions - path #1 +searchMessageSubscriptions.variant.spec.ts,69,variant,message-subscriptions,M. Messaging/Signals,search,observe-present-search,deployed-process-with-message-catch-event,POST,/message-subscriptions/search,searchMessageSubscriptions,data-driven|filter,variant-2 - searchMessageSubscriptions - bpmn #1 +searchMessageSubscriptions.variant.spec.ts,121,variant,message-subscriptions,M. Messaging/Signals,search,observe-present-search,deployed-process-with-message-catch-event,POST,/message-subscriptions/search,searchMessageSubscriptions,data-driven|filter,variant-3 - searchMessageSubscriptions - bpmn #1 +searchMessageSubscriptions.variant.spec.ts,195,variant,message-subscriptions,M. Messaging/Signals,search,observe-present-search,deployed-process-with-message-catch-event,POST,/message-subscriptions/search,searchMessageSubscriptions,data-driven|filter,variant-4 - searchMessageSubscriptions - bpmn #1 +searchMessageSubscriptions.variant.spec.ts,298,variant,message-subscriptions,M. Messaging/Signals,search,observe-present-search,deployed-process-with-message-catch-event,POST,/message-subscriptions/search,searchMessageSubscriptions,data-driven|pagination-sort,variant-5 - searchMessageSubscriptions - path #1 +searchMessageSubscriptions.variant.spec.ts,352,variant,message-subscriptions,M. Messaging/Signals,search,observe-present-search,deployed-process-with-message-catch-event,POST,/message-subscriptions/search,searchMessageSubscriptions,data-driven|pagination-sort,variant-6 - searchMessageSubscriptions - path #1 +searchProcessDefinitions.feature.spec.ts,13,feature,process-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-process,POST,/process-definitions/search,searchProcessDefinitions,happy-path,feature-1 - searchProcessDefinitions - base (1) +searchProcessDefinitions.feature.spec.ts,60,feature,process-definition,C. Deployment Lifecycle,search,observe-absence,deployed-process,POST,/process-definitions/search,searchProcessDefinitions,observe-absence,feature-2 - searchProcessDefinitions - negative empty (2) +searchProcessDefinitions.variant.spec.ts,13,variant,process-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-process,POST,/process-definitions/search,searchProcessDefinitions,data-driven|filter,variant-1 - searchProcessDefinitions - path #1 +searchProcessDefinitions.variant.spec.ts,86,variant,process-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-process,POST,/process-definitions/search,searchProcessDefinitions,data-driven|filter,variant-2 - searchProcessDefinitions - bpmn #1 +searchProcessDefinitions.variant.spec.ts,138,variant,process-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-process,POST,/process-definitions/search,searchProcessDefinitions,data-driven|pagination-sort,variant-3 - searchProcessDefinitions - path #1 +searchProcessDefinitions.variant.spec.ts,214,variant,process-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-process,POST,/process-definitions/search,searchProcessDefinitions,data-driven|pagination-sort,variant-4 - searchProcessDefinitions - path #1 +searchProcessInstanceIncidents.feature.spec.ts,13,feature,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/{processInstanceKey}/incidents/search,searchProcessInstanceIncidents,happy-path,feature-1 - searchProcessInstanceIncidents - base (1) +searchProcessInstanceIncidents.variant.spec.ts,13,variant,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/{processInstanceKey}/incidents/search,searchProcessInstanceIncidents,data-driven|filter,variant-1 - searchProcessInstanceIncidents - cycle/bpmn+bpmn #1 +searchProcessInstanceIncidents.variant.spec.ts,109,variant,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/{processInstanceKey}/incidents/search,searchProcessInstanceIncidents,data-driven|filter,variant-2 - searchProcessInstanceIncidents - bpmn #1 +searchProcessInstanceIncidents.variant.spec.ts,187,variant,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/{processInstanceKey}/incidents/search,searchProcessInstanceIncidents,data-driven|filter,variant-3 - searchProcessInstanceIncidents - bpmn #1 +searchProcessInstanceIncidents.variant.spec.ts,297,variant,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/{processInstanceKey}/incidents/search,searchProcessInstanceIncidents,data-driven|filter,variant-4 - searchProcessInstanceIncidents - bpmn #1 +searchProcessInstanceIncidents.variant.spec.ts,407,variant,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/{processInstanceKey}/incidents/search,searchProcessInstanceIncidents,data-driven|pagination-sort,variant-5 - searchProcessInstanceIncidents - bpmn #1 +searchProcessInstanceIncidents.variant.spec.ts,512,variant,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/{processInstanceKey}/incidents/search,searchProcessInstanceIncidents,data-driven|pagination-sort,variant-6 - searchProcessInstanceIncidents - bpmn #1 +searchProcessInstances.feature.spec.ts,13,feature,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,happy-path,feature-1 - searchProcessInstances - base (1) +searchProcessInstances.feature.spec.ts,80,feature,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-absence,deployed-process,POST,/process-instances/search,searchProcessInstances,observe-absence,feature-2 - searchProcessInstances - negative empty (2) +searchProcessInstances.variant.spec.ts,13,variant,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven|filter,variant-1 - searchProcessInstances - path #1 +searchProcessInstances.variant.spec.ts,87,variant,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven|filter,variant-2 - searchProcessInstances - bpmn #1 +searchProcessInstances.variant.spec.ts,161,variant,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven|filter,variant-3 - searchProcessInstances - bpmn #1 +searchProcessInstances.variant.spec.ts,235,variant,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven|filter,variant-4 - searchProcessInstances - bpmn #1 +searchProcessInstances.variant.spec.ts,337,variant,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven|filter,variant-5 - searchProcessInstances - bpmn #1 +searchProcessInstances.variant.spec.ts,440,variant,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven|filter,variant-6 - searchProcessInstances - path #1 +searchProcessInstances.variant.spec.ts,518,variant,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven|filter,variant-7 - searchProcessInstances - bpmn #1 +searchProcessInstances.variant.spec.ts,596,variant,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven|filter,variant-8 - searchProcessInstances - bpmn #1 +searchProcessInstances.variant.spec.ts,674,variant,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven|filter,variant-9 - searchProcessInstances - bpmn #1 +searchProcessInstances.variant.spec.ts,780,variant,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven|filter,variant-10 - searchProcessInstances - bpmn #1 +searchProcessInstances.variant.spec.ts,887,variant,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven|pagination-sort,variant-11 - searchProcessInstances - path #1 +searchProcessInstances.variant.spec.ts,983,variant,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven|pagination-sort,variant-12 - searchProcessInstances - path #1 +searchResources.feature.spec.ts,12,feature,resource,C. Deployment Lifecycle,search,observe-present-search,none,POST,/resources/search,searchResources,happy-path,feature-1 - searchResources - base (1) +searchResources.feature.spec.ts,35,feature,resource,C. Deployment Lifecycle,search,observe-absence,none,POST,/resources/search,searchResources,observe-absence,feature-2 - searchResources - negative empty (2) +searchResources.variant.spec.ts,13,variant,resource,C. Deployment Lifecycle,search,observe-present-search,none,POST,/resources/search,searchResources,data-driven|filter,variant-1 - searchResources - bpmn #1 +searchResources.variant.spec.ts,62,variant,resource,C. Deployment Lifecycle,search,observe-present-search,none,POST,/resources/search,searchResources,data-driven|filter,variant-2 - searchResources - path #1 +searchResources.variant.spec.ts,130,variant,resource,C. Deployment Lifecycle,search,observe-present-search,none,POST,/resources/search,searchResources,data-driven|filter,variant-3 - searchResources - path #1 +searchResources.variant.spec.ts,180,variant,resource,C. Deployment Lifecycle,search,observe-present-search,none,POST,/resources/search,searchResources,data-driven|pagination-sort,variant-4 - searchResources - path #1 +searchResources.variant.spec.ts,232,variant,resource,C. Deployment Lifecycle,search,observe-present-search,none,POST,/resources/search,searchResources,data-driven|pagination-sort,variant-5 - searchResources - path #1 +searchRoles.feature.spec.ts,12,feature,role,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/roles/search,searchRoles,happy-path,feature-1 - searchRoles - base (1) +searchRoles.feature.spec.ts,35,feature,role,A. Entity Lifecycle (CRUD),search,observe-absence,none,POST,/roles/search,searchRoles,observe-absence,feature-2 - searchRoles - negative empty (2) +searchRoles.variant.spec.ts,12,variant,role,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/roles/search,searchRoles,data-driven|filter,variant-1 - searchRoles - path #1 +searchRoles.variant.spec.ts,105,variant,role,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/roles/search,searchRoles,data-driven|pagination-sort,variant-2 - searchRoles - path #1 +searchRoles.variant.spec.ts,157,variant,role,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/roles/search,searchRoles,data-driven|pagination-sort,variant-3 - searchRoles - path #1 +searchRolesForGroup.feature.spec.ts,12,feature,group,B. Membership/Association,search,observe-present-search,group + role,POST,/groups/{groupId}/roles/search,searchRolesForGroup,happy-path,feature-1 - searchRolesForGroup - base (1) +searchRolesForGroup.variant.spec.ts,12,variant,group,B. Membership/Association,search,observe-present-search,group + role,POST,/groups/{groupId}/roles/search,searchRolesForGroup,data-driven|filter,variant-1 - searchRolesForGroup - path #1 +searchRolesForGroup.variant.spec.ts,84,variant,group,B. Membership/Association,search,observe-present-search,group + role,POST,/groups/{groupId}/roles/search,searchRolesForGroup,data-driven|pagination-sort,variant-2 - searchRolesForGroup - path #1 +searchRolesForGroup.variant.spec.ts,159,variant,group,B. Membership/Association,search,observe-present-search,group + role,POST,/groups/{groupId}/roles/search,searchRolesForGroup,data-driven|pagination-sort,variant-3 - searchRolesForGroup - path #1 +searchRolesForTenant.feature.spec.ts,12,feature,tenant,B. Membership/Association,search,observe-present-search,tenant + role,POST,/tenants/{tenantId}/roles/search,searchRolesForTenant,happy-path,feature-1 - searchRolesForTenant - base (1) +searchRolesForTenant.variant.spec.ts,12,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + role,POST,/tenants/{tenantId}/roles/search,searchRolesForTenant,data-driven|filter,variant-1 - searchRolesForTenant - path #1 +searchRolesForTenant.variant.spec.ts,126,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + role,POST,/tenants/{tenantId}/roles/search,searchRolesForTenant,data-driven|pagination-sort,variant-2 - searchRolesForTenant - path #1 +searchRolesForTenant.variant.spec.ts,203,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + role,POST,/tenants/{tenantId}/roles/search,searchRolesForTenant,data-driven|pagination-sort,variant-3 - searchRolesForTenant - path #1 +searchTenants.feature.spec.ts,12,feature,tenant,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/tenants/search,searchTenants,happy-path,feature-1 - searchTenants - base (1) +searchTenants.feature.spec.ts,35,feature,tenant,A. Entity Lifecycle (CRUD),search,observe-absence,none,POST,/tenants/search,searchTenants,observe-absence,feature-2 - searchTenants - negative empty (2) +searchTenants.variant.spec.ts,12,variant,tenant,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/tenants/search,searchTenants,data-driven|filter,variant-1 - searchTenants - path #1 +searchTenants.variant.spec.ts,63,variant,tenant,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/tenants/search,searchTenants,data-driven|pagination-sort,variant-2 - searchTenants - path #1 +searchTenants.variant.spec.ts,115,variant,tenant,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/tenants/search,searchTenants,data-driven|pagination-sort,variant-3 - searchTenants - path #1 +searchUserTaskAuditLogs.feature.spec.ts,12,feature,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/audit-logs/search,searchUserTaskAuditLogs,happy-path,feature-1 - searchUserTaskAuditLogs - base (1) +searchUserTaskEffectiveVariables.feature.spec.ts,12,feature,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/effective-variables/search,searchUserTaskEffectiveVariables,happy-path,feature-1 - searchUserTaskEffectiveVariables - base (1) +searchUserTaskVariables.feature.spec.ts,12,feature,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/variables/search,searchUserTaskVariables,happy-path,feature-1 - searchUserTaskVariables - base (1) +searchUserTasks.feature.spec.ts,12,feature,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,happy-path,feature-1 - searchUserTasks - base (1) +searchUserTasks.feature.spec.ts,35,feature,user-task,F. User-Task Lifecycle,search,observe-absence,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,observe-absence,feature-2 - searchUserTasks - negative empty (2) +searchUserTasks.variant.spec.ts,13,variant,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,data-driven|filter,variant-1 - searchUserTasks - bpmn #1 +searchUserTasks.variant.spec.ts,114,variant,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,data-driven|filter,variant-2 - searchUserTasks - bpmn #1 +searchUserTasks.variant.spec.ts,164,variant,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,data-driven|filter,variant-3 - searchUserTasks - path #1 +searchUserTasks.variant.spec.ts,232,variant,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,data-driven|filter,variant-4 - searchUserTasks - bpmn #1 +searchUserTasks.variant.spec.ts,282,variant,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,data-driven|filter,variant-5 - searchUserTasks - bpmn #1 +searchUserTasks.variant.spec.ts,353,variant,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,data-driven|filter,variant-6 - searchUserTasks - bpmn #1 +searchUserTasks.variant.spec.ts,454,variant,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,data-driven|filter,variant-7 - searchUserTasks - bpmn #1 +searchUserTasks.variant.spec.ts,552,variant,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,data-driven|pagination-sort,variant-8 - searchUserTasks - path #1 +searchUserTasks.variant.spec.ts,604,variant,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,data-driven|pagination-sort,variant-9 - searchUserTasks - path #1 +searchUsers.feature.spec.ts,12,feature,user,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/users/search,searchUsers,happy-path,feature-1 - searchUsers - base (1) +searchUsers.feature.spec.ts,35,feature,user,A. Entity Lifecycle (CRUD),search,observe-absence,none,POST,/users/search,searchUsers,observe-absence,feature-2 - searchUsers - negative empty (2) +searchUsers.variant.spec.ts,12,variant,user,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/users/search,searchUsers,data-driven|pagination-sort,variant-1 - searchUsers - path #1 +searchUsers.variant.spec.ts,64,variant,user,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/users/search,searchUsers,data-driven|pagination-sort,variant-2 - searchUsers - path #1 +searchUsersForGroup.feature.spec.ts,12,feature,group,B. Membership/Association,search,observe-present-search,group + user,POST,/groups/{groupId}/users/search,searchUsersForGroup,happy-path,feature-1 - searchUsersForGroup - base (1) +searchUsersForGroup.variant.spec.ts,12,variant,group,B. Membership/Association,search,observe-present-search,group + user,POST,/groups/{groupId}/users/search,searchUsersForGroup,data-driven|pagination-sort,variant-1 - searchUsersForGroup - path #1 +searchUsersForGroup.variant.spec.ts,86,variant,group,B. Membership/Association,search,observe-present-search,group + user,POST,/groups/{groupId}/users/search,searchUsersForGroup,data-driven|pagination-sort,variant-2 - searchUsersForGroup - path #1 +searchUsersForRole.feature.spec.ts,12,feature,role,B. Membership/Association,search,observe-present-search,role + user,POST,/roles/{roleId}/users/search,searchUsersForRole,happy-path,feature-1 - searchUsersForRole - base (1) +searchUsersForRole.variant.spec.ts,12,variant,role,B. Membership/Association,search,observe-present-search,role + user,POST,/roles/{roleId}/users/search,searchUsersForRole,data-driven|pagination-sort,variant-1 - searchUsersForRole - path #1 +searchUsersForRole.variant.spec.ts,86,variant,role,B. Membership/Association,search,observe-present-search,role + user,POST,/roles/{roleId}/users/search,searchUsersForRole,data-driven|pagination-sort,variant-2 - searchUsersForRole - path #1 +searchUsersForTenant.feature.spec.ts,12,feature,tenant,B. Membership/Association,search,observe-present-search,tenant + user,POST,/tenants/{tenantId}/users/search,searchUsersForTenant,happy-path,feature-1 - searchUsersForTenant - base (1) +searchUsersForTenant.variant.spec.ts,12,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + user,POST,/tenants/{tenantId}/users/search,searchUsersForTenant,data-driven|pagination-sort,variant-1 - searchUsersForTenant - path #1 +searchUsersForTenant.variant.spec.ts,88,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + user,POST,/tenants/{tenantId}/users/search,searchUsersForTenant,data-driven|pagination-sort,variant-2 - searchUsersForTenant - path #1 +searchVariables.feature.spec.ts,12,feature,variable,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/variables/search,searchVariables,happy-path,feature-1 - searchVariables - base (1) +searchVariables.feature.spec.ts,35,feature,variable,J/K/L. Observation-only,search,observe-absence,running-process-instance,POST,/variables/search,searchVariables,observe-absence,feature-2 - searchVariables - negative empty (2) +searchVariables.variant.spec.ts,13,variant,variable,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/variables/search,searchVariables,data-driven|filter,variant-1 - searchVariables - path #1 +searchVariables.variant.spec.ts,64,variant,variable,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/variables/search,searchVariables,unlabeled|filter,variant-2 - scenario +searchVariables.variant.spec.ts,93,variant,variable,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/variables/search,searchVariables,unlabeled|filter,variant-3 - scenario +searchVariables.variant.spec.ts,122,variant,variable,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/variables/search,searchVariables,data-driven|filter,variant-4 - searchVariables - bpmn #1 +searchVariables.variant.spec.ts,191,variant,variable,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/variables/search,searchVariables,data-driven|pagination-sort,variant-5 - searchVariables - path #1 +searchVariables.variant.spec.ts,243,variant,variable,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/variables/search,searchVariables,data-driven|pagination-sort,variant-6 - searchVariables - path #1 +suspendBatchOperation.feature.spec.ts,8,feature,batch-operation,E. Batch-Operation Lifecycle,update,mutate,running-process-instance(s),POST,/batch-operations/{batchOperationKey}/suspension,suspendBatchOperation,happy-path|filter,feature-1 - suspendBatchOperation - base (1) +throwJobError.feature.spec.ts,9,feature,job,G. Job Lifecycle & Stats,create,create,running-process-instance-with-job,POST,/jobs/{jobKey}/error,throwJobError,happy-path,feature-1 - throwJobError - base (1) +unassignClientFromGroup.feature.spec.ts,8,feature,group,B. Membership/Association,delete,delete,group + client,DELETE,/groups/{groupId}/clients/{clientId},unassignClientFromGroup,happy-path,feature-1 - unassignClientFromGroup - base (1) +unassignClientFromTenant.feature.spec.ts,8,feature,tenant,B. Membership/Association,delete,delete,tenant + client,DELETE,/tenants/{tenantId}/clients/{clientId},unassignClientFromTenant,happy-path,feature-1 - unassignClientFromTenant - base (1) +unassignGroupFromTenant.feature.spec.ts,8,feature,tenant,B. Membership/Association,delete,delete,tenant + group,DELETE,/tenants/{tenantId}/groups/{groupId},unassignGroupFromTenant,happy-path,feature-1 - unassignGroupFromTenant - base (1) +unassignMappingRuleFromGroup.feature.spec.ts,8,feature,group,B. Membership/Association,delete,delete,group + mapping-rule,DELETE,/groups/{groupId}/mapping-rules/{mappingRuleId},unassignMappingRuleFromGroup,happy-path,feature-1 - unassignMappingRuleFromGroup - base (1) +unassignMappingRuleFromTenant.feature.spec.ts,8,feature,tenant,B. Membership/Association,delete,delete,tenant + mapping-rule,DELETE,/tenants/{tenantId}/mapping-rules/{mappingRuleId},unassignMappingRuleFromTenant,happy-path,feature-1 - unassignMappingRuleFromTenant - base (1) +unassignRoleFromClient.feature.spec.ts,8,feature,role,B. Membership/Association,delete,delete,client + role,DELETE,/roles/{roleId}/clients/{clientId},unassignRoleFromClient,happy-path,feature-1 - unassignRoleFromClient - base (1) +unassignRoleFromGroup.feature.spec.ts,8,feature,role,B. Membership/Association,delete,delete,group + role,DELETE,/roles/{roleId}/groups/{groupId},unassignRoleFromGroup,happy-path,feature-1 - unassignRoleFromGroup - base (1) +unassignRoleFromMappingRule.feature.spec.ts,8,feature,role,B. Membership/Association,delete,delete,mapping-rule + role,DELETE,/roles/{roleId}/mapping-rules/{mappingRuleId},unassignRoleFromMappingRule,happy-path,feature-1 - unassignRoleFromMappingRule - base (1) +unassignRoleFromTenant.feature.spec.ts,8,feature,tenant,B. Membership/Association,delete,delete,tenant + role,DELETE,/tenants/{tenantId}/roles/{roleId},unassignRoleFromTenant,happy-path,feature-1 - unassignRoleFromTenant - base (1) +unassignRoleFromUser.feature.spec.ts,8,feature,role,B. Membership/Association,delete,delete,user + role,DELETE,/roles/{roleId}/users/{username},unassignRoleFromUser,happy-path,feature-1 - unassignRoleFromUser - base (1) +unassignUserFromGroup.feature.spec.ts,8,feature,group,B. Membership/Association,delete,delete,group + user,DELETE,/groups/{groupId}/users/{username},unassignUserFromGroup,happy-path,feature-1 - unassignUserFromGroup - base (1) +unassignUserFromTenant.feature.spec.ts,8,feature,tenant,B. Membership/Association,delete,delete,tenant + user,DELETE,/tenants/{tenantId}/users/{username},unassignUserFromTenant,happy-path,feature-1 - unassignUserFromTenant - base (1) +unassignUserTask.feature.spec.ts,8,feature,user-task,F. User-Task Lifecycle,delete,delete,running-process-instance-with-user-task,DELETE,/user-tasks/{userTaskKey}/assignee,unassignUserTask,happy-path,feature-1 - unassignUserTask - base (1) +updateAgentInstance.feature.spec.ts,9,feature,agent-instance,P. Agent-Instance (new in v2),update,mutate,unknown,PATCH,/agent-instances/{agentInstanceKey},updateAgentInstance,happy-path,feature-1 - updateAgentInstance - base (1) +updateAuthorization.feature.spec.ts,8,feature,authorization,A. Entity Lifecycle (CRUD),update,mutate,owner-entity-or-resource,PUT,/authorizations/{authorizationKey},updateAuthorization,happy-path,feature-1 - updateAuthorization - base (1) +updateAuthorization.feature.spec.ts,63,feature,authorization,A. Entity Lifecycle (CRUD),update,mutate,owner-entity-or-resource,PUT,/authorizations/{authorizationKey},updateAuthorization,data-driven,feature-2 - updateAuthorization - oneOf group0 variant1 (2) +updateAuthorization.feature.spec.ts,119,feature,authorization,A. Entity Lifecycle (CRUD),update,mutate,owner-entity-or-resource,PUT,/authorizations/{authorizationKey},updateAuthorization,data-driven,feature-3 - updateAuthorization - oneOf group0 variant2 (3) +updateGlobalClusterVariable.feature.spec.ts,11,feature,cluster-variables,A. Entity Lifecycle (CRUD),update,mutate,none,PUT,/cluster-variables/global/{name},updateGlobalClusterVariable,happy-path,feature-1 - updateGlobalClusterVariable - base (1) +updateGlobalTaskListener.feature.spec.ts,11,feature,global-task-listener,A. Entity Lifecycle (CRUD),update,mutate,none,PUT,/global-task-listeners/{id},updateGlobalTaskListener,happy-path,feature-1 - updateGlobalTaskListener - base (1) +updateGroup.feature.spec.ts,11,feature,group,A. Entity Lifecycle (CRUD),update,mutate,none,PUT,/groups/{groupId},updateGroup,happy-path,feature-1 - updateGroup - base (1) +updateJob.feature.spec.ts,9,feature,job,G. Job Lifecycle & Stats,update,mutate,running-process-instance-with-job,PATCH,/jobs/{jobKey},updateJob,happy-path,feature-1 - updateJob - base (1) +updateMappingRule.feature.spec.ts,11,feature,mapping-rule,A. Entity Lifecycle (CRUD),update,mutate,none,PUT,/mapping-rules/{mappingRuleId},updateMappingRule,happy-path,feature-1 - updateMappingRule - base (1) +updateRole.feature.spec.ts,11,feature,role,A. Entity Lifecycle (CRUD),update,mutate,none,PUT,/roles/{roleId},updateRole,happy-path,feature-1 - updateRole - base (1) +updateTenant.feature.spec.ts,11,feature,tenant,A. Entity Lifecycle (CRUD),update,mutate,none,PUT,/tenants/{tenantId},updateTenant,happy-path,feature-1 - updateTenant - base (1) +updateTenantClusterVariable.feature.spec.ts,11,feature,cluster-variables,A. Entity Lifecycle (CRUD),update,mutate,none,PUT,/cluster-variables/tenants/{tenantId}/{name},updateTenantClusterVariable,happy-path,feature-1 - updateTenantClusterVariable - base (1) +updateUser.feature.spec.ts,11,feature,user,A. Entity Lifecycle (CRUD),update,mutate,none,PUT,/users/{username},updateUser,happy-path,feature-1 - updateUser - base (1) +updateUserTask.feature.spec.ts,8,feature,user-task,F. User-Task Lifecycle,update,mutate,running-process-instance-with-user-task,PATCH,/user-tasks/{userTaskKey},updateUserTask,happy-path,feature-1 - updateUserTask - base (1) +edges/GroupClientMembership.lifecycle.spec.ts,9,lifecycle,group,B. Membership/Association,lifecycle,lifecycle,group + client,PUT,/groups/{groupId}/clients/{clientId},assignClientToGroup,happy-path|observe-absence,"establish GroupClientMembership, observe present, revoke, observe absent" +edges/GroupMappingRuleMembership.lifecycle.spec.ts,9,lifecycle,group,B. Membership/Association,lifecycle,lifecycle,group + mapping-rule,PUT,/groups/{groupId}/mapping-rules/{mappingRuleId},assignMappingRuleToGroup,happy-path|observe-absence,"establish GroupMappingRuleMembership, observe present, revoke, observe absent" +edges/GroupUserMembership.lifecycle.spec.ts,9,lifecycle,group,B. Membership/Association,lifecycle,lifecycle,group + user,PUT,/groups/{groupId}/users/{username},assignUserToGroup,happy-path|observe-absence,"establish GroupUserMembership, observe present, revoke, observe absent" +edges/RoleClientMembership.lifecycle.spec.ts,9,lifecycle,role,B. Membership/Association,lifecycle,lifecycle,client + role,PUT,/roles/{roleId}/clients/{clientId},assignRoleToClient,happy-path|observe-absence,"establish RoleClientMembership, observe present, revoke, observe absent" +edges/RoleGroupMembership.lifecycle.spec.ts,9,lifecycle,role,B. Membership/Association,lifecycle,lifecycle,group + role,PUT,/roles/{roleId}/groups/{groupId},assignRoleToGroup,happy-path|observe-absence,"establish RoleGroupMembership, observe present, revoke, observe absent" +edges/RoleMappingRuleMembership.lifecycle.spec.ts,9,lifecycle,role,B. Membership/Association,lifecycle,lifecycle,mapping-rule + role,PUT,/roles/{roleId}/mapping-rules/{mappingRuleId},assignRoleToMappingRule,happy-path|observe-absence,"establish RoleMappingRuleMembership, observe present, revoke, observe absent" +edges/RoleUserMembership.lifecycle.spec.ts,9,lifecycle,role,B. Membership/Association,lifecycle,lifecycle,user + role,PUT,/roles/{roleId}/users/{username},assignRoleToUser,happy-path|observe-absence,"establish RoleUserMembership, observe present, revoke, observe absent" +edges/TenantClientMembership.lifecycle.spec.ts,9,lifecycle,tenant,B. Membership/Association,lifecycle,lifecycle,tenant + client,PUT,/tenants/{tenantId}/clients/{clientId},assignClientToTenant,happy-path|observe-absence,"establish TenantClientMembership, observe present, revoke, observe absent" +edges/TenantGroupMembership.lifecycle.spec.ts,9,lifecycle,tenant,B. Membership/Association,lifecycle,lifecycle,tenant + group,PUT,/tenants/{tenantId}/groups/{groupId},assignGroupToTenant,happy-path|observe-absence,"establish TenantGroupMembership, observe present, revoke, observe absent" +edges/TenantMappingRuleMembership.lifecycle.spec.ts,9,lifecycle,tenant,B. Membership/Association,lifecycle,lifecycle,tenant + mapping-rule,PUT,/tenants/{tenantId}/mapping-rules/{mappingRuleId},assignMappingRuleToTenant,happy-path|observe-absence,"establish TenantMappingRuleMembership, observe present, revoke, observe absent" +edges/TenantRoleMembership.lifecycle.spec.ts,9,lifecycle,tenant,B. Membership/Association,lifecycle,lifecycle,tenant + role,PUT,/tenants/{tenantId}/roles/{roleId},assignRoleToTenant,happy-path|observe-absence,"establish TenantRoleMembership, observe present, revoke, observe absent" +edges/TenantUserMembership.lifecycle.spec.ts,9,lifecycle,tenant,B. Membership/Association,lifecycle,lifecycle,tenant + user,PUT,/tenants/{tenantId}/users/{username},assignUserToTenant,happy-path|observe-absence,"establish TenantUserMembership, observe present, revoke, observe absent" +entities/Authorization.lifecycle.spec.ts,9,lifecycle,authorization,A. Entity Lifecycle (CRUD),lifecycle,lifecycle,owner-entity-or-resource,,,,happy-path|observe-absence,"establish Authorization, observe present, revoke, observe absent" +entities/Document.lifecycle.spec.ts,9,lifecycle,document,A. Entity Lifecycle (CRUD),lifecycle,lifecycle,none,,,,happy-path|observe-absence,"establish Document, observe present, revoke, observe absent" +entities/GlobalClusterVariable.lifecycle.spec.ts,9,lifecycle,cluster-variables,A. Entity Lifecycle (CRUD),lifecycle,lifecycle,none,,,,happy-path|observe-absence,"establish GlobalClusterVariable, observe present, revoke, observe absent" +entities/GlobalTaskListener.lifecycle.spec.ts,9,lifecycle,global-task-listener,A. Entity Lifecycle (CRUD),lifecycle,lifecycle,none,,,,happy-path|observe-absence,"establish GlobalTaskListener, observe present, revoke, observe absent" +entities/Group.lifecycle.spec.ts,9,lifecycle,group,A. Entity Lifecycle (CRUD),lifecycle,lifecycle,none,,,,happy-path|observe-absence,"establish Group, observe present, revoke, observe absent" +entities/MappingRule.lifecycle.spec.ts,9,lifecycle,mapping-rule,A. Entity Lifecycle (CRUD),lifecycle,lifecycle,none,,,,happy-path|observe-absence,"establish MappingRule, observe present, revoke, observe absent" +entities/Role.lifecycle.spec.ts,9,lifecycle,role,A. Entity Lifecycle (CRUD),lifecycle,lifecycle,none,,,,happy-path|observe-absence,"establish Role, observe present, revoke, observe absent" +entities/Tenant.lifecycle.spec.ts,9,lifecycle,tenant,A. Entity Lifecycle (CRUD),lifecycle,lifecycle,none,,,,happy-path|observe-absence,"establish Tenant, observe present, revoke, observe absent" +entities/TenantClusterVariable.lifecycle.spec.ts,9,lifecycle,cluster-variables,A. Entity Lifecycle (CRUD),lifecycle,lifecycle,none,,,,happy-path|observe-absence,"establish TenantClusterVariable, observe present, revoke, observe absent" +entities/User.lifecycle.spec.ts,9,lifecycle,user,A. Entity Lifecycle (CRUD),lifecycle,lifecycle,none,,,,happy-path|observe-absence,"establish User, observe present, revoke, observe absent" +request-validation/agentinstances-validation-api-tests.spec.ts,18,request-validation,agent-instance,P. Agent-Instance (new in v2),create,negative-create,unknown,POST,/agent-instances,createAgentInstance,bad-request,createAgentInstance - Additional prop __extraField +request-validation/agentinstances-validation-api-tests.spec.ts,41,request-validation,agent-instance,P. Agent-Instance (new in v2),create,negative-create,unknown,POST,/agent-instances,createAgentInstance,bad-request,createAgentInstance - Body wrong top-level type +request-validation/agentinstances-validation-api-tests.spec.ts,56,request-validation,agent-instance,P. Agent-Instance (new in v2),create,negative-create,unknown,POST,/agent-instances,createAgentInstance,bad-request,createAgentInstance - Param definition.model wrong type (#1) +request-validation/agentinstances-validation-api-tests.spec.ts,80,request-validation,agent-instance,P. Agent-Instance (new in v2),create,negative-create,unknown,POST,/agent-instances,createAgentInstance,bad-request,createAgentInstance - Param definition.model wrong type (#2) +request-validation/agentinstances-validation-api-tests.spec.ts,104,request-validation,agent-instance,P. Agent-Instance (new in v2),create,negative-create,unknown,POST,/agent-instances,createAgentInstance,bad-request,createAgentInstance - Param definition.provider wrong type (#1) +request-validation/agentinstances-validation-api-tests.spec.ts,128,request-validation,agent-instance,P. Agent-Instance (new in v2),create,negative-create,unknown,POST,/agent-instances,createAgentInstance,bad-request,createAgentInstance - Param definition.provider wrong type (#2) +request-validation/agentinstances-validation-api-tests.spec.ts,152,request-validation,agent-instance,P. Agent-Instance (new in v2),create,negative-create,unknown,POST,/agent-instances,createAgentInstance,bad-request,createAgentInstance - Param definition.systemPrompt wrong type (#1) +request-validation/agentinstances-validation-api-tests.spec.ts,176,request-validation,agent-instance,P. Agent-Instance (new in v2),create,negative-create,unknown,POST,/agent-instances,createAgentInstance,bad-request,createAgentInstance - Param definition.systemPrompt wrong type (#2) +request-validation/agentinstances-validation-api-tests.spec.ts,200,request-validation,agent-instance,P. Agent-Instance (new in v2),create,negative-create,unknown,POST,/agent-instances,createAgentInstance,bad-request,createAgentInstance - Param elementInstanceKey wrong type (#1) +request-validation/agentinstances-validation-api-tests.spec.ts,224,request-validation,agent-instance,P. Agent-Instance (new in v2),create,negative-create,unknown,POST,/agent-instances,createAgentInstance,bad-request,createAgentInstance - Param elementInstanceKey wrong type (#2) +request-validation/agentinstances-validation-api-tests.spec.ts,248,request-validation,agent-instance,P. Agent-Instance (new in v2),create,negative-create,unknown,POST,/agent-instances,createAgentInstance,bad-request,createAgentInstance - Missing definition.model +request-validation/agentinstances-validation-api-tests.spec.ts,269,request-validation,agent-instance,P. Agent-Instance (new in v2),create,negative-create,unknown,POST,/agent-instances,createAgentInstance,bad-request,createAgentInstance - Missing definition.provider +request-validation/agentinstances-validation-api-tests.spec.ts,290,request-validation,agent-instance,P. Agent-Instance (new in v2),create,negative-create,unknown,POST,/agent-instances,createAgentInstance,bad-request,createAgentInstance - Missing definition.systemPrompt +request-validation/agentinstances-validation-api-tests.spec.ts,311,request-validation,agent-instance,P. Agent-Instance (new in v2),create,negative-create,unknown,POST,/agent-instances,createAgentInstance,bad-request,createAgentInstance - Missing elementInstanceKey (#1) +request-validation/agentinstances-validation-api-tests.spec.ts,332,request-validation,agent-instance,P. Agent-Instance (new in v2),create,negative-create,unknown,POST,/agent-instances,createAgentInstance,bad-request,createAgentInstance - Missing limits.maxModelCalls +request-validation/agentinstances-validation-api-tests.spec.ts,358,request-validation,agent-instance,P. Agent-Instance (new in v2),create,negative-create,unknown,POST,/agent-instances,createAgentInstance,bad-request,createAgentInstance - Missing limits.maxTokens +request-validation/agentinstances-validation-api-tests.spec.ts,384,request-validation,agent-instance,P. Agent-Instance (new in v2),create,negative-create,unknown,POST,/agent-instances,createAgentInstance,bad-request,createAgentInstance - Missing limits.maxToolCalls +request-validation/agentinstances-validation-api-tests.spec.ts,410,request-validation,agent-instance,P. Agent-Instance (new in v2),create,negative-create,unknown,POST,/agent-instances,createAgentInstance,bad-request,createAgentInstance - Missing definition +request-validation/agentinstances-validation-api-tests.spec.ts,427,request-validation,agent-instance,P. Agent-Instance (new in v2),create,negative-create,unknown,POST,/agent-instances,createAgentInstance,bad-request,createAgentInstance - Missing elementInstanceKey (#2) +request-validation/agentinstances-validation-api-tests.spec.ts,444,request-validation,agent-instance,P. Agent-Instance (new in v2),create,negative-create,unknown,POST,/agent-instances,createAgentInstance,bad-request,createAgentInstance - Missing body +request-validation/agentinstances-validation-api-tests.spec.ts,456,request-validation,agent-instance,P. Agent-Instance (new in v2),create,negative-create,unknown,POST,/agent-instances,createAgentInstance,bad-request,"createAgentInstance - Missing combo elementInstanceKey,definition" +request-validation/agentinstances-validation-api-tests.spec.ts,473,request-validation,agent-instance,P. Agent-Instance (new in v2),get,negative-get,unknown,GET,/agent-instances/{agentInstanceKey},getAgentInstance,bad-request,getAgentInstance - Path param agentInstanceKey pattern violation +request-validation/agentinstances-validation-api-tests.spec.ts,489,request-validation,agent-instance,P. Agent-Instance (new in v2),search,negative-search,unknown,POST,/agent-instances/search,searchAgentInstances,bad-request,searchAgentInstances - Additional prop __unexpectedField +request-validation/agentinstances-validation-api-tests.spec.ts,508,request-validation,agent-instance,P. Agent-Instance (new in v2),search,negative-search,unknown,POST,/agent-instances/search,searchAgentInstances,bad-request,searchAgentInstances - Body wrong top-level type +request-validation/agentinstances-validation-api-tests.spec.ts,523,request-validation,agent-instance,P. Agent-Instance (new in v2),search,negative-search,unknown,POST,/agent-instances/search,searchAgentInstances,bad-request,searchAgentInstances - Missing sort.0.field +request-validation/agentinstances-validation-api-tests.spec.ts,540,request-validation,agent-instance,P. Agent-Instance (new in v2),search,negative-search,unknown,POST,/agent-instances/search,searchAgentInstances,bad-request,searchAgentInstances - Enum violation sort.0.field +request-validation/agentinstances-validation-api-tests.spec.ts,561,request-validation,agent-instance,P. Agent-Instance (new in v2),search,negative-search,unknown,POST,/agent-instances/search,searchAgentInstances,bad-request,searchAgentInstances - Enum violation sort.0.order +request-validation/agentinstances-validation-api-tests.spec.ts,582,request-validation,agent-instance,P. Agent-Instance (new in v2),update,negative-update,unknown,PATCH,/agent-instances/{agentInstanceKey},updateAgentInstance,bad-request,updateAgentInstance - Additional prop __extraField +request-validation/agentinstances-validation-api-tests.spec.ts,602,request-validation,agent-instance,P. Agent-Instance (new in v2),update,negative-update,unknown,PATCH,/agent-instances/{agentInstanceKey},updateAgentInstance,bad-request,updateAgentInstance - Body wrong top-level type +request-validation/agentinstances-validation-api-tests.spec.ts,619,request-validation,agent-instance,P. Agent-Instance (new in v2),update,negative-update,unknown,PATCH,/agent-instances/{agentInstanceKey},updateAgentInstance,bad-request,updateAgentInstance - Param status wrong type (#1) +request-validation/agentinstances-validation-api-tests.spec.ts,638,request-validation,agent-instance,P. Agent-Instance (new in v2),update,negative-update,unknown,PATCH,/agent-instances/{agentInstanceKey},updateAgentInstance,bad-request,updateAgentInstance - Param status wrong type (#2) +request-validation/agentinstances-validation-api-tests.spec.ts,657,request-validation,agent-instance,P. Agent-Instance (new in v2),update,negative-update,unknown,PATCH,/agent-instances/{agentInstanceKey},updateAgentInstance,bad-request,updateAgentInstance - Missing tools.0.description +request-validation/agentinstances-validation-api-tests.spec.ts,681,request-validation,agent-instance,P. Agent-Instance (new in v2),update,negative-update,unknown,PATCH,/agent-instances/{agentInstanceKey},updateAgentInstance,bad-request,updateAgentInstance - Missing tools.0.elementId +request-validation/agentinstances-validation-api-tests.spec.ts,705,request-validation,agent-instance,P. Agent-Instance (new in v2),update,negative-update,unknown,PATCH,/agent-instances/{agentInstanceKey},updateAgentInstance,bad-request,updateAgentInstance - Missing tools.0.name +request-validation/agentinstances-validation-api-tests.spec.ts,729,request-validation,agent-instance,P. Agent-Instance (new in v2),update,negative-update,unknown,PATCH,/agent-instances/{agentInstanceKey},updateAgentInstance,bad-request,updateAgentInstance - Enum violation status +request-validation/agentinstances-validation-api-tests.spec.ts,748,request-validation,agent-instance,P. Agent-Instance (new in v2),update,negative-update,unknown,PATCH,/agent-instances/{agentInstanceKey},updateAgentInstance,bad-request,updateAgentInstance - Missing body +request-validation/agentinstances-validation-api-tests.spec.ts,762,request-validation,agent-instance,P. Agent-Instance (new in v2),update,negative-update,unknown,PATCH,/agent-instances/{agentInstanceKey},updateAgentInstance,bad-request,updateAgentInstance - Path param agentInstanceKey pattern violation +request-validation/auditlogs-validation-api-tests.spec.ts,18,request-validation,audit-log,J/K/L. Observation-only,get,negative-get,any-prior-action,GET,/audit-logs/{auditLogKey},getAuditLog,bad-request,getAuditLog - Path param auditLogKey pattern violation +request-validation/auditlogs-validation-api-tests.spec.ts,30,request-validation,audit-log,J/K/L. Observation-only,search,negative-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,bad-request,searchAuditLogs - Additional prop __unexpectedField +request-validation/auditlogs-validation-api-tests.spec.ts,47,request-validation,audit-log,J/K/L. Observation-only,search,negative-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,bad-request,searchAuditLogs - Body wrong top-level type +request-validation/auditlogs-validation-api-tests.spec.ts,62,request-validation,audit-log,J/K/L. Observation-only,search,negative-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,bad-request,searchAuditLogs - Missing sort.0.field +request-validation/auditlogs-validation-api-tests.spec.ts,79,request-validation,audit-log,J/K/L. Observation-only,search,negative-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,bad-request,searchAuditLogs - Enum violation sort.0.field +request-validation/auditlogs-validation-api-tests.spec.ts,100,request-validation,audit-log,J/K/L. Observation-only,search,negative-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,bad-request,searchAuditLogs - Enum violation sort.0.order +request-validation/authorizations-validation-api-tests.spec.ts,18,request-validation,authorization,A. Entity Lifecycle (CRUD),create,negative-create,owner-entity-or-resource,POST,/authorizations,createAuthorization,bad-request,createAuthorization - Additional prop __extraField +request-validation/authorizations-validation-api-tests.spec.ts,35,request-validation,authorization,A. Entity Lifecycle (CRUD),create,negative-create,owner-entity-or-resource,POST,/authorizations,createAuthorization,bad-request,createAuthorization - Body wrong top-level type +request-validation/authorizations-validation-api-tests.spec.ts,50,request-validation,authorization,A. Entity Lifecycle (CRUD),create,negative-create,owner-entity-or-resource,POST,/authorizations,createAuthorization,bad-request,createAuthorization - Missing body +request-validation/authorizations-validation-api-tests.spec.ts,62,request-validation,authorization,A. Entity Lifecycle (CRUD),create,negative-create,owner-entity-or-resource,POST,/authorizations,createAuthorization,bad-request,createAuthorization - oneOf ambiguous +request-validation/authorizations-validation-api-tests.spec.ts,84,request-validation,authorization,A. Entity Lifecycle (CRUD),create,negative-create,owner-entity-or-resource,POST,/authorizations,createAuthorization,bad-request,createAuthorization - oneOf cross bleed +request-validation/authorizations-validation-api-tests.spec.ts,106,request-validation,authorization,A. Entity Lifecycle (CRUD),create,negative-create,owner-entity-or-resource,POST,/authorizations,createAuthorization,bad-request,createAuthorization - oneOf none match +request-validation/authorizations-validation-api-tests.spec.ts,127,request-validation,authorization,A. Entity Lifecycle (CRUD),create,negative-create,owner-entity-or-resource,POST,/authorizations,createAuthorization,bad-request,createAuthorization - oneOf violation +request-validation/authorizations-validation-api-tests.spec.ts,149,request-validation,authorization,A. Entity Lifecycle (CRUD),delete,negative-delete,owner-entity-or-resource,DELETE,/authorizations/{authorizationKey},deleteAuthorization,bad-request,deleteAuthorization - Path param authorizationKey pattern violation +request-validation/authorizations-validation-api-tests.spec.ts,165,request-validation,authorization,A. Entity Lifecycle (CRUD),get,negative-get,owner-entity-or-resource,GET,/authorizations/{authorizationKey},getAuthorization,bad-request,getAuthorization - Path param authorizationKey pattern violation +request-validation/authorizations-validation-api-tests.spec.ts,181,request-validation,authorization,A. Entity Lifecycle (CRUD),search,negative-search,owner-entity-or-resource,POST,/authorizations/search,searchAuthorizations,bad-request,searchAuthorizations - Additional prop __unexpectedField +request-validation/authorizations-validation-api-tests.spec.ts,200,request-validation,authorization,A. Entity Lifecycle (CRUD),search,negative-search,owner-entity-or-resource,POST,/authorizations/search,searchAuthorizations,bad-request,searchAuthorizations - Body wrong top-level type +request-validation/authorizations-validation-api-tests.spec.ts,215,request-validation,authorization,A. Entity Lifecycle (CRUD),search,negative-search,owner-entity-or-resource,POST,/authorizations/search,searchAuthorizations,bad-request,searchAuthorizations - Missing sort.0.field +request-validation/authorizations-validation-api-tests.spec.ts,232,request-validation,authorization,A. Entity Lifecycle (CRUD),search,negative-search,owner-entity-or-resource,POST,/authorizations/search,searchAuthorizations,bad-request,searchAuthorizations - Enum violation filter.ownerType +request-validation/authorizations-validation-api-tests.spec.ts,251,request-validation,authorization,A. Entity Lifecycle (CRUD),search,negative-search,owner-entity-or-resource,POST,/authorizations/search,searchAuthorizations,bad-request,searchAuthorizations - Enum violation filter.resourceType +request-validation/authorizations-validation-api-tests.spec.ts,272,request-validation,authorization,A. Entity Lifecycle (CRUD),search,negative-search,owner-entity-or-resource,POST,/authorizations/search,searchAuthorizations,bad-request,searchAuthorizations - Enum violation sort.0.field +request-validation/authorizations-validation-api-tests.spec.ts,293,request-validation,authorization,A. Entity Lifecycle (CRUD),search,negative-search,owner-entity-or-resource,POST,/authorizations/search,searchAuthorizations,bad-request,searchAuthorizations - Enum violation sort.0.order +request-validation/authorizations-validation-api-tests.spec.ts,314,request-validation,authorization,A. Entity Lifecycle (CRUD),update,negative-update,owner-entity-or-resource,PUT,/authorizations/{authorizationKey},updateAuthorization,bad-request,updateAuthorization - Additional prop __extraField +request-validation/authorizations-validation-api-tests.spec.ts,333,request-validation,authorization,A. Entity Lifecycle (CRUD),update,negative-update,owner-entity-or-resource,PUT,/authorizations/{authorizationKey},updateAuthorization,bad-request,updateAuthorization - Body wrong top-level type +request-validation/authorizations-validation-api-tests.spec.ts,350,request-validation,authorization,A. Entity Lifecycle (CRUD),update,negative-update,owner-entity-or-resource,PUT,/authorizations/{authorizationKey},updateAuthorization,bad-request,updateAuthorization - Missing body +request-validation/authorizations-validation-api-tests.spec.ts,364,request-validation,authorization,A. Entity Lifecycle (CRUD),update,negative-update,owner-entity-or-resource,PUT,/authorizations/{authorizationKey},updateAuthorization,bad-request,updateAuthorization - oneOf ambiguous +request-validation/authorizations-validation-api-tests.spec.ts,388,request-validation,authorization,A. Entity Lifecycle (CRUD),update,negative-update,owner-entity-or-resource,PUT,/authorizations/{authorizationKey},updateAuthorization,bad-request,updateAuthorization - oneOf cross bleed +request-validation/authorizations-validation-api-tests.spec.ts,412,request-validation,authorization,A. Entity Lifecycle (CRUD),update,negative-update,owner-entity-or-resource,PUT,/authorizations/{authorizationKey},updateAuthorization,bad-request,updateAuthorization - oneOf none match +request-validation/authorizations-validation-api-tests.spec.ts,435,request-validation,authorization,A. Entity Lifecycle (CRUD),update,negative-update,owner-entity-or-resource,PUT,/authorizations/{authorizationKey},updateAuthorization,bad-request,updateAuthorization - Path param authorizationKey pattern violation +request-validation/authorizations-validation-api-tests.spec.ts,451,request-validation,authorization,A. Entity Lifecycle (CRUD),update,negative-update,owner-entity-or-resource,PUT,/authorizations/{authorizationKey},updateAuthorization,bad-request,updateAuthorization - oneOf violation +request-validation/batchoperationitems-validation-api-tests.spec.ts,18,request-validation,batch-operation-item,E. Batch-Operation Lifecycle,search,negative-search,running-batch-operation,POST,/batch-operation-items/search,searchBatchOperationItems,bad-request,searchBatchOperationItems - Additional prop __unexpectedField +request-validation/batchoperationitems-validation-api-tests.spec.ts,37,request-validation,batch-operation-item,E. Batch-Operation Lifecycle,search,negative-search,running-batch-operation,POST,/batch-operation-items/search,searchBatchOperationItems,bad-request,searchBatchOperationItems - Body wrong top-level type +request-validation/batchoperationitems-validation-api-tests.spec.ts,52,request-validation,batch-operation-item,E. Batch-Operation Lifecycle,search,negative-search,running-batch-operation,POST,/batch-operation-items/search,searchBatchOperationItems,bad-request,searchBatchOperationItems - Missing sort.0.field +request-validation/batchoperationitems-validation-api-tests.spec.ts,69,request-validation,batch-operation-item,E. Batch-Operation Lifecycle,search,negative-search,running-batch-operation,POST,/batch-operation-items/search,searchBatchOperationItems,bad-request,searchBatchOperationItems - Enum violation sort.0.field +request-validation/batchoperationitems-validation-api-tests.spec.ts,90,request-validation,batch-operation-item,E. Batch-Operation Lifecycle,search,negative-search,running-batch-operation,POST,/batch-operation-items/search,searchBatchOperationItems,bad-request,searchBatchOperationItems - Enum violation sort.0.order +request-validation/batchoperations-validation-api-tests.spec.ts,18,request-validation,batch-operation,E. Batch-Operation Lifecycle,search,negative-search,running-process-instance(s),POST,/batch-operations/search,searchBatchOperations,bad-request,searchBatchOperations - Additional prop __unexpectedField +request-validation/batchoperations-validation-api-tests.spec.ts,37,request-validation,batch-operation,E. Batch-Operation Lifecycle,search,negative-search,running-process-instance(s),POST,/batch-operations/search,searchBatchOperations,bad-request,searchBatchOperations - Body wrong top-level type +request-validation/batchoperations-validation-api-tests.spec.ts,52,request-validation,batch-operation,E. Batch-Operation Lifecycle,search,negative-search,running-process-instance(s),POST,/batch-operations/search,searchBatchOperations,bad-request,searchBatchOperations - Missing sort.0.field +request-validation/batchoperations-validation-api-tests.spec.ts,69,request-validation,batch-operation,E. Batch-Operation Lifecycle,search,negative-search,running-process-instance(s),POST,/batch-operations/search,searchBatchOperations,bad-request,searchBatchOperations - Enum violation filter.actorType +request-validation/batchoperations-validation-api-tests.spec.ts,88,request-validation,batch-operation,E. Batch-Operation Lifecycle,search,negative-search,running-process-instance(s),POST,/batch-operations/search,searchBatchOperations,bad-request,searchBatchOperations - Enum violation sort.0.field +request-validation/batchoperations-validation-api-tests.spec.ts,109,request-validation,batch-operation,E. Batch-Operation Lifecycle,search,negative-search,running-process-instance(s),POST,/batch-operations/search,searchBatchOperations,bad-request,searchBatchOperations - Enum violation sort.0.order +request-validation/clock-validation-api-tests.spec.ts,18,request-validation,clock,O. System/Admin,create,negative-create,none,PUT,/clock,pinClock,bad-request,pinClock - Additional prop __unexpectedField +request-validation/clock-validation-api-tests.spec.ts,36,request-validation,clock,O. System/Admin,create,negative-create,none,PUT,/clock,pinClock,bad-request,pinClock - Body wrong top-level type +request-validation/clock-validation-api-tests.spec.ts,51,request-validation,clock,O. System/Admin,create,negative-create,none,PUT,/clock,pinClock,bad-request,pinClock - Param timestamp wrong type (#1) +request-validation/clock-validation-api-tests.spec.ts,68,request-validation,clock,O. System/Admin,create,negative-create,none,PUT,/clock,pinClock,bad-request,pinClock - Param timestamp wrong type (#2) +request-validation/clock-validation-api-tests.spec.ts,85,request-validation,clock,O. System/Admin,create,negative-create,none,PUT,/clock,pinClock,bad-request,pinClock - Missing timestamp +request-validation/clock-validation-api-tests.spec.ts,100,request-validation,clock,O. System/Admin,create,negative-create,none,PUT,/clock,pinClock,bad-request,pinClock - Missing body +request-validation/clustervariables-validation-api-tests.spec.ts,18,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/cluster-variables/global,createGlobalClusterVariable,bad-request,createGlobalClusterVariable - Additional prop __extraField +request-validation/clustervariables-validation-api-tests.spec.ts,39,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/cluster-variables/global,createGlobalClusterVariable,bad-request,createGlobalClusterVariable - Body wrong top-level type +request-validation/clustervariables-validation-api-tests.spec.ts,54,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/cluster-variables/global,createGlobalClusterVariable,bad-request,createGlobalClusterVariable - Param name wrong type (#1) +request-validation/clustervariables-validation-api-tests.spec.ts,74,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/cluster-variables/global,createGlobalClusterVariable,bad-request,createGlobalClusterVariable - Param name wrong type (#2) +request-validation/clustervariables-validation-api-tests.spec.ts,94,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/cluster-variables/global,createGlobalClusterVariable,bad-request,createGlobalClusterVariable - Constraint violation name (#1) +request-validation/clustervariables-validation-api-tests.spec.ts,114,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/cluster-variables/global,createGlobalClusterVariable,bad-request,createGlobalClusterVariable - Constraint violation name (#2) +request-validation/clustervariables-validation-api-tests.spec.ts,134,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/cluster-variables/global,createGlobalClusterVariable,bad-request,createGlobalClusterVariable - Constraint violation name (#3) +request-validation/clustervariables-validation-api-tests.spec.ts,154,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/cluster-variables/global,createGlobalClusterVariable,bad-request,createGlobalClusterVariable - Constraint violation name (#4) +request-validation/clustervariables-validation-api-tests.spec.ts,174,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/cluster-variables/global,createGlobalClusterVariable,bad-request,createGlobalClusterVariable - Missing name +request-validation/clustervariables-validation-api-tests.spec.ts,191,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/cluster-variables/global,createGlobalClusterVariable,bad-request,createGlobalClusterVariable - Missing value +request-validation/clustervariables-validation-api-tests.spec.ts,208,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/cluster-variables/global,createGlobalClusterVariable,bad-request,createGlobalClusterVariable - Missing body +request-validation/clustervariables-validation-api-tests.spec.ts,220,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/cluster-variables/global,createGlobalClusterVariable,bad-request,"createGlobalClusterVariable - Missing combo name,value" +request-validation/clustervariables-validation-api-tests.spec.ts,235,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/cluster-variables/tenants/{tenantId},createTenantClusterVariable,bad-request,createTenantClusterVariable - Additional prop __extraField +request-validation/clustervariables-validation-api-tests.spec.ts,258,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/cluster-variables/tenants/{tenantId},createTenantClusterVariable,bad-request,createTenantClusterVariable - Body wrong top-level type +request-validation/clustervariables-validation-api-tests.spec.ts,275,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/cluster-variables/tenants/{tenantId},createTenantClusterVariable,bad-request,createTenantClusterVariable - Param name wrong type (#1) +request-validation/clustervariables-validation-api-tests.spec.ts,297,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/cluster-variables/tenants/{tenantId},createTenantClusterVariable,bad-request,createTenantClusterVariable - Param name wrong type (#2) +request-validation/clustervariables-validation-api-tests.spec.ts,319,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/cluster-variables/tenants/{tenantId},createTenantClusterVariable,bad-request,createTenantClusterVariable - Constraint violation name (#1) +request-validation/clustervariables-validation-api-tests.spec.ts,341,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/cluster-variables/tenants/{tenantId},createTenantClusterVariable,bad-request,createTenantClusterVariable - Constraint violation name (#2) +request-validation/clustervariables-validation-api-tests.spec.ts,363,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/cluster-variables/tenants/{tenantId},createTenantClusterVariable,bad-request,createTenantClusterVariable - Constraint violation name (#3) +request-validation/clustervariables-validation-api-tests.spec.ts,385,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/cluster-variables/tenants/{tenantId},createTenantClusterVariable,bad-request,createTenantClusterVariable - Constraint violation name (#4) +request-validation/clustervariables-validation-api-tests.spec.ts,407,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/cluster-variables/tenants/{tenantId},createTenantClusterVariable,bad-request,createTenantClusterVariable - Missing name +request-validation/clustervariables-validation-api-tests.spec.ts,426,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/cluster-variables/tenants/{tenantId},createTenantClusterVariable,bad-request,createTenantClusterVariable - Missing value +request-validation/clustervariables-validation-api-tests.spec.ts,445,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/cluster-variables/tenants/{tenantId},createTenantClusterVariable,bad-request,createTenantClusterVariable - Missing body +request-validation/clustervariables-validation-api-tests.spec.ts,459,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/cluster-variables/tenants/{tenantId},createTenantClusterVariable,bad-request,"createTenantClusterVariable - Missing combo name,value" +request-validation/clustervariables-validation-api-tests.spec.ts,476,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/cluster-variables/tenants/{tenantId},createTenantClusterVariable,bad-request,createTenantClusterVariable - Path param tenantId pattern violation +request-validation/clustervariables-validation-api-tests.spec.ts,492,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),delete,negative-delete,none,DELETE,/cluster-variables/global/{name},deleteGlobalClusterVariable,bad-request,deleteGlobalClusterVariable - Path param name pattern violation +request-validation/clustervariables-validation-api-tests.spec.ts,506,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),delete,negative-delete,none,DELETE,/cluster-variables/tenants/{tenantId}/{name},deleteTenantClusterVariable,bad-request,deleteTenantClusterVariable - Path param name pattern violation +request-validation/clustervariables-validation-api-tests.spec.ts,523,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),delete,negative-delete,none,DELETE,/cluster-variables/tenants/{tenantId}/{name},deleteTenantClusterVariable,bad-request,deleteTenantClusterVariable - Path param tenantId pattern violation +request-validation/clustervariables-validation-api-tests.spec.ts,540,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),get,negative-get,none,GET,/cluster-variables/global/{name},getGlobalClusterVariable,bad-request,getGlobalClusterVariable - Path param name pattern violation +request-validation/clustervariables-validation-api-tests.spec.ts,554,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),get,negative-get,none,GET,/cluster-variables/tenants/{tenantId}/{name},getTenantClusterVariable,bad-request,getTenantClusterVariable - Path param name pattern violation +request-validation/clustervariables-validation-api-tests.spec.ts,571,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),get,negative-get,none,GET,/cluster-variables/tenants/{tenantId}/{name},getTenantClusterVariable,bad-request,getTenantClusterVariable - Path param tenantId pattern violation +request-validation/clustervariables-validation-api-tests.spec.ts,588,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/cluster-variables/search,searchClusterVariables,bad-request,searchClusterVariables - Additional prop __unexpectedField +request-validation/clustervariables-validation-api-tests.spec.ts,607,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/cluster-variables/search,searchClusterVariables,bad-request,searchClusterVariables - Body wrong top-level type +request-validation/clustervariables-validation-api-tests.spec.ts,622,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/cluster-variables/search,searchClusterVariables,bad-request,searchClusterVariables - Missing sort.0.field +request-validation/clustervariables-validation-api-tests.spec.ts,639,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/cluster-variables/search,searchClusterVariables,bad-request,searchClusterVariables - Enum violation sort.0.field +request-validation/clustervariables-validation-api-tests.spec.ts,660,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/cluster-variables/search,searchClusterVariables,bad-request,searchClusterVariables - Enum violation sort.0.order +request-validation/clustervariables-validation-api-tests.spec.ts,681,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/cluster-variables/search,searchClusterVariables,bad-request,searchClusterVariables - Param query.truncateValues wrong type +request-validation/clustervariables-validation-api-tests.spec.ts,697,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/cluster-variables/global/{name},updateGlobalClusterVariable,bad-request,updateGlobalClusterVariable - Additional prop __extraField +request-validation/clustervariables-validation-api-tests.spec.ts,717,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/cluster-variables/global/{name},updateGlobalClusterVariable,bad-request,updateGlobalClusterVariable - Body wrong top-level type +request-validation/clustervariables-validation-api-tests.spec.ts,732,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/cluster-variables/global/{name},updateGlobalClusterVariable,bad-request,updateGlobalClusterVariable - Missing value +request-validation/clustervariables-validation-api-tests.spec.ts,747,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/cluster-variables/global/{name},updateGlobalClusterVariable,bad-request,updateGlobalClusterVariable - Missing body +request-validation/clustervariables-validation-api-tests.spec.ts,759,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/cluster-variables/global/{name},updateGlobalClusterVariable,bad-request,updateGlobalClusterVariable - Path param name pattern violation +request-validation/clustervariables-validation-api-tests.spec.ts,773,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/cluster-variables/tenants/{tenantId}/{name},updateTenantClusterVariable,bad-request,updateTenantClusterVariable - Additional prop __extraField +request-validation/clustervariables-validation-api-tests.spec.ts,796,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/cluster-variables/tenants/{tenantId}/{name},updateTenantClusterVariable,bad-request,updateTenantClusterVariable - Body wrong top-level type +request-validation/clustervariables-validation-api-tests.spec.ts,814,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/cluster-variables/tenants/{tenantId}/{name},updateTenantClusterVariable,bad-request,updateTenantClusterVariable - Missing value +request-validation/clustervariables-validation-api-tests.spec.ts,832,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/cluster-variables/tenants/{tenantId}/{name},updateTenantClusterVariable,bad-request,updateTenantClusterVariable - Missing body +request-validation/clustervariables-validation-api-tests.spec.ts,847,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/cluster-variables/tenants/{tenantId}/{name},updateTenantClusterVariable,bad-request,updateTenantClusterVariable - Path param name pattern violation +request-validation/clustervariables-validation-api-tests.spec.ts,864,request-validation,cluster-variables,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/cluster-variables/tenants/{tenantId}/{name},updateTenantClusterVariable,bad-request,updateTenantClusterVariable - Path param tenantId pattern violation +request-validation/conditionals-validation-api-tests.spec.ts,18,request-validation,conditional,N. Engine Evaluation,create,negative-create,none,POST,/conditionals/evaluation,evaluateConditionals,bad-request,evaluateConditionals - Additional prop __extraField +request-validation/conditionals-validation-api-tests.spec.ts,38,request-validation,conditional,N. Engine Evaluation,create,negative-create,none,POST,/conditionals/evaluation,evaluateConditionals,bad-request,evaluateConditionals - Body wrong top-level type +request-validation/conditionals-validation-api-tests.spec.ts,53,request-validation,conditional,N. Engine Evaluation,create,negative-create,none,POST,/conditionals/evaluation,evaluateConditionals,bad-request,evaluateConditionals - Param processDefinitionKey wrong type (#1) +request-validation/conditionals-validation-api-tests.spec.ts,74,request-validation,conditional,N. Engine Evaluation,create,negative-create,none,POST,/conditionals/evaluation,evaluateConditionals,bad-request,evaluateConditionals - Param processDefinitionKey wrong type (#2) +request-validation/conditionals-validation-api-tests.spec.ts,95,request-validation,conditional,N. Engine Evaluation,create,negative-create,none,POST,/conditionals/evaluation,evaluateConditionals,bad-request,evaluateConditionals - Param tenantId wrong type (#1) +request-validation/conditionals-validation-api-tests.spec.ts,114,request-validation,conditional,N. Engine Evaluation,create,negative-create,none,POST,/conditionals/evaluation,evaluateConditionals,bad-request,evaluateConditionals - Param tenantId wrong type (#2) +request-validation/conditionals-validation-api-tests.spec.ts,133,request-validation,conditional,N. Engine Evaluation,create,negative-create,none,POST,/conditionals/evaluation,evaluateConditionals,bad-request,evaluateConditionals - Constraint violation tenantId (#1) +request-validation/conditionals-validation-api-tests.spec.ts,154,request-validation,conditional,N. Engine Evaluation,create,negative-create,none,POST,/conditionals/evaluation,evaluateConditionals,bad-request,evaluateConditionals - Constraint violation tenantId (#2) +request-validation/conditionals-validation-api-tests.spec.ts,175,request-validation,conditional,N. Engine Evaluation,create,negative-create,none,POST,/conditionals/evaluation,evaluateConditionals,bad-request,evaluateConditionals - Constraint violation tenantId (#3) +request-validation/conditionals-validation-api-tests.spec.ts,196,request-validation,conditional,N. Engine Evaluation,create,negative-create,none,POST,/conditionals/evaluation,evaluateConditionals,bad-request,evaluateConditionals - Constraint violation tenantId (#4) +request-validation/conditionals-validation-api-tests.spec.ts,217,request-validation,conditional,N. Engine Evaluation,create,negative-create,none,POST,/conditionals/evaluation,evaluateConditionals,bad-request,evaluateConditionals - Missing variables +request-validation/conditionals-validation-api-tests.spec.ts,232,request-validation,conditional,N. Engine Evaluation,create,negative-create,none,POST,/conditionals/evaluation,evaluateConditionals,bad-request,evaluateConditionals - Missing body +request-validation/correlatedmessagesubscriptions-validation-api-tests.spec.ts,18,request-validation,correlated-message-subscription,M. Messaging/Signals,search,negative-search,deployed-process-with-message-catch-event + correlated-message,POST,/correlated-message-subscriptions/search,searchCorrelatedMessageSubscriptions,bad-request,searchCorrelatedMessageSubscriptions - Additional prop __unexpectedField +request-validation/correlatedmessagesubscriptions-validation-api-tests.spec.ts,37,request-validation,correlated-message-subscription,M. Messaging/Signals,search,negative-search,deployed-process-with-message-catch-event + correlated-message,POST,/correlated-message-subscriptions/search,searchCorrelatedMessageSubscriptions,bad-request,searchCorrelatedMessageSubscriptions - Body wrong top-level type +request-validation/correlatedmessagesubscriptions-validation-api-tests.spec.ts,54,request-validation,correlated-message-subscription,M. Messaging/Signals,search,negative-search,deployed-process-with-message-catch-event + correlated-message,POST,/correlated-message-subscriptions/search,searchCorrelatedMessageSubscriptions,bad-request,searchCorrelatedMessageSubscriptions - Missing sort.0.field +request-validation/correlatedmessagesubscriptions-validation-api-tests.spec.ts,73,request-validation,correlated-message-subscription,M. Messaging/Signals,search,negative-search,deployed-process-with-message-catch-event + correlated-message,POST,/correlated-message-subscriptions/search,searchCorrelatedMessageSubscriptions,bad-request,searchCorrelatedMessageSubscriptions - Enum violation sort.0.field +request-validation/correlatedmessagesubscriptions-validation-api-tests.spec.ts,96,request-validation,correlated-message-subscription,M. Messaging/Signals,search,negative-search,deployed-process-with-message-catch-event + correlated-message,POST,/correlated-message-subscriptions/search,searchCorrelatedMessageSubscriptions,bad-request,searchCorrelatedMessageSubscriptions - Enum violation sort.0.order +request-validation/decisiondefinitions-validation-api-tests.spec.ts,18,request-validation,decision-definition,C. Deployment Lifecycle,create,negative-create,deployed-decision,POST,/decision-definitions/evaluation,evaluateDecision,bad-request,evaluateDecision - Additional prop __extraField +request-validation/decisiondefinitions-validation-api-tests.spec.ts,35,request-validation,decision-definition,C. Deployment Lifecycle,create,negative-create,deployed-decision,POST,/decision-definitions/evaluation,evaluateDecision,bad-request,evaluateDecision - Body wrong top-level type +request-validation/decisiondefinitions-validation-api-tests.spec.ts,50,request-validation,decision-definition,C. Deployment Lifecycle,create,negative-create,deployed-decision,POST,/decision-definitions/evaluation,evaluateDecision,bad-request,evaluateDecision - Missing body +request-validation/decisiondefinitions-validation-api-tests.spec.ts,62,request-validation,decision-definition,C. Deployment Lifecycle,create,negative-create,deployed-decision,POST,/decision-definitions/evaluation,evaluateDecision,bad-request,evaluateDecision - oneOf ambiguous +request-validation/decisiondefinitions-validation-api-tests.spec.ts,80,request-validation,decision-definition,C. Deployment Lifecycle,create,negative-create,deployed-decision,POST,/decision-definitions/evaluation,evaluateDecision,bad-request,evaluateDecision - oneOf cross bleed +request-validation/decisiondefinitions-validation-api-tests.spec.ts,98,request-validation,decision-definition,C. Deployment Lifecycle,create,negative-create,deployed-decision,POST,/decision-definitions/evaluation,evaluateDecision,bad-request,evaluateDecision - oneOf none match +request-validation/decisiondefinitions-validation-api-tests.spec.ts,113,request-validation,decision-definition,C. Deployment Lifecycle,create,negative-create,deployed-decision,POST,/decision-definitions/evaluation,evaluateDecision,bad-request,evaluateDecision - oneOf violation +request-validation/decisiondefinitions-validation-api-tests.spec.ts,131,request-validation,decision-definition,C. Deployment Lifecycle,get,negative-get,deployed-decision,GET,/decision-definitions/{decisionDefinitionKey},getDecisionDefinition,bad-request,getDecisionDefinition - Path param decisionDefinitionKey pattern violation +request-validation/decisiondefinitions-validation-api-tests.spec.ts,147,request-validation,decision-definition,C. Deployment Lifecycle,get,negative-get,deployed-decision,GET,/decision-definitions/{decisionDefinitionKey}/xml,getDecisionDefinitionXML,bad-request,getDecisionDefinitionXML - Path param decisionDefinitionKey pattern violation +request-validation/decisiondefinitions-validation-api-tests.spec.ts,163,request-validation,decision-definition,C. Deployment Lifecycle,search,negative-search,deployed-decision,POST,/decision-definitions/search,searchDecisionDefinitions,bad-request,searchDecisionDefinitions - Additional prop __unexpectedField +request-validation/decisiondefinitions-validation-api-tests.spec.ts,182,request-validation,decision-definition,C. Deployment Lifecycle,search,negative-search,deployed-decision,POST,/decision-definitions/search,searchDecisionDefinitions,bad-request,searchDecisionDefinitions - Body wrong top-level type +request-validation/decisiondefinitions-validation-api-tests.spec.ts,197,request-validation,decision-definition,C. Deployment Lifecycle,search,negative-search,deployed-decision,POST,/decision-definitions/search,searchDecisionDefinitions,bad-request,searchDecisionDefinitions - Missing sort.0.field +request-validation/decisiondefinitions-validation-api-tests.spec.ts,214,request-validation,decision-definition,C. Deployment Lifecycle,search,negative-search,deployed-decision,POST,/decision-definitions/search,searchDecisionDefinitions,bad-request,searchDecisionDefinitions - Enum violation sort.0.field +request-validation/decisiondefinitions-validation-api-tests.spec.ts,235,request-validation,decision-definition,C. Deployment Lifecycle,search,negative-search,deployed-decision,POST,/decision-definitions/search,searchDecisionDefinitions,bad-request,searchDecisionDefinitions - Enum violation sort.0.order +request-validation/decisioninstances-validation-api-tests.spec.ts,18,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/{decisionEvaluationKey}/deletion,deleteDecisionInstance,bad-request,deleteDecisionInstance - Additional prop __unexpectedField +request-validation/decisioninstances-validation-api-tests.spec.ts,40,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/{decisionEvaluationKey}/deletion,deleteDecisionInstance,bad-request,deleteDecisionInstance - Body wrong top-level type +request-validation/decisioninstances-validation-api-tests.spec.ts,57,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/{decisionEvaluationKey}/deletion,deleteDecisionInstance,bad-request,deleteDecisionInstance - Param operationReference wrong type (#1) +request-validation/decisioninstances-validation-api-tests.spec.ts,78,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/{decisionEvaluationKey}/deletion,deleteDecisionInstance,bad-request,deleteDecisionInstance - Param operationReference wrong type (#2) +request-validation/decisioninstances-validation-api-tests.spec.ts,99,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/{decisionEvaluationKey}/deletion,deleteDecisionInstance,bad-request,deleteDecisionInstance - Constraint violation operationReference (#1) +request-validation/decisioninstances-validation-api-tests.spec.ts,120,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/{decisionEvaluationKey}/deletion,deleteDecisionInstance,bad-request,deleteDecisionInstance - Constraint violation operationReference (#2) +request-validation/decisioninstances-validation-api-tests.spec.ts,141,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/{decisionEvaluationKey}/deletion,deleteDecisionInstance,bad-request,deleteDecisionInstance - Constraint violation operationReference (#3) +request-validation/decisioninstances-validation-api-tests.spec.ts,162,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/{decisionEvaluationKey}/deletion,deleteDecisionInstance,bad-request,deleteDecisionInstance - Path param decisionEvaluationKey pattern violation +request-validation/decisioninstances-validation-api-tests.spec.ts,178,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Additional prop __unexpectedField +request-validation/decisioninstances-validation-api-tests.spec.ts,207,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Body wrong top-level type +request-validation/decisioninstances-validation-api-tests.spec.ts,224,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Param filter.decisionDefinitionId wrong type (#1) +request-validation/decisioninstances-validation-api-tests.spec.ts,252,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Param filter.decisionDefinitionId wrong type (#2) +request-validation/decisioninstances-validation-api-tests.spec.ts,280,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Param filter.decisionDefinitionType wrong type (#1) +request-validation/decisioninstances-validation-api-tests.spec.ts,308,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Param filter.decisionDefinitionType wrong type (#2) +request-validation/decisioninstances-validation-api-tests.spec.ts,336,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Param filter.decisionDefinitionVersion wrong type (#1) +request-validation/decisioninstances-validation-api-tests.spec.ts,364,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Param filter.decisionDefinitionVersion wrong type (#2) +request-validation/decisioninstances-validation-api-tests.spec.ts,392,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Param filter.decisionEvaluationKey wrong type (#1) +request-validation/decisioninstances-validation-api-tests.spec.ts,420,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Param filter.decisionEvaluationKey wrong type (#2) +request-validation/decisioninstances-validation-api-tests.spec.ts,448,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Param filter.processDefinitionKey wrong type (#1) +request-validation/decisioninstances-validation-api-tests.spec.ts,476,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Param filter.processDefinitionKey wrong type (#2) +request-validation/decisioninstances-validation-api-tests.spec.ts,504,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Param filter.processInstanceKey wrong type (#1) +request-validation/decisioninstances-validation-api-tests.spec.ts,532,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Param filter.processInstanceKey wrong type (#2) +request-validation/decisioninstances-validation-api-tests.spec.ts,560,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Param filter.tenantId wrong type (#1) +request-validation/decisioninstances-validation-api-tests.spec.ts,588,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Param filter.tenantId wrong type (#2) +request-validation/decisioninstances-validation-api-tests.spec.ts,616,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Param operationReference wrong type (#1) +request-validation/decisioninstances-validation-api-tests.spec.ts,644,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Param operationReference wrong type (#2) +request-validation/decisioninstances-validation-api-tests.spec.ts,672,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Constraint violation filter.decisionDefinitionId (#1) +request-validation/decisioninstances-validation-api-tests.spec.ts,700,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Constraint violation filter.decisionDefinitionId (#2) +request-validation/decisioninstances-validation-api-tests.spec.ts,728,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Constraint violation filter.tenantId (#1) +request-validation/decisioninstances-validation-api-tests.spec.ts,756,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Constraint violation filter.tenantId (#2) +request-validation/decisioninstances-validation-api-tests.spec.ts,784,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Constraint violation filter.tenantId (#3) +request-validation/decisioninstances-validation-api-tests.spec.ts,812,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Constraint violation filter.tenantId (#4) +request-validation/decisioninstances-validation-api-tests.spec.ts,840,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Constraint violation operationReference (#1) +request-validation/decisioninstances-validation-api-tests.spec.ts,868,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Constraint violation operationReference (#2) +request-validation/decisioninstances-validation-api-tests.spec.ts,896,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Constraint violation operationReference (#3) +request-validation/decisioninstances-validation-api-tests.spec.ts,924,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Enum violation filter.decisionDefinitionType +request-validation/decisioninstances-validation-api-tests.spec.ts,952,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Missing filter +request-validation/decisioninstances-validation-api-tests.spec.ts,967,request-validation,decision-instance,I. Decision-Instance Lifecycle,delete,negative-delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,bad-request,deleteDecisionInstancesBatchOperation - Missing body +request-validation/decisioninstances-validation-api-tests.spec.ts,979,request-validation,decision-instance,I. Decision-Instance Lifecycle,get,negative-get,deployed-decision,GET,/decision-instances/{decisionEvaluationInstanceKey},getDecisionInstance,bad-request,getDecisionInstance - Path param decisionEvaluationInstanceKey pattern violation +request-validation/decisioninstances-validation-api-tests.spec.ts,995,request-validation,decision-instance,I. Decision-Instance Lifecycle,search,negative-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,bad-request,searchDecisionInstances - Additional prop __unexpectedField +request-validation/decisioninstances-validation-api-tests.spec.ts,1014,request-validation,decision-instance,I. Decision-Instance Lifecycle,search,negative-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,bad-request,searchDecisionInstances - Body wrong top-level type +request-validation/decisioninstances-validation-api-tests.spec.ts,1029,request-validation,decision-instance,I. Decision-Instance Lifecycle,search,negative-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,bad-request,searchDecisionInstances - Missing sort.0.field +request-validation/decisioninstances-validation-api-tests.spec.ts,1046,request-validation,decision-instance,I. Decision-Instance Lifecycle,search,negative-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,bad-request,searchDecisionInstances - Enum violation filter.decisionDefinitionType +request-validation/decisioninstances-validation-api-tests.spec.ts,1067,request-validation,decision-instance,I. Decision-Instance Lifecycle,search,negative-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,bad-request,searchDecisionInstances - Enum violation sort.0.field +request-validation/decisioninstances-validation-api-tests.spec.ts,1088,request-validation,decision-instance,I. Decision-Instance Lifecycle,search,negative-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,bad-request,searchDecisionInstances - Enum violation sort.0.order +request-validation/decisionrequirements-validation-api-tests.spec.ts,18,request-validation,decision-requirements,C. Deployment Lifecycle,get,negative-get,deployed-drd,GET,/decision-requirements/{decisionRequirementsKey},getDecisionRequirements,bad-request,getDecisionRequirements - Path param decisionRequirementsKey pattern violation +request-validation/decisionrequirements-validation-api-tests.spec.ts,34,request-validation,decision-requirements,C. Deployment Lifecycle,get,negative-get,deployed-drd,GET,/decision-requirements/{decisionRequirementsKey}/xml,getDecisionRequirementsXML,bad-request,getDecisionRequirementsXML - Path param decisionRequirementsKey pattern violation +request-validation/decisionrequirements-validation-api-tests.spec.ts,50,request-validation,decision-requirements,C. Deployment Lifecycle,search,negative-search,deployed-drd,POST,/decision-requirements/search,searchDecisionRequirements,bad-request,searchDecisionRequirements - Additional prop __unexpectedField +request-validation/decisionrequirements-validation-api-tests.spec.ts,69,request-validation,decision-requirements,C. Deployment Lifecycle,search,negative-search,deployed-drd,POST,/decision-requirements/search,searchDecisionRequirements,bad-request,searchDecisionRequirements - Body wrong top-level type +request-validation/decisionrequirements-validation-api-tests.spec.ts,84,request-validation,decision-requirements,C. Deployment Lifecycle,search,negative-search,deployed-drd,POST,/decision-requirements/search,searchDecisionRequirements,bad-request,searchDecisionRequirements - Missing sort.0.field +request-validation/decisionrequirements-validation-api-tests.spec.ts,101,request-validation,decision-requirements,C. Deployment Lifecycle,search,negative-search,deployed-drd,POST,/decision-requirements/search,searchDecisionRequirements,bad-request,searchDecisionRequirements - Enum violation sort.0.field +request-validation/decisionrequirements-validation-api-tests.spec.ts,124,request-validation,decision-requirements,C. Deployment Lifecycle,search,negative-search,deployed-drd,POST,/decision-requirements/search,searchDecisionRequirements,bad-request,searchDecisionRequirements - Enum violation sort.0.order +request-validation/deployments-validation-api-tests.spec.ts,18,request-validation,resource,C. Deployment Lifecycle,create,negative-create,none,POST,/deployments,createDeployment,bad-request,createDeployment - Additional prop __unexpectedField +request-validation/deployments-validation-api-tests.spec.ts,39,request-validation,resource,C. Deployment Lifecycle,create,negative-create,none,POST,/deployments,createDeployment,bad-request,createDeployment - Param tenantId wrong type +request-validation/deployments-validation-api-tests.spec.ts,59,request-validation,resource,C. Deployment Lifecycle,create,negative-create,none,POST,/deployments,createDeployment,bad-request,createDeployment - Constraint violation tenantId (#1) +request-validation/deployments-validation-api-tests.spec.ts,79,request-validation,resource,C. Deployment Lifecycle,create,negative-create,none,POST,/deployments,createDeployment,bad-request,createDeployment - Constraint violation tenantId (#2) +request-validation/deployments-validation-api-tests.spec.ts,99,request-validation,resource,C. Deployment Lifecycle,create,negative-create,none,POST,/deployments,createDeployment,bad-request,createDeployment - Constraint violation tenantId (#3) +request-validation/deployments-validation-api-tests.spec.ts,119,request-validation,resource,C. Deployment Lifecycle,create,negative-create,none,POST,/deployments,createDeployment,bad-request,createDeployment - Constraint violation tenantId (#4) +request-validation/deployments-validation-api-tests.spec.ts,139,request-validation,resource,C. Deployment Lifecycle,create,negative-create,none,POST,/deployments,createDeployment,bad-request,createDeployment - Missing body +request-validation/deployments-validation-api-tests.spec.ts,156,request-validation,resource,C. Deployment Lifecycle,create,negative-create,none,POST,/deployments,createDeployment,bad-request,createDeployment - Missing resources +request-validation/documents-validation-api-tests.spec.ts,18,request-validation,document,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/documents,createDocument,bad-request,createDocument - Additional prop __unexpectedField +request-validation/documents-validation-api-tests.spec.ts,38,request-validation,document,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/documents,createDocument,bad-request,createDocument - Missing body +request-validation/documents-validation-api-tests.spec.ts,55,request-validation,document,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/documents,createDocument,bad-request,createDocument - Missing file +request-validation/documents-validation-api-tests.spec.ts,72,request-validation,document,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/documents,createDocument,bad-request,createDocument - Param query.documentId wrong type +request-validation/documents-validation-api-tests.spec.ts,92,request-validation,document,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/documents/{documentId}/links,createDocumentLink,bad-request,createDocumentLink - Additional prop __extraField +request-validation/documents-validation-api-tests.spec.ts,110,request-validation,document,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/documents/{documentId}/links,createDocumentLink,bad-request,createDocumentLink - Body wrong top-level type +request-validation/documents-validation-api-tests.spec.ts,125,request-validation,document,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/documents/{documentId}/links,createDocumentLink,bad-request,createDocumentLink - Param timeToLive wrong type (#1) +request-validation/documents-validation-api-tests.spec.ts,142,request-validation,document,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/documents/{documentId}/links,createDocumentLink,bad-request,createDocumentLink - Param timeToLive wrong type (#2) +request-validation/documents-validation-api-tests.spec.ts,159,request-validation,document,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/documents/batch,createDocuments,bad-request,createDocuments - Additional prop __unexpectedField +request-validation/documents-validation-api-tests.spec.ts,179,request-validation,document,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/documents/batch,createDocuments,bad-request,createDocuments - Missing body +request-validation/documents-validation-api-tests.spec.ts,196,request-validation,document,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/documents/batch,createDocuments,bad-request,createDocuments - Missing files +request-validation/elementinstances-validation-api-tests.spec.ts,18,request-validation,element-instance,J/K/L. Observation-only,create,negative-create,running-process-instance,POST,/element-instances/ad-hoc-activities/{adHocSubProcessInstanceKey}/activation,activateAdHocSubProcessActivities,bad-request,activateAdHocSubProcessActivities - Additional prop __extraField +request-validation/elementinstances-validation-api-tests.spec.ts,45,request-validation,element-instance,J/K/L. Observation-only,create,negative-create,running-process-instance,POST,/element-instances/ad-hoc-activities/{adHocSubProcessInstanceKey}/activation,activateAdHocSubProcessActivities,bad-request,activateAdHocSubProcessActivities - Body wrong top-level type +request-validation/elementinstances-validation-api-tests.spec.ts,65,request-validation,element-instance,J/K/L. Observation-only,create,negative-create,running-process-instance,POST,/element-instances/ad-hoc-activities/{adHocSubProcessInstanceKey}/activation,activateAdHocSubProcessActivities,bad-request,activateAdHocSubProcessActivities - Missing elements.0.elementId +request-validation/elementinstances-validation-api-tests.spec.ts,87,request-validation,element-instance,J/K/L. Observation-only,create,negative-create,running-process-instance,POST,/element-instances/ad-hoc-activities/{adHocSubProcessInstanceKey}/activation,activateAdHocSubProcessActivities,bad-request,activateAdHocSubProcessActivities - Missing elements +request-validation/elementinstances-validation-api-tests.spec.ts,105,request-validation,element-instance,J/K/L. Observation-only,create,negative-create,running-process-instance,POST,/element-instances/ad-hoc-activities/{adHocSubProcessInstanceKey}/activation,activateAdHocSubProcessActivities,bad-request,activateAdHocSubProcessActivities - Missing body +request-validation/elementinstances-validation-api-tests.spec.ts,120,request-validation,element-instance,J/K/L. Observation-only,create,negative-create,running-process-instance,POST,/element-instances/ad-hoc-activities/{adHocSubProcessInstanceKey}/activation,activateAdHocSubProcessActivities,bad-request,activateAdHocSubProcessActivities - Path param adHocSubProcessInstanceKey pattern violation +request-validation/elementinstances-validation-api-tests.spec.ts,137,request-validation,element-instance,J/K/L. Observation-only,create,negative-create,running-process-instance,PUT,/element-instances/{elementInstanceKey}/variables,createElementInstanceVariables,bad-request,createElementInstanceVariables - Additional prop __unexpectedField +request-validation/elementinstances-validation-api-tests.spec.ts,160,request-validation,element-instance,J/K/L. Observation-only,create,negative-create,running-process-instance,PUT,/element-instances/{elementInstanceKey}/variables,createElementInstanceVariables,bad-request,createElementInstanceVariables - Body wrong top-level type +request-validation/elementinstances-validation-api-tests.spec.ts,179,request-validation,element-instance,J/K/L. Observation-only,create,negative-create,running-process-instance,PUT,/element-instances/{elementInstanceKey}/variables,createElementInstanceVariables,bad-request,createElementInstanceVariables - Param operationReference wrong type (#1) +request-validation/elementinstances-validation-api-tests.spec.ts,201,request-validation,element-instance,J/K/L. Observation-only,create,negative-create,running-process-instance,PUT,/element-instances/{elementInstanceKey}/variables,createElementInstanceVariables,bad-request,createElementInstanceVariables - Param operationReference wrong type (#2) +request-validation/elementinstances-validation-api-tests.spec.ts,223,request-validation,element-instance,J/K/L. Observation-only,create,negative-create,running-process-instance,PUT,/element-instances/{elementInstanceKey}/variables,createElementInstanceVariables,bad-request,createElementInstanceVariables - Constraint violation operationReference (#1) +request-validation/elementinstances-validation-api-tests.spec.ts,245,request-validation,element-instance,J/K/L. Observation-only,create,negative-create,running-process-instance,PUT,/element-instances/{elementInstanceKey}/variables,createElementInstanceVariables,bad-request,createElementInstanceVariables - Constraint violation operationReference (#2) +request-validation/elementinstances-validation-api-tests.spec.ts,267,request-validation,element-instance,J/K/L. Observation-only,create,negative-create,running-process-instance,PUT,/element-instances/{elementInstanceKey}/variables,createElementInstanceVariables,bad-request,createElementInstanceVariables - Constraint violation operationReference (#3) +request-validation/elementinstances-validation-api-tests.spec.ts,289,request-validation,element-instance,J/K/L. Observation-only,create,negative-create,running-process-instance,PUT,/element-instances/{elementInstanceKey}/variables,createElementInstanceVariables,bad-request,createElementInstanceVariables - Missing variables +request-validation/elementinstances-validation-api-tests.spec.ts,306,request-validation,element-instance,J/K/L. Observation-only,create,negative-create,running-process-instance,PUT,/element-instances/{elementInstanceKey}/variables,createElementInstanceVariables,bad-request,createElementInstanceVariables - Missing body +request-validation/elementinstances-validation-api-tests.spec.ts,320,request-validation,element-instance,J/K/L. Observation-only,create,negative-create,running-process-instance,PUT,/element-instances/{elementInstanceKey}/variables,createElementInstanceVariables,bad-request,createElementInstanceVariables - Path param elementInstanceKey pattern violation +request-validation/elementinstances-validation-api-tests.spec.ts,336,request-validation,element-instance,J/K/L. Observation-only,get,negative-get,running-process-instance,GET,/element-instances/{elementInstanceKey},getElementInstance,bad-request,getElementInstance - Path param elementInstanceKey pattern violation +request-validation/elementinstances-validation-api-tests.spec.ts,352,request-validation,element-instance,J/K/L. Observation-only,search,negative-search,running-process-instance,POST,/element-instances/{elementInstanceKey}/incidents/search,searchElementInstanceIncidents,bad-request,searchElementInstanceIncidents - Additional prop __unexpectedField +request-validation/elementinstances-validation-api-tests.spec.ts,373,request-validation,element-instance,J/K/L. Observation-only,search,negative-search,running-process-instance,POST,/element-instances/{elementInstanceKey}/incidents/search,searchElementInstanceIncidents,bad-request,searchElementInstanceIncidents - Body wrong top-level type +request-validation/elementinstances-validation-api-tests.spec.ts,392,request-validation,element-instance,J/K/L. Observation-only,search,negative-search,running-process-instance,POST,/element-instances/{elementInstanceKey}/incidents/search,searchElementInstanceIncidents,bad-request,searchElementInstanceIncidents - Missing sort.0.field +request-validation/elementinstances-validation-api-tests.spec.ts,411,request-validation,element-instance,J/K/L. Observation-only,search,negative-search,running-process-instance,POST,/element-instances/{elementInstanceKey}/incidents/search,searchElementInstanceIncidents,bad-request,searchElementInstanceIncidents - Enum violation sort.0.field +request-validation/elementinstances-validation-api-tests.spec.ts,436,request-validation,element-instance,J/K/L. Observation-only,search,negative-search,running-process-instance,POST,/element-instances/{elementInstanceKey}/incidents/search,searchElementInstanceIncidents,bad-request,searchElementInstanceIncidents - Enum violation sort.0.order +request-validation/elementinstances-validation-api-tests.spec.ts,461,request-validation,element-instance,J/K/L. Observation-only,search,negative-search,running-process-instance,POST,/element-instances/{elementInstanceKey}/incidents/search,searchElementInstanceIncidents,bad-request,searchElementInstanceIncidents - Missing body +request-validation/elementinstances-validation-api-tests.spec.ts,475,request-validation,element-instance,J/K/L. Observation-only,search,negative-search,running-process-instance,POST,/element-instances/{elementInstanceKey}/incidents/search,searchElementInstanceIncidents,bad-request,searchElementInstanceIncidents - Path param elementInstanceKey pattern violation +request-validation/elementinstances-validation-api-tests.spec.ts,491,request-validation,element-instance,J/K/L. Observation-only,search,negative-search,running-process-instance,POST,/element-instances/search,searchElementInstances,bad-request,searchElementInstances - Additional prop __unexpectedField +request-validation/elementinstances-validation-api-tests.spec.ts,510,request-validation,element-instance,J/K/L. Observation-only,search,negative-search,running-process-instance,POST,/element-instances/search,searchElementInstances,bad-request,searchElementInstances - Body wrong top-level type +request-validation/elementinstances-validation-api-tests.spec.ts,525,request-validation,element-instance,J/K/L. Observation-only,search,negative-search,running-process-instance,POST,/element-instances/search,searchElementInstances,bad-request,searchElementInstances - Missing sort.0.field +request-validation/elementinstances-validation-api-tests.spec.ts,542,request-validation,element-instance,J/K/L. Observation-only,search,negative-search,running-process-instance,POST,/element-instances/search,searchElementInstances,bad-request,searchElementInstances - Enum violation filter.type +request-validation/elementinstances-validation-api-tests.spec.ts,561,request-validation,element-instance,J/K/L. Observation-only,search,negative-search,running-process-instance,POST,/element-instances/search,searchElementInstances,bad-request,searchElementInstances - Enum violation sort.0.field +request-validation/elementinstances-validation-api-tests.spec.ts,582,request-validation,element-instance,J/K/L. Observation-only,search,negative-search,running-process-instance,POST,/element-instances/search,searchElementInstances,bad-request,searchElementInstances - Enum violation sort.0.order +request-validation/expression-validation-api-tests.spec.ts,18,request-validation,expression,N. Engine Evaluation,create,negative-create,none,POST,/expression/evaluation,evaluateExpression,bad-request,evaluateExpression - Additional prop __extraField +request-validation/expression-validation-api-tests.spec.ts,37,request-validation,expression,N. Engine Evaluation,create,negative-create,none,POST,/expression/evaluation,evaluateExpression,bad-request,evaluateExpression - Body wrong top-level type +request-validation/expression-validation-api-tests.spec.ts,52,request-validation,expression,N. Engine Evaluation,create,negative-create,none,POST,/expression/evaluation,evaluateExpression,bad-request,evaluateExpression - Param expression wrong type (#1) +request-validation/expression-validation-api-tests.spec.ts,70,request-validation,expression,N. Engine Evaluation,create,negative-create,none,POST,/expression/evaluation,evaluateExpression,bad-request,evaluateExpression - Param expression wrong type (#2) +request-validation/expression-validation-api-tests.spec.ts,88,request-validation,expression,N. Engine Evaluation,create,negative-create,none,POST,/expression/evaluation,evaluateExpression,bad-request,evaluateExpression - Param scopeKey wrong type (#1) +request-validation/expression-validation-api-tests.spec.ts,106,request-validation,expression,N. Engine Evaluation,create,negative-create,none,POST,/expression/evaluation,evaluateExpression,bad-request,evaluateExpression - Param scopeKey wrong type (#2) +request-validation/expression-validation-api-tests.spec.ts,124,request-validation,expression,N. Engine Evaluation,create,negative-create,none,POST,/expression/evaluation,evaluateExpression,bad-request,evaluateExpression - Missing expression +request-validation/expression-validation-api-tests.spec.ts,139,request-validation,expression,N. Engine Evaluation,create,negative-create,none,POST,/expression/evaluation,evaluateExpression,bad-request,evaluateExpression - Missing body +request-validation/forms-validation-api-tests.spec.ts,18,request-validation,user-task,F. User-Task Lifecycle,get,negative-get,running-process-instance-with-user-task,GET,/forms/{formKey},getFormByKey,bad-request,getFormByKey - Path param formKey pattern violation +request-validation/globaltasklisteners-validation-api-tests.spec.ts,18,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/global-task-listeners,createGlobalTaskListener,bad-request,createGlobalTaskListener - Additional prop __extraField +request-validation/globaltasklisteners-validation-api-tests.spec.ts,38,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/global-task-listeners,createGlobalTaskListener,bad-request,createGlobalTaskListener - Body wrong top-level type +request-validation/globaltasklisteners-validation-api-tests.spec.ts,53,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/global-task-listeners,createGlobalTaskListener,bad-request,createGlobalTaskListener - Param id wrong type (#1) +request-validation/globaltasklisteners-validation-api-tests.spec.ts,72,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/global-task-listeners,createGlobalTaskListener,bad-request,createGlobalTaskListener - Param id wrong type (#2) +request-validation/globaltasklisteners-validation-api-tests.spec.ts,91,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/global-task-listeners,createGlobalTaskListener,bad-request,createGlobalTaskListener - Param type wrong type (#1) +request-validation/globaltasklisteners-validation-api-tests.spec.ts,110,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/global-task-listeners,createGlobalTaskListener,bad-request,createGlobalTaskListener - Param type wrong type (#2) +request-validation/globaltasklisteners-validation-api-tests.spec.ts,129,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/global-task-listeners,createGlobalTaskListener,bad-request,createGlobalTaskListener - Constraint violation id (#1) +request-validation/globaltasklisteners-validation-api-tests.spec.ts,148,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/global-task-listeners,createGlobalTaskListener,bad-request,createGlobalTaskListener - Constraint violation id (#2) +request-validation/globaltasklisteners-validation-api-tests.spec.ts,167,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/global-task-listeners,createGlobalTaskListener,bad-request,createGlobalTaskListener - Constraint violation id (#3) +request-validation/globaltasklisteners-validation-api-tests.spec.ts,186,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/global-task-listeners,createGlobalTaskListener,bad-request,createGlobalTaskListener - Constraint violation id (#4) +request-validation/globaltasklisteners-validation-api-tests.spec.ts,205,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/global-task-listeners,createGlobalTaskListener,bad-request,createGlobalTaskListener - Missing id (#1) +request-validation/globaltasklisteners-validation-api-tests.spec.ts,223,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/global-task-listeners,createGlobalTaskListener,bad-request,createGlobalTaskListener - Missing type (#1) +request-validation/globaltasklisteners-validation-api-tests.spec.ts,241,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/global-task-listeners,createGlobalTaskListener,bad-request,createGlobalTaskListener - Enum violation eventTypes.0 +request-validation/globaltasklisteners-validation-api-tests.spec.ts,260,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/global-task-listeners,createGlobalTaskListener,bad-request,createGlobalTaskListener - Missing eventTypes +request-validation/globaltasklisteners-validation-api-tests.spec.ts,278,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/global-task-listeners,createGlobalTaskListener,bad-request,createGlobalTaskListener - Missing id (#2) +request-validation/globaltasklisteners-validation-api-tests.spec.ts,296,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/global-task-listeners,createGlobalTaskListener,bad-request,createGlobalTaskListener - Missing type (#2) +request-validation/globaltasklisteners-validation-api-tests.spec.ts,314,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/global-task-listeners,createGlobalTaskListener,bad-request,createGlobalTaskListener - Missing body +request-validation/globaltasklisteners-validation-api-tests.spec.ts,326,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/global-task-listeners,createGlobalTaskListener,bad-request,"createGlobalTaskListener - Missing combo id,eventTypes" +request-validation/globaltasklisteners-validation-api-tests.spec.ts,343,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/global-task-listeners,createGlobalTaskListener,bad-request,"createGlobalTaskListener - Missing combo id,type" +request-validation/globaltasklisteners-validation-api-tests.spec.ts,360,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/global-task-listeners,createGlobalTaskListener,bad-request,"createGlobalTaskListener - Missing combo id,type,eventTypes" +request-validation/globaltasklisteners-validation-api-tests.spec.ts,377,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/global-task-listeners,createGlobalTaskListener,bad-request,"createGlobalTaskListener - Missing combo type,eventTypes" +request-validation/globaltasklisteners-validation-api-tests.spec.ts,396,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),delete,negative-delete,none,DELETE,/global-task-listeners/{id},deleteGlobalTaskListener,bad-request,deleteGlobalTaskListener - Path param id pattern violation +request-validation/globaltasklisteners-validation-api-tests.spec.ts,410,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),get,negative-get,none,GET,/global-task-listeners/{id},getGlobalTaskListener,bad-request,getGlobalTaskListener - Path param id pattern violation +request-validation/globaltasklisteners-validation-api-tests.spec.ts,422,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/global-task-listeners/search,searchGlobalTaskListeners,bad-request,searchGlobalTaskListeners - Additional prop __unexpectedField +request-validation/globaltasklisteners-validation-api-tests.spec.ts,441,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/global-task-listeners/search,searchGlobalTaskListeners,bad-request,searchGlobalTaskListeners - Body wrong top-level type +request-validation/globaltasklisteners-validation-api-tests.spec.ts,456,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/global-task-listeners/search,searchGlobalTaskListeners,bad-request,searchGlobalTaskListeners - Missing sort.0.field +request-validation/globaltasklisteners-validation-api-tests.spec.ts,473,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/global-task-listeners/search,searchGlobalTaskListeners,bad-request,searchGlobalTaskListeners - Enum violation sort.0.field +request-validation/globaltasklisteners-validation-api-tests.spec.ts,494,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/global-task-listeners/search,searchGlobalTaskListeners,bad-request,searchGlobalTaskListeners - Enum violation sort.0.order +request-validation/globaltasklisteners-validation-api-tests.spec.ts,515,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/global-task-listeners/{id},updateGlobalTaskListener,bad-request,updateGlobalTaskListener - Additional prop __extraField +request-validation/globaltasklisteners-validation-api-tests.spec.ts,534,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/global-task-listeners/{id},updateGlobalTaskListener,bad-request,updateGlobalTaskListener - Body wrong top-level type +request-validation/globaltasklisteners-validation-api-tests.spec.ts,549,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/global-task-listeners/{id},updateGlobalTaskListener,bad-request,updateGlobalTaskListener - Param type wrong type (#1) +request-validation/globaltasklisteners-validation-api-tests.spec.ts,567,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/global-task-listeners/{id},updateGlobalTaskListener,bad-request,updateGlobalTaskListener - Param type wrong type (#2) +request-validation/globaltasklisteners-validation-api-tests.spec.ts,585,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/global-task-listeners/{id},updateGlobalTaskListener,bad-request,updateGlobalTaskListener - Missing type (#1) +request-validation/globaltasklisteners-validation-api-tests.spec.ts,602,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/global-task-listeners/{id},updateGlobalTaskListener,bad-request,updateGlobalTaskListener - Enum violation eventTypes.0 +request-validation/globaltasklisteners-validation-api-tests.spec.ts,620,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/global-task-listeners/{id},updateGlobalTaskListener,bad-request,updateGlobalTaskListener - Missing eventTypes +request-validation/globaltasklisteners-validation-api-tests.spec.ts,637,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/global-task-listeners/{id},updateGlobalTaskListener,bad-request,updateGlobalTaskListener - Missing type (#2) +request-validation/globaltasklisteners-validation-api-tests.spec.ts,654,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/global-task-listeners/{id},updateGlobalTaskListener,bad-request,updateGlobalTaskListener - Missing body +request-validation/globaltasklisteners-validation-api-tests.spec.ts,666,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/global-task-listeners/{id},updateGlobalTaskListener,bad-request,"updateGlobalTaskListener - Missing combo type,eventTypes" +request-validation/globaltasklisteners-validation-api-tests.spec.ts,683,request-validation,global-task-listener,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/global-task-listeners/{id},updateGlobalTaskListener,bad-request,updateGlobalTaskListener - Path param id pattern violation +request-validation/groups-validation-api-tests.spec.ts,18,request-validation,group,B. Membership/Association,update,negative-update,group + client,PUT,/groups/{groupId}/clients/{clientId},assignClientToGroup,bad-request,assignClientToGroup - Path param clientId pattern violation +request-validation/groups-validation-api-tests.spec.ts,35,request-validation,group,B. Membership/Association,update,negative-update,group + client,PUT,/groups/{groupId}/clients/{clientId},assignClientToGroup,bad-request,assignClientToGroup - Path param groupId length-max violation +request-validation/groups-validation-api-tests.spec.ts,53,request-validation,group,B. Membership/Association,update,negative-update,group + mapping-rule,PUT,/groups/{groupId}/mapping-rules/{mappingRuleId},assignMappingRuleToGroup,bad-request,assignMappingRuleToGroup - Path param groupId length-max violation +request-validation/groups-validation-api-tests.spec.ts,71,request-validation,group,B. Membership/Association,update,negative-update,group + mapping-rule,PUT,/groups/{groupId}/mapping-rules/{mappingRuleId},assignMappingRuleToGroup,bad-request,assignMappingRuleToGroup - Path param mappingRuleId pattern violation +request-validation/groups-validation-api-tests.spec.ts,88,request-validation,group,B. Membership/Association,update,negative-update,group + user,PUT,/groups/{groupId}/users/{username},assignUserToGroup,bad-request,assignUserToGroup - Path param groupId length-max violation +request-validation/groups-validation-api-tests.spec.ts,106,request-validation,group,B. Membership/Association,update,negative-update,group + user,PUT,/groups/{groupId}/users/{username},assignUserToGroup,bad-request,assignUserToGroup - Path param username pattern violation +request-validation/groups-validation-api-tests.spec.ts,123,request-validation,group,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/groups,createGroup,bad-request,createGroup - Additional prop __unexpectedField +request-validation/groups-validation-api-tests.spec.ts,142,request-validation,group,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/groups,createGroup,bad-request,createGroup - Body wrong top-level type +request-validation/groups-validation-api-tests.spec.ts,157,request-validation,group,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/groups,createGroup,bad-request,createGroup - Param groupId wrong type (#1) +request-validation/groups-validation-api-tests.spec.ts,175,request-validation,group,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/groups,createGroup,bad-request,createGroup - Param groupId wrong type (#2) +request-validation/groups-validation-api-tests.spec.ts,193,request-validation,group,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/groups,createGroup,bad-request,createGroup - Param name wrong type (#1) +request-validation/groups-validation-api-tests.spec.ts,211,request-validation,group,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/groups,createGroup,bad-request,createGroup - Param name wrong type (#2) +request-validation/groups-validation-api-tests.spec.ts,229,request-validation,group,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/groups,createGroup,bad-request,createGroup - Constraint violation groupId (#1) +request-validation/groups-validation-api-tests.spec.ts,248,request-validation,group,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/groups,createGroup,bad-request,createGroup - Constraint violation groupId (#2) +request-validation/groups-validation-api-tests.spec.ts,266,request-validation,group,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/groups,createGroup,bad-request,createGroup - Constraint violation groupId (#3) +request-validation/groups-validation-api-tests.spec.ts,285,request-validation,group,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/groups,createGroup,bad-request,createGroup - Missing groupId +request-validation/groups-validation-api-tests.spec.ts,302,request-validation,group,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/groups,createGroup,bad-request,createGroup - Missing name +request-validation/groups-validation-api-tests.spec.ts,319,request-validation,group,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/groups,createGroup,bad-request,"createGroup - Missing combo groupId,name" +request-validation/groups-validation-api-tests.spec.ts,334,request-validation,group,A. Entity Lifecycle (CRUD),delete,negative-delete,none,DELETE,/groups/{groupId},deleteGroup,bad-request,deleteGroup - Path param groupId length-max violation +request-validation/groups-validation-api-tests.spec.ts,349,request-validation,group,A. Entity Lifecycle (CRUD),get,negative-get,none,GET,/groups/{groupId},getGroup,bad-request,getGroup - Path param groupId length-max violation +request-validation/groups-validation-api-tests.spec.ts,364,request-validation,group,B. Membership/Association,search,negative-search,group + client,POST,/groups/{groupId}/clients/search,searchClientsForGroup,bad-request,searchClientsForGroup - Additional prop __extraField +request-validation/groups-validation-api-tests.spec.ts,381,request-validation,group,B. Membership/Association,search,negative-search,group + client,POST,/groups/{groupId}/clients/search,searchClientsForGroup,bad-request,searchClientsForGroup - Body wrong top-level type +request-validation/groups-validation-api-tests.spec.ts,396,request-validation,group,B. Membership/Association,search,negative-search,group + client,POST,/groups/{groupId}/clients/search,searchClientsForGroup,bad-request,searchClientsForGroup - Missing sort.0.field +request-validation/groups-validation-api-tests.spec.ts,413,request-validation,group,B. Membership/Association,search,negative-search,group + client,POST,/groups/{groupId}/clients/search,searchClientsForGroup,bad-request,searchClientsForGroup - Enum violation sort.0.field +request-validation/groups-validation-api-tests.spec.ts,434,request-validation,group,B. Membership/Association,search,negative-search,group + client,POST,/groups/{groupId}/clients/search,searchClientsForGroup,bad-request,searchClientsForGroup - Enum violation sort.0.order +request-validation/groups-validation-api-tests.spec.ts,455,request-validation,group,B. Membership/Association,search,negative-search,group + client,POST,/groups/{groupId}/clients/search,searchClientsForGroup,bad-request,searchClientsForGroup - Path param groupId length-max violation +request-validation/groups-validation-api-tests.spec.ts,472,request-validation,group,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/groups/search,searchGroups,bad-request,searchGroups - Additional prop __unexpectedField +request-validation/groups-validation-api-tests.spec.ts,489,request-validation,group,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/groups/search,searchGroups,bad-request,searchGroups - Body wrong top-level type +request-validation/groups-validation-api-tests.spec.ts,504,request-validation,group,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/groups/search,searchGroups,bad-request,searchGroups - Missing sort.0.field +request-validation/groups-validation-api-tests.spec.ts,521,request-validation,group,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/groups/search,searchGroups,bad-request,searchGroups - Enum violation sort.0.field +request-validation/groups-validation-api-tests.spec.ts,542,request-validation,group,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/groups/search,searchGroups,bad-request,searchGroups - Enum violation sort.0.order +request-validation/groups-validation-api-tests.spec.ts,563,request-validation,group,B. Membership/Association,search,negative-search,group + mapping-rule,POST,/groups/{groupId}/mapping-rules/search,searchMappingRulesForGroup,bad-request,searchMappingRulesForGroup - Additional prop __unexpectedField +request-validation/groups-validation-api-tests.spec.ts,584,request-validation,group,B. Membership/Association,search,negative-search,group + mapping-rule,POST,/groups/{groupId}/mapping-rules/search,searchMappingRulesForGroup,bad-request,searchMappingRulesForGroup - Body wrong top-level type +request-validation/groups-validation-api-tests.spec.ts,601,request-validation,group,B. Membership/Association,search,negative-search,group + mapping-rule,POST,/groups/{groupId}/mapping-rules/search,searchMappingRulesForGroup,bad-request,searchMappingRulesForGroup - Missing sort.0.field +request-validation/groups-validation-api-tests.spec.ts,620,request-validation,group,B. Membership/Association,search,negative-search,group + mapping-rule,POST,/groups/{groupId}/mapping-rules/search,searchMappingRulesForGroup,bad-request,searchMappingRulesForGroup - Enum violation sort.0.field +request-validation/groups-validation-api-tests.spec.ts,645,request-validation,group,B. Membership/Association,search,negative-search,group + mapping-rule,POST,/groups/{groupId}/mapping-rules/search,searchMappingRulesForGroup,bad-request,searchMappingRulesForGroup - Enum violation sort.0.order +request-validation/groups-validation-api-tests.spec.ts,670,request-validation,group,B. Membership/Association,search,negative-search,group + mapping-rule,POST,/groups/{groupId}/mapping-rules/search,searchMappingRulesForGroup,bad-request,searchMappingRulesForGroup - Path param groupId length-max violation +request-validation/groups-validation-api-tests.spec.ts,687,request-validation,group,B. Membership/Association,search,negative-search,group + role,POST,/groups/{groupId}/roles/search,searchRolesForGroup,bad-request,searchRolesForGroup - Additional prop __unexpectedField +request-validation/groups-validation-api-tests.spec.ts,704,request-validation,group,B. Membership/Association,search,negative-search,group + role,POST,/groups/{groupId}/roles/search,searchRolesForGroup,bad-request,searchRolesForGroup - Body wrong top-level type +request-validation/groups-validation-api-tests.spec.ts,719,request-validation,group,B. Membership/Association,search,negative-search,group + role,POST,/groups/{groupId}/roles/search,searchRolesForGroup,bad-request,searchRolesForGroup - Missing sort.0.field +request-validation/groups-validation-api-tests.spec.ts,736,request-validation,group,B. Membership/Association,search,negative-search,group + role,POST,/groups/{groupId}/roles/search,searchRolesForGroup,bad-request,searchRolesForGroup - Enum violation sort.0.field +request-validation/groups-validation-api-tests.spec.ts,757,request-validation,group,B. Membership/Association,search,negative-search,group + role,POST,/groups/{groupId}/roles/search,searchRolesForGroup,bad-request,searchRolesForGroup - Enum violation sort.0.order +request-validation/groups-validation-api-tests.spec.ts,778,request-validation,group,B. Membership/Association,search,negative-search,group + role,POST,/groups/{groupId}/roles/search,searchRolesForGroup,bad-request,searchRolesForGroup - Path param groupId length-max violation +request-validation/groups-validation-api-tests.spec.ts,795,request-validation,group,B. Membership/Association,search,negative-search,group + user,POST,/groups/{groupId}/users/search,searchUsersForGroup,bad-request,searchUsersForGroup - Additional prop __extraField +request-validation/groups-validation-api-tests.spec.ts,812,request-validation,group,B. Membership/Association,search,negative-search,group + user,POST,/groups/{groupId}/users/search,searchUsersForGroup,bad-request,searchUsersForGroup - Body wrong top-level type +request-validation/groups-validation-api-tests.spec.ts,827,request-validation,group,B. Membership/Association,search,negative-search,group + user,POST,/groups/{groupId}/users/search,searchUsersForGroup,bad-request,searchUsersForGroup - Missing sort.0.field +request-validation/groups-validation-api-tests.spec.ts,844,request-validation,group,B. Membership/Association,search,negative-search,group + user,POST,/groups/{groupId}/users/search,searchUsersForGroup,bad-request,searchUsersForGroup - Enum violation sort.0.field +request-validation/groups-validation-api-tests.spec.ts,865,request-validation,group,B. Membership/Association,search,negative-search,group + user,POST,/groups/{groupId}/users/search,searchUsersForGroup,bad-request,searchUsersForGroup - Enum violation sort.0.order +request-validation/groups-validation-api-tests.spec.ts,886,request-validation,group,B. Membership/Association,search,negative-search,group + user,POST,/groups/{groupId}/users/search,searchUsersForGroup,bad-request,searchUsersForGroup - Path param groupId length-max violation +request-validation/groups-validation-api-tests.spec.ts,903,request-validation,group,B. Membership/Association,delete,negative-delete,group + client,DELETE,/groups/{groupId}/clients/{clientId},unassignClientFromGroup,bad-request,unassignClientFromGroup - Path param clientId pattern violation +request-validation/groups-validation-api-tests.spec.ts,920,request-validation,group,B. Membership/Association,delete,negative-delete,group + client,DELETE,/groups/{groupId}/clients/{clientId},unassignClientFromGroup,bad-request,unassignClientFromGroup - Path param groupId length-max violation +request-validation/groups-validation-api-tests.spec.ts,938,request-validation,group,B. Membership/Association,delete,negative-delete,group + mapping-rule,DELETE,/groups/{groupId}/mapping-rules/{mappingRuleId},unassignMappingRuleFromGroup,bad-request,unassignMappingRuleFromGroup - Path param groupId length-max violation +request-validation/groups-validation-api-tests.spec.ts,956,request-validation,group,B. Membership/Association,delete,negative-delete,group + mapping-rule,DELETE,/groups/{groupId}/mapping-rules/{mappingRuleId},unassignMappingRuleFromGroup,bad-request,unassignMappingRuleFromGroup - Path param mappingRuleId pattern violation +request-validation/groups-validation-api-tests.spec.ts,973,request-validation,group,B. Membership/Association,delete,negative-delete,group + user,DELETE,/groups/{groupId}/users/{username},unassignUserFromGroup,bad-request,unassignUserFromGroup - Path param groupId length-max violation +request-validation/groups-validation-api-tests.spec.ts,991,request-validation,group,B. Membership/Association,delete,negative-delete,group + user,DELETE,/groups/{groupId}/users/{username},unassignUserFromGroup,bad-request,unassignUserFromGroup - Path param username pattern violation +request-validation/groups-validation-api-tests.spec.ts,1008,request-validation,group,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/groups/{groupId},updateGroup,bad-request,updateGroup - Additional prop __extraField +request-validation/groups-validation-api-tests.spec.ts,1026,request-validation,group,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/groups/{groupId},updateGroup,bad-request,updateGroup - Body wrong top-level type +request-validation/groups-validation-api-tests.spec.ts,1041,request-validation,group,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/groups/{groupId},updateGroup,bad-request,updateGroup - Param name wrong type (#1) +request-validation/groups-validation-api-tests.spec.ts,1058,request-validation,group,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/groups/{groupId},updateGroup,bad-request,updateGroup - Param name wrong type (#2) +request-validation/groups-validation-api-tests.spec.ts,1075,request-validation,group,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/groups/{groupId},updateGroup,bad-request,updateGroup - Missing name +request-validation/groups-validation-api-tests.spec.ts,1090,request-validation,group,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/groups/{groupId},updateGroup,bad-request,updateGroup - Missing body +request-validation/groups-validation-api-tests.spec.ts,1102,request-validation,group,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/groups/{groupId},updateGroup,bad-request,updateGroup - Path param groupId length-max violation +request-validation/incidents-validation-api-tests.spec.ts,18,request-validation,incident,H. Incident Lifecycle,get,negative-get,running-process-instance-with-failing-job,GET,/incidents/{incidentKey},getIncident,bad-request,getIncident - Path param incidentKey pattern violation +request-validation/incidents-validation-api-tests.spec.ts,30,request-validation,incident,H. Incident Lifecycle,get,negative-get,running-process-instance-with-failing-job,POST,/incidents/statistics/process-instances-by-definition,getProcessInstanceStatisticsByDefinition,bad-request,getProcessInstanceStatisticsByDefinition - Additional prop __extraField +request-validation/incidents-validation-api-tests.spec.ts,52,request-validation,incident,H. Incident Lifecycle,get,negative-get,running-process-instance-with-failing-job,POST,/incidents/statistics/process-instances-by-definition,getProcessInstanceStatisticsByDefinition,bad-request,getProcessInstanceStatisticsByDefinition - Body wrong top-level type +request-validation/incidents-validation-api-tests.spec.ts,69,request-validation,incident,H. Incident Lifecycle,get,negative-get,running-process-instance-with-failing-job,POST,/incidents/statistics/process-instances-by-definition,getProcessInstanceStatisticsByDefinition,bad-request,getProcessInstanceStatisticsByDefinition - Param filter.errorHashCode wrong type (#1) +request-validation/incidents-validation-api-tests.spec.ts,90,request-validation,incident,H. Incident Lifecycle,get,negative-get,running-process-instance-with-failing-job,POST,/incidents/statistics/process-instances-by-definition,getProcessInstanceStatisticsByDefinition,bad-request,getProcessInstanceStatisticsByDefinition - Param filter.errorHashCode wrong type (#2) +request-validation/incidents-validation-api-tests.spec.ts,111,request-validation,incident,H. Incident Lifecycle,get,negative-get,running-process-instance-with-failing-job,POST,/incidents/statistics/process-instances-by-definition,getProcessInstanceStatisticsByDefinition,bad-request,getProcessInstanceStatisticsByDefinition - Missing filter.errorHashCode +request-validation/incidents-validation-api-tests.spec.ts,130,request-validation,incident,H. Incident Lifecycle,get,negative-get,running-process-instance-with-failing-job,POST,/incidents/statistics/process-instances-by-definition,getProcessInstanceStatisticsByDefinition,bad-request,getProcessInstanceStatisticsByDefinition - Missing sort.0.field +request-validation/incidents-validation-api-tests.spec.ts,152,request-validation,incident,H. Incident Lifecycle,get,negative-get,running-process-instance-with-failing-job,POST,/incidents/statistics/process-instances-by-definition,getProcessInstanceStatisticsByDefinition,bad-request,getProcessInstanceStatisticsByDefinition - Enum violation sort.0.field +request-validation/incidents-validation-api-tests.spec.ts,178,request-validation,incident,H. Incident Lifecycle,get,negative-get,running-process-instance-with-failing-job,POST,/incidents/statistics/process-instances-by-definition,getProcessInstanceStatisticsByDefinition,bad-request,getProcessInstanceStatisticsByDefinition - Enum violation sort.0.order +request-validation/incidents-validation-api-tests.spec.ts,204,request-validation,incident,H. Incident Lifecycle,get,negative-get,running-process-instance-with-failing-job,POST,/incidents/statistics/process-instances-by-definition,getProcessInstanceStatisticsByDefinition,bad-request,getProcessInstanceStatisticsByDefinition - Missing filter +request-validation/incidents-validation-api-tests.spec.ts,221,request-validation,incident,H. Incident Lifecycle,get,negative-get,running-process-instance-with-failing-job,POST,/incidents/statistics/process-instances-by-definition,getProcessInstanceStatisticsByDefinition,bad-request,getProcessInstanceStatisticsByDefinition - Missing body +request-validation/incidents-validation-api-tests.spec.ts,233,request-validation,incident,H. Incident Lifecycle,get,negative-get,running-process-instance-with-failing-job,POST,/incidents/statistics/process-instances-by-error,getProcessInstanceStatisticsByError,bad-request,getProcessInstanceStatisticsByError - Additional prop __unexpectedField +request-validation/incidents-validation-api-tests.spec.ts,252,request-validation,incident,H. Incident Lifecycle,get,negative-get,running-process-instance-with-failing-job,POST,/incidents/statistics/process-instances-by-error,getProcessInstanceStatisticsByError,bad-request,getProcessInstanceStatisticsByError - Body wrong top-level type +request-validation/incidents-validation-api-tests.spec.ts,269,request-validation,incident,H. Incident Lifecycle,get,negative-get,running-process-instance-with-failing-job,POST,/incidents/statistics/process-instances-by-error,getProcessInstanceStatisticsByError,bad-request,getProcessInstanceStatisticsByError - Missing sort.0.field +request-validation/incidents-validation-api-tests.spec.ts,288,request-validation,incident,H. Incident Lifecycle,get,negative-get,running-process-instance-with-failing-job,POST,/incidents/statistics/process-instances-by-error,getProcessInstanceStatisticsByError,bad-request,getProcessInstanceStatisticsByError - Enum violation sort.0.field +request-validation/incidents-validation-api-tests.spec.ts,311,request-validation,incident,H. Incident Lifecycle,get,negative-get,running-process-instance-with-failing-job,POST,/incidents/statistics/process-instances-by-error,getProcessInstanceStatisticsByError,bad-request,getProcessInstanceStatisticsByError - Enum violation sort.0.order +request-validation/incidents-validation-api-tests.spec.ts,334,request-validation,incident,H. Incident Lifecycle,update,negative-update,running-process-instance-with-failing-job,POST,/incidents/{incidentKey}/resolution,resolveIncident,bad-request,resolveIncident - Additional prop __unexpectedField +request-validation/incidents-validation-api-tests.spec.ts,354,request-validation,incident,H. Incident Lifecycle,update,negative-update,running-process-instance-with-failing-job,POST,/incidents/{incidentKey}/resolution,resolveIncident,bad-request,resolveIncident - Body wrong top-level type +request-validation/incidents-validation-api-tests.spec.ts,371,request-validation,incident,H. Incident Lifecycle,update,negative-update,running-process-instance-with-failing-job,POST,/incidents/{incidentKey}/resolution,resolveIncident,bad-request,resolveIncident - Param operationReference wrong type (#1) +request-validation/incidents-validation-api-tests.spec.ts,392,request-validation,incident,H. Incident Lifecycle,update,negative-update,running-process-instance-with-failing-job,POST,/incidents/{incidentKey}/resolution,resolveIncident,bad-request,resolveIncident - Param operationReference wrong type (#2) +request-validation/incidents-validation-api-tests.spec.ts,413,request-validation,incident,H. Incident Lifecycle,update,negative-update,running-process-instance-with-failing-job,POST,/incidents/{incidentKey}/resolution,resolveIncident,bad-request,resolveIncident - Constraint violation operationReference (#1) +request-validation/incidents-validation-api-tests.spec.ts,434,request-validation,incident,H. Incident Lifecycle,update,negative-update,running-process-instance-with-failing-job,POST,/incidents/{incidentKey}/resolution,resolveIncident,bad-request,resolveIncident - Constraint violation operationReference (#2) +request-validation/incidents-validation-api-tests.spec.ts,455,request-validation,incident,H. Incident Lifecycle,update,negative-update,running-process-instance-with-failing-job,POST,/incidents/{incidentKey}/resolution,resolveIncident,bad-request,resolveIncident - Constraint violation operationReference (#3) +request-validation/incidents-validation-api-tests.spec.ts,476,request-validation,incident,H. Incident Lifecycle,update,negative-update,running-process-instance-with-failing-job,POST,/incidents/{incidentKey}/resolution,resolveIncident,bad-request,resolveIncident - Path param incidentKey pattern violation +request-validation/incidents-validation-api-tests.spec.ts,492,request-validation,incident,H. Incident Lifecycle,search,negative-search,running-process-instance-with-failing-job,POST,/incidents/search,searchIncidents,bad-request,searchIncidents - Additional prop __unexpectedField +request-validation/incidents-validation-api-tests.spec.ts,509,request-validation,incident,H. Incident Lifecycle,search,negative-search,running-process-instance-with-failing-job,POST,/incidents/search,searchIncidents,bad-request,searchIncidents - Body wrong top-level type +request-validation/incidents-validation-api-tests.spec.ts,524,request-validation,incident,H. Incident Lifecycle,search,negative-search,running-process-instance-with-failing-job,POST,/incidents/search,searchIncidents,bad-request,searchIncidents - Missing sort.0.field +request-validation/incidents-validation-api-tests.spec.ts,541,request-validation,incident,H. Incident Lifecycle,search,negative-search,running-process-instance-with-failing-job,POST,/incidents/search,searchIncidents,bad-request,searchIncidents - Enum violation sort.0.field +request-validation/incidents-validation-api-tests.spec.ts,562,request-validation,incident,H. Incident Lifecycle,search,negative-search,running-process-instance-with-failing-job,POST,/incidents/search,searchIncidents,bad-request,searchIncidents - Enum violation sort.0.order +request-validation/jobs-validation-api-tests.spec.ts,18,request-validation,job,G. Job Lifecycle & Stats,create,negative-create,running-process-instance-with-job,POST,/jobs/activation,activateJobs,bad-request,activateJobs - Additional prop __unexpectedField +request-validation/jobs-validation-api-tests.spec.ts,40,request-validation,job,G. Job Lifecycle & Stats,create,negative-create,running-process-instance-with-job,POST,/jobs/activation,activateJobs,bad-request,activateJobs - Body wrong top-level type +request-validation/jobs-validation-api-tests.spec.ts,55,request-validation,job,G. Job Lifecycle & Stats,create,negative-create,running-process-instance-with-job,POST,/jobs/activation,activateJobs,bad-request,activateJobs - Param maxJobsToActivate wrong type (#1) +request-validation/jobs-validation-api-tests.spec.ts,76,request-validation,job,G. Job Lifecycle & Stats,create,negative-create,running-process-instance-with-job,POST,/jobs/activation,activateJobs,bad-request,activateJobs - Param maxJobsToActivate wrong type (#2) +request-validation/jobs-validation-api-tests.spec.ts,97,request-validation,job,G. Job Lifecycle & Stats,create,negative-create,running-process-instance-with-job,POST,/jobs/activation,activateJobs,bad-request,activateJobs - Param requestTimeout wrong type (#1) +request-validation/jobs-validation-api-tests.spec.ts,118,request-validation,job,G. Job Lifecycle & Stats,create,negative-create,running-process-instance-with-job,POST,/jobs/activation,activateJobs,bad-request,activateJobs - Param requestTimeout wrong type (#2) +request-validation/jobs-validation-api-tests.spec.ts,139,request-validation,job,G. Job Lifecycle & Stats,create,negative-create,running-process-instance-with-job,POST,/jobs/activation,activateJobs,bad-request,activateJobs - Param tenantFilter wrong type (#1) +request-validation/jobs-validation-api-tests.spec.ts,160,request-validation,job,G. Job Lifecycle & Stats,create,negative-create,running-process-instance-with-job,POST,/jobs/activation,activateJobs,bad-request,activateJobs - Param tenantFilter wrong type (#2) +request-validation/jobs-validation-api-tests.spec.ts,181,request-validation,job,G. Job Lifecycle & Stats,create,negative-create,running-process-instance-with-job,POST,/jobs/activation,activateJobs,bad-request,activateJobs - Param timeout wrong type (#1) +request-validation/jobs-validation-api-tests.spec.ts,202,request-validation,job,G. Job Lifecycle & Stats,create,negative-create,running-process-instance-with-job,POST,/jobs/activation,activateJobs,bad-request,activateJobs - Param timeout wrong type (#2) +request-validation/jobs-validation-api-tests.spec.ts,223,request-validation,job,G. Job Lifecycle & Stats,create,negative-create,running-process-instance-with-job,POST,/jobs/activation,activateJobs,bad-request,activateJobs - Param type wrong type (#1) +request-validation/jobs-validation-api-tests.spec.ts,244,request-validation,job,G. Job Lifecycle & Stats,create,negative-create,running-process-instance-with-job,POST,/jobs/activation,activateJobs,bad-request,activateJobs - Param type wrong type (#2) +request-validation/jobs-validation-api-tests.spec.ts,265,request-validation,job,G. Job Lifecycle & Stats,create,negative-create,running-process-instance-with-job,POST,/jobs/activation,activateJobs,bad-request,activateJobs - Enum violation tenantFilter +request-validation/jobs-validation-api-tests.spec.ts,286,request-validation,job,G. Job Lifecycle & Stats,create,negative-create,running-process-instance-with-job,POST,/jobs/activation,activateJobs,bad-request,activateJobs - Missing maxJobsToActivate +request-validation/jobs-validation-api-tests.spec.ts,304,request-validation,job,G. Job Lifecycle & Stats,create,negative-create,running-process-instance-with-job,POST,/jobs/activation,activateJobs,bad-request,activateJobs - Missing timeout +request-validation/jobs-validation-api-tests.spec.ts,322,request-validation,job,G. Job Lifecycle & Stats,create,negative-create,running-process-instance-with-job,POST,/jobs/activation,activateJobs,bad-request,activateJobs - Missing type +request-validation/jobs-validation-api-tests.spec.ts,340,request-validation,job,G. Job Lifecycle & Stats,create,negative-create,running-process-instance-with-job,POST,/jobs/activation,activateJobs,bad-request,activateJobs - Missing body +request-validation/jobs-validation-api-tests.spec.ts,352,request-validation,job,G. Job Lifecycle & Stats,create,negative-create,running-process-instance-with-job,POST,/jobs/activation,activateJobs,bad-request,"activateJobs - Missing combo maxJobsToActivate,timeout" +request-validation/jobs-validation-api-tests.spec.ts,369,request-validation,job,G. Job Lifecycle & Stats,create,negative-create,running-process-instance-with-job,POST,/jobs/activation,activateJobs,bad-request,"activateJobs - Missing combo type,maxJobsToActivate" +request-validation/jobs-validation-api-tests.spec.ts,386,request-validation,job,G. Job Lifecycle & Stats,create,negative-create,running-process-instance-with-job,POST,/jobs/activation,activateJobs,bad-request,"activateJobs - Missing combo type,maxJobsToActivate,timeout" +request-validation/jobs-validation-api-tests.spec.ts,403,request-validation,job,G. Job Lifecycle & Stats,create,negative-create,running-process-instance-with-job,POST,/jobs/activation,activateJobs,bad-request,"activateJobs - Missing combo type,timeout" +request-validation/jobs-validation-api-tests.spec.ts,420,request-validation,job,G. Job Lifecycle & Stats,update,negative-update,running-process-instance-with-job,POST,/jobs/{jobKey}/completion,completeJob,bad-request,completeJob - Additional prop __unexpectedField +request-validation/jobs-validation-api-tests.spec.ts,437,request-validation,job,G. Job Lifecycle & Stats,update,negative-update,running-process-instance-with-job,POST,/jobs/{jobKey}/completion,completeJob,bad-request,completeJob - Body wrong top-level type +request-validation/jobs-validation-api-tests.spec.ts,452,request-validation,job,G. Job Lifecycle & Stats,update,negative-update,running-process-instance-with-job,POST,/jobs/{jobKey}/completion,completeJob,bad-request,completeJob - Path param jobKey pattern violation +request-validation/jobs-validation-api-tests.spec.ts,464,request-validation,job,G. Job Lifecycle & Stats,update,negative-update,running-process-instance-with-job,POST,/jobs/{jobKey}/failure,failJob,bad-request,failJob - Additional prop __unexpectedField +request-validation/jobs-validation-api-tests.spec.ts,483,request-validation,job,G. Job Lifecycle & Stats,update,negative-update,running-process-instance-with-job,POST,/jobs/{jobKey}/failure,failJob,bad-request,failJob - Body wrong top-level type +request-validation/jobs-validation-api-tests.spec.ts,498,request-validation,job,G. Job Lifecycle & Stats,update,negative-update,running-process-instance-with-job,POST,/jobs/{jobKey}/failure,failJob,bad-request,failJob - Param retries wrong type (#1) +request-validation/jobs-validation-api-tests.spec.ts,516,request-validation,job,G. Job Lifecycle & Stats,update,negative-update,running-process-instance-with-job,POST,/jobs/{jobKey}/failure,failJob,bad-request,failJob - Param retries wrong type (#2) +request-validation/jobs-validation-api-tests.spec.ts,534,request-validation,job,G. Job Lifecycle & Stats,update,negative-update,running-process-instance-with-job,POST,/jobs/{jobKey}/failure,failJob,bad-request,failJob - Param retryBackOff wrong type (#1) +request-validation/jobs-validation-api-tests.spec.ts,552,request-validation,job,G. Job Lifecycle & Stats,update,negative-update,running-process-instance-with-job,POST,/jobs/{jobKey}/failure,failJob,bad-request,failJob - Param retryBackOff wrong type (#2) +request-validation/jobs-validation-api-tests.spec.ts,570,request-validation,job,G. Job Lifecycle & Stats,update,negative-update,running-process-instance-with-job,POST,/jobs/{jobKey}/failure,failJob,bad-request,failJob - Path param jobKey pattern violation +request-validation/jobs-validation-api-tests.spec.ts,582,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,GET,/jobs/statistics/global,getGlobalJobStatistics,bad-request,getGlobalJobStatistics - Missing param query.from +request-validation/jobs-validation-api-tests.spec.ts,597,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,GET,/jobs/statistics/global,getGlobalJobStatistics,bad-request,getGlobalJobStatistics - Missing param query.to +request-validation/jobs-validation-api-tests.spec.ts,612,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,GET,/jobs/statistics/global,getGlobalJobStatistics,bad-request,getGlobalJobStatistics - Param query.from wrong type +request-validation/jobs-validation-api-tests.spec.ts,628,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,GET,/jobs/statistics/global,getGlobalJobStatistics,bad-request,getGlobalJobStatistics - Param query.to wrong type +request-validation/jobs-validation-api-tests.spec.ts,644,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/errors,getJobErrorStatistics,bad-request,getJobErrorStatistics - Additional prop __extraField +request-validation/jobs-validation-api-tests.spec.ts,666,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/errors,getJobErrorStatistics,bad-request,getJobErrorStatistics - Body wrong top-level type +request-validation/jobs-validation-api-tests.spec.ts,681,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/errors,getJobErrorStatistics,bad-request,getJobErrorStatistics - Param filter.from wrong type (#1) +request-validation/jobs-validation-api-tests.spec.ts,704,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/errors,getJobErrorStatistics,bad-request,getJobErrorStatistics - Param filter.from wrong type (#2) +request-validation/jobs-validation-api-tests.spec.ts,727,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/errors,getJobErrorStatistics,bad-request,getJobErrorStatistics - Param filter.jobType wrong type (#1) +request-validation/jobs-validation-api-tests.spec.ts,750,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/errors,getJobErrorStatistics,bad-request,getJobErrorStatistics - Param filter.jobType wrong type (#2) +request-validation/jobs-validation-api-tests.spec.ts,773,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/errors,getJobErrorStatistics,bad-request,getJobErrorStatistics - Param filter.to wrong type (#1) +request-validation/jobs-validation-api-tests.spec.ts,794,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/errors,getJobErrorStatistics,bad-request,getJobErrorStatistics - Param filter.to wrong type (#2) +request-validation/jobs-validation-api-tests.spec.ts,815,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/errors,getJobErrorStatistics,bad-request,getJobErrorStatistics - Missing filter.from +request-validation/jobs-validation-api-tests.spec.ts,835,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/errors,getJobErrorStatistics,bad-request,getJobErrorStatistics - Missing filter.jobType +request-validation/jobs-validation-api-tests.spec.ts,855,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/errors,getJobErrorStatistics,bad-request,getJobErrorStatistics - Missing filter.to +request-validation/jobs-validation-api-tests.spec.ts,875,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/errors,getJobErrorStatistics,bad-request,getJobErrorStatistics - Missing page.after +request-validation/jobs-validation-api-tests.spec.ts,897,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/errors,getJobErrorStatistics,bad-request,getJobErrorStatistics - format invalid filter.from +request-validation/jobs-validation-api-tests.spec.ts,918,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/errors,getJobErrorStatistics,bad-request,getJobErrorStatistics - format invalid filter.to +request-validation/jobs-validation-api-tests.spec.ts,939,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/errors,getJobErrorStatistics,bad-request,getJobErrorStatistics - Missing filter +request-validation/jobs-validation-api-tests.spec.ts,954,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/errors,getJobErrorStatistics,bad-request,getJobErrorStatistics - Missing body +request-validation/jobs-validation-api-tests.spec.ts,966,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/time-series,getJobTimeSeriesStatistics,bad-request,getJobTimeSeriesStatistics - Additional prop __extraField +request-validation/jobs-validation-api-tests.spec.ts,990,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/time-series,getJobTimeSeriesStatistics,bad-request,getJobTimeSeriesStatistics - Body wrong top-level type +request-validation/jobs-validation-api-tests.spec.ts,1005,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/time-series,getJobTimeSeriesStatistics,bad-request,getJobTimeSeriesStatistics - Param filter.from wrong type (#1) +request-validation/jobs-validation-api-tests.spec.ts,1028,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/time-series,getJobTimeSeriesStatistics,bad-request,getJobTimeSeriesStatistics - Param filter.from wrong type (#2) +request-validation/jobs-validation-api-tests.spec.ts,1051,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/time-series,getJobTimeSeriesStatistics,bad-request,getJobTimeSeriesStatistics - Param filter.jobType wrong type (#1) +request-validation/jobs-validation-api-tests.spec.ts,1074,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/time-series,getJobTimeSeriesStatistics,bad-request,getJobTimeSeriesStatistics - Param filter.jobType wrong type (#2) +request-validation/jobs-validation-api-tests.spec.ts,1097,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/time-series,getJobTimeSeriesStatistics,bad-request,getJobTimeSeriesStatistics - Param filter.to wrong type (#1) +request-validation/jobs-validation-api-tests.spec.ts,1120,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/time-series,getJobTimeSeriesStatistics,bad-request,getJobTimeSeriesStatistics - Param filter.to wrong type (#2) +request-validation/jobs-validation-api-tests.spec.ts,1143,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/time-series,getJobTimeSeriesStatistics,bad-request,getJobTimeSeriesStatistics - Missing filter.from +request-validation/jobs-validation-api-tests.spec.ts,1163,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/time-series,getJobTimeSeriesStatistics,bad-request,getJobTimeSeriesStatistics - Missing filter.jobType +request-validation/jobs-validation-api-tests.spec.ts,1183,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/time-series,getJobTimeSeriesStatistics,bad-request,getJobTimeSeriesStatistics - Missing filter.to +request-validation/jobs-validation-api-tests.spec.ts,1203,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/time-series,getJobTimeSeriesStatistics,bad-request,getJobTimeSeriesStatistics - Missing page.after +request-validation/jobs-validation-api-tests.spec.ts,1225,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/time-series,getJobTimeSeriesStatistics,bad-request,getJobTimeSeriesStatistics - format invalid filter.from +request-validation/jobs-validation-api-tests.spec.ts,1246,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/time-series,getJobTimeSeriesStatistics,bad-request,getJobTimeSeriesStatistics - format invalid filter.to +request-validation/jobs-validation-api-tests.spec.ts,1267,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/time-series,getJobTimeSeriesStatistics,bad-request,getJobTimeSeriesStatistics - Missing filter +request-validation/jobs-validation-api-tests.spec.ts,1282,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/time-series,getJobTimeSeriesStatistics,bad-request,getJobTimeSeriesStatistics - Missing body +request-validation/jobs-validation-api-tests.spec.ts,1294,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/by-types,getJobTypeStatistics,bad-request,getJobTypeStatistics - Additional prop __extraField +request-validation/jobs-validation-api-tests.spec.ts,1311,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/by-types,getJobTypeStatistics,bad-request,getJobTypeStatistics - Body wrong top-level type +request-validation/jobs-validation-api-tests.spec.ts,1326,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/by-types,getJobTypeStatistics,bad-request,getJobTypeStatistics - Missing filter.from +request-validation/jobs-validation-api-tests.spec.ts,1345,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/by-types,getJobTypeStatistics,bad-request,getJobTypeStatistics - Missing filter.to +request-validation/jobs-validation-api-tests.spec.ts,1364,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/by-types,getJobTypeStatistics,bad-request,getJobTypeStatistics - Missing page.after +request-validation/jobs-validation-api-tests.spec.ts,1381,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/by-types,getJobTypeStatistics,bad-request,getJobTypeStatistics - Missing body +request-validation/jobs-validation-api-tests.spec.ts,1393,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/by-workers,getJobWorkerStatistics,bad-request,getJobWorkerStatistics - Additional prop __extraField +request-validation/jobs-validation-api-tests.spec.ts,1415,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/by-workers,getJobWorkerStatistics,bad-request,getJobWorkerStatistics - Body wrong top-level type +request-validation/jobs-validation-api-tests.spec.ts,1430,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/by-workers,getJobWorkerStatistics,bad-request,getJobWorkerStatistics - Param filter.from wrong type (#1) +request-validation/jobs-validation-api-tests.spec.ts,1453,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/by-workers,getJobWorkerStatistics,bad-request,getJobWorkerStatistics - Param filter.from wrong type (#2) +request-validation/jobs-validation-api-tests.spec.ts,1476,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/by-workers,getJobWorkerStatistics,bad-request,getJobWorkerStatistics - Param filter.jobType wrong type (#1) +request-validation/jobs-validation-api-tests.spec.ts,1499,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/by-workers,getJobWorkerStatistics,bad-request,getJobWorkerStatistics - Param filter.jobType wrong type (#2) +request-validation/jobs-validation-api-tests.spec.ts,1522,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/by-workers,getJobWorkerStatistics,bad-request,getJobWorkerStatistics - Param filter.to wrong type (#1) +request-validation/jobs-validation-api-tests.spec.ts,1545,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/by-workers,getJobWorkerStatistics,bad-request,getJobWorkerStatistics - Param filter.to wrong type (#2) +request-validation/jobs-validation-api-tests.spec.ts,1568,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/by-workers,getJobWorkerStatistics,bad-request,getJobWorkerStatistics - Missing filter.from +request-validation/jobs-validation-api-tests.spec.ts,1588,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/by-workers,getJobWorkerStatistics,bad-request,getJobWorkerStatistics - Missing filter.jobType +request-validation/jobs-validation-api-tests.spec.ts,1608,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/by-workers,getJobWorkerStatistics,bad-request,getJobWorkerStatistics - Missing filter.to +request-validation/jobs-validation-api-tests.spec.ts,1628,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/by-workers,getJobWorkerStatistics,bad-request,getJobWorkerStatistics - Missing page.after +request-validation/jobs-validation-api-tests.spec.ts,1650,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/by-workers,getJobWorkerStatistics,bad-request,getJobWorkerStatistics - format invalid filter.from +request-validation/jobs-validation-api-tests.spec.ts,1671,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/by-workers,getJobWorkerStatistics,bad-request,getJobWorkerStatistics - format invalid filter.to +request-validation/jobs-validation-api-tests.spec.ts,1692,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/by-workers,getJobWorkerStatistics,bad-request,getJobWorkerStatistics - Missing filter +request-validation/jobs-validation-api-tests.spec.ts,1707,request-validation,job,G. Job Lifecycle & Stats,get,negative-get,running-process-instance-with-job,POST,/jobs/statistics/by-workers,getJobWorkerStatistics,bad-request,getJobWorkerStatistics - Missing body +request-validation/jobs-validation-api-tests.spec.ts,1719,request-validation,job,G. Job Lifecycle & Stats,search,negative-search,running-process-instance-with-job,POST,/jobs/search,searchJobs,bad-request,searchJobs - Additional prop __unexpectedField +request-validation/jobs-validation-api-tests.spec.ts,1736,request-validation,job,G. Job Lifecycle & Stats,search,negative-search,running-process-instance-with-job,POST,/jobs/search,searchJobs,bad-request,searchJobs - Body wrong top-level type +request-validation/jobs-validation-api-tests.spec.ts,1751,request-validation,job,G. Job Lifecycle & Stats,search,negative-search,running-process-instance-with-job,POST,/jobs/search,searchJobs,bad-request,searchJobs - Missing sort.0.field +request-validation/jobs-validation-api-tests.spec.ts,1768,request-validation,job,G. Job Lifecycle & Stats,search,negative-search,running-process-instance-with-job,POST,/jobs/search,searchJobs,bad-request,searchJobs - Enum violation sort.0.field +request-validation/jobs-validation-api-tests.spec.ts,1789,request-validation,job,G. Job Lifecycle & Stats,search,negative-search,running-process-instance-with-job,POST,/jobs/search,searchJobs,bad-request,searchJobs - Enum violation sort.0.order +request-validation/jobs-validation-api-tests.spec.ts,1810,request-validation,job,G. Job Lifecycle & Stats,create,negative-create,running-process-instance-with-job,POST,/jobs/{jobKey}/error,throwJobError,bad-request,throwJobError - Additional prop __unexpectedField +request-validation/jobs-validation-api-tests.spec.ts,1828,request-validation,job,G. Job Lifecycle & Stats,create,negative-create,running-process-instance-with-job,POST,/jobs/{jobKey}/error,throwJobError,bad-request,throwJobError - Body wrong top-level type +request-validation/jobs-validation-api-tests.spec.ts,1843,request-validation,job,G. Job Lifecycle & Stats,create,negative-create,running-process-instance-with-job,POST,/jobs/{jobKey}/error,throwJobError,bad-request,throwJobError - Param errorCode wrong type (#1) +request-validation/jobs-validation-api-tests.spec.ts,1860,request-validation,job,G. Job Lifecycle & Stats,create,negative-create,running-process-instance-with-job,POST,/jobs/{jobKey}/error,throwJobError,bad-request,throwJobError - Param errorCode wrong type (#2) +request-validation/jobs-validation-api-tests.spec.ts,1877,request-validation,job,G. Job Lifecycle & Stats,create,negative-create,running-process-instance-with-job,POST,/jobs/{jobKey}/error,throwJobError,bad-request,throwJobError - Missing errorCode +request-validation/jobs-validation-api-tests.spec.ts,1892,request-validation,job,G. Job Lifecycle & Stats,create,negative-create,running-process-instance-with-job,POST,/jobs/{jobKey}/error,throwJobError,bad-request,throwJobError - Missing body +request-validation/jobs-validation-api-tests.spec.ts,1904,request-validation,job,G. Job Lifecycle & Stats,create,negative-create,running-process-instance-with-job,POST,/jobs/{jobKey}/error,throwJobError,bad-request,throwJobError - Path param jobKey pattern violation +request-validation/jobs-validation-api-tests.spec.ts,1916,request-validation,job,G. Job Lifecycle & Stats,update,negative-update,running-process-instance-with-job,PATCH,/jobs/{jobKey},updateJob,bad-request,updateJob - Additional prop __unexpectedField +request-validation/jobs-validation-api-tests.spec.ts,1938,request-validation,job,G. Job Lifecycle & Stats,update,negative-update,running-process-instance-with-job,PATCH,/jobs/{jobKey},updateJob,bad-request,updateJob - Body wrong top-level type +request-validation/jobs-validation-api-tests.spec.ts,1953,request-validation,job,G. Job Lifecycle & Stats,update,negative-update,running-process-instance-with-job,PATCH,/jobs/{jobKey},updateJob,bad-request,updateJob - Param changeset.retries wrong type (#1) +request-validation/jobs-validation-api-tests.spec.ts,1974,request-validation,job,G. Job Lifecycle & Stats,update,negative-update,running-process-instance-with-job,PATCH,/jobs/{jobKey},updateJob,bad-request,updateJob - Param changeset.retries wrong type (#2) +request-validation/jobs-validation-api-tests.spec.ts,1995,request-validation,job,G. Job Lifecycle & Stats,update,negative-update,running-process-instance-with-job,PATCH,/jobs/{jobKey},updateJob,bad-request,updateJob - Param changeset.timeout wrong type (#1) +request-validation/jobs-validation-api-tests.spec.ts,2016,request-validation,job,G. Job Lifecycle & Stats,update,negative-update,running-process-instance-with-job,PATCH,/jobs/{jobKey},updateJob,bad-request,updateJob - Param changeset.timeout wrong type (#2) +request-validation/jobs-validation-api-tests.spec.ts,2037,request-validation,job,G. Job Lifecycle & Stats,update,negative-update,running-process-instance-with-job,PATCH,/jobs/{jobKey},updateJob,bad-request,updateJob - Param operationReference wrong type (#1) +request-validation/jobs-validation-api-tests.spec.ts,2058,request-validation,job,G. Job Lifecycle & Stats,update,negative-update,running-process-instance-with-job,PATCH,/jobs/{jobKey},updateJob,bad-request,updateJob - Param operationReference wrong type (#2) +request-validation/jobs-validation-api-tests.spec.ts,2079,request-validation,job,G. Job Lifecycle & Stats,update,negative-update,running-process-instance-with-job,PATCH,/jobs/{jobKey},updateJob,bad-request,updateJob - Constraint violation operationReference (#1) +request-validation/jobs-validation-api-tests.spec.ts,2102,request-validation,job,G. Job Lifecycle & Stats,update,negative-update,running-process-instance-with-job,PATCH,/jobs/{jobKey},updateJob,bad-request,updateJob - Constraint violation operationReference (#2) +request-validation/jobs-validation-api-tests.spec.ts,2125,request-validation,job,G. Job Lifecycle & Stats,update,negative-update,running-process-instance-with-job,PATCH,/jobs/{jobKey},updateJob,bad-request,updateJob - Constraint violation operationReference (#3) +request-validation/jobs-validation-api-tests.spec.ts,2148,request-validation,job,G. Job Lifecycle & Stats,update,negative-update,running-process-instance-with-job,PATCH,/jobs/{jobKey},updateJob,bad-request,updateJob - Missing changeset +request-validation/jobs-validation-api-tests.spec.ts,2163,request-validation,job,G. Job Lifecycle & Stats,update,negative-update,running-process-instance-with-job,PATCH,/jobs/{jobKey},updateJob,bad-request,updateJob - Missing body +request-validation/jobs-validation-api-tests.spec.ts,2175,request-validation,job,G. Job Lifecycle & Stats,update,negative-update,running-process-instance-with-job,PATCH,/jobs/{jobKey},updateJob,bad-request,updateJob - Path param jobKey pattern violation +request-validation/mappingrules-validation-api-tests.spec.ts,18,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/mapping-rules,createMappingRule,bad-request,createMappingRule - Additional prop __unexpectedField +request-validation/mappingrules-validation-api-tests.spec.ts,39,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/mapping-rules,createMappingRule,bad-request,createMappingRule - Body wrong top-level type +request-validation/mappingrules-validation-api-tests.spec.ts,54,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/mapping-rules,createMappingRule,bad-request,createMappingRule - Param claimName wrong type (#1) +request-validation/mappingrules-validation-api-tests.spec.ts,74,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/mapping-rules,createMappingRule,bad-request,createMappingRule - Param claimName wrong type (#2) +request-validation/mappingrules-validation-api-tests.spec.ts,94,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/mapping-rules,createMappingRule,bad-request,createMappingRule - Param claimValue wrong type (#1) +request-validation/mappingrules-validation-api-tests.spec.ts,114,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/mapping-rules,createMappingRule,bad-request,createMappingRule - Param claimValue wrong type (#2) +request-validation/mappingrules-validation-api-tests.spec.ts,134,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/mapping-rules,createMappingRule,bad-request,createMappingRule - Param mappingRuleId wrong type (#1) +request-validation/mappingrules-validation-api-tests.spec.ts,154,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/mapping-rules,createMappingRule,bad-request,createMappingRule - Param mappingRuleId wrong type (#2) +request-validation/mappingrules-validation-api-tests.spec.ts,174,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/mapping-rules,createMappingRule,bad-request,createMappingRule - Param name wrong type (#1) +request-validation/mappingrules-validation-api-tests.spec.ts,194,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/mapping-rules,createMappingRule,bad-request,createMappingRule - Param name wrong type (#2) +request-validation/mappingrules-validation-api-tests.spec.ts,214,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/mapping-rules,createMappingRule,bad-request,createMappingRule - Constraint violation mappingRuleId (#1) +request-validation/mappingrules-validation-api-tests.spec.ts,237,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/mapping-rules,createMappingRule,bad-request,createMappingRule - Constraint violation mappingRuleId (#2) +request-validation/mappingrules-validation-api-tests.spec.ts,259,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/mapping-rules,createMappingRule,bad-request,createMappingRule - Constraint violation mappingRuleId (#3) +request-validation/mappingrules-validation-api-tests.spec.ts,281,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/mapping-rules,createMappingRule,bad-request,createMappingRule - Constraint violation mappingRuleId (#4) +request-validation/mappingrules-validation-api-tests.spec.ts,304,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/mapping-rules,createMappingRule,bad-request,createMappingRule - Missing claimName +request-validation/mappingrules-validation-api-tests.spec.ts,323,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/mapping-rules,createMappingRule,bad-request,createMappingRule - Missing claimValue +request-validation/mappingrules-validation-api-tests.spec.ts,342,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/mapping-rules,createMappingRule,bad-request,createMappingRule - Missing mappingRuleId (#1) +request-validation/mappingrules-validation-api-tests.spec.ts,361,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/mapping-rules,createMappingRule,bad-request,createMappingRule - Missing name +request-validation/mappingrules-validation-api-tests.spec.ts,380,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/mapping-rules,createMappingRule,bad-request,createMappingRule - Missing mappingRuleId (#2) +request-validation/mappingrules-validation-api-tests.spec.ts,395,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/mapping-rules,createMappingRule,bad-request,createMappingRule - Missing body +request-validation/mappingrules-validation-api-tests.spec.ts,407,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),delete,negative-delete,none,DELETE,/mapping-rules/{mappingRuleId},deleteMappingRule,bad-request,deleteMappingRule - Path param mappingRuleId pattern violation +request-validation/mappingrules-validation-api-tests.spec.ts,423,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),get,negative-get,none,GET,/mapping-rules/{mappingRuleId},getMappingRule,bad-request,getMappingRule - Path param mappingRuleId pattern violation +request-validation/mappingrules-validation-api-tests.spec.ts,439,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/mapping-rules/search,searchMappingRule,bad-request,searchMappingRule - Additional prop __unexpectedField +request-validation/mappingrules-validation-api-tests.spec.ts,456,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/mapping-rules/search,searchMappingRule,bad-request,searchMappingRule - Body wrong top-level type +request-validation/mappingrules-validation-api-tests.spec.ts,471,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/mapping-rules/search,searchMappingRule,bad-request,searchMappingRule - Missing sort.0.field +request-validation/mappingrules-validation-api-tests.spec.ts,488,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/mapping-rules/search,searchMappingRule,bad-request,searchMappingRule - Enum violation sort.0.field +request-validation/mappingrules-validation-api-tests.spec.ts,509,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/mapping-rules/search,searchMappingRule,bad-request,searchMappingRule - Enum violation sort.0.order +request-validation/mappingrules-validation-api-tests.spec.ts,530,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/mapping-rules/{mappingRuleId},updateMappingRule,bad-request,updateMappingRule - Additional prop __extraField +request-validation/mappingrules-validation-api-tests.spec.ts,552,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/mapping-rules/{mappingRuleId},updateMappingRule,bad-request,updateMappingRule - Body wrong top-level type +request-validation/mappingrules-validation-api-tests.spec.ts,569,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/mapping-rules/{mappingRuleId},updateMappingRule,bad-request,updateMappingRule - Param claimName wrong type (#1) +request-validation/mappingrules-validation-api-tests.spec.ts,590,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/mapping-rules/{mappingRuleId},updateMappingRule,bad-request,updateMappingRule - Param claimName wrong type (#2) +request-validation/mappingrules-validation-api-tests.spec.ts,611,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/mapping-rules/{mappingRuleId},updateMappingRule,bad-request,updateMappingRule - Param claimValue wrong type (#1) +request-validation/mappingrules-validation-api-tests.spec.ts,632,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/mapping-rules/{mappingRuleId},updateMappingRule,bad-request,updateMappingRule - Param claimValue wrong type (#2) +request-validation/mappingrules-validation-api-tests.spec.ts,653,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/mapping-rules/{mappingRuleId},updateMappingRule,bad-request,updateMappingRule - Param name wrong type (#1) +request-validation/mappingrules-validation-api-tests.spec.ts,674,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/mapping-rules/{mappingRuleId},updateMappingRule,bad-request,updateMappingRule - Param name wrong type (#2) +request-validation/mappingrules-validation-api-tests.spec.ts,695,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/mapping-rules/{mappingRuleId},updateMappingRule,bad-request,updateMappingRule - Missing claimName +request-validation/mappingrules-validation-api-tests.spec.ts,715,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/mapping-rules/{mappingRuleId},updateMappingRule,bad-request,updateMappingRule - Missing claimValue +request-validation/mappingrules-validation-api-tests.spec.ts,735,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/mapping-rules/{mappingRuleId},updateMappingRule,bad-request,updateMappingRule - Missing name +request-validation/mappingrules-validation-api-tests.spec.ts,755,request-validation,mapping-rule,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/mapping-rules/{mappingRuleId},updateMappingRule,bad-request,updateMappingRule - Path param mappingRuleId pattern violation +request-validation/messages-validation-api-tests.spec.ts,18,request-validation,message,M. Messaging/Signals,create,negative-create,deployed-process-with-message-catch-event,POST,/messages/correlation,correlateMessage,bad-request,correlateMessage - Additional prop __unexpectedField +request-validation/messages-validation-api-tests.spec.ts,37,request-validation,message,M. Messaging/Signals,create,negative-create,deployed-process-with-message-catch-event,POST,/messages/correlation,correlateMessage,bad-request,correlateMessage - Body wrong top-level type +request-validation/messages-validation-api-tests.spec.ts,52,request-validation,message,M. Messaging/Signals,create,negative-create,deployed-process-with-message-catch-event,POST,/messages/correlation,correlateMessage,bad-request,correlateMessage - Param name wrong type (#1) +request-validation/messages-validation-api-tests.spec.ts,70,request-validation,message,M. Messaging/Signals,create,negative-create,deployed-process-with-message-catch-event,POST,/messages/correlation,correlateMessage,bad-request,correlateMessage - Param name wrong type (#2) +request-validation/messages-validation-api-tests.spec.ts,88,request-validation,message,M. Messaging/Signals,create,negative-create,deployed-process-with-message-catch-event,POST,/messages/correlation,correlateMessage,bad-request,correlateMessage - Param tenantId wrong type (#1) +request-validation/messages-validation-api-tests.spec.ts,106,request-validation,message,M. Messaging/Signals,create,negative-create,deployed-process-with-message-catch-event,POST,/messages/correlation,correlateMessage,bad-request,correlateMessage - Param tenantId wrong type (#2) +request-validation/messages-validation-api-tests.spec.ts,124,request-validation,message,M. Messaging/Signals,create,negative-create,deployed-process-with-message-catch-event,POST,/messages/correlation,correlateMessage,bad-request,correlateMessage - Constraint violation tenantId (#1) +request-validation/messages-validation-api-tests.spec.ts,142,request-validation,message,M. Messaging/Signals,create,negative-create,deployed-process-with-message-catch-event,POST,/messages/correlation,correlateMessage,bad-request,correlateMessage - Constraint violation tenantId (#2) +request-validation/messages-validation-api-tests.spec.ts,160,request-validation,message,M. Messaging/Signals,create,negative-create,deployed-process-with-message-catch-event,POST,/messages/correlation,correlateMessage,bad-request,correlateMessage - Constraint violation tenantId (#3) +request-validation/messages-validation-api-tests.spec.ts,178,request-validation,message,M. Messaging/Signals,create,negative-create,deployed-process-with-message-catch-event,POST,/messages/correlation,correlateMessage,bad-request,correlateMessage - Constraint violation tenantId (#4) +request-validation/messages-validation-api-tests.spec.ts,196,request-validation,message,M. Messaging/Signals,create,negative-create,deployed-process-with-message-catch-event,POST,/messages/correlation,correlateMessage,bad-request,correlateMessage - Missing name +request-validation/messages-validation-api-tests.spec.ts,211,request-validation,message,M. Messaging/Signals,create,negative-create,deployed-process-with-message-catch-event,POST,/messages/correlation,correlateMessage,bad-request,correlateMessage - Missing body +request-validation/messages-validation-api-tests.spec.ts,223,request-validation,message,M. Messaging/Signals,create,negative-create,deployed-process-with-message-catch-event,POST,/messages/publication,publishMessage,bad-request,publishMessage - Additional prop __unexpectedField +request-validation/messages-validation-api-tests.spec.ts,243,request-validation,message,M. Messaging/Signals,create,negative-create,deployed-process-with-message-catch-event,POST,/messages/publication,publishMessage,bad-request,publishMessage - Body wrong top-level type +request-validation/messages-validation-api-tests.spec.ts,258,request-validation,message,M. Messaging/Signals,create,negative-create,deployed-process-with-message-catch-event,POST,/messages/publication,publishMessage,bad-request,publishMessage - Param name wrong type (#1) +request-validation/messages-validation-api-tests.spec.ts,277,request-validation,message,M. Messaging/Signals,create,negative-create,deployed-process-with-message-catch-event,POST,/messages/publication,publishMessage,bad-request,publishMessage - Param name wrong type (#2) +request-validation/messages-validation-api-tests.spec.ts,296,request-validation,message,M. Messaging/Signals,create,negative-create,deployed-process-with-message-catch-event,POST,/messages/publication,publishMessage,bad-request,publishMessage - Param tenantId wrong type (#1) +request-validation/messages-validation-api-tests.spec.ts,315,request-validation,message,M. Messaging/Signals,create,negative-create,deployed-process-with-message-catch-event,POST,/messages/publication,publishMessage,bad-request,publishMessage - Param tenantId wrong type (#2) +request-validation/messages-validation-api-tests.spec.ts,334,request-validation,message,M. Messaging/Signals,create,negative-create,deployed-process-with-message-catch-event,POST,/messages/publication,publishMessage,bad-request,publishMessage - Param timeToLive wrong type (#1) +request-validation/messages-validation-api-tests.spec.ts,353,request-validation,message,M. Messaging/Signals,create,negative-create,deployed-process-with-message-catch-event,POST,/messages/publication,publishMessage,bad-request,publishMessage - Param timeToLive wrong type (#2) +request-validation/messages-validation-api-tests.spec.ts,372,request-validation,message,M. Messaging/Signals,create,negative-create,deployed-process-with-message-catch-event,POST,/messages/publication,publishMessage,bad-request,publishMessage - Constraint violation tenantId (#1) +request-validation/messages-validation-api-tests.spec.ts,391,request-validation,message,M. Messaging/Signals,create,negative-create,deployed-process-with-message-catch-event,POST,/messages/publication,publishMessage,bad-request,publishMessage - Constraint violation tenantId (#2) +request-validation/messages-validation-api-tests.spec.ts,410,request-validation,message,M. Messaging/Signals,create,negative-create,deployed-process-with-message-catch-event,POST,/messages/publication,publishMessage,bad-request,publishMessage - Constraint violation tenantId (#3) +request-validation/messages-validation-api-tests.spec.ts,429,request-validation,message,M. Messaging/Signals,create,negative-create,deployed-process-with-message-catch-event,POST,/messages/publication,publishMessage,bad-request,publishMessage - Constraint violation tenantId (#4) +request-validation/messages-validation-api-tests.spec.ts,448,request-validation,message,M. Messaging/Signals,create,negative-create,deployed-process-with-message-catch-event,POST,/messages/publication,publishMessage,bad-request,publishMessage - Missing name +request-validation/messages-validation-api-tests.spec.ts,463,request-validation,message,M. Messaging/Signals,create,negative-create,deployed-process-with-message-catch-event,POST,/messages/publication,publishMessage,bad-request,publishMessage - Missing body +request-validation/messagesubscriptions-validation-api-tests.spec.ts,18,request-validation,message-subscriptions,M. Messaging/Signals,search,negative-search,deployed-process-with-message-catch-event,POST,/message-subscriptions/search,searchMessageSubscriptions,bad-request,searchMessageSubscriptions - Additional prop __unexpectedField +request-validation/messagesubscriptions-validation-api-tests.spec.ts,37,request-validation,message-subscriptions,M. Messaging/Signals,search,negative-search,deployed-process-with-message-catch-event,POST,/message-subscriptions/search,searchMessageSubscriptions,bad-request,searchMessageSubscriptions - Body wrong top-level type +request-validation/messagesubscriptions-validation-api-tests.spec.ts,52,request-validation,message-subscriptions,M. Messaging/Signals,search,negative-search,deployed-process-with-message-catch-event,POST,/message-subscriptions/search,searchMessageSubscriptions,bad-request,searchMessageSubscriptions - Missing sort.0.field +request-validation/messagesubscriptions-validation-api-tests.spec.ts,69,request-validation,message-subscriptions,M. Messaging/Signals,search,negative-search,deployed-process-with-message-catch-event,POST,/message-subscriptions/search,searchMessageSubscriptions,bad-request,searchMessageSubscriptions - Enum violation sort.0.field +request-validation/messagesubscriptions-validation-api-tests.spec.ts,92,request-validation,message-subscriptions,M. Messaging/Signals,search,negative-search,deployed-process-with-message-catch-event,POST,/message-subscriptions/search,searchMessageSubscriptions,bad-request,searchMessageSubscriptions - Enum violation sort.0.order +request-validation/processdefinitions-validation-api-tests.spec.ts,18,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,GET,/process-definitions/{processDefinitionKey},getProcessDefinition,bad-request,getProcessDefinition - Path param processDefinitionKey pattern violation +request-validation/processdefinitions-validation-api-tests.spec.ts,34,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/statistics/process-instances,getProcessDefinitionInstanceStatistics,bad-request,getProcessDefinitionInstanceStatistics - Additional prop __extraField +request-validation/processdefinitions-validation-api-tests.spec.ts,53,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/statistics/process-instances,getProcessDefinitionInstanceStatistics,bad-request,getProcessDefinitionInstanceStatistics - Body wrong top-level type +request-validation/processdefinitions-validation-api-tests.spec.ts,70,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/statistics/process-instances,getProcessDefinitionInstanceStatistics,bad-request,getProcessDefinitionInstanceStatistics - Missing sort.0.field +request-validation/processdefinitions-validation-api-tests.spec.ts,89,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/statistics/process-instances,getProcessDefinitionInstanceStatistics,bad-request,getProcessDefinitionInstanceStatistics - Enum violation sort.0.field +request-validation/processdefinitions-validation-api-tests.spec.ts,112,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/statistics/process-instances,getProcessDefinitionInstanceStatistics,bad-request,getProcessDefinitionInstanceStatistics - Enum violation sort.0.order +request-validation/processdefinitions-validation-api-tests.spec.ts,135,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/statistics/process-instances-by-version,getProcessDefinitionInstanceVersionStatistics,bad-request,getProcessDefinitionInstanceVersionStatistics - Additional prop __extraField +request-validation/processdefinitions-validation-api-tests.spec.ts,158,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/statistics/process-instances-by-version,getProcessDefinitionInstanceVersionStatistics,bad-request,getProcessDefinitionInstanceVersionStatistics - Body wrong top-level type +request-validation/processdefinitions-validation-api-tests.spec.ts,175,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/statistics/process-instances-by-version,getProcessDefinitionInstanceVersionStatistics,bad-request,getProcessDefinitionInstanceVersionStatistics - Param filter.processDefinitionId wrong type (#1) +request-validation/processdefinitions-validation-api-tests.spec.ts,197,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/statistics/process-instances-by-version,getProcessDefinitionInstanceVersionStatistics,bad-request,getProcessDefinitionInstanceVersionStatistics - Param filter.processDefinitionId wrong type (#2) +request-validation/processdefinitions-validation-api-tests.spec.ts,219,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/statistics/process-instances-by-version,getProcessDefinitionInstanceVersionStatistics,bad-request,getProcessDefinitionInstanceVersionStatistics - Param filter.tenantId wrong type (#1) +request-validation/processdefinitions-validation-api-tests.spec.ts,241,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/statistics/process-instances-by-version,getProcessDefinitionInstanceVersionStatistics,bad-request,getProcessDefinitionInstanceVersionStatistics - Param filter.tenantId wrong type (#2) +request-validation/processdefinitions-validation-api-tests.spec.ts,263,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/statistics/process-instances-by-version,getProcessDefinitionInstanceVersionStatistics,bad-request,getProcessDefinitionInstanceVersionStatistics - Constraint violation filter.processDefinitionId (#1) +request-validation/processdefinitions-validation-api-tests.spec.ts,285,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/statistics/process-instances-by-version,getProcessDefinitionInstanceVersionStatistics,bad-request,getProcessDefinitionInstanceVersionStatistics - Constraint violation filter.processDefinitionId (#2) +request-validation/processdefinitions-validation-api-tests.spec.ts,307,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/statistics/process-instances-by-version,getProcessDefinitionInstanceVersionStatistics,bad-request,getProcessDefinitionInstanceVersionStatistics - Constraint violation filter.tenantId (#1) +request-validation/processdefinitions-validation-api-tests.spec.ts,329,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/statistics/process-instances-by-version,getProcessDefinitionInstanceVersionStatistics,bad-request,getProcessDefinitionInstanceVersionStatistics - Constraint violation filter.tenantId (#2) +request-validation/processdefinitions-validation-api-tests.spec.ts,351,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/statistics/process-instances-by-version,getProcessDefinitionInstanceVersionStatistics,bad-request,getProcessDefinitionInstanceVersionStatistics - Constraint violation filter.tenantId (#3) +request-validation/processdefinitions-validation-api-tests.spec.ts,373,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/statistics/process-instances-by-version,getProcessDefinitionInstanceVersionStatistics,bad-request,getProcessDefinitionInstanceVersionStatistics - Constraint violation filter.tenantId (#4) +request-validation/processdefinitions-validation-api-tests.spec.ts,395,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/statistics/process-instances-by-version,getProcessDefinitionInstanceVersionStatistics,bad-request,getProcessDefinitionInstanceVersionStatistics - Missing filter.processDefinitionId +request-validation/processdefinitions-validation-api-tests.spec.ts,414,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/statistics/process-instances-by-version,getProcessDefinitionInstanceVersionStatistics,bad-request,getProcessDefinitionInstanceVersionStatistics - Missing sort.0.field +request-validation/processdefinitions-validation-api-tests.spec.ts,436,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/statistics/process-instances-by-version,getProcessDefinitionInstanceVersionStatistics,bad-request,getProcessDefinitionInstanceVersionStatistics - Enum violation sort.0.field +request-validation/processdefinitions-validation-api-tests.spec.ts,463,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/statistics/process-instances-by-version,getProcessDefinitionInstanceVersionStatistics,bad-request,getProcessDefinitionInstanceVersionStatistics - Enum violation sort.0.order +request-validation/processdefinitions-validation-api-tests.spec.ts,490,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/statistics/process-instances-by-version,getProcessDefinitionInstanceVersionStatistics,bad-request,getProcessDefinitionInstanceVersionStatistics - Missing filter +request-validation/processdefinitions-validation-api-tests.spec.ts,507,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/statistics/process-instances-by-version,getProcessDefinitionInstanceVersionStatistics,bad-request,getProcessDefinitionInstanceVersionStatistics - Missing body +request-validation/processdefinitions-validation-api-tests.spec.ts,521,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/statistics/message-subscriptions,getProcessDefinitionMessageSubscriptionStatistics,bad-request,getProcessDefinitionMessageSubscriptionStatistics - Additional prop __extraField +request-validation/processdefinitions-validation-api-tests.spec.ts,540,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/statistics/message-subscriptions,getProcessDefinitionMessageSubscriptionStatistics,bad-request,getProcessDefinitionMessageSubscriptionStatistics - Body wrong top-level type +request-validation/processdefinitions-validation-api-tests.spec.ts,557,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/statistics/message-subscriptions,getProcessDefinitionMessageSubscriptionStatistics,bad-request,getProcessDefinitionMessageSubscriptionStatistics - Missing page.after +request-validation/processdefinitions-validation-api-tests.spec.ts,576,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,bad-request,getProcessDefinitionStatistics - Additional prop __unexpectedField +request-validation/processdefinitions-validation-api-tests.spec.ts,598,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,bad-request,getProcessDefinitionStatistics - Body wrong top-level type +request-validation/processdefinitions-validation-api-tests.spec.ts,618,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,bad-request,getProcessDefinitionStatistics - Missing filter.$or.0.variables.0.name +request-validation/processdefinitions-validation-api-tests.spec.ts,650,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,bad-request,getProcessDefinitionStatistics - Missing filter.$or.0.variables.0.value +request-validation/processdefinitions-validation-api-tests.spec.ts,682,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,bad-request,getProcessDefinitionStatistics - Missing filter.variables.0.name +request-validation/processdefinitions-validation-api-tests.spec.ts,710,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,bad-request,getProcessDefinitionStatistics - Missing filter.variables.0.value +request-validation/processdefinitions-validation-api-tests.spec.ts,738,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,bad-request,getProcessDefinitionStatistics - Path param processDefinitionKey pattern violation +request-validation/processdefinitions-validation-api-tests.spec.ts,755,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,bad-request,getProcessDefinitionStatistics - uniqueItems violation filter.$or.0.tags +request-validation/processdefinitions-validation-api-tests.spec.ts,783,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,bad-request,getProcessDefinitionStatistics - uniqueItems violation filter.tags +request-validation/processdefinitions-validation-api-tests.spec.ts,807,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,GET,/process-definitions/{processDefinitionKey}/xml,getProcessDefinitionXML,bad-request,getProcessDefinitionXML - Path param processDefinitionKey pattern violation +request-validation/processdefinitions-validation-api-tests.spec.ts,823,request-validation,process-definition,C. Deployment Lifecycle,get,negative-get,deployed-process,GET,/process-definitions/{processDefinitionKey}/form,getStartProcessForm,bad-request,getStartProcessForm - Path param processDefinitionKey pattern violation +request-validation/processdefinitions-validation-api-tests.spec.ts,839,request-validation,process-definition,C. Deployment Lifecycle,search,negative-search,deployed-process,POST,/process-definitions/search,searchProcessDefinitions,bad-request,searchProcessDefinitions - Additional prop __unexpectedField +request-validation/processdefinitions-validation-api-tests.spec.ts,858,request-validation,process-definition,C. Deployment Lifecycle,search,negative-search,deployed-process,POST,/process-definitions/search,searchProcessDefinitions,bad-request,searchProcessDefinitions - Body wrong top-level type +request-validation/processdefinitions-validation-api-tests.spec.ts,873,request-validation,process-definition,C. Deployment Lifecycle,search,negative-search,deployed-process,POST,/process-definitions/search,searchProcessDefinitions,bad-request,searchProcessDefinitions - Missing sort.0.field +request-validation/processdefinitions-validation-api-tests.spec.ts,890,request-validation,process-definition,C. Deployment Lifecycle,search,negative-search,deployed-process,POST,/process-definitions/search,searchProcessDefinitions,bad-request,searchProcessDefinitions - Enum violation sort.0.field +request-validation/processdefinitions-validation-api-tests.spec.ts,911,request-validation,process-definition,C. Deployment Lifecycle,search,negative-search,deployed-process,POST,/process-definitions/search,searchProcessDefinitions,bad-request,searchProcessDefinitions - Enum violation sort.0.order +request-validation/processinstances-validation-api-tests.spec.ts,18,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/{processInstanceKey}/cancellation,cancelProcessInstance,bad-request,cancelProcessInstance - Additional prop __unexpectedField +request-validation/processinstances-validation-api-tests.spec.ts,40,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/{processInstanceKey}/cancellation,cancelProcessInstance,bad-request,cancelProcessInstance - Body wrong top-level type +request-validation/processinstances-validation-api-tests.spec.ts,57,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/{processInstanceKey}/cancellation,cancelProcessInstance,bad-request,cancelProcessInstance - Param operationReference wrong type (#1) +request-validation/processinstances-validation-api-tests.spec.ts,78,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/{processInstanceKey}/cancellation,cancelProcessInstance,bad-request,cancelProcessInstance - Param operationReference wrong type (#2) +request-validation/processinstances-validation-api-tests.spec.ts,99,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/{processInstanceKey}/cancellation,cancelProcessInstance,bad-request,cancelProcessInstance - Constraint violation operationReference (#1) +request-validation/processinstances-validation-api-tests.spec.ts,120,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/{processInstanceKey}/cancellation,cancelProcessInstance,bad-request,cancelProcessInstance - Constraint violation operationReference (#2) +request-validation/processinstances-validation-api-tests.spec.ts,141,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/{processInstanceKey}/cancellation,cancelProcessInstance,bad-request,cancelProcessInstance - Constraint violation operationReference (#3) +request-validation/processinstances-validation-api-tests.spec.ts,162,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/{processInstanceKey}/cancellation,cancelProcessInstance,bad-request,cancelProcessInstance - Path param processInstanceKey pattern violation +request-validation/processinstances-validation-api-tests.spec.ts,178,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,bad-request,cancelProcessInstancesBatchOperation - Additional prop __unexpectedField +request-validation/processinstances-validation-api-tests.spec.ts,201,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,bad-request,cancelProcessInstancesBatchOperation - Body wrong top-level type +request-validation/processinstances-validation-api-tests.spec.ts,218,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,bad-request,cancelProcessInstancesBatchOperation - Param operationReference wrong type (#1) +request-validation/processinstances-validation-api-tests.spec.ts,240,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,bad-request,cancelProcessInstancesBatchOperation - Param operationReference wrong type (#2) +request-validation/processinstances-validation-api-tests.spec.ts,262,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,bad-request,cancelProcessInstancesBatchOperation - Constraint violation filter.tags (#1) +request-validation/processinstances-validation-api-tests.spec.ts,284,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,bad-request,cancelProcessInstancesBatchOperation - Constraint violation filter.tags (#2) +request-validation/processinstances-validation-api-tests.spec.ts,306,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,bad-request,cancelProcessInstancesBatchOperation - Constraint violation operationReference (#1) +request-validation/processinstances-validation-api-tests.spec.ts,328,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,bad-request,cancelProcessInstancesBatchOperation - Constraint violation operationReference (#2) +request-validation/processinstances-validation-api-tests.spec.ts,350,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,bad-request,cancelProcessInstancesBatchOperation - Constraint violation operationReference (#3) +request-validation/processinstances-validation-api-tests.spec.ts,372,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,bad-request,cancelProcessInstancesBatchOperation - Missing filter.$or.0.variables.0.name +request-validation/processinstances-validation-api-tests.spec.ts,401,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,bad-request,cancelProcessInstancesBatchOperation - Missing filter.$or.0.variables.0.value +request-validation/processinstances-validation-api-tests.spec.ts,430,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,bad-request,cancelProcessInstancesBatchOperation - Missing filter.variables.0.name +request-validation/processinstances-validation-api-tests.spec.ts,455,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,bad-request,cancelProcessInstancesBatchOperation - Missing filter.variables.0.value +request-validation/processinstances-validation-api-tests.spec.ts,480,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,bad-request,cancelProcessInstancesBatchOperation - Missing filter +request-validation/processinstances-validation-api-tests.spec.ts,495,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,bad-request,cancelProcessInstancesBatchOperation - Missing body +request-validation/processinstances-validation-api-tests.spec.ts,507,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,bad-request,cancelProcessInstancesBatchOperation - uniqueItems violation filter.$or.0.tags +request-validation/processinstances-validation-api-tests.spec.ts,534,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,bad-request,cancelProcessInstancesBatchOperation - uniqueItems violation filter.tags +request-validation/processinstances-validation-api-tests.spec.ts,556,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,create,negative-create,deployed-process,POST,/process-instances,createProcessInstance,bad-request,createProcessInstance - Body wrong top-level type +request-validation/processinstances-validation-api-tests.spec.ts,571,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,create,negative-create,deployed-process,POST,/process-instances,createProcessInstance,bad-request,createProcessInstance - Missing body +request-validation/processinstances-validation-api-tests.spec.ts,583,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,create,negative-create,deployed-process,POST,/process-instances,createProcessInstance,bad-request,createProcessInstance - oneOf ambiguous +request-validation/processinstances-validation-api-tests.spec.ts,601,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,create,negative-create,deployed-process,POST,/process-instances,createProcessInstance,bad-request,createProcessInstance - oneOf cross bleed +request-validation/processinstances-validation-api-tests.spec.ts,619,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,create,negative-create,deployed-process,POST,/process-instances,createProcessInstance,bad-request,createProcessInstance - oneOf none match +request-validation/processinstances-validation-api-tests.spec.ts,634,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,create,negative-create,deployed-process,POST,/process-instances,createProcessInstance,bad-request,createProcessInstance - oneOf violation +request-validation/processinstances-validation-api-tests.spec.ts,652,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/{processInstanceKey}/deletion,deleteProcessInstance,bad-request,deleteProcessInstance - Additional prop __unexpectedField +request-validation/processinstances-validation-api-tests.spec.ts,674,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/{processInstanceKey}/deletion,deleteProcessInstance,bad-request,deleteProcessInstance - Body wrong top-level type +request-validation/processinstances-validation-api-tests.spec.ts,691,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/{processInstanceKey}/deletion,deleteProcessInstance,bad-request,deleteProcessInstance - Param operationReference wrong type (#1) +request-validation/processinstances-validation-api-tests.spec.ts,712,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/{processInstanceKey}/deletion,deleteProcessInstance,bad-request,deleteProcessInstance - Param operationReference wrong type (#2) +request-validation/processinstances-validation-api-tests.spec.ts,733,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/{processInstanceKey}/deletion,deleteProcessInstance,bad-request,deleteProcessInstance - Constraint violation operationReference (#1) +request-validation/processinstances-validation-api-tests.spec.ts,754,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/{processInstanceKey}/deletion,deleteProcessInstance,bad-request,deleteProcessInstance - Constraint violation operationReference (#2) +request-validation/processinstances-validation-api-tests.spec.ts,775,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/{processInstanceKey}/deletion,deleteProcessInstance,bad-request,deleteProcessInstance - Constraint violation operationReference (#3) +request-validation/processinstances-validation-api-tests.spec.ts,796,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/{processInstanceKey}/deletion,deleteProcessInstance,bad-request,deleteProcessInstance - Path param processInstanceKey pattern violation +request-validation/processinstances-validation-api-tests.spec.ts,812,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,bad-request,deleteProcessInstancesBatchOperation - Additional prop __unexpectedField +request-validation/processinstances-validation-api-tests.spec.ts,835,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,bad-request,deleteProcessInstancesBatchOperation - Body wrong top-level type +request-validation/processinstances-validation-api-tests.spec.ts,852,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,bad-request,deleteProcessInstancesBatchOperation - Param operationReference wrong type (#1) +request-validation/processinstances-validation-api-tests.spec.ts,874,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,bad-request,deleteProcessInstancesBatchOperation - Param operationReference wrong type (#2) +request-validation/processinstances-validation-api-tests.spec.ts,896,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,bad-request,deleteProcessInstancesBatchOperation - Constraint violation filter.tags (#1) +request-validation/processinstances-validation-api-tests.spec.ts,918,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,bad-request,deleteProcessInstancesBatchOperation - Constraint violation filter.tags (#2) +request-validation/processinstances-validation-api-tests.spec.ts,940,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,bad-request,deleteProcessInstancesBatchOperation - Constraint violation operationReference (#1) +request-validation/processinstances-validation-api-tests.spec.ts,962,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,bad-request,deleteProcessInstancesBatchOperation - Constraint violation operationReference (#2) +request-validation/processinstances-validation-api-tests.spec.ts,984,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,bad-request,deleteProcessInstancesBatchOperation - Constraint violation operationReference (#3) +request-validation/processinstances-validation-api-tests.spec.ts,1006,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,bad-request,deleteProcessInstancesBatchOperation - Missing filter.$or.0.variables.0.name +request-validation/processinstances-validation-api-tests.spec.ts,1035,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,bad-request,deleteProcessInstancesBatchOperation - Missing filter.$or.0.variables.0.value +request-validation/processinstances-validation-api-tests.spec.ts,1064,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,bad-request,deleteProcessInstancesBatchOperation - Missing filter.variables.0.name +request-validation/processinstances-validation-api-tests.spec.ts,1089,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,bad-request,deleteProcessInstancesBatchOperation - Missing filter.variables.0.value +request-validation/processinstances-validation-api-tests.spec.ts,1114,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,bad-request,deleteProcessInstancesBatchOperation - Missing filter +request-validation/processinstances-validation-api-tests.spec.ts,1129,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,bad-request,deleteProcessInstancesBatchOperation - Missing body +request-validation/processinstances-validation-api-tests.spec.ts,1141,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,bad-request,deleteProcessInstancesBatchOperation - uniqueItems violation filter.$or.0.tags +request-validation/processinstances-validation-api-tests.spec.ts,1168,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,delete,negative-delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,bad-request,deleteProcessInstancesBatchOperation - uniqueItems violation filter.tags +request-validation/processinstances-validation-api-tests.spec.ts,1190,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,get,negative-get,deployed-process,GET,/process-instances/{processInstanceKey},getProcessInstance,bad-request,getProcessInstance - Path param processInstanceKey pattern violation +request-validation/processinstances-validation-api-tests.spec.ts,1206,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,get,negative-get,deployed-process,GET,/process-instances/{processInstanceKey}/call-hierarchy,getProcessInstanceCallHierarchy,bad-request,getProcessInstanceCallHierarchy - Path param processInstanceKey pattern violation +request-validation/processinstances-validation-api-tests.spec.ts,1222,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,get,negative-get,deployed-process,GET,/process-instances/{processInstanceKey}/sequence-flows,getProcessInstanceSequenceFlows,bad-request,getProcessInstanceSequenceFlows - Path param processInstanceKey pattern violation +request-validation/processinstances-validation-api-tests.spec.ts,1238,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,get,negative-get,deployed-process,GET,/process-instances/{processInstanceKey}/statistics/element-instances,getProcessInstanceStatistics,bad-request,getProcessInstanceStatistics - Path param processInstanceKey pattern violation +request-validation/processinstances-validation-api-tests.spec.ts,1254,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/migration,migrateProcessInstance,bad-request,migrateProcessInstance - Additional prop __unexpectedField +request-validation/processinstances-validation-api-tests.spec.ts,1283,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/migration,migrateProcessInstance,bad-request,migrateProcessInstance - Body wrong top-level type +request-validation/processinstances-validation-api-tests.spec.ts,1300,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/migration,migrateProcessInstance,bad-request,migrateProcessInstance - Param operationReference wrong type (#1) +request-validation/processinstances-validation-api-tests.spec.ts,1328,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/migration,migrateProcessInstance,bad-request,migrateProcessInstance - Param operationReference wrong type (#2) +request-validation/processinstances-validation-api-tests.spec.ts,1356,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/migration,migrateProcessInstance,bad-request,migrateProcessInstance - Param targetProcessDefinitionKey wrong type (#1) +request-validation/processinstances-validation-api-tests.spec.ts,1384,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/migration,migrateProcessInstance,bad-request,migrateProcessInstance - Param targetProcessDefinitionKey wrong type (#2) +request-validation/processinstances-validation-api-tests.spec.ts,1412,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/migration,migrateProcessInstance,bad-request,migrateProcessInstance - Constraint violation operationReference (#1) +request-validation/processinstances-validation-api-tests.spec.ts,1440,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/migration,migrateProcessInstance,bad-request,migrateProcessInstance - Constraint violation operationReference (#2) +request-validation/processinstances-validation-api-tests.spec.ts,1468,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/migration,migrateProcessInstance,bad-request,migrateProcessInstance - Constraint violation operationReference (#3) +request-validation/processinstances-validation-api-tests.spec.ts,1496,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/migration,migrateProcessInstance,bad-request,migrateProcessInstance - Missing mappingInstructions.0.sourceElementId +request-validation/processinstances-validation-api-tests.spec.ts,1522,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/migration,migrateProcessInstance,bad-request,migrateProcessInstance - Missing mappingInstructions.0.targetElementId +request-validation/processinstances-validation-api-tests.spec.ts,1548,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/migration,migrateProcessInstance,bad-request,migrateProcessInstance - Missing targetProcessDefinitionKey (#1) +request-validation/processinstances-validation-api-tests.spec.ts,1574,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/migration,migrateProcessInstance,bad-request,migrateProcessInstance - Missing mappingInstructions +request-validation/processinstances-validation-api-tests.spec.ts,1593,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/migration,migrateProcessInstance,bad-request,migrateProcessInstance - Missing targetProcessDefinitionKey (#2) +request-validation/processinstances-validation-api-tests.spec.ts,1614,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/migration,migrateProcessInstance,bad-request,migrateProcessInstance - Missing body +request-validation/processinstances-validation-api-tests.spec.ts,1628,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/migration,migrateProcessInstance,bad-request,"migrateProcessInstance - Missing combo targetProcessDefinitionKey,mappingInstructions" +request-validation/processinstances-validation-api-tests.spec.ts,1647,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/migration,migrateProcessInstance,bad-request,migrateProcessInstance - Path param processInstanceKey pattern violation +request-validation/processinstances-validation-api-tests.spec.ts,1663,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,bad-request,migrateProcessInstancesBatchOperation - Additional prop __unexpectedField +request-validation/processinstances-validation-api-tests.spec.ts,1695,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,bad-request,migrateProcessInstancesBatchOperation - Body wrong top-level type +request-validation/processinstances-validation-api-tests.spec.ts,1712,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,bad-request,migrateProcessInstancesBatchOperation - Param migrationPlan.targetProcessDefinitionKey wrong type (#1) +request-validation/processinstances-validation-api-tests.spec.ts,1743,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,bad-request,migrateProcessInstancesBatchOperation - Param migrationPlan.targetProcessDefinitionKey wrong type (#2) +request-validation/processinstances-validation-api-tests.spec.ts,1774,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,bad-request,migrateProcessInstancesBatchOperation - Param operationReference wrong type (#1) +request-validation/processinstances-validation-api-tests.spec.ts,1805,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,bad-request,migrateProcessInstancesBatchOperation - Param operationReference wrong type (#2) +request-validation/processinstances-validation-api-tests.spec.ts,1836,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,bad-request,migrateProcessInstancesBatchOperation - Constraint violation filter.tags (#1) +request-validation/processinstances-validation-api-tests.spec.ts,1867,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,bad-request,migrateProcessInstancesBatchOperation - Constraint violation filter.tags (#2) +request-validation/processinstances-validation-api-tests.spec.ts,1898,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,bad-request,migrateProcessInstancesBatchOperation - Constraint violation operationReference (#1) +request-validation/processinstances-validation-api-tests.spec.ts,1929,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,bad-request,migrateProcessInstancesBatchOperation - Constraint violation operationReference (#2) +request-validation/processinstances-validation-api-tests.spec.ts,1960,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,bad-request,migrateProcessInstancesBatchOperation - Constraint violation operationReference (#3) +request-validation/processinstances-validation-api-tests.spec.ts,1991,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,bad-request,migrateProcessInstancesBatchOperation - Missing filter (#1) +request-validation/processinstances-validation-api-tests.spec.ts,2018,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,bad-request,migrateProcessInstancesBatchOperation - Missing filter.$or.0.variables.0.name +request-validation/processinstances-validation-api-tests.spec.ts,2056,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,bad-request,migrateProcessInstancesBatchOperation - Missing filter.$or.0.variables.0.value +request-validation/processinstances-validation-api-tests.spec.ts,2094,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,bad-request,migrateProcessInstancesBatchOperation - Missing filter.variables.0.name +request-validation/processinstances-validation-api-tests.spec.ts,2128,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,bad-request,migrateProcessInstancesBatchOperation - Missing filter.variables.0.value +request-validation/processinstances-validation-api-tests.spec.ts,2162,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,bad-request,migrateProcessInstancesBatchOperation - Missing migrationPlan (#1) +request-validation/processinstances-validation-api-tests.spec.ts,2181,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,bad-request,migrateProcessInstancesBatchOperation - Missing migrationPlan.mappingInstructions +request-validation/processinstances-validation-api-tests.spec.ts,2203,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,bad-request,migrateProcessInstancesBatchOperation - Missing migrationPlan.mappingInstructions.0.sourceElementId +request-validation/processinstances-validation-api-tests.spec.ts,2230,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,bad-request,migrateProcessInstancesBatchOperation - Missing migrationPlan.mappingInstructions.0.targetElementId +request-validation/processinstances-validation-api-tests.spec.ts,2257,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,bad-request,migrateProcessInstancesBatchOperation - Missing migrationPlan.targetProcessDefinitionKey +request-validation/processinstances-validation-api-tests.spec.ts,2284,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,bad-request,migrateProcessInstancesBatchOperation - Missing filter (#2) +request-validation/processinstances-validation-api-tests.spec.ts,2303,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,bad-request,migrateProcessInstancesBatchOperation - Missing migrationPlan (#2) +request-validation/processinstances-validation-api-tests.spec.ts,2322,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,bad-request,migrateProcessInstancesBatchOperation - Missing body +request-validation/processinstances-validation-api-tests.spec.ts,2334,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,bad-request,"migrateProcessInstancesBatchOperation - Missing combo filter,migrationPlan" +request-validation/processinstances-validation-api-tests.spec.ts,2351,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,bad-request,migrateProcessInstancesBatchOperation - uniqueItems violation filter.$or.0.tags +request-validation/processinstances-validation-api-tests.spec.ts,2387,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,bad-request,migrateProcessInstancesBatchOperation - uniqueItems violation filter.tags +request-validation/processinstances-validation-api-tests.spec.ts,2418,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/modification,modifyProcessInstance,bad-request,modifyProcessInstance - Additional prop __unexpectedField +request-validation/processinstances-validation-api-tests.spec.ts,2440,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/modification,modifyProcessInstance,bad-request,modifyProcessInstance - Body wrong top-level type +request-validation/processinstances-validation-api-tests.spec.ts,2457,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/modification,modifyProcessInstance,bad-request,modifyProcessInstance - Param operationReference wrong type (#1) +request-validation/processinstances-validation-api-tests.spec.ts,2478,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/modification,modifyProcessInstance,bad-request,modifyProcessInstance - Param operationReference wrong type (#2) +request-validation/processinstances-validation-api-tests.spec.ts,2499,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/modification,modifyProcessInstance,bad-request,modifyProcessInstance - Constraint violation operationReference (#1) +request-validation/processinstances-validation-api-tests.spec.ts,2520,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/modification,modifyProcessInstance,bad-request,modifyProcessInstance - Constraint violation operationReference (#2) +request-validation/processinstances-validation-api-tests.spec.ts,2541,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/modification,modifyProcessInstance,bad-request,modifyProcessInstance - Constraint violation operationReference (#3) +request-validation/processinstances-validation-api-tests.spec.ts,2562,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/modification,modifyProcessInstance,bad-request,modifyProcessInstance - Missing activateInstructions.0.elementId +request-validation/processinstances-validation-api-tests.spec.ts,2583,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/modification,modifyProcessInstance,bad-request,modifyProcessInstance - Missing activateInstructions.0.variableInstructions.0.variables +request-validation/processinstances-validation-api-tests.spec.ts,2609,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/modification,modifyProcessInstance,bad-request,modifyProcessInstance - Missing moveInstructions.0.sourceElementInstruction +request-validation/processinstances-validation-api-tests.spec.ts,2634,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/modification,modifyProcessInstance,bad-request,modifyProcessInstance - Missing moveInstructions.0.targetElementId +request-validation/processinstances-validation-api-tests.spec.ts,2659,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/modification,modifyProcessInstance,bad-request,modifyProcessInstance - Missing moveInstructions.0.variableInstructions.0.variables +request-validation/processinstances-validation-api-tests.spec.ts,2686,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/modification,modifyProcessInstance,bad-request,modifyProcessInstance - Missing body +request-validation/processinstances-validation-api-tests.spec.ts,2700,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/modification,modifyProcessInstance,bad-request,modifyProcessInstance - Path param processInstanceKey pattern violation +request-validation/processinstances-validation-api-tests.spec.ts,2716,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,bad-request,modifyProcessInstancesBatchOperation - Additional prop __unexpectedField +request-validation/processinstances-validation-api-tests.spec.ts,2745,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,bad-request,modifyProcessInstancesBatchOperation - Body wrong top-level type +request-validation/processinstances-validation-api-tests.spec.ts,2762,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,bad-request,modifyProcessInstancesBatchOperation - Param operationReference wrong type (#1) +request-validation/processinstances-validation-api-tests.spec.ts,2790,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,bad-request,modifyProcessInstancesBatchOperation - Param operationReference wrong type (#2) +request-validation/processinstances-validation-api-tests.spec.ts,2818,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,bad-request,modifyProcessInstancesBatchOperation - Constraint violation filter.tags (#1) +request-validation/processinstances-validation-api-tests.spec.ts,2846,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,bad-request,modifyProcessInstancesBatchOperation - Constraint violation filter.tags (#2) +request-validation/processinstances-validation-api-tests.spec.ts,2874,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,bad-request,modifyProcessInstancesBatchOperation - Constraint violation operationReference (#1) +request-validation/processinstances-validation-api-tests.spec.ts,2902,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,bad-request,modifyProcessInstancesBatchOperation - Constraint violation operationReference (#2) +request-validation/processinstances-validation-api-tests.spec.ts,2930,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,bad-request,modifyProcessInstancesBatchOperation - Constraint violation operationReference (#3) +request-validation/processinstances-validation-api-tests.spec.ts,2958,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,bad-request,modifyProcessInstancesBatchOperation - Missing filter (#1) +request-validation/processinstances-validation-api-tests.spec.ts,2982,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,bad-request,modifyProcessInstancesBatchOperation - Missing filter.$or.0.variables.0.name +request-validation/processinstances-validation-api-tests.spec.ts,3017,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,bad-request,modifyProcessInstancesBatchOperation - Missing filter.$or.0.variables.0.value +request-validation/processinstances-validation-api-tests.spec.ts,3052,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,bad-request,modifyProcessInstancesBatchOperation - Missing filter.variables.0.name +request-validation/processinstances-validation-api-tests.spec.ts,3083,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,bad-request,modifyProcessInstancesBatchOperation - Missing filter.variables.0.value +request-validation/processinstances-validation-api-tests.spec.ts,3114,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,bad-request,modifyProcessInstancesBatchOperation - Missing moveInstructions (#1) +request-validation/processinstances-validation-api-tests.spec.ts,3133,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,bad-request,modifyProcessInstancesBatchOperation - Missing moveInstructions.0.sourceElementId +request-validation/processinstances-validation-api-tests.spec.ts,3157,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,bad-request,modifyProcessInstancesBatchOperation - Missing moveInstructions.0.targetElementId +request-validation/processinstances-validation-api-tests.spec.ts,3181,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,bad-request,modifyProcessInstancesBatchOperation - Missing filter (#2) +request-validation/processinstances-validation-api-tests.spec.ts,3200,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,bad-request,modifyProcessInstancesBatchOperation - Missing moveInstructions (#2) +request-validation/processinstances-validation-api-tests.spec.ts,3219,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,bad-request,modifyProcessInstancesBatchOperation - Missing body +request-validation/processinstances-validation-api-tests.spec.ts,3231,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,bad-request,"modifyProcessInstancesBatchOperation - Missing combo filter,moveInstructions" +request-validation/processinstances-validation-api-tests.spec.ts,3248,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,bad-request,modifyProcessInstancesBatchOperation - uniqueItems violation filter.$or.0.tags +request-validation/processinstances-validation-api-tests.spec.ts,3281,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,bad-request,modifyProcessInstancesBatchOperation - uniqueItems violation filter.tags +request-validation/processinstances-validation-api-tests.spec.ts,3309,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,bad-request,resolveIncidentsBatchOperation - Additional prop __unexpectedField +request-validation/processinstances-validation-api-tests.spec.ts,3332,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,bad-request,resolveIncidentsBatchOperation - Body wrong top-level type +request-validation/processinstances-validation-api-tests.spec.ts,3349,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,bad-request,resolveIncidentsBatchOperation - Param operationReference wrong type (#1) +request-validation/processinstances-validation-api-tests.spec.ts,3371,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,bad-request,resolveIncidentsBatchOperation - Param operationReference wrong type (#2) +request-validation/processinstances-validation-api-tests.spec.ts,3393,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,bad-request,resolveIncidentsBatchOperation - Constraint violation filter.tags (#1) +request-validation/processinstances-validation-api-tests.spec.ts,3415,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,bad-request,resolveIncidentsBatchOperation - Constraint violation filter.tags (#2) +request-validation/processinstances-validation-api-tests.spec.ts,3437,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,bad-request,resolveIncidentsBatchOperation - Constraint violation operationReference (#1) +request-validation/processinstances-validation-api-tests.spec.ts,3459,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,bad-request,resolveIncidentsBatchOperation - Constraint violation operationReference (#2) +request-validation/processinstances-validation-api-tests.spec.ts,3481,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,bad-request,resolveIncidentsBatchOperation - Constraint violation operationReference (#3) +request-validation/processinstances-validation-api-tests.spec.ts,3503,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,bad-request,resolveIncidentsBatchOperation - Missing filter.$or.0.variables.0.name +request-validation/processinstances-validation-api-tests.spec.ts,3532,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,bad-request,resolveIncidentsBatchOperation - Missing filter.$or.0.variables.0.value +request-validation/processinstances-validation-api-tests.spec.ts,3561,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,bad-request,resolveIncidentsBatchOperation - Missing filter.variables.0.name +request-validation/processinstances-validation-api-tests.spec.ts,3586,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,bad-request,resolveIncidentsBatchOperation - Missing filter.variables.0.value +request-validation/processinstances-validation-api-tests.spec.ts,3611,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,bad-request,resolveIncidentsBatchOperation - Missing filter +request-validation/processinstances-validation-api-tests.spec.ts,3626,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,bad-request,resolveIncidentsBatchOperation - uniqueItems violation filter.$or.0.tags +request-validation/processinstances-validation-api-tests.spec.ts,3653,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,bad-request,resolveIncidentsBatchOperation - uniqueItems violation filter.tags +request-validation/processinstances-validation-api-tests.spec.ts,3675,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,update,negative-update,deployed-process,POST,/process-instances/{processInstanceKey}/incident-resolution,resolveProcessInstanceIncidents,bad-request,resolveProcessInstanceIncidents - Path param processInstanceKey pattern violation +request-validation/processinstances-validation-api-tests.spec.ts,3691,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,search,negative-search,deployed-process,POST,/process-instances/{processInstanceKey}/incidents/search,searchProcessInstanceIncidents,bad-request,searchProcessInstanceIncidents - Additional prop __unexpectedField +request-validation/processinstances-validation-api-tests.spec.ts,3712,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,search,negative-search,deployed-process,POST,/process-instances/{processInstanceKey}/incidents/search,searchProcessInstanceIncidents,bad-request,searchProcessInstanceIncidents - Body wrong top-level type +request-validation/processinstances-validation-api-tests.spec.ts,3731,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,search,negative-search,deployed-process,POST,/process-instances/{processInstanceKey}/incidents/search,searchProcessInstanceIncidents,bad-request,searchProcessInstanceIncidents - Missing sort.0.field +request-validation/processinstances-validation-api-tests.spec.ts,3750,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,search,negative-search,deployed-process,POST,/process-instances/{processInstanceKey}/incidents/search,searchProcessInstanceIncidents,bad-request,searchProcessInstanceIncidents - Enum violation sort.0.field +request-validation/processinstances-validation-api-tests.spec.ts,3775,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,search,negative-search,deployed-process,POST,/process-instances/{processInstanceKey}/incidents/search,searchProcessInstanceIncidents,bad-request,searchProcessInstanceIncidents - Enum violation sort.0.order +request-validation/processinstances-validation-api-tests.spec.ts,3800,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,search,negative-search,deployed-process,POST,/process-instances/{processInstanceKey}/incidents/search,searchProcessInstanceIncidents,bad-request,searchProcessInstanceIncidents - Path param processInstanceKey pattern violation +request-validation/processinstances-validation-api-tests.spec.ts,3816,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,search,negative-search,deployed-process,POST,/process-instances/search,searchProcessInstances,bad-request,searchProcessInstances - Additional prop __unexpectedField +request-validation/processinstances-validation-api-tests.spec.ts,3835,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,search,negative-search,deployed-process,POST,/process-instances/search,searchProcessInstances,bad-request,searchProcessInstances - Body wrong top-level type +request-validation/processinstances-validation-api-tests.spec.ts,3850,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,search,negative-search,deployed-process,POST,/process-instances/search,searchProcessInstances,bad-request,searchProcessInstances - Missing filter.$or.0.variables.0.name +request-validation/processinstances-validation-api-tests.spec.ts,3879,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,search,negative-search,deployed-process,POST,/process-instances/search,searchProcessInstances,bad-request,searchProcessInstances - Missing filter.$or.0.variables.0.value +request-validation/processinstances-validation-api-tests.spec.ts,3908,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,search,negative-search,deployed-process,POST,/process-instances/search,searchProcessInstances,bad-request,searchProcessInstances - Missing filter.variables.0.name +request-validation/processinstances-validation-api-tests.spec.ts,3933,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,search,negative-search,deployed-process,POST,/process-instances/search,searchProcessInstances,bad-request,searchProcessInstances - Missing filter.variables.0.value +request-validation/processinstances-validation-api-tests.spec.ts,3958,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,search,negative-search,deployed-process,POST,/process-instances/search,searchProcessInstances,bad-request,searchProcessInstances - Missing sort.0.field +request-validation/processinstances-validation-api-tests.spec.ts,3975,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,search,negative-search,deployed-process,POST,/process-instances/search,searchProcessInstances,bad-request,searchProcessInstances - Enum violation sort.0.field +request-validation/processinstances-validation-api-tests.spec.ts,3996,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,search,negative-search,deployed-process,POST,/process-instances/search,searchProcessInstances,bad-request,searchProcessInstances - Enum violation sort.0.order +request-validation/processinstances-validation-api-tests.spec.ts,4017,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,search,negative-search,deployed-process,POST,/process-instances/search,searchProcessInstances,bad-request,searchProcessInstances - uniqueItems violation filter.$or.0.tags +request-validation/processinstances-validation-api-tests.spec.ts,4042,request-validation,process-instance,D. Process-Instance Lifecycle & Ops,search,negative-search,deployed-process,POST,/process-instances/search,searchProcessInstances,bad-request,searchProcessInstances - uniqueItems violation filter.tags +request-validation/resources-validation-api-tests.spec.ts,18,request-validation,resource,C. Deployment Lifecycle,delete,negative-delete,none,POST,/resources/{resourceKey}/deletion,deleteResource,bad-request,deleteResource - Additional prop __unexpectedField +request-validation/resources-validation-api-tests.spec.ts,38,request-validation,resource,C. Deployment Lifecycle,delete,negative-delete,none,POST,/resources/{resourceKey}/deletion,deleteResource,bad-request,deleteResource - Body wrong top-level type +request-validation/resources-validation-api-tests.spec.ts,55,request-validation,resource,C. Deployment Lifecycle,delete,negative-delete,none,POST,/resources/{resourceKey}/deletion,deleteResource,bad-request,deleteResource - Param operationReference wrong type (#1) +request-validation/resources-validation-api-tests.spec.ts,76,request-validation,resource,C. Deployment Lifecycle,delete,negative-delete,none,POST,/resources/{resourceKey}/deletion,deleteResource,bad-request,deleteResource - Param operationReference wrong type (#2) +request-validation/resources-validation-api-tests.spec.ts,97,request-validation,resource,C. Deployment Lifecycle,delete,negative-delete,none,POST,/resources/{resourceKey}/deletion,deleteResource,bad-request,deleteResource - Constraint violation operationReference (#1) +request-validation/resources-validation-api-tests.spec.ts,118,request-validation,resource,C. Deployment Lifecycle,delete,negative-delete,none,POST,/resources/{resourceKey}/deletion,deleteResource,bad-request,deleteResource - Constraint violation operationReference (#2) +request-validation/resources-validation-api-tests.spec.ts,139,request-validation,resource,C. Deployment Lifecycle,delete,negative-delete,none,POST,/resources/{resourceKey}/deletion,deleteResource,bad-request,deleteResource - Constraint violation operationReference (#3) +request-validation/resources-validation-api-tests.spec.ts,160,request-validation,resource,C. Deployment Lifecycle,search,negative-search,none,POST,/resources/search,searchResources,bad-request,searchResources - Additional prop __unexpectedField +request-validation/resources-validation-api-tests.spec.ts,177,request-validation,resource,C. Deployment Lifecycle,search,negative-search,none,POST,/resources/search,searchResources,bad-request,searchResources - Body wrong top-level type +request-validation/resources-validation-api-tests.spec.ts,192,request-validation,resource,C. Deployment Lifecycle,search,negative-search,none,POST,/resources/search,searchResources,bad-request,searchResources - Missing sort.0.field +request-validation/resources-validation-api-tests.spec.ts,209,request-validation,resource,C. Deployment Lifecycle,search,negative-search,none,POST,/resources/search,searchResources,bad-request,searchResources - Enum violation sort.0.field +request-validation/resources-validation-api-tests.spec.ts,230,request-validation,resource,C. Deployment Lifecycle,search,negative-search,none,POST,/resources/search,searchResources,bad-request,searchResources - Enum violation sort.0.order +request-validation/roles-validation-api-tests.spec.ts,18,request-validation,role,B. Membership/Association,update,negative-update,client + role,PUT,/roles/{roleId}/clients/{clientId},assignRoleToClient,bad-request,assignRoleToClient - Path param clientId pattern violation +request-validation/roles-validation-api-tests.spec.ts,35,request-validation,role,B. Membership/Association,update,negative-update,client + role,PUT,/roles/{roleId}/clients/{clientId},assignRoleToClient,bad-request,assignRoleToClient - Path param roleId pattern violation +request-validation/roles-validation-api-tests.spec.ts,52,request-validation,role,B. Membership/Association,update,negative-update,group + role,PUT,/roles/{roleId}/groups/{groupId},assignRoleToGroup,bad-request,assignRoleToGroup - Path param groupId length-max violation +request-validation/roles-validation-api-tests.spec.ts,70,request-validation,role,B. Membership/Association,update,negative-update,group + role,PUT,/roles/{roleId}/groups/{groupId},assignRoleToGroup,bad-request,assignRoleToGroup - Path param roleId pattern violation +request-validation/roles-validation-api-tests.spec.ts,85,request-validation,role,B. Membership/Association,update,negative-update,mapping-rule + role,PUT,/roles/{roleId}/mapping-rules/{mappingRuleId},assignRoleToMappingRule,bad-request,assignRoleToMappingRule - Path param mappingRuleId pattern violation +request-validation/roles-validation-api-tests.spec.ts,102,request-validation,role,B. Membership/Association,update,negative-update,mapping-rule + role,PUT,/roles/{roleId}/mapping-rules/{mappingRuleId},assignRoleToMappingRule,bad-request,assignRoleToMappingRule - Path param roleId pattern violation +request-validation/roles-validation-api-tests.spec.ts,119,request-validation,role,B. Membership/Association,update,negative-update,user + role,PUT,/roles/{roleId}/users/{username},assignRoleToUser,bad-request,assignRoleToUser - Path param roleId pattern violation +request-validation/roles-validation-api-tests.spec.ts,134,request-validation,role,B. Membership/Association,update,negative-update,user + role,PUT,/roles/{roleId}/users/{username},assignRoleToUser,bad-request,assignRoleToUser - Path param username pattern violation +request-validation/roles-validation-api-tests.spec.ts,151,request-validation,role,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/roles,createRole,bad-request,createRole - Additional prop __unexpectedField +request-validation/roles-validation-api-tests.spec.ts,170,request-validation,role,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/roles,createRole,bad-request,createRole - Body wrong top-level type +request-validation/roles-validation-api-tests.spec.ts,185,request-validation,role,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/roles,createRole,bad-request,createRole - Param name wrong type (#1) +request-validation/roles-validation-api-tests.spec.ts,203,request-validation,role,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/roles,createRole,bad-request,createRole - Param name wrong type (#2) +request-validation/roles-validation-api-tests.spec.ts,221,request-validation,role,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/roles,createRole,bad-request,createRole - Param roleId wrong type (#1) +request-validation/roles-validation-api-tests.spec.ts,239,request-validation,role,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/roles,createRole,bad-request,createRole - Param roleId wrong type (#2) +request-validation/roles-validation-api-tests.spec.ts,257,request-validation,role,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/roles,createRole,bad-request,createRole - Constraint violation roleId (#1) +request-validation/roles-validation-api-tests.spec.ts,276,request-validation,role,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/roles,createRole,bad-request,createRole - Constraint violation roleId (#2) +request-validation/roles-validation-api-tests.spec.ts,294,request-validation,role,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/roles,createRole,bad-request,createRole - Constraint violation roleId (#3) +request-validation/roles-validation-api-tests.spec.ts,312,request-validation,role,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/roles,createRole,bad-request,createRole - Constraint violation roleId (#4) +request-validation/roles-validation-api-tests.spec.ts,331,request-validation,role,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/roles,createRole,bad-request,createRole - Missing name +request-validation/roles-validation-api-tests.spec.ts,348,request-validation,role,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/roles,createRole,bad-request,createRole - Missing roleId +request-validation/roles-validation-api-tests.spec.ts,365,request-validation,role,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/roles,createRole,bad-request,"createRole - Missing combo roleId,name" +request-validation/roles-validation-api-tests.spec.ts,380,request-validation,role,A. Entity Lifecycle (CRUD),delete,negative-delete,none,DELETE,/roles/{roleId},deleteRole,bad-request,deleteRole - Path param roleId pattern violation +request-validation/roles-validation-api-tests.spec.ts,392,request-validation,role,A. Entity Lifecycle (CRUD),get,negative-get,none,GET,/roles/{roleId},getRole,bad-request,getRole - Path param roleId pattern violation +request-validation/roles-validation-api-tests.spec.ts,404,request-validation,role,B. Membership/Association,search,negative-search,role + client,POST,/roles/{roleId}/clients/search,searchClientsForRole,bad-request,searchClientsForRole - Additional prop __extraField +request-validation/roles-validation-api-tests.spec.ts,421,request-validation,role,B. Membership/Association,search,negative-search,role + client,POST,/roles/{roleId}/clients/search,searchClientsForRole,bad-request,searchClientsForRole - Body wrong top-level type +request-validation/roles-validation-api-tests.spec.ts,436,request-validation,role,B. Membership/Association,search,negative-search,role + client,POST,/roles/{roleId}/clients/search,searchClientsForRole,bad-request,searchClientsForRole - Missing sort.0.field +request-validation/roles-validation-api-tests.spec.ts,453,request-validation,role,B. Membership/Association,search,negative-search,role + client,POST,/roles/{roleId}/clients/search,searchClientsForRole,bad-request,searchClientsForRole - Enum violation sort.0.field +request-validation/roles-validation-api-tests.spec.ts,474,request-validation,role,B. Membership/Association,search,negative-search,role + client,POST,/roles/{roleId}/clients/search,searchClientsForRole,bad-request,searchClientsForRole - Enum violation sort.0.order +request-validation/roles-validation-api-tests.spec.ts,495,request-validation,role,B. Membership/Association,search,negative-search,role + client,POST,/roles/{roleId}/clients/search,searchClientsForRole,bad-request,searchClientsForRole - Path param roleId pattern violation +request-validation/roles-validation-api-tests.spec.ts,509,request-validation,role,B. Membership/Association,search,negative-search,role + group,POST,/roles/{roleId}/groups/search,searchGroupsForRole,bad-request,searchGroupsForRole - Additional prop __extraField +request-validation/roles-validation-api-tests.spec.ts,526,request-validation,role,B. Membership/Association,search,negative-search,role + group,POST,/roles/{roleId}/groups/search,searchGroupsForRole,bad-request,searchGroupsForRole - Body wrong top-level type +request-validation/roles-validation-api-tests.spec.ts,541,request-validation,role,B. Membership/Association,search,negative-search,role + group,POST,/roles/{roleId}/groups/search,searchGroupsForRole,bad-request,searchGroupsForRole - Missing sort.0.field +request-validation/roles-validation-api-tests.spec.ts,558,request-validation,role,B. Membership/Association,search,negative-search,role + group,POST,/roles/{roleId}/groups/search,searchGroupsForRole,bad-request,searchGroupsForRole - Enum violation sort.0.field +request-validation/roles-validation-api-tests.spec.ts,579,request-validation,role,B. Membership/Association,search,negative-search,role + group,POST,/roles/{roleId}/groups/search,searchGroupsForRole,bad-request,searchGroupsForRole - Enum violation sort.0.order +request-validation/roles-validation-api-tests.spec.ts,600,request-validation,role,B. Membership/Association,search,negative-search,role + group,POST,/roles/{roleId}/groups/search,searchGroupsForRole,bad-request,searchGroupsForRole - Path param roleId pattern violation +request-validation/roles-validation-api-tests.spec.ts,614,request-validation,role,B. Membership/Association,search,negative-search,role + mapping-rule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,bad-request,searchMappingRulesForRole - Additional prop __unexpectedField +request-validation/roles-validation-api-tests.spec.ts,633,request-validation,role,B. Membership/Association,search,negative-search,role + mapping-rule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,bad-request,searchMappingRulesForRole - Body wrong top-level type +request-validation/roles-validation-api-tests.spec.ts,648,request-validation,role,B. Membership/Association,search,negative-search,role + mapping-rule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,bad-request,searchMappingRulesForRole - Missing sort.0.field +request-validation/roles-validation-api-tests.spec.ts,665,request-validation,role,B. Membership/Association,search,negative-search,role + mapping-rule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,bad-request,searchMappingRulesForRole - Enum violation sort.0.field +request-validation/roles-validation-api-tests.spec.ts,686,request-validation,role,B. Membership/Association,search,negative-search,role + mapping-rule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,bad-request,searchMappingRulesForRole - Enum violation sort.0.order +request-validation/roles-validation-api-tests.spec.ts,707,request-validation,role,B. Membership/Association,search,negative-search,role + mapping-rule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,bad-request,searchMappingRulesForRole - Path param roleId pattern violation +request-validation/roles-validation-api-tests.spec.ts,721,request-validation,role,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/roles/search,searchRoles,bad-request,searchRoles - Additional prop __unexpectedField +request-validation/roles-validation-api-tests.spec.ts,738,request-validation,role,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/roles/search,searchRoles,bad-request,searchRoles - Body wrong top-level type +request-validation/roles-validation-api-tests.spec.ts,753,request-validation,role,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/roles/search,searchRoles,bad-request,searchRoles - Missing sort.0.field +request-validation/roles-validation-api-tests.spec.ts,770,request-validation,role,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/roles/search,searchRoles,bad-request,searchRoles - Enum violation sort.0.field +request-validation/roles-validation-api-tests.spec.ts,791,request-validation,role,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/roles/search,searchRoles,bad-request,searchRoles - Enum violation sort.0.order +request-validation/roles-validation-api-tests.spec.ts,812,request-validation,role,B. Membership/Association,search,negative-search,role + user,POST,/roles/{roleId}/users/search,searchUsersForRole,bad-request,searchUsersForRole - Additional prop __extraField +request-validation/roles-validation-api-tests.spec.ts,829,request-validation,role,B. Membership/Association,search,negative-search,role + user,POST,/roles/{roleId}/users/search,searchUsersForRole,bad-request,searchUsersForRole - Body wrong top-level type +request-validation/roles-validation-api-tests.spec.ts,844,request-validation,role,B. Membership/Association,search,negative-search,role + user,POST,/roles/{roleId}/users/search,searchUsersForRole,bad-request,searchUsersForRole - Missing sort.0.field +request-validation/roles-validation-api-tests.spec.ts,861,request-validation,role,B. Membership/Association,search,negative-search,role + user,POST,/roles/{roleId}/users/search,searchUsersForRole,bad-request,searchUsersForRole - Enum violation sort.0.field +request-validation/roles-validation-api-tests.spec.ts,882,request-validation,role,B. Membership/Association,search,negative-search,role + user,POST,/roles/{roleId}/users/search,searchUsersForRole,bad-request,searchUsersForRole - Enum violation sort.0.order +request-validation/roles-validation-api-tests.spec.ts,903,request-validation,role,B. Membership/Association,search,negative-search,role + user,POST,/roles/{roleId}/users/search,searchUsersForRole,bad-request,searchUsersForRole - Path param roleId pattern violation +request-validation/roles-validation-api-tests.spec.ts,917,request-validation,role,B. Membership/Association,delete,negative-delete,client + role,DELETE,/roles/{roleId}/clients/{clientId},unassignRoleFromClient,bad-request,unassignRoleFromClient - Path param clientId pattern violation +request-validation/roles-validation-api-tests.spec.ts,934,request-validation,role,B. Membership/Association,delete,negative-delete,client + role,DELETE,/roles/{roleId}/clients/{clientId},unassignRoleFromClient,bad-request,unassignRoleFromClient - Path param roleId pattern violation +request-validation/roles-validation-api-tests.spec.ts,951,request-validation,role,B. Membership/Association,delete,negative-delete,group + role,DELETE,/roles/{roleId}/groups/{groupId},unassignRoleFromGroup,bad-request,unassignRoleFromGroup - Path param groupId length-max violation +request-validation/roles-validation-api-tests.spec.ts,969,request-validation,role,B. Membership/Association,delete,negative-delete,group + role,DELETE,/roles/{roleId}/groups/{groupId},unassignRoleFromGroup,bad-request,unassignRoleFromGroup - Path param roleId pattern violation +request-validation/roles-validation-api-tests.spec.ts,986,request-validation,role,B. Membership/Association,delete,negative-delete,mapping-rule + role,DELETE,/roles/{roleId}/mapping-rules/{mappingRuleId},unassignRoleFromMappingRule,bad-request,unassignRoleFromMappingRule - Path param mappingRuleId pattern violation +request-validation/roles-validation-api-tests.spec.ts,1003,request-validation,role,B. Membership/Association,delete,negative-delete,mapping-rule + role,DELETE,/roles/{roleId}/mapping-rules/{mappingRuleId},unassignRoleFromMappingRule,bad-request,unassignRoleFromMappingRule - Path param roleId pattern violation +request-validation/roles-validation-api-tests.spec.ts,1020,request-validation,role,B. Membership/Association,delete,negative-delete,user + role,DELETE,/roles/{roleId}/users/{username},unassignRoleFromUser,bad-request,unassignRoleFromUser - Path param roleId pattern violation +request-validation/roles-validation-api-tests.spec.ts,1037,request-validation,role,B. Membership/Association,delete,negative-delete,user + role,DELETE,/roles/{roleId}/users/{username},unassignRoleFromUser,bad-request,unassignRoleFromUser - Path param username pattern violation +request-validation/roles-validation-api-tests.spec.ts,1054,request-validation,role,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/roles/{roleId},updateRole,bad-request,updateRole - Additional prop __extraField +request-validation/roles-validation-api-tests.spec.ts,1072,request-validation,role,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/roles/{roleId},updateRole,bad-request,updateRole - Body wrong top-level type +request-validation/roles-validation-api-tests.spec.ts,1087,request-validation,role,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/roles/{roleId},updateRole,bad-request,updateRole - Param name wrong type (#1) +request-validation/roles-validation-api-tests.spec.ts,1104,request-validation,role,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/roles/{roleId},updateRole,bad-request,updateRole - Param name wrong type (#2) +request-validation/roles-validation-api-tests.spec.ts,1121,request-validation,role,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/roles/{roleId},updateRole,bad-request,updateRole - Missing name +request-validation/roles-validation-api-tests.spec.ts,1136,request-validation,role,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/roles/{roleId},updateRole,bad-request,updateRole - Missing body +request-validation/roles-validation-api-tests.spec.ts,1148,request-validation,role,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/roles/{roleId},updateRole,bad-request,updateRole - Path param roleId pattern violation +request-validation/setup-validation-api-tests.spec.ts,18,request-validation,setup,O. System/Admin,create,negative-create,none,POST,/setup/user,createAdminUser,bad-request,createAdminUser - Additional prop __unexpectedField +request-validation/setup-validation-api-tests.spec.ts,37,request-validation,setup,O. System/Admin,create,negative-create,none,POST,/setup/user,createAdminUser,bad-request,createAdminUser - Body wrong top-level type +request-validation/setup-validation-api-tests.spec.ts,52,request-validation,setup,O. System/Admin,create,negative-create,none,POST,/setup/user,createAdminUser,bad-request,createAdminUser - Param password wrong type (#1) +request-validation/setup-validation-api-tests.spec.ts,70,request-validation,setup,O. System/Admin,create,negative-create,none,POST,/setup/user,createAdminUser,bad-request,createAdminUser - Param password wrong type (#2) +request-validation/setup-validation-api-tests.spec.ts,88,request-validation,setup,O. System/Admin,create,negative-create,none,POST,/setup/user,createAdminUser,bad-request,createAdminUser - Param username wrong type (#1) +request-validation/setup-validation-api-tests.spec.ts,106,request-validation,setup,O. System/Admin,create,negative-create,none,POST,/setup/user,createAdminUser,bad-request,createAdminUser - Param username wrong type (#2) +request-validation/setup-validation-api-tests.spec.ts,124,request-validation,setup,O. System/Admin,create,negative-create,none,POST,/setup/user,createAdminUser,bad-request,createAdminUser - Constraint violation username (#1) +request-validation/setup-validation-api-tests.spec.ts,143,request-validation,setup,O. System/Admin,create,negative-create,none,POST,/setup/user,createAdminUser,bad-request,createAdminUser - Constraint violation username (#2) +request-validation/setup-validation-api-tests.spec.ts,161,request-validation,setup,O. System/Admin,create,negative-create,none,POST,/setup/user,createAdminUser,bad-request,createAdminUser - Constraint violation username (#3) +request-validation/setup-validation-api-tests.spec.ts,179,request-validation,setup,O. System/Admin,create,negative-create,none,POST,/setup/user,createAdminUser,bad-request,createAdminUser - Constraint violation username (#4) +request-validation/setup-validation-api-tests.spec.ts,198,request-validation,setup,O. System/Admin,create,negative-create,none,POST,/setup/user,createAdminUser,bad-request,createAdminUser - Missing password +request-validation/setup-validation-api-tests.spec.ts,215,request-validation,setup,O. System/Admin,create,negative-create,none,POST,/setup/user,createAdminUser,bad-request,createAdminUser - Missing username +request-validation/setup-validation-api-tests.spec.ts,232,request-validation,setup,O. System/Admin,create,negative-create,none,POST,/setup/user,createAdminUser,bad-request,createAdminUser - Missing body +request-validation/setup-validation-api-tests.spec.ts,244,request-validation,setup,O. System/Admin,create,negative-create,none,POST,/setup/user,createAdminUser,bad-request,"createAdminUser - Missing combo username,password" +request-validation/signals-validation-api-tests.spec.ts,18,request-validation,signal,M. Messaging/Signals,create,negative-create,deployed-process-with-signal-catch-event,POST,/signals/broadcast,broadcastSignal,bad-request,broadcastSignal - Additional prop __unexpectedField +request-validation/signals-validation-api-tests.spec.ts,37,request-validation,signal,M. Messaging/Signals,create,negative-create,deployed-process-with-signal-catch-event,POST,/signals/broadcast,broadcastSignal,bad-request,broadcastSignal - Body wrong top-level type +request-validation/signals-validation-api-tests.spec.ts,52,request-validation,signal,M. Messaging/Signals,create,negative-create,deployed-process-with-signal-catch-event,POST,/signals/broadcast,broadcastSignal,bad-request,broadcastSignal - Param signalName wrong type (#1) +request-validation/signals-validation-api-tests.spec.ts,70,request-validation,signal,M. Messaging/Signals,create,negative-create,deployed-process-with-signal-catch-event,POST,/signals/broadcast,broadcastSignal,bad-request,broadcastSignal - Param signalName wrong type (#2) +request-validation/signals-validation-api-tests.spec.ts,88,request-validation,signal,M. Messaging/Signals,create,negative-create,deployed-process-with-signal-catch-event,POST,/signals/broadcast,broadcastSignal,bad-request,broadcastSignal - Param tenantId wrong type (#1) +request-validation/signals-validation-api-tests.spec.ts,106,request-validation,signal,M. Messaging/Signals,create,negative-create,deployed-process-with-signal-catch-event,POST,/signals/broadcast,broadcastSignal,bad-request,broadcastSignal - Param tenantId wrong type (#2) +request-validation/signals-validation-api-tests.spec.ts,124,request-validation,signal,M. Messaging/Signals,create,negative-create,deployed-process-with-signal-catch-event,POST,/signals/broadcast,broadcastSignal,bad-request,broadcastSignal - Constraint violation tenantId (#1) +request-validation/signals-validation-api-tests.spec.ts,142,request-validation,signal,M. Messaging/Signals,create,negative-create,deployed-process-with-signal-catch-event,POST,/signals/broadcast,broadcastSignal,bad-request,broadcastSignal - Constraint violation tenantId (#2) +request-validation/signals-validation-api-tests.spec.ts,160,request-validation,signal,M. Messaging/Signals,create,negative-create,deployed-process-with-signal-catch-event,POST,/signals/broadcast,broadcastSignal,bad-request,broadcastSignal - Constraint violation tenantId (#3) +request-validation/signals-validation-api-tests.spec.ts,178,request-validation,signal,M. Messaging/Signals,create,negative-create,deployed-process-with-signal-catch-event,POST,/signals/broadcast,broadcastSignal,bad-request,broadcastSignal - Constraint violation tenantId (#4) +request-validation/signals-validation-api-tests.spec.ts,196,request-validation,signal,M. Messaging/Signals,create,negative-create,deployed-process-with-signal-catch-event,POST,/signals/broadcast,broadcastSignal,bad-request,broadcastSignal - Missing signalName +request-validation/signals-validation-api-tests.spec.ts,211,request-validation,signal,M. Messaging/Signals,create,negative-create,deployed-process-with-signal-catch-event,POST,/signals/broadcast,broadcastSignal,bad-request,broadcastSignal - Missing body +request-validation/system-validation-api-tests.spec.ts,18,request-validation,system,O. System/Admin,get,negative-get,none,GET,/system/usage-metrics,getUsageMetrics,bad-request,getUsageMetrics - Query param tenantId pattern violation +request-validation/system-validation-api-tests.spec.ts,32,request-validation,system,O. System/Admin,get,negative-get,none,GET,/system/usage-metrics,getUsageMetrics,bad-request,getUsageMetrics - Missing param query.endTime +request-validation/system-validation-api-tests.spec.ts,48,request-validation,system,O. System/Admin,get,negative-get,none,GET,/system/usage-metrics,getUsageMetrics,bad-request,getUsageMetrics - Missing param query.startTime +request-validation/system-validation-api-tests.spec.ts,64,request-validation,system,O. System/Admin,get,negative-get,none,GET,/system/usage-metrics,getUsageMetrics,bad-request,getUsageMetrics - Param query.endTime wrong type +request-validation/system-validation-api-tests.spec.ts,81,request-validation,system,O. System/Admin,get,negative-get,none,GET,/system/usage-metrics,getUsageMetrics,bad-request,getUsageMetrics - Param query.startTime wrong type +request-validation/system-validation-api-tests.spec.ts,98,request-validation,system,O. System/Admin,get,negative-get,none,GET,/system/usage-metrics,getUsageMetrics,bad-request,getUsageMetrics - Param query.tenantId wrong type +request-validation/system-validation-api-tests.spec.ts,115,request-validation,system,O. System/Admin,get,negative-get,none,GET,/system/usage-metrics,getUsageMetrics,bad-request,getUsageMetrics - Param query.withTenants wrong type +request-validation/tenants-validation-api-tests.spec.ts,18,request-validation,tenant,B. Membership/Association,update,negative-update,tenant + client,PUT,/tenants/{tenantId}/clients/{clientId},assignClientToTenant,bad-request,assignClientToTenant - Path param clientId pattern violation +request-validation/tenants-validation-api-tests.spec.ts,35,request-validation,tenant,B. Membership/Association,update,negative-update,tenant + client,PUT,/tenants/{tenantId}/clients/{clientId},assignClientToTenant,bad-request,assignClientToTenant - Path param tenantId pattern violation +request-validation/tenants-validation-api-tests.spec.ts,52,request-validation,tenant,B. Membership/Association,update,negative-update,tenant + group,PUT,/tenants/{tenantId}/groups/{groupId},assignGroupToTenant,bad-request,assignGroupToTenant - Path param groupId length-max violation +request-validation/tenants-validation-api-tests.spec.ts,70,request-validation,tenant,B. Membership/Association,update,negative-update,tenant + group,PUT,/tenants/{tenantId}/groups/{groupId},assignGroupToTenant,bad-request,assignGroupToTenant - Path param tenantId pattern violation +request-validation/tenants-validation-api-tests.spec.ts,87,request-validation,tenant,B. Membership/Association,update,negative-update,tenant + mapping-rule,PUT,/tenants/{tenantId}/mapping-rules/{mappingRuleId},assignMappingRuleToTenant,bad-request,assignMappingRuleToTenant - Path param mappingRuleId pattern violation +request-validation/tenants-validation-api-tests.spec.ts,104,request-validation,tenant,B. Membership/Association,update,negative-update,tenant + mapping-rule,PUT,/tenants/{tenantId}/mapping-rules/{mappingRuleId},assignMappingRuleToTenant,bad-request,assignMappingRuleToTenant - Path param tenantId pattern violation +request-validation/tenants-validation-api-tests.spec.ts,121,request-validation,tenant,B. Membership/Association,update,negative-update,tenant + role,PUT,/tenants/{tenantId}/roles/{roleId},assignRoleToTenant,bad-request,assignRoleToTenant - Path param roleId pattern violation +request-validation/tenants-validation-api-tests.spec.ts,138,request-validation,tenant,B. Membership/Association,update,negative-update,tenant + role,PUT,/tenants/{tenantId}/roles/{roleId},assignRoleToTenant,bad-request,assignRoleToTenant - Path param tenantId pattern violation +request-validation/tenants-validation-api-tests.spec.ts,155,request-validation,tenant,B. Membership/Association,update,negative-update,tenant + user,PUT,/tenants/{tenantId}/users/{username},assignUserToTenant,bad-request,assignUserToTenant - Path param tenantId pattern violation +request-validation/tenants-validation-api-tests.spec.ts,172,request-validation,tenant,B. Membership/Association,update,negative-update,tenant + user,PUT,/tenants/{tenantId}/users/{username},assignUserToTenant,bad-request,assignUserToTenant - Path param username pattern violation +request-validation/tenants-validation-api-tests.spec.ts,189,request-validation,tenant,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/tenants,createTenant,bad-request,createTenant - Additional prop __unexpectedField +request-validation/tenants-validation-api-tests.spec.ts,208,request-validation,tenant,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/tenants,createTenant,bad-request,createTenant - Body wrong top-level type +request-validation/tenants-validation-api-tests.spec.ts,223,request-validation,tenant,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/tenants,createTenant,bad-request,createTenant - Param name wrong type (#1) +request-validation/tenants-validation-api-tests.spec.ts,241,request-validation,tenant,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/tenants,createTenant,bad-request,createTenant - Param name wrong type (#2) +request-validation/tenants-validation-api-tests.spec.ts,259,request-validation,tenant,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/tenants,createTenant,bad-request,createTenant - Param tenantId wrong type (#1) +request-validation/tenants-validation-api-tests.spec.ts,277,request-validation,tenant,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/tenants,createTenant,bad-request,createTenant - Param tenantId wrong type (#2) +request-validation/tenants-validation-api-tests.spec.ts,295,request-validation,tenant,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/tenants,createTenant,bad-request,createTenant - Constraint violation tenantId (#1) +request-validation/tenants-validation-api-tests.spec.ts,313,request-validation,tenant,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/tenants,createTenant,bad-request,createTenant - Constraint violation tenantId (#2) +request-validation/tenants-validation-api-tests.spec.ts,331,request-validation,tenant,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/tenants,createTenant,bad-request,createTenant - Constraint violation tenantId (#3) +request-validation/tenants-validation-api-tests.spec.ts,349,request-validation,tenant,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/tenants,createTenant,bad-request,createTenant - Constraint violation tenantId (#4) +request-validation/tenants-validation-api-tests.spec.ts,367,request-validation,tenant,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/tenants,createTenant,bad-request,createTenant - Missing name +request-validation/tenants-validation-api-tests.spec.ts,384,request-validation,tenant,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/tenants,createTenant,bad-request,createTenant - Missing tenantId +request-validation/tenants-validation-api-tests.spec.ts,401,request-validation,tenant,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/tenants,createTenant,bad-request,createTenant - Missing body +request-validation/tenants-validation-api-tests.spec.ts,413,request-validation,tenant,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/tenants,createTenant,bad-request,"createTenant - Missing combo tenantId,name" +request-validation/tenants-validation-api-tests.spec.ts,428,request-validation,tenant,A. Entity Lifecycle (CRUD),delete,negative-delete,none,DELETE,/tenants/{tenantId},deleteTenant,bad-request,deleteTenant - Path param tenantId pattern violation +request-validation/tenants-validation-api-tests.spec.ts,440,request-validation,tenant,A. Entity Lifecycle (CRUD),get,negative-get,none,GET,/tenants/{tenantId},getTenant,bad-request,getTenant - Path param tenantId pattern violation +request-validation/tenants-validation-api-tests.spec.ts,452,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + client,POST,/tenants/{tenantId}/clients/search,searchClientsForTenant,bad-request,searchClientsForTenant - Additional prop __unexpectedField +request-validation/tenants-validation-api-tests.spec.ts,471,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + client,POST,/tenants/{tenantId}/clients/search,searchClientsForTenant,bad-request,searchClientsForTenant - Body wrong top-level type +request-validation/tenants-validation-api-tests.spec.ts,486,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + client,POST,/tenants/{tenantId}/clients/search,searchClientsForTenant,bad-request,searchClientsForTenant - Missing sort.0.field +request-validation/tenants-validation-api-tests.spec.ts,503,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + client,POST,/tenants/{tenantId}/clients/search,searchClientsForTenant,bad-request,searchClientsForTenant - Enum violation sort.0.field +request-validation/tenants-validation-api-tests.spec.ts,524,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + client,POST,/tenants/{tenantId}/clients/search,searchClientsForTenant,bad-request,searchClientsForTenant - Enum violation sort.0.order +request-validation/tenants-validation-api-tests.spec.ts,545,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + client,POST,/tenants/{tenantId}/clients/search,searchClientsForTenant,bad-request,searchClientsForTenant - Path param tenantId pattern violation +request-validation/tenants-validation-api-tests.spec.ts,561,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + group-id,POST,/tenants/{tenantId}/groups/search,searchGroupIdsForTenant,bad-request,searchGroupIdsForTenant - Additional prop __unexpectedField +request-validation/tenants-validation-api-tests.spec.ts,580,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + group-id,POST,/tenants/{tenantId}/groups/search,searchGroupIdsForTenant,bad-request,searchGroupIdsForTenant - Body wrong top-level type +request-validation/tenants-validation-api-tests.spec.ts,595,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + group-id,POST,/tenants/{tenantId}/groups/search,searchGroupIdsForTenant,bad-request,searchGroupIdsForTenant - Missing sort.0.field +request-validation/tenants-validation-api-tests.spec.ts,612,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + group-id,POST,/tenants/{tenantId}/groups/search,searchGroupIdsForTenant,bad-request,searchGroupIdsForTenant - Enum violation sort.0.field +request-validation/tenants-validation-api-tests.spec.ts,633,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + group-id,POST,/tenants/{tenantId}/groups/search,searchGroupIdsForTenant,bad-request,searchGroupIdsForTenant - Enum violation sort.0.order +request-validation/tenants-validation-api-tests.spec.ts,654,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + group-id,POST,/tenants/{tenantId}/groups/search,searchGroupIdsForTenant,bad-request,searchGroupIdsForTenant - Path param tenantId pattern violation +request-validation/tenants-validation-api-tests.spec.ts,670,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + mapping-rule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,bad-request,searchMappingRulesForTenant - Additional prop __unexpectedField +request-validation/tenants-validation-api-tests.spec.ts,691,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + mapping-rule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,bad-request,searchMappingRulesForTenant - Body wrong top-level type +request-validation/tenants-validation-api-tests.spec.ts,708,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + mapping-rule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,bad-request,searchMappingRulesForTenant - Missing sort.0.field +request-validation/tenants-validation-api-tests.spec.ts,727,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + mapping-rule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,bad-request,searchMappingRulesForTenant - Enum violation sort.0.field +request-validation/tenants-validation-api-tests.spec.ts,752,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + mapping-rule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,bad-request,searchMappingRulesForTenant - Enum violation sort.0.order +request-validation/tenants-validation-api-tests.spec.ts,777,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + mapping-rule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,bad-request,searchMappingRulesForTenant - Path param tenantId pattern violation +request-validation/tenants-validation-api-tests.spec.ts,793,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + role,POST,/tenants/{tenantId}/roles/search,searchRolesForTenant,bad-request,searchRolesForTenant - Additional prop __unexpectedField +request-validation/tenants-validation-api-tests.spec.ts,812,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + role,POST,/tenants/{tenantId}/roles/search,searchRolesForTenant,bad-request,searchRolesForTenant - Body wrong top-level type +request-validation/tenants-validation-api-tests.spec.ts,827,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + role,POST,/tenants/{tenantId}/roles/search,searchRolesForTenant,bad-request,searchRolesForTenant - Missing sort.0.field +request-validation/tenants-validation-api-tests.spec.ts,844,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + role,POST,/tenants/{tenantId}/roles/search,searchRolesForTenant,bad-request,searchRolesForTenant - Enum violation sort.0.field +request-validation/tenants-validation-api-tests.spec.ts,865,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + role,POST,/tenants/{tenantId}/roles/search,searchRolesForTenant,bad-request,searchRolesForTenant - Enum violation sort.0.order +request-validation/tenants-validation-api-tests.spec.ts,886,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + role,POST,/tenants/{tenantId}/roles/search,searchRolesForTenant,bad-request,searchRolesForTenant - Path param tenantId pattern violation +request-validation/tenants-validation-api-tests.spec.ts,902,request-validation,tenant,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/tenants/search,searchTenants,bad-request,searchTenants - Additional prop __unexpectedField +request-validation/tenants-validation-api-tests.spec.ts,919,request-validation,tenant,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/tenants/search,searchTenants,bad-request,searchTenants - Body wrong top-level type +request-validation/tenants-validation-api-tests.spec.ts,934,request-validation,tenant,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/tenants/search,searchTenants,bad-request,searchTenants - Missing sort.0.field +request-validation/tenants-validation-api-tests.spec.ts,951,request-validation,tenant,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/tenants/search,searchTenants,bad-request,searchTenants - Enum violation sort.0.field +request-validation/tenants-validation-api-tests.spec.ts,972,request-validation,tenant,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/tenants/search,searchTenants,bad-request,searchTenants - Enum violation sort.0.order +request-validation/tenants-validation-api-tests.spec.ts,993,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + user,POST,/tenants/{tenantId}/users/search,searchUsersForTenant,bad-request,searchUsersForTenant - Additional prop __unexpectedField +request-validation/tenants-validation-api-tests.spec.ts,1012,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + user,POST,/tenants/{tenantId}/users/search,searchUsersForTenant,bad-request,searchUsersForTenant - Body wrong top-level type +request-validation/tenants-validation-api-tests.spec.ts,1027,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + user,POST,/tenants/{tenantId}/users/search,searchUsersForTenant,bad-request,searchUsersForTenant - Missing sort.0.field +request-validation/tenants-validation-api-tests.spec.ts,1044,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + user,POST,/tenants/{tenantId}/users/search,searchUsersForTenant,bad-request,searchUsersForTenant - Enum violation sort.0.field +request-validation/tenants-validation-api-tests.spec.ts,1065,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + user,POST,/tenants/{tenantId}/users/search,searchUsersForTenant,bad-request,searchUsersForTenant - Enum violation sort.0.order +request-validation/tenants-validation-api-tests.spec.ts,1086,request-validation,tenant,B. Membership/Association,search,negative-search,tenant + user,POST,/tenants/{tenantId}/users/search,searchUsersForTenant,bad-request,searchUsersForTenant - Path param tenantId pattern violation +request-validation/tenants-validation-api-tests.spec.ts,1102,request-validation,tenant,B. Membership/Association,delete,negative-delete,tenant + client,DELETE,/tenants/{tenantId}/clients/{clientId},unassignClientFromTenant,bad-request,unassignClientFromTenant - Path param clientId pattern violation +request-validation/tenants-validation-api-tests.spec.ts,1119,request-validation,tenant,B. Membership/Association,delete,negative-delete,tenant + client,DELETE,/tenants/{tenantId}/clients/{clientId},unassignClientFromTenant,bad-request,unassignClientFromTenant - Path param tenantId pattern violation +request-validation/tenants-validation-api-tests.spec.ts,1136,request-validation,tenant,B. Membership/Association,delete,negative-delete,tenant + group,DELETE,/tenants/{tenantId}/groups/{groupId},unassignGroupFromTenant,bad-request,unassignGroupFromTenant - Path param groupId length-max violation +request-validation/tenants-validation-api-tests.spec.ts,1154,request-validation,tenant,B. Membership/Association,delete,negative-delete,tenant + group,DELETE,/tenants/{tenantId}/groups/{groupId},unassignGroupFromTenant,bad-request,unassignGroupFromTenant - Path param tenantId pattern violation +request-validation/tenants-validation-api-tests.spec.ts,1171,request-validation,tenant,B. Membership/Association,delete,negative-delete,tenant + mapping-rule,DELETE,/tenants/{tenantId}/mapping-rules/{mappingRuleId},unassignMappingRuleFromTenant,bad-request,unassignMappingRuleFromTenant - Path param mappingRuleId pattern violation +request-validation/tenants-validation-api-tests.spec.ts,1188,request-validation,tenant,B. Membership/Association,delete,negative-delete,tenant + mapping-rule,DELETE,/tenants/{tenantId}/mapping-rules/{mappingRuleId},unassignMappingRuleFromTenant,bad-request,unassignMappingRuleFromTenant - Path param tenantId pattern violation +request-validation/tenants-validation-api-tests.spec.ts,1205,request-validation,tenant,B. Membership/Association,delete,negative-delete,tenant + role,DELETE,/tenants/{tenantId}/roles/{roleId},unassignRoleFromTenant,bad-request,unassignRoleFromTenant - Path param roleId pattern violation +request-validation/tenants-validation-api-tests.spec.ts,1222,request-validation,tenant,B. Membership/Association,delete,negative-delete,tenant + role,DELETE,/tenants/{tenantId}/roles/{roleId},unassignRoleFromTenant,bad-request,unassignRoleFromTenant - Path param tenantId pattern violation +request-validation/tenants-validation-api-tests.spec.ts,1239,request-validation,tenant,B. Membership/Association,delete,negative-delete,tenant + user,DELETE,/tenants/{tenantId}/users/{username},unassignUserFromTenant,bad-request,unassignUserFromTenant - Path param tenantId pattern violation +request-validation/tenants-validation-api-tests.spec.ts,1256,request-validation,tenant,B. Membership/Association,delete,negative-delete,tenant + user,DELETE,/tenants/{tenantId}/users/{username},unassignUserFromTenant,bad-request,unassignUserFromTenant - Path param username pattern violation +request-validation/tenants-validation-api-tests.spec.ts,1273,request-validation,tenant,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/tenants/{tenantId},updateTenant,bad-request,updateTenant - Additional prop __unexpectedField +request-validation/tenants-validation-api-tests.spec.ts,1291,request-validation,tenant,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/tenants/{tenantId},updateTenant,bad-request,updateTenant - Body wrong top-level type +request-validation/tenants-validation-api-tests.spec.ts,1306,request-validation,tenant,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/tenants/{tenantId},updateTenant,bad-request,updateTenant - Param name wrong type (#1) +request-validation/tenants-validation-api-tests.spec.ts,1323,request-validation,tenant,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/tenants/{tenantId},updateTenant,bad-request,updateTenant - Param name wrong type (#2) +request-validation/tenants-validation-api-tests.spec.ts,1340,request-validation,tenant,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/tenants/{tenantId},updateTenant,bad-request,updateTenant - Missing name +request-validation/tenants-validation-api-tests.spec.ts,1355,request-validation,tenant,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/tenants/{tenantId},updateTenant,bad-request,updateTenant - Missing body +request-validation/tenants-validation-api-tests.spec.ts,1367,request-validation,tenant,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/tenants/{tenantId},updateTenant,bad-request,updateTenant - Path param tenantId pattern violation +request-validation/users-validation-api-tests.spec.ts,18,request-validation,user,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/users,createUser,bad-request,createUser - Additional prop __unexpectedField +request-validation/users-validation-api-tests.spec.ts,37,request-validation,user,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/users,createUser,bad-request,createUser - Body wrong top-level type +request-validation/users-validation-api-tests.spec.ts,52,request-validation,user,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/users,createUser,bad-request,createUser - Param password wrong type (#1) +request-validation/users-validation-api-tests.spec.ts,70,request-validation,user,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/users,createUser,bad-request,createUser - Param password wrong type (#2) +request-validation/users-validation-api-tests.spec.ts,88,request-validation,user,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/users,createUser,bad-request,createUser - Param username wrong type (#1) +request-validation/users-validation-api-tests.spec.ts,106,request-validation,user,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/users,createUser,bad-request,createUser - Param username wrong type (#2) +request-validation/users-validation-api-tests.spec.ts,124,request-validation,user,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/users,createUser,bad-request,createUser - Constraint violation username (#1) +request-validation/users-validation-api-tests.spec.ts,143,request-validation,user,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/users,createUser,bad-request,createUser - Constraint violation username (#2) +request-validation/users-validation-api-tests.spec.ts,161,request-validation,user,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/users,createUser,bad-request,createUser - Constraint violation username (#3) +request-validation/users-validation-api-tests.spec.ts,179,request-validation,user,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/users,createUser,bad-request,createUser - Constraint violation username (#4) +request-validation/users-validation-api-tests.spec.ts,198,request-validation,user,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/users,createUser,bad-request,createUser - Missing password +request-validation/users-validation-api-tests.spec.ts,215,request-validation,user,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/users,createUser,bad-request,createUser - Missing username +request-validation/users-validation-api-tests.spec.ts,232,request-validation,user,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/users,createUser,bad-request,createUser - Missing body +request-validation/users-validation-api-tests.spec.ts,244,request-validation,user,A. Entity Lifecycle (CRUD),create,negative-create,none,POST,/users,createUser,bad-request,"createUser - Missing combo username,password" +request-validation/users-validation-api-tests.spec.ts,259,request-validation,user,A. Entity Lifecycle (CRUD),delete,negative-delete,none,DELETE,/users/{username},deleteUser,bad-request,deleteUser - Path param username pattern violation +request-validation/users-validation-api-tests.spec.ts,271,request-validation,user,A. Entity Lifecycle (CRUD),get,negative-get,none,GET,/users/{username},getUser,bad-request,getUser - Path param username pattern violation +request-validation/users-validation-api-tests.spec.ts,283,request-validation,user,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/users/search,searchUsers,bad-request,searchUsers - Additional prop __unexpectedField +request-validation/users-validation-api-tests.spec.ts,300,request-validation,user,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/users/search,searchUsers,bad-request,searchUsers - Body wrong top-level type +request-validation/users-validation-api-tests.spec.ts,315,request-validation,user,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/users/search,searchUsers,bad-request,searchUsers - Missing sort.0.field +request-validation/users-validation-api-tests.spec.ts,332,request-validation,user,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/users/search,searchUsers,bad-request,searchUsers - Enum violation sort.0.field +request-validation/users-validation-api-tests.spec.ts,353,request-validation,user,A. Entity Lifecycle (CRUD),search,negative-search,none,POST,/users/search,searchUsers,bad-request,searchUsers - Enum violation sort.0.order +request-validation/users-validation-api-tests.spec.ts,374,request-validation,user,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/users/{username},updateUser,bad-request,updateUser - Additional prop __extraField +request-validation/users-validation-api-tests.spec.ts,391,request-validation,user,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/users/{username},updateUser,bad-request,updateUser - Body wrong top-level type +request-validation/users-validation-api-tests.spec.ts,406,request-validation,user,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/users/{username},updateUser,bad-request,updateUser - Missing body +request-validation/users-validation-api-tests.spec.ts,418,request-validation,user,A. Entity Lifecycle (CRUD),update,negative-update,none,PUT,/users/{username},updateUser,bad-request,updateUser - Path param username pattern violation +request-validation/usertasks-validation-api-tests.spec.ts,18,request-validation,user-task,F. User-Task Lifecycle,update,negative-update,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/assignment,assignUserTask,bad-request,assignUserTask - Additional prop __unexpectedField +request-validation/usertasks-validation-api-tests.spec.ts,37,request-validation,user-task,F. User-Task Lifecycle,update,negative-update,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/assignment,assignUserTask,bad-request,assignUserTask - Body wrong top-level type +request-validation/usertasks-validation-api-tests.spec.ts,54,request-validation,user-task,F. User-Task Lifecycle,update,negative-update,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/assignment,assignUserTask,bad-request,assignUserTask - Missing body +request-validation/usertasks-validation-api-tests.spec.ts,68,request-validation,user-task,F. User-Task Lifecycle,update,negative-update,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/assignment,assignUserTask,bad-request,assignUserTask - Path param userTaskKey pattern violation +request-validation/usertasks-validation-api-tests.spec.ts,84,request-validation,user-task,F. User-Task Lifecycle,update,negative-update,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/completion,completeUserTask,bad-request,completeUserTask - Additional prop __unexpectedField +request-validation/usertasks-validation-api-tests.spec.ts,103,request-validation,user-task,F. User-Task Lifecycle,update,negative-update,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/completion,completeUserTask,bad-request,completeUserTask - Body wrong top-level type +request-validation/usertasks-validation-api-tests.spec.ts,120,request-validation,user-task,F. User-Task Lifecycle,update,negative-update,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/completion,completeUserTask,bad-request,completeUserTask - Path param userTaskKey pattern violation +request-validation/usertasks-validation-api-tests.spec.ts,136,request-validation,user-task,F. User-Task Lifecycle,get,negative-get,running-process-instance-with-user-task,GET,/user-tasks/{userTaskKey},getUserTask,bad-request,getUserTask - Path param userTaskKey pattern violation +request-validation/usertasks-validation-api-tests.spec.ts,148,request-validation,user-task,F. User-Task Lifecycle,get,negative-get,running-process-instance-with-user-task,GET,/user-tasks/{userTaskKey}/form,getUserTaskForm,bad-request,getUserTaskForm - Path param userTaskKey pattern violation +request-validation/usertasks-validation-api-tests.spec.ts,162,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/audit-logs/search,searchUserTaskAuditLogs,bad-request,searchUserTaskAuditLogs - Additional prop __unexpectedField +request-validation/usertasks-validation-api-tests.spec.ts,183,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/audit-logs/search,searchUserTaskAuditLogs,bad-request,searchUserTaskAuditLogs - Body wrong top-level type +request-validation/usertasks-validation-api-tests.spec.ts,200,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/audit-logs/search,searchUserTaskAuditLogs,bad-request,searchUserTaskAuditLogs - Missing sort.0.field +request-validation/usertasks-validation-api-tests.spec.ts,219,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/audit-logs/search,searchUserTaskAuditLogs,bad-request,searchUserTaskAuditLogs - Enum violation sort.0.field +request-validation/usertasks-validation-api-tests.spec.ts,242,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/audit-logs/search,searchUserTaskAuditLogs,bad-request,searchUserTaskAuditLogs - Enum violation sort.0.order +request-validation/usertasks-validation-api-tests.spec.ts,265,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/audit-logs/search,searchUserTaskAuditLogs,bad-request,searchUserTaskAuditLogs - Path param userTaskKey pattern violation +request-validation/usertasks-validation-api-tests.spec.ts,281,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/effective-variables/search,searchUserTaskEffectiveVariables,bad-request,searchUserTaskEffectiveVariables - Additional prop __unexpectedField +request-validation/usertasks-validation-api-tests.spec.ts,302,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/effective-variables/search,searchUserTaskEffectiveVariables,bad-request,searchUserTaskEffectiveVariables - Body wrong top-level type +request-validation/usertasks-validation-api-tests.spec.ts,321,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/effective-variables/search,searchUserTaskEffectiveVariables,bad-request,searchUserTaskEffectiveVariables - Missing sort.0.field +request-validation/usertasks-validation-api-tests.spec.ts,340,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/effective-variables/search,searchUserTaskEffectiveVariables,bad-request,searchUserTaskEffectiveVariables - Enum violation sort.0.field +request-validation/usertasks-validation-api-tests.spec.ts,365,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/effective-variables/search,searchUserTaskEffectiveVariables,bad-request,searchUserTaskEffectiveVariables - Enum violation sort.0.order +request-validation/usertasks-validation-api-tests.spec.ts,390,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/effective-variables/search,searchUserTaskEffectiveVariables,bad-request,searchUserTaskEffectiveVariables - Path param userTaskKey pattern violation +request-validation/usertasks-validation-api-tests.spec.ts,406,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/effective-variables/search,searchUserTaskEffectiveVariables,bad-request,searchUserTaskEffectiveVariables - Param query.truncateValues wrong type +request-validation/usertasks-validation-api-tests.spec.ts,422,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,bad-request,searchUserTasks - Additional prop __unexpectedField +request-validation/usertasks-validation-api-tests.spec.ts,439,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,bad-request,searchUserTasks - Body wrong top-level type +request-validation/usertasks-validation-api-tests.spec.ts,454,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,bad-request,searchUserTasks - Missing filter.localVariables.0.name +request-validation/usertasks-validation-api-tests.spec.ts,477,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,bad-request,searchUserTasks - Missing filter.localVariables.0.value +request-validation/usertasks-validation-api-tests.spec.ts,500,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,bad-request,searchUserTasks - Missing filter.processInstanceVariables.0.name +request-validation/usertasks-validation-api-tests.spec.ts,525,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,bad-request,searchUserTasks - Missing filter.processInstanceVariables.0.value +request-validation/usertasks-validation-api-tests.spec.ts,550,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,bad-request,searchUserTasks - Missing sort.0.field +request-validation/usertasks-validation-api-tests.spec.ts,567,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,bad-request,searchUserTasks - Enum violation sort.0.field +request-validation/usertasks-validation-api-tests.spec.ts,588,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,bad-request,searchUserTasks - Enum violation sort.0.order +request-validation/usertasks-validation-api-tests.spec.ts,609,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,bad-request,searchUserTasks - uniqueItems violation filter.tags +request-validation/usertasks-validation-api-tests.spec.ts,628,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/variables/search,searchUserTaskVariables,bad-request,searchUserTaskVariables - Additional prop __unexpectedField +request-validation/usertasks-validation-api-tests.spec.ts,649,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/variables/search,searchUserTaskVariables,bad-request,searchUserTaskVariables - Body wrong top-level type +request-validation/usertasks-validation-api-tests.spec.ts,666,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/variables/search,searchUserTaskVariables,bad-request,searchUserTaskVariables - Missing sort.0.field +request-validation/usertasks-validation-api-tests.spec.ts,685,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/variables/search,searchUserTaskVariables,bad-request,searchUserTaskVariables - Enum violation sort.0.field +request-validation/usertasks-validation-api-tests.spec.ts,708,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/variables/search,searchUserTaskVariables,bad-request,searchUserTaskVariables - Enum violation sort.0.order +request-validation/usertasks-validation-api-tests.spec.ts,731,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/variables/search,searchUserTaskVariables,bad-request,searchUserTaskVariables - Path param userTaskKey pattern violation +request-validation/usertasks-validation-api-tests.spec.ts,747,request-validation,user-task,F. User-Task Lifecycle,search,negative-search,running-process-instance-with-user-task,POST,/user-tasks/{userTaskKey}/variables/search,searchUserTaskVariables,bad-request,searchUserTaskVariables - Param query.truncateValues wrong type +request-validation/usertasks-validation-api-tests.spec.ts,763,request-validation,user-task,F. User-Task Lifecycle,delete,negative-delete,running-process-instance-with-user-task,DELETE,/user-tasks/{userTaskKey}/assignee,unassignUserTask,bad-request,unassignUserTask - Path param userTaskKey pattern violation +request-validation/usertasks-validation-api-tests.spec.ts,779,request-validation,user-task,F. User-Task Lifecycle,update,negative-update,running-process-instance-with-user-task,PATCH,/user-tasks/{userTaskKey},updateUserTask,bad-request,updateUserTask - Additional prop __unexpectedField +request-validation/usertasks-validation-api-tests.spec.ts,796,request-validation,user-task,F. User-Task Lifecycle,update,negative-update,running-process-instance-with-user-task,PATCH,/user-tasks/{userTaskKey},updateUserTask,bad-request,updateUserTask - Body wrong top-level type +request-validation/usertasks-validation-api-tests.spec.ts,811,request-validation,user-task,F. User-Task Lifecycle,update,negative-update,running-process-instance-with-user-task,PATCH,/user-tasks/{userTaskKey},updateUserTask,bad-request,updateUserTask - Path param userTaskKey pattern violation +request-validation/variables-validation-api-tests.spec.ts,18,request-validation,variable,J/K/L. Observation-only,get,negative-get,running-process-instance,GET,/variables/{variableKey},getVariable,bad-request,getVariable - Path param variableKey pattern violation +request-validation/variables-validation-api-tests.spec.ts,30,request-validation,variable,J/K/L. Observation-only,search,negative-search,running-process-instance,POST,/variables/search,searchVariables,bad-request,searchVariables - Additional prop __unexpectedField +request-validation/variables-validation-api-tests.spec.ts,47,request-validation,variable,J/K/L. Observation-only,search,negative-search,running-process-instance,POST,/variables/search,searchVariables,bad-request,searchVariables - Body wrong top-level type +request-validation/variables-validation-api-tests.spec.ts,62,request-validation,variable,J/K/L. Observation-only,search,negative-search,running-process-instance,POST,/variables/search,searchVariables,bad-request,searchVariables - Missing sort.0.field +request-validation/variables-validation-api-tests.spec.ts,79,request-validation,variable,J/K/L. Observation-only,search,negative-search,running-process-instance,POST,/variables/search,searchVariables,bad-request,searchVariables - Enum violation sort.0.field +request-validation/variables-validation-api-tests.spec.ts,100,request-validation,variable,J/K/L. Observation-only,search,negative-search,running-process-instance,POST,/variables/search,searchVariables,bad-request,searchVariables - Enum violation sort.0.order +request-validation/variables-validation-api-tests.spec.ts,121,request-validation,variable,J/K/L. Observation-only,search,negative-search,running-process-instance,POST,/variables/search,searchVariables,bad-request,searchVariables - Param query.truncateValues wrong type