From 94b4fba511ba4fbd43071e8a3972ce8252353308 Mon Sep 17 00:00:00 2001 From: esraagamal6 Date: Mon, 18 May 2026 13:43:04 +0200 Subject: [PATCH 01/15] chore: add coverage analysis for generated tests (#275) Adds coverage-analysis/ which categorises the tests emitted under generated/camunda-oca/playwright/ and produces a matrix in the same shape as upstream's c8-orchestration-cluster-e2e-test-suite/coverage-analysis, so the two suites can be diffed directly. Outputs (regenerate with `python3 coverage-analysis/build_coverage.py`): - tests.csv: per-test labels (file, line, entity, category, operation, form_step, prerequisite, variants, test_name) across 518 declarations. - coverage_matrix.csv / .md: entity x operation grid with variant counts. - gaps.md: heuristic gap report (missing 401/403/400/404/409 coverage, missing observe-after-delete, search ops without pagination/filter). - category_breakdown.md: per-category (A-O upstream buckets + P for agent-instance) with Form, prerequisites, observation channel split, form-step counts, variants, and per-test rows with file:line. Answers the questions in #275 for the generator. The findings: the ~483-test gap vs upstream is concentrated in negative-path tests (575 missing across 400/401/403/404/409) and search refinement (138 missing across pagination-sort/filter); the generator already exceeds upstream on input-shape variants (data-driven +290) and observe-absence (+24). Co-Authored-By: Claude Opus 4.7 (1M context) --- coverage-analysis/README.md | 79 ++ coverage-analysis/build_coverage.py | 591 +++++++++++++ coverage-analysis/category_breakdown.md | 1067 +++++++++++++++++++++++ coverage-analysis/coverage_matrix.csv | 102 +++ coverage-analysis/coverage_matrix.md | 219 +++++ coverage-analysis/gaps.md | 240 +++++ coverage-analysis/tests.csv | 519 +++++++++++ 7 files changed, 2817 insertions(+) create mode 100644 coverage-analysis/README.md create mode 100644 coverage-analysis/build_coverage.py create mode 100644 coverage-analysis/category_breakdown.md create mode 100644 coverage-analysis/coverage_matrix.csv create mode 100644 coverage-analysis/coverage_matrix.md create mode 100644 coverage-analysis/gaps.md create mode 100644 coverage-analysis/tests.csv diff --git a/coverage-analysis/README.md b/coverage-analysis/README.md new file mode 100644 index 0000000..fe4809f --- /dev/null +++ b/coverage-analysis/README.md @@ -0,0 +1,79 @@ +# Generator coverage analysis + +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 the generated specs, 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, 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`. | + +## Regenerate + +```sh +python3 coverage-analysis/build_coverage.py +``` + +No dependencies beyond the Python stdlib. Re-run after any change under +`generated/camunda-oca/playwright/` or the bundled OpenAPI spec. + +## 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 (snapshot at the time these files were generated) + +| | upstream | generator | +|---|---:|---:| +| Unique tests | 1001 | 518 | +| Entities | 33 | 37 | +| Happy-path | 173 | 185 | +| Negative (400/401/403/404/409) | 575 | **0** | +| Pagination-sort + filter | 138 | **0** | +| Observe-absence | 2 | 26 | +| Data-driven / oneOf variants | 5 | **295** | + +The ~483-test gap is concentrated in **negative paths** (575 tests missing) and +**search refinement** (138 tests missing). The generator already exceeds upstream +on input-shape variants (`data-driven` +290) and `observe-absence` (+24). +See `gaps.md` for the categorised 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 does not emit error-path tests (401/403/400/404/409) today, so + every row in those columns is 0 — this is a generator capability gap, not a + classifier limitation. +- 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..99d1581 --- /dev/null +++ b/coverage-analysis/build_coverage.py @@ -0,0 +1,591 @@ +#!/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 ../generated/camunda-oca/playwright/*.spec.ts and emits, next to this script: + - tests.csv : per-test labels (file, line, entity, operation, variants, test_name) + - coverage_matrix.csv : entity x operation grid, variant counts (same columns as upstream) +""" +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')) +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', + '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|reset)', re.I)), + ('update', re.compile(r'^(update|assign|complete|migrate|modify|resolve|fail|resume|suspend|patch|put)', 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 prerequisite_of(op_id, entity): + m = MEMBERSHIP_OP_RE.match(op_id) + if m: + member = m.group(2) + parent = m.group(4) + return f'{parent.lower()} + {member.lower()}' + m2 = MEMBERSHIP_LIST_RE.match(op_id) + if m2: + # e.g. searchClientsForTenant -> member=clients, parent=tenant + members = op_id[len('search'):].split('For' if 'For' in op_id else 'In')[0] + parent = m2.group(2).lower() + member = members.lower().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*['"`]([^'"`]+)['"`]""" +) +SPEC_FILE_RE = re.compile(r'^(?P[A-Za-z][A-Za-z0-9]*)\.(feature|variant)\.spec\.ts$') + +rows = [] +unresolved_ops = set() +for f in sorted(os.listdir(PLAYWRIGHT_DIR)): + m = SPEC_FILE_RE.match(f) + if not m: + continue + op_id = m.group('op') + method_path = OPS.get(op_id) + if not method_path: + unresolved_ops.add(op_id) + method = '' + path = '' + entity = 'unknown' + operation = 'other' + else: + method, path = method_path + entity = entity_of_path(path) + operation = operation_of(op_id, method, path) + + full = os.path.join(PLAYWRIGHT_DIR, f) + with open(full, encoding='utf-8') as fp: + content = fp.read() + for tm in TEST_RE.finditer(content): + name = tm.group(1) + line_no = content.count('\n', 0, tm.start()) + 1 + variants = variants_of(name) + rows.append({ + 'file': f, + 'line': line_no, + '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, + }) + +# ---------- 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','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','other','parameterized'] + +matrix = defaultdict(lambda: defaultdict(lambda: defaultdict(int))) +entity_totals = defaultdict(int) +for r in rows: + entity_totals[r['entity']] += 1 + for v in (r['variants'].split('|') if r['variants'] else ['unlabeled']): + matrix[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: + cell = matrix[ent].get(op, {}) + total = sum(cell.values()) + if total == 0: + continue + 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 first-match labels derived from the generator\'s emitter suffix ' + '(`base`, `negative empty`, `bpmn|dmn|drd|form|path|cycle/...`, `oneOf ...`, `scenario`). ' + '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[ent].get(op, {}) + total = sum(cell.values()) + 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[ent].get(op, {}) + total = sum(cell.values()) + 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[ent] + has_create = sum(cell.get('create', {}).values()) > 0 + has_delete = sum(cell.get('delete', {}).values()) > 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[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[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[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[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[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') + for ent in sorted(entity_totals): + cell = matrix[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') +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', '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') + + var_counts = defaultdict(int) + for r in ent_rows: + var_counts[r['variants']] += 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: + fp.write(f'| {r["form_step"]} | {r["variants"] or "—"} | ' + f'`{r["file"]}:{r["line"]}` | {r["test_name"]} |\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..95f1d23 --- /dev/null +++ b/coverage-analysis/category_breakdown.md @@ -0,0 +1,1067 @@ +# api-test-generator — Per-category breakdown + +Total test declarations: **518** 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) — 84 tests +- [B. Membership/Association](#b-membershipassociation) — 68 tests +- [C. Deployment Lifecycle](#c-deployment-lifecycle) — 64 tests +- [D. Process-Instance Lifecycle & Ops](#d-process-instance-lifecycle--ops) — 107 tests +- [E. Batch-Operation Lifecycle](#e-batch-operation-lifecycle) — 13 tests +- [F. User-Task Lifecycle](#f-user-task-lifecycle) — 20 tests +- [G. Job Lifecycle & Stats](#g-job-lifecycle--stats) — 27 tests +- [H. Incident Lifecycle](#h-incident-lifecycle) — 12 tests +- [I. Decision-Instance Lifecycle](#i-decision-instance-lifecycle) — 27 tests +- [J/K/L. Observation-only](#jkl-observation-only) — 52 tests +- [M. Messaging/Signals](#m-messagingsignals) — 22 tests +- [N. Engine Evaluation](#n-engine-evaluation) — 4 tests +- [O. System/Admin](#o-systemadmin) — 9 tests +- [P. Agent-Instance (new in v2)](#p-agent-instance-new-in-v2) — 9 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**: 84 + +### `authorization` — 12 tests + +- **Prerequisite to create**: owner-entity-or-resource +- **Files**: `createAuthorization.feature.spec.ts`, `deleteAuthorization.feature.spec.ts`, `getAuthorization.feature.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 +- **Variants**: happy-path=5, observe-absence=1, data-driven=6 + +| 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 | `searchAuthorizations.variant.spec.ts:12` | variant-1 - searchAuthorizations - path #1 | +| observe-present-search | data-driven | `searchAuthorizations.variant.spec.ts:65` | 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) | + +### `cluster-variables` — 12 tests + +- **Prerequisite to create**: none +- **Files**: `createGlobalClusterVariable.feature.spec.ts`, `createTenantClusterVariable.feature.spec.ts`, `deleteGlobalClusterVariable.feature.spec.ts`, `deleteTenantClusterVariable.feature.spec.ts`, `getGlobalClusterVariable.feature.spec.ts`, `getTenantClusterVariable.feature.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 +- **Variants**: happy-path=9, observe-absence=1, data-driven=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 | `searchClusterVariables.variant.spec.ts:12` | variant-1 - searchClusterVariables - path #1 | +| observe-present-search | data-driven | `searchClusterVariables.variant.spec.ts:65` | 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) | + +### `document` — 9 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`, `getDocument.feature.spec.ts` +- **Observation channel**: GET = 1, Search = 0 +- **Form-step counts**: create=7, observe-present-get=1, delete=1 +- **Variants**: happy-path=5, data-driven=4 + +| 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) | + +### `mapping-rule` — 9 tests + +- **Prerequisite to create**: none +- **Files**: `createMappingRule.feature.spec.ts`, `deleteMappingRule.feature.spec.ts`, `getMappingRule.feature.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 +- **Variants**: happy-path=5, observe-absence=1, data-driven=3 + +| 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 | `searchMappingRule.variant.spec.ts:12` | variant-1 - searchMappingRule - path #1 | +| observe-present-search | data-driven | `searchMappingRule.variant.spec.ts:106` | variant-2 - searchMappingRule - path #1 | +| observe-present-search | data-driven | `searchMappingRule.variant.spec.ts:159` | 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) | + +### `role` — 9 tests + +- **Prerequisite to create**: none +- **Files**: `createRole.feature.spec.ts`, `deleteRole.feature.spec.ts`, `getRole.feature.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 +- **Variants**: happy-path=5, observe-absence=1, data-driven=3 + +| 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 | `searchRoles.variant.spec.ts:12` | variant-1 - searchRoles - path #1 | +| observe-present-search | data-driven | `searchRoles.variant.spec.ts:104` | variant-2 - searchRoles - path #1 | +| observe-present-search | data-driven | `searchRoles.variant.spec.ts:155` | 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) | + +### `tenant` — 9 tests + +- **Prerequisite to create**: none +- **Files**: `createTenant.feature.spec.ts`, `deleteTenant.feature.spec.ts`, `getTenant.feature.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 +- **Variants**: happy-path=5, observe-absence=1, data-driven=3 + +| 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 | `searchTenants.variant.spec.ts:12` | variant-1 - searchTenants - path #1 | +| observe-present-search | data-driven | `searchTenants.variant.spec.ts:63` | variant-2 - searchTenants - path #1 | +| observe-present-search | data-driven | `searchTenants.variant.spec.ts:114` | 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) | + +### `global-task-listener` — 8 tests + +- **Prerequisite to create**: none +- **Files**: `createGlobalTaskListener.feature.spec.ts`, `deleteGlobalTaskListener.feature.spec.ts`, `getGlobalTaskListener.feature.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 +- **Variants**: happy-path=5, observe-absence=1, data-driven=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 | `searchGlobalTaskListeners.variant.spec.ts:12` | variant-1 - searchGlobalTaskListeners - path #1 | +| observe-present-search | data-driven | `searchGlobalTaskListeners.variant.spec.ts:65` | 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) | + +### `group` — 8 tests + +- **Prerequisite to create**: none +- **Files**: `createGroup.feature.spec.ts`, `deleteGroup.feature.spec.ts`, `getGroup.feature.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 +- **Variants**: happy-path=5, observe-absence=1, data-driven=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 | `searchGroups.variant.spec.ts:12` | variant-1 - searchGroups - path #1 | +| observe-present-search | data-driven | `searchGroups.variant.spec.ts:63` | 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) | + +### `user` — 8 tests + +- **Prerequisite to create**: none +- **Files**: `createUser.feature.spec.ts`, `deleteUser.feature.spec.ts`, `getUser.feature.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 +- **Variants**: happy-path=5, observe-absence=1, data-driven=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 | `searchUsers.variant.spec.ts:12` | variant-1 - searchUsers - path #1 | +| observe-present-search | data-driven | `searchUsers.variant.spec.ts:63` | 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) | + +## B. Membership/Association + +**Form**: Create parent + member (prerequisite) → Assign member → Search members (Observe Present) → Unassign member → Search members (Observe Absence) + +**Total tests**: 68 + +### `tenant` — 27 tests + +- **Prerequisite to create**: tenant + client, tenant + group, tenant + groupid, tenant + mappingrule, 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`, `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 +- **Variants**: happy-path=15, data-driven=12 + +| 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 | `searchClientsForTenant.variant.spec.ts:12` | variant-1 - searchClientsForTenant - path #1 | +| observe-present-search | data-driven | `searchClientsForTenant.variant.spec.ts:87` | 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 | `searchGroupIdsForTenant.variant.spec.ts:12` | variant-1 - searchGroupIdsForTenant - path #1 | +| observe-present-search | data-driven | `searchGroupIdsForTenant.variant.spec.ts:87` | 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 | `searchMappingRulesForTenant.variant.spec.ts:12` | variant-1 - searchMappingRulesForTenant - path #1 | +| observe-present-search | data-driven | `searchMappingRulesForTenant.variant.spec.ts:125` | variant-2 - searchMappingRulesForTenant - path #1 | +| observe-present-search | data-driven | `searchMappingRulesForTenant.variant.spec.ts:201` | 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 | `searchRolesForTenant.variant.spec.ts:12` | variant-1 - searchRolesForTenant - path #1 | +| observe-present-search | data-driven | `searchRolesForTenant.variant.spec.ts:125` | variant-2 - searchRolesForTenant - path #1 | +| observe-present-search | data-driven | `searchRolesForTenant.variant.spec.ts:201` | 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 | `searchUsersForTenant.variant.spec.ts:12` | variant-1 - searchUsersForTenant - path #1 | +| observe-present-search | data-driven | `searchUsersForTenant.variant.spec.ts:87` | 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) | + +### `role` — 21 tests + +- **Prerequisite to create**: client + role, group + role, mappingrule + role, role + client, role + group, role + mappingrule, role + user, user + role +- **Files**: `assignRoleToClient.feature.spec.ts`, `assignRoleToGroup.feature.spec.ts`, `assignRoleToMappingRule.feature.spec.ts`, `assignRoleToUser.feature.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 +- **Variants**: happy-path=12, data-driven=9 + +| 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 | `searchClientsForRole.variant.spec.ts:12` | variant-1 - searchClientsForRole - path #1 | +| observe-present-search | data-driven | `searchClientsForRole.variant.spec.ts:85` | 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 | `searchGroupsForRole.variant.spec.ts:12` | variant-1 - searchGroupsForRole - path #1 | +| observe-present-search | data-driven | `searchGroupsForRole.variant.spec.ts:85` | 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 | `searchMappingRulesForRole.variant.spec.ts:12` | variant-1 - searchMappingRulesForRole - path #1 | +| observe-present-search | data-driven | `searchMappingRulesForRole.variant.spec.ts:123` | variant-2 - searchMappingRulesForRole - path #1 | +| observe-present-search | data-driven | `searchMappingRulesForRole.variant.spec.ts:197` | 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 | `searchUsersForRole.variant.spec.ts:12` | variant-1 - searchUsersForRole - path #1 | +| observe-present-search | data-driven | `searchUsersForRole.variant.spec.ts:85` | 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) | + +### `group` — 20 tests + +- **Prerequisite to create**: group + client, group + mappingrule, group + role, group + user +- **Files**: `assignClientToGroup.feature.spec.ts`, `assignMappingRuleToGroup.feature.spec.ts`, `assignUserToGroup.feature.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 +- **Variants**: happy-path=10, data-driven=10 + +| 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 | `searchClientsForGroup.variant.spec.ts:12` | variant-1 - searchClientsForGroup - path #1 | +| observe-present-search | data-driven | `searchClientsForGroup.variant.spec.ts:85` | 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 | `searchMappingRulesForGroup.variant.spec.ts:12` | variant-1 - searchMappingRulesForGroup - path #1 | +| observe-present-search | data-driven | `searchMappingRulesForGroup.variant.spec.ts:84` | variant-2 - searchMappingRulesForGroup - path #1 | +| observe-present-search | data-driven | `searchMappingRulesForGroup.variant.spec.ts:158` | 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 | `searchRolesForGroup.variant.spec.ts:12` | variant-1 - searchRolesForGroup - path #1 | +| observe-present-search | data-driven | `searchRolesForGroup.variant.spec.ts:84` | variant-2 - searchRolesForGroup - path #1 | +| observe-present-search | data-driven | `searchRolesForGroup.variant.spec.ts:158` | 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 | `searchUsersForGroup.variant.spec.ts:12` | variant-1 - searchUsersForGroup - path #1 | +| observe-present-search | data-driven | `searchUsersForGroup.variant.spec.ts:85` | 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) | + +## C. Deployment Lifecycle + +**Form**: Deploy resource → Get definition (XML/JSON) → Search definitions (Observe Present) → Delete resource → Get definition (Observe Absence) + +**Total tests**: 64 + +### `process-definition` — 27 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`, `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 +- **Variants**: happy-path=8, observe-absence=1, data-driven=18 + +| 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 | `getProcessDefinitionInstanceVersionStatistics.feature.spec.ts:12` | feature-1 - getProcessDefinitionInstanceVersionStatistics - base (1) | +| observe-present-get | data-driven | `getProcessDefinitionInstanceVersionStatistics.variant.spec.ts:13` | 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 | `getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts:13` | variant-1 - getProcessDefinitionMessageSubscriptionStatistics - path #1 | +| observe-present-get | data-driven | `getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts:71` | variant-2 - getProcessDefinitionMessageSubscriptionStatistics - path #1 | +| observe-present-get | data-driven | `getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts:132` | variant-3 - getProcessDefinitionMessageSubscriptionStatistics - bpmn #1 | +| observe-present-get | data-driven | `getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts:189` | variant-4 - getProcessDefinitionMessageSubscriptionStatistics - bpmn #1 | +| observe-present-get | data-driven | `getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts:267` | 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 | `getProcessDefinitionStatistics.variant.spec.ts:12` | variant-1 - getProcessDefinitionStatistics - bpmn #1 | +| observe-present-get | data-driven | `getProcessDefinitionStatistics.variant.spec.ts:86` | variant-2 - getProcessDefinitionStatistics - bpmn #1 | +| observe-present-get | data-driven | `getProcessDefinitionStatistics.variant.spec.ts:160` | variant-3 - getProcessDefinitionStatistics - bpmn #1 | +| observe-present-get | data-driven | `getProcessDefinitionStatistics.variant.spec.ts:214` | variant-4 - getProcessDefinitionStatistics - bpmn #1 | +| observe-present-get | data-driven | `getProcessDefinitionStatistics.variant.spec.ts:268` | variant-5 - getProcessDefinitionStatistics - bpmn #1 | +| observe-present-get | data-driven | `getProcessDefinitionStatistics.variant.spec.ts:346` | variant-6 - getProcessDefinitionStatistics - bpmn #1 | +| observe-present-get | data-driven | `getProcessDefinitionStatistics.variant.spec.ts:424` | variant-7 - getProcessDefinitionStatistics - bpmn #1 | +| observe-present-get | data-driven | `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 | `searchProcessDefinitions.variant.spec.ts:13` | variant-1 - searchProcessDefinitions - path #1 | +| observe-present-search | data-driven | `searchProcessDefinitions.variant.spec.ts:88` | variant-2 - searchProcessDefinitions - bpmn #1 | +| observe-present-search | data-driven | `searchProcessDefinitions.variant.spec.ts:140` | variant-3 - searchProcessDefinitions - path #1 | +| observe-present-search | data-driven | `searchProcessDefinitions.variant.spec.ts:215` | variant-4 - searchProcessDefinitions - path #1 | +| observe-absence | observe-absence | `searchProcessDefinitions.feature.spec.ts:59` | feature-2 - searchProcessDefinitions - negative empty (2) | + +### `resource` — 15 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`, `searchResources.feature.spec.ts`, `searchResources.variant.spec.ts` +- **Observation channel**: GET = 2, Search = 6 +- **Form-step counts**: create=5, observe-present-get=2, observe-present-search=6, delete=1, observe-absence=1 +- **Variants**: happy-path=4, observe-absence=1, data-driven=10 + +| 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:69` | feature-3 - createDeployment - dmn (3) | +| create | data-driven | `createDeployment.feature.spec.ts:97` | feature-4 - createDeployment - drd (4) | +| create | data-driven | `createDeployment.variant.spec.ts:13` | variant-1 - createDeployment - bpmn #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-search | happy-path | `searchResources.feature.spec.ts:12` | feature-1 - searchResources - base (1) | +| observe-present-search | data-driven | `searchResources.variant.spec.ts:13` | variant-1 - searchResources - bpmn #1 | +| observe-present-search | data-driven | `searchResources.variant.spec.ts:62` | variant-2 - searchResources - path #1 | +| observe-present-search | data-driven | `searchResources.variant.spec.ts:130` | variant-3 - searchResources - path #1 | +| observe-present-search | data-driven | `searchResources.variant.spec.ts:181` | variant-4 - searchResources - path #1 | +| observe-present-search | data-driven | `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) | + +### `decision-definition` — 14 tests + +- **Prerequisite to create**: deployed-decision +- **Files**: `evaluateDecision.feature.spec.ts`, `evaluateDecision.variant.spec.ts`, `getDecisionDefinition.feature.spec.ts`, `getDecisionDefinitionXML.feature.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 +- **Variants**: happy-path=4, observe-absence=1, data-driven=9 + +| 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:60` | feature-2 - evaluateDecision - oneOf group0 Decision evaluation by ID (2) | +| create | data-driven | `evaluateDecision.feature.spec.ts:111` | feature-3 - evaluateDecision - oneOf group0 Decision evaluation by key (3) | +| create | data-driven | `evaluateDecision.variant.spec.ts:13` | 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 | `searchDecisionDefinitions.variant.spec.ts:13` | variant-1 - searchDecisionDefinitions - dmn #1 | +| observe-present-search | data-driven | `searchDecisionDefinitions.variant.spec.ts:64` | variant-2 - searchDecisionDefinitions - path #1 | +| observe-present-search | data-driven | `searchDecisionDefinitions.variant.spec.ts:117` | variant-3 - searchDecisionDefinitions - dmn #1 | +| observe-present-search | data-driven | `searchDecisionDefinitions.variant.spec.ts:168` | variant-4 - searchDecisionDefinitions - drd #1 | +| observe-present-search | data-driven | `searchDecisionDefinitions.variant.spec.ts:219` | variant-5 - searchDecisionDefinitions - path #1 | +| observe-present-search | data-driven | `searchDecisionDefinitions.variant.spec.ts:272` | variant-6 - searchDecisionDefinitions - path #1 | +| observe-absence | observe-absence | `searchDecisionDefinitions.feature.spec.ts:37` | feature-2 - searchDecisionDefinitions - negative empty (2) | + +### `decision-requirements` — 8 tests + +- **Prerequisite to create**: deployed-drd +- **Files**: `getDecisionRequirements.feature.spec.ts`, `getDecisionRequirementsXML.feature.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 +- **Variants**: happy-path=3, observe-absence=1, data-driven=4 + +| 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 | `searchDecisionRequirements.variant.spec.ts:13` | variant-1 - searchDecisionRequirements - drd #1 | +| observe-present-search | data-driven | `searchDecisionRequirements.variant.spec.ts:64` | variant-2 - searchDecisionRequirements - path #1 | +| observe-present-search | data-driven | `searchDecisionRequirements.variant.spec.ts:117` | variant-3 - searchDecisionRequirements - path #1 | +| observe-present-search | data-driven | `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) | + +## 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**: 107 + +### `process-instance` — 107 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`, `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 +- **Variants**: happy-path=17, observe-absence=1, data-driven=89 + +| 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:56` | feature-2 - createProcessInstance - oneOf group0 Process creation by key (2) | +| create | data-driven | `createProcessInstance.feature.spec.ts:103` | 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:65` | variant-2 - createProcessInstance - bpmn #1 | +| create | data-driven | `createProcessInstance.variant.spec.ts:117` | variant-3 - createProcessInstance - bpmn #1 | +| create | data-driven | `createProcessInstance.variant.spec.ts:208` | variant-4 - createProcessInstance - bpmn #1 | +| create | data-driven | `createProcessInstance.variant.spec.ts:302` | 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 | `searchProcessInstanceIncidents.variant.spec.ts:13` | variant-1 - searchProcessInstanceIncidents - cycle/bpmn+bpmn #1 | +| observe-present-search | data-driven | `searchProcessInstanceIncidents.variant.spec.ts:109` | variant-2 - searchProcessInstanceIncidents - bpmn #1 | +| observe-present-search | data-driven | `searchProcessInstanceIncidents.variant.spec.ts:187` | variant-3 - searchProcessInstanceIncidents - bpmn #1 | +| observe-present-search | data-driven | `searchProcessInstanceIncidents.variant.spec.ts:297` | variant-4 - searchProcessInstanceIncidents - bpmn #1 | +| observe-present-search | data-driven | `searchProcessInstanceIncidents.variant.spec.ts:407` | variant-5 - searchProcessInstanceIncidents - bpmn #1 | +| observe-present-search | data-driven | `searchProcessInstanceIncidents.variant.spec.ts:511` | 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 | `searchProcessInstances.variant.spec.ts:13` | variant-1 - searchProcessInstances - path #1 | +| observe-present-search | data-driven | `searchProcessInstances.variant.spec.ts:87` | variant-2 - searchProcessInstances - bpmn #1 | +| observe-present-search | data-driven | `searchProcessInstances.variant.spec.ts:161` | variant-3 - searchProcessInstances - bpmn #1 | +| observe-present-search | data-driven | `searchProcessInstances.variant.spec.ts:235` | variant-4 - searchProcessInstances - bpmn #1 | +| observe-present-search | data-driven | `searchProcessInstances.variant.spec.ts:337` | variant-5 - searchProcessInstances - bpmn #1 | +| observe-present-search | data-driven | `searchProcessInstances.variant.spec.ts:440` | variant-6 - searchProcessInstances - path #1 | +| observe-present-search | data-driven | `searchProcessInstances.variant.spec.ts:518` | variant-7 - searchProcessInstances - bpmn #1 | +| observe-present-search | data-driven | `searchProcessInstances.variant.spec.ts:596` | variant-8 - searchProcessInstances - bpmn #1 | +| observe-present-search | data-driven | `searchProcessInstances.variant.spec.ts:674` | variant-9 - searchProcessInstances - bpmn #1 | +| observe-present-search | data-driven | `searchProcessInstances.variant.spec.ts:780` | variant-10 - searchProcessInstances - bpmn #1 | +| observe-present-search | data-driven | `searchProcessInstances.variant.spec.ts:887` | variant-11 - searchProcessInstances - path #1 | +| observe-present-search | data-driven | `searchProcessInstances.variant.spec.ts:982` | 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 | `migrateProcessInstancesBatchOperation.feature.spec.ts:12` | feature-1 - migrateProcessInstancesBatchOperation - base (1) | +| mutate | data-driven | `migrateProcessInstancesBatchOperation.variant.spec.ts:12` | variant-1 - migrateProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven | `migrateProcessInstancesBatchOperation.variant.spec.ts:66` | variant-2 - migrateProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven | `migrateProcessInstancesBatchOperation.variant.spec.ts:141` | variant-3 - migrateProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven | `migrateProcessInstancesBatchOperation.variant.spec.ts:216` | variant-4 - migrateProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven | `migrateProcessInstancesBatchOperation.variant.spec.ts:271` | variant-5 - migrateProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven | `migrateProcessInstancesBatchOperation.variant.spec.ts:326` | variant-6 - migrateProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven | `migrateProcessInstancesBatchOperation.variant.spec.ts:384` | variant-7 - migrateProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven | `migrateProcessInstancesBatchOperation.variant.spec.ts:463` | variant-8 - migrateProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven | `migrateProcessInstancesBatchOperation.variant.spec.ts:542` | variant-9 - migrateProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven | `migrateProcessInstancesBatchOperation.variant.spec.ts:601` | variant-10 - migrateProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven | `migrateProcessInstancesBatchOperation.variant.spec.ts:660` | variant-11 - migrateProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven | `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 | `modifyProcessInstancesBatchOperation.feature.spec.ts:11` | feature-1 - modifyProcessInstancesBatchOperation - base (1) | +| mutate | data-driven | `modifyProcessInstancesBatchOperation.variant.spec.ts:12` | variant-1 - modifyProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven | `modifyProcessInstancesBatchOperation.variant.spec.ts:65` | variant-2 - modifyProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven | `modifyProcessInstancesBatchOperation.variant.spec.ts:139` | variant-3 - modifyProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven | `modifyProcessInstancesBatchOperation.variant.spec.ts:213` | variant-4 - modifyProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven | `modifyProcessInstancesBatchOperation.variant.spec.ts:315` | variant-5 - modifyProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven | `modifyProcessInstancesBatchOperation.variant.spec.ts:417` | variant-6 - modifyProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven | `modifyProcessInstancesBatchOperation.variant.spec.ts:474` | variant-7 - modifyProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven | `modifyProcessInstancesBatchOperation.variant.spec.ts:552` | variant-8 - modifyProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven | `modifyProcessInstancesBatchOperation.variant.spec.ts:630` | variant-9 - modifyProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven | `modifyProcessInstancesBatchOperation.variant.spec.ts:736` | variant-10 - modifyProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven | `modifyProcessInstancesBatchOperation.variant.spec.ts:842` | variant-11 - modifyProcessInstancesBatchOperation - bpmn #1 | +| mutate | data-driven | `modifyProcessInstancesBatchOperation.variant.spec.ts:946` | variant-12 - modifyProcessInstancesBatchOperation - bpmn #1 | +| mutate | happy-path | `resolveIncidentsBatchOperation.feature.spec.ts:11` | feature-1 - resolveIncidentsBatchOperation - base (1) | +| mutate | data-driven | `resolveIncidentsBatchOperation.variant.spec.ts:12` | variant-1 - resolveIncidentsBatchOperation - bpmn #1 | +| mutate | data-driven | `resolveIncidentsBatchOperation.variant.spec.ts:64` | variant-2 - resolveIncidentsBatchOperation - bpmn #1 | +| mutate | data-driven | `resolveIncidentsBatchOperation.variant.spec.ts:137` | variant-3 - resolveIncidentsBatchOperation - bpmn #1 | +| mutate | data-driven | `resolveIncidentsBatchOperation.variant.spec.ts:210` | variant-4 - resolveIncidentsBatchOperation - bpmn #1 | +| mutate | data-driven | `resolveIncidentsBatchOperation.variant.spec.ts:311` | variant-5 - resolveIncidentsBatchOperation - bpmn #1 | +| mutate | data-driven | `resolveIncidentsBatchOperation.variant.spec.ts:412` | variant-6 - resolveIncidentsBatchOperation - bpmn #1 | +| mutate | data-driven | `resolveIncidentsBatchOperation.variant.spec.ts:468` | variant-7 - resolveIncidentsBatchOperation - bpmn #1 | +| mutate | data-driven | `resolveIncidentsBatchOperation.variant.spec.ts:545` | variant-8 - resolveIncidentsBatchOperation - bpmn #1 | +| mutate | data-driven | `resolveIncidentsBatchOperation.variant.spec.ts:622` | variant-9 - resolveIncidentsBatchOperation - bpmn #1 | +| mutate | data-driven | `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 | `cancelProcessInstancesBatchOperation.feature.spec.ts:11` | feature-1 - cancelProcessInstancesBatchOperation - base (1) | +| delete | data-driven | `cancelProcessInstancesBatchOperation.variant.spec.ts:12` | variant-1 - cancelProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven | `cancelProcessInstancesBatchOperation.variant.spec.ts:64` | variant-2 - cancelProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven | `cancelProcessInstancesBatchOperation.variant.spec.ts:137` | variant-3 - cancelProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven | `cancelProcessInstancesBatchOperation.variant.spec.ts:210` | variant-4 - cancelProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven | `cancelProcessInstancesBatchOperation.variant.spec.ts:311` | variant-5 - cancelProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven | `cancelProcessInstancesBatchOperation.variant.spec.ts:412` | variant-6 - cancelProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven | `cancelProcessInstancesBatchOperation.variant.spec.ts:468` | variant-7 - cancelProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven | `cancelProcessInstancesBatchOperation.variant.spec.ts:545` | variant-8 - cancelProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven | `cancelProcessInstancesBatchOperation.variant.spec.ts:622` | variant-9 - cancelProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven | `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 | `deleteProcessInstancesBatchOperation.feature.spec.ts:11` | feature-1 - deleteProcessInstancesBatchOperation - base (1) | +| delete | data-driven | `deleteProcessInstancesBatchOperation.variant.spec.ts:12` | variant-1 - deleteProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven | `deleteProcessInstancesBatchOperation.variant.spec.ts:64` | variant-2 - deleteProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven | `deleteProcessInstancesBatchOperation.variant.spec.ts:137` | variant-3 - deleteProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven | `deleteProcessInstancesBatchOperation.variant.spec.ts:210` | variant-4 - deleteProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven | `deleteProcessInstancesBatchOperation.variant.spec.ts:311` | variant-5 - deleteProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven | `deleteProcessInstancesBatchOperation.variant.spec.ts:412` | variant-6 - deleteProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven | `deleteProcessInstancesBatchOperation.variant.spec.ts:468` | variant-7 - deleteProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven | `deleteProcessInstancesBatchOperation.variant.spec.ts:545` | variant-8 - deleteProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven | `deleteProcessInstancesBatchOperation.variant.spec.ts:622` | variant-9 - deleteProcessInstancesBatchOperation - bpmn #1 | +| delete | data-driven | `deleteProcessInstancesBatchOperation.variant.spec.ts:727` | variant-10 - deleteProcessInstancesBatchOperation - bpmn #1 | +| observe-absence | observe-absence | `searchProcessInstances.feature.spec.ts:79` | feature-2 - searchProcessInstances - negative empty (2) | + +## E. Batch-Operation Lifecycle + +**Form**: Create batch (via batch-creating process-instance APIs, prerequisite) → Get batch → Search batch → Search items → Suspend → Cancel + +**Total tests**: 13 + +### `batch-operation` — 8 tests + +- **Prerequisite to create**: running-process-instance(s) +- **Files**: `cancelBatchOperation.feature.spec.ts`, `getBatchOperation.feature.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 +- **Variants**: happy-path=5, observe-absence=1, data-driven=2 + +| form step | variants | file:line | test name | +|--|--|--|--| +| observe-present-get | happy-path | `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 | `searchBatchOperations.variant.spec.ts:12` | variant-1 - searchBatchOperations - path #1 | +| observe-present-search | data-driven | `searchBatchOperations.variant.spec.ts:65` | variant-2 - searchBatchOperations - path #1 | +| mutate | happy-path | `resumeBatchOperation.feature.spec.ts:8` | feature-1 - resumeBatchOperation - base (1) | +| mutate | happy-path | `suspendBatchOperation.feature.spec.ts:8` | feature-1 - suspendBatchOperation - base (1) | +| delete | happy-path | `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) | + +### `batch-operation-item` — 5 tests + +- **Prerequisite to create**: running-batch-operation +- **Files**: `searchBatchOperationItems.feature.spec.ts`, `searchBatchOperationItems.variant.spec.ts` +- **Observation channel**: GET = 0, Search = 4 +- **Form-step counts**: observe-present-search=4, observe-absence=1 +- **Variants**: happy-path=1, observe-absence=1, data-driven=3 + +| 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 | `searchBatchOperationItems.variant.spec.ts:13` | variant-1 - searchBatchOperationItems - bpmn #1 | +| observe-present-search | data-driven | `searchBatchOperationItems.variant.spec.ts:84` | variant-2 - searchBatchOperationItems - path #1 | +| observe-present-search | data-driven | `searchBatchOperationItems.variant.spec.ts:137` | variant-3 - searchBatchOperationItems - path #1 | +| observe-absence | observe-absence | `searchBatchOperationItems.feature.spec.ts:37` | feature-2 - searchBatchOperationItems - negative empty (2) | + +## 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**: 20 + +### `user-task` — 20 tests + +- **Prerequisite to create**: running-process-instance-with-user-task +- **Files**: `assignUserTask.feature.spec.ts`, `completeUserTask.feature.spec.ts`, `getUserTask.feature.spec.ts`, `getUserTaskForm.feature.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 = 2, Search = 13 +- **Form-step counts**: observe-present-get=2, observe-present-search=13, mutate=3, delete=1, observe-absence=1 +- **Variants**: happy-path=10, observe-absence=1, data-driven=9 + +| form step | variants | file:line | test name | +|--|--|--|--| +| 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 | `searchUserTasks.variant.spec.ts:13` | variant-1 - searchUserTasks - bpmn #1 | +| observe-present-search | data-driven | `searchUserTasks.variant.spec.ts:114` | variant-2 - searchUserTasks - bpmn #1 | +| observe-present-search | data-driven | `searchUserTasks.variant.spec.ts:164` | variant-3 - searchUserTasks - path #1 | +| observe-present-search | data-driven | `searchUserTasks.variant.spec.ts:232` | variant-4 - searchUserTasks - bpmn #1 | +| observe-present-search | data-driven | `searchUserTasks.variant.spec.ts:282` | variant-5 - searchUserTasks - bpmn #1 | +| observe-present-search | data-driven | `searchUserTasks.variant.spec.ts:353` | variant-6 - searchUserTasks - bpmn #1 | +| observe-present-search | data-driven | `searchUserTasks.variant.spec.ts:454` | variant-7 - searchUserTasks - bpmn #1 | +| observe-present-search | data-driven | `searchUserTasks.variant.spec.ts:552` | variant-8 - searchUserTasks - path #1 | +| observe-present-search | data-driven | `searchUserTasks.variant.spec.ts:603` | 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) | + +## G. Job Lifecycle & Stats + +**Form**: Deploy process w/ job (prerequisite) → Activate → Complete / Fail / Error / Update → Search jobs → Aggregate (5 statistics endpoints) + +**Total tests**: 27 + +### `job` — 27 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`, `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 +- **Variants**: happy-path=11, observe-absence=2, data-driven=14 + +| 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:13` | variant-1 - activateJobs - bpmn #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 | `getJobErrorStatistics.feature.spec.ts:11` | feature-1 - getJobErrorStatistics - base (1) | +| observe-present-get | data-driven | `getJobErrorStatistics.variant.spec.ts:12` | variant-1 - getJobErrorStatistics - path #1 | +| observe-present-get | happy-path | `getJobTimeSeriesStatistics.feature.spec.ts:11` | feature-1 - getJobTimeSeriesStatistics - base (1) | +| observe-present-get | data-driven | `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 | `getJobTypeStatistics.variant.spec.ts:12` | variant-1 - getJobTypeStatistics - path #1 | +| observe-present-get | happy-path | `getJobWorkerStatistics.feature.spec.ts:11` | feature-1 - getJobWorkerStatistics - base (1) | +| observe-present-get | data-driven | `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 | `searchJobs.variant.spec.ts:13` | variant-1 - searchJobs - bpmn #1 | +| observe-present-search | data-driven | `searchJobs.variant.spec.ts:116` | variant-2 - searchJobs - bpmn #1 | +| observe-present-search | data-driven | `searchJobs.variant.spec.ts:219` | variant-3 - searchJobs - path #1 | +| observe-present-search | data-driven | `searchJobs.variant.spec.ts:293` | variant-4 - searchJobs - bpmn #1 | +| observe-present-search | data-driven | `searchJobs.variant.spec.ts:366` | variant-5 - searchJobs - path #1 | +| observe-present-search | data-driven | `searchJobs.variant.spec.ts:461` | 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:77` | feature-2 - activateJobs - negative empty (2) | +| observe-absence | observe-absence | `searchJobs.feature.spec.ts:79` | feature-2 - searchJobs - negative empty (2) | + +## H. Incident Lifecycle + +**Form**: Deploy process + failing job (prerequisite) → Incident raised → Get incident → Search → Resolve → Statistics (by definition / by error) + +**Total tests**: 12 + +### `incident` — 12 tests + +- **Prerequisite to create**: running-process-instance-with-failing-job +- **Files**: `getIncident.feature.spec.ts`, `getProcessInstanceStatisticsByDefinition.feature.spec.ts`, `getProcessInstanceStatisticsByError.feature.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 +- **Variants**: happy-path=5, observe-absence=1, data-driven=6 + +| 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 | `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 | `searchIncidents.variant.spec.ts:13` | variant-1 - searchIncidents - bpmn #1 | +| observe-present-search | data-driven | `searchIncidents.variant.spec.ts:63` | variant-2 - searchIncidents - bpmn #1 | +| observe-present-search | data-driven | `searchIncidents.variant.spec.ts:134` | variant-3 - searchIncidents - bpmn #1 | +| observe-present-search | data-driven | `searchIncidents.variant.spec.ts:236` | variant-4 - searchIncidents - bpmn #1 | +| observe-present-search | data-driven | `searchIncidents.variant.spec.ts:338` | variant-5 - searchIncidents - path #1 | +| observe-present-search | data-driven | `searchIncidents.variant.spec.ts:389` | 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) | + +## I. Decision-Instance Lifecycle + +**Form**: Deploy DRD/DMN (prerequisite) → Evaluate → Get instance → Search → Delete (single + batch) → Search (Observe Absence) + +**Total tests**: 27 + +### `decision-instance` — 27 tests + +- **Prerequisite to create**: deployed-decision +- **Files**: `deleteDecisionInstance.feature.spec.ts`, `deleteDecisionInstancesBatchOperation.feature.spec.ts`, `deleteDecisionInstancesBatchOperation.variant.spec.ts`, `getDecisionInstance.feature.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 +- **Variants**: happy-path=4, observe-absence=1, data-driven=21, unlabeled=1 + +| 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 | `searchDecisionInstances.variant.spec.ts:13` | variant-1 - searchDecisionInstances - dmn #1 | +| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:92` | variant-2 - searchDecisionInstances - dmn #1 | +| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:143` | variant-3 - searchDecisionInstances - path #1 | +| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:196` | variant-4 - searchDecisionInstances - dmn #1 | +| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:275` | variant-5 - searchDecisionInstances - bpmn #1 | +| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:327` | variant-6 - searchDecisionInstances - bpmn #1 | +| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:400` | variant-7 - searchDecisionInstances - dmn #1 | +| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:451` | variant-8 - searchDecisionInstances - bpmn #1 | +| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:553` | variant-9 - searchDecisionInstances - dmn #1 | +| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:604` | variant-10 - searchDecisionInstances - drd #1 | +| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:655` | variant-11 - searchDecisionInstances - path #1 | +| observe-present-search | data-driven | `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 | `deleteDecisionInstancesBatchOperation.feature.spec.ts:11` | feature-1 - deleteDecisionInstancesBatchOperation - base (1) | +| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:12` | variant-1 - deleteDecisionInstancesBatchOperation - dmn #1 | +| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:90` | variant-2 - deleteDecisionInstancesBatchOperation - dmn #1 | +| delete | unlabeled | `deleteDecisionInstancesBatchOperation.variant.spec.ts:140` | variant-3 - scenario | +| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:170` | variant-4 - deleteDecisionInstancesBatchOperation - dmn #1 | +| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:248` | variant-5 - deleteDecisionInstancesBatchOperation - bpmn #1 | +| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:300` | variant-6 - deleteDecisionInstancesBatchOperation - bpmn #1 | +| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:372` | variant-7 - deleteDecisionInstancesBatchOperation - dmn #1 | +| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:422` | variant-8 - deleteDecisionInstancesBatchOperation - bpmn #1 | +| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:523` | variant-9 - deleteDecisionInstancesBatchOperation - dmn #1 | +| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:573` | variant-10 - deleteDecisionInstancesBatchOperation - drd #1 | +| observe-absence | observe-absence | `searchDecisionInstances.feature.spec.ts:37` | feature-2 - searchDecisionInstances - negative empty (2) | + +## J/K/L. Observation-only + +**Form**: Perform an action elsewhere (prerequisite) → Get / Search to observe + +**Total tests**: 52 + +### `element-instance` — 25 tests + +- **Prerequisite to create**: running-process-instance +- **Files**: `activateAdHocSubProcessActivities.feature.spec.ts`, `activateAdHocSubProcessActivities.variant.spec.ts`, `createElementInstanceVariables.feature.spec.ts`, `getElementInstance.feature.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 +- **Variants**: happy-path=5, observe-absence=1, data-driven=19 + +| 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 | `searchElementInstanceIncidents.variant.spec.ts:13` | variant-1 - searchElementInstanceIncidents - bpmn #1 | +| observe-present-search | data-driven | `searchElementInstanceIncidents.variant.spec.ts:122` | variant-2 - searchElementInstanceIncidents - bpmn #1 | +| observe-present-search | data-driven | `searchElementInstanceIncidents.variant.spec.ts:231` | variant-3 - searchElementInstanceIncidents - bpmn #1 | +| observe-present-search | data-driven | `searchElementInstanceIncidents.variant.spec.ts:340` | variant-4 - searchElementInstanceIncidents - bpmn #1 | +| observe-present-search | data-driven | `searchElementInstanceIncidents.variant.spec.ts:449` | variant-5 - searchElementInstanceIncidents - bpmn #1 | +| observe-present-search | data-driven | `searchElementInstanceIncidents.variant.spec.ts:583` | 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 | `searchElementInstances.variant.spec.ts:13` | variant-1 - searchElementInstances - bpmn #1 | +| observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:63` | variant-2 - searchElementInstances - bpmn #1 | +| observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:162` | variant-3 - searchElementInstances - path #1 | +| observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:215` | variant-4 - searchElementInstances - bpmn #1 | +| observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:314` | variant-5 - searchElementInstances - bpmn #1 | +| observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:384` | variant-6 - searchElementInstances - bpmn #1 | +| observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:434` | variant-7 - searchElementInstances - bpmn #1 | +| observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:595` | variant-8 - searchElementInstances - bpmn #1 | +| observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:694` | variant-9 - searchElementInstances - path #1 | +| observe-present-search | data-driven | `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) | + +### `audit-log` — 18 tests + +- **Prerequisite to create**: any-prior-action +- **Files**: `getAuditLog.feature.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 +- **Variants**: happy-path=2, observe-absence=1, data-driven=11, unlabeled=4 + +| 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 | `searchAuditLogs.variant.spec.ts:13` | variant-1 - scenario | +| observe-present-search | data-driven | `searchAuditLogs.variant.spec.ts:42` | variant-2 - searchAuditLogs - bpmn #1 | +| observe-present-search | data-driven | `searchAuditLogs.variant.spec.ts:92` | variant-3 - searchAuditLogs - bpmn #1 | +| observe-present-search | data-driven | `searchAuditLogs.variant.spec.ts:163` | variant-4 - searchAuditLogs - bpmn #1 | +| observe-present-search | unlabeled | `searchAuditLogs.variant.spec.ts:265` | variant-5 - scenario | +| observe-present-search | unlabeled | `searchAuditLogs.variant.spec.ts:293` | variant-6 - scenario | +| observe-present-search | data-driven | `searchAuditLogs.variant.spec.ts:322` | variant-7 - searchAuditLogs - form #1 | +| observe-present-search | data-driven | `searchAuditLogs.variant.spec.ts:371` | variant-8 - searchAuditLogs - bpmn #1 | +| observe-present-search | data-driven | `searchAuditLogs.variant.spec.ts:421` | variant-9 - searchAuditLogs - bpmn #1 | +| observe-present-search | data-driven | `searchAuditLogs.variant.spec.ts:523` | variant-10 - searchAuditLogs - drd #1 | +| observe-present-search | data-driven | `searchAuditLogs.variant.spec.ts:572` | variant-11 - searchAuditLogs - dmn #1 | +| observe-present-search | data-driven | `searchAuditLogs.variant.spec.ts:621` | variant-12 - searchAuditLogs - dmn #1 | +| observe-present-search | unlabeled | `searchAuditLogs.variant.spec.ts:697` | variant-13 - scenario | +| observe-present-search | data-driven | `searchAuditLogs.variant.spec.ts:725` | variant-14 - searchAuditLogs - path #1 | +| observe-present-search | data-driven | `searchAuditLogs.variant.spec.ts:776` | variant-15 - searchAuditLogs - path #1 | +| observe-absence | observe-absence | `searchAuditLogs.feature.spec.ts:35` | feature-2 - searchAuditLogs - negative empty (2) | + +### `variable` — 9 tests + +- **Prerequisite to create**: running-process-instance +- **Files**: `getVariable.feature.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 +- **Variants**: happy-path=2, observe-absence=1, data-driven=4, unlabeled=2 + +| 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 | `searchVariables.variant.spec.ts:13` | variant-1 - searchVariables - path #1 | +| observe-present-search | unlabeled | `searchVariables.variant.spec.ts:64` | variant-2 - scenario | +| observe-present-search | unlabeled | `searchVariables.variant.spec.ts:93` | variant-3 - scenario | +| observe-present-search | data-driven | `searchVariables.variant.spec.ts:122` | variant-4 - searchVariables - bpmn #1 | +| observe-present-search | data-driven | `searchVariables.variant.spec.ts:191` | variant-5 - searchVariables - path #1 | +| observe-present-search | data-driven | `searchVariables.variant.spec.ts:242` | variant-6 - searchVariables - path #1 | +| observe-absence | observe-absence | `searchVariables.feature.spec.ts:35` | feature-2 - searchVariables - negative empty (2) | + +## M. Messaging/Signals + +**Form**: Deploy process with catch event (prerequisite) → Publish/Correlate/Broadcast → Search subscriptions / correlated messages + +**Total tests**: 22 + +### `correlated-message-subscription` — 8 tests + +- **Prerequisite to create**: deployed-process-with-message-catch-event + correlated-message +- **Files**: `searchCorrelatedMessageSubscriptions.feature.spec.ts`, `searchCorrelatedMessageSubscriptions.variant.spec.ts` +- **Observation channel**: GET = 0, Search = 7 +- **Form-step counts**: observe-present-search=7, observe-absence=1 +- **Variants**: happy-path=1, observe-absence=1, data-driven=6 + +| 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 | `searchCorrelatedMessageSubscriptions.variant.spec.ts:13` | variant-1 - searchCorrelatedMessageSubscriptions - bpmn #1 | +| observe-present-search | data-driven | `searchCorrelatedMessageSubscriptions.variant.spec.ts:117` | variant-2 - searchCorrelatedMessageSubscriptions - bpmn #1 | +| observe-present-search | data-driven | `searchCorrelatedMessageSubscriptions.variant.spec.ts:170` | variant-3 - searchCorrelatedMessageSubscriptions - bpmn #1 | +| observe-present-search | data-driven | `searchCorrelatedMessageSubscriptions.variant.spec.ts:244` | variant-4 - searchCorrelatedMessageSubscriptions - path #1 | +| observe-present-search | data-driven | `searchCorrelatedMessageSubscriptions.variant.spec.ts:305` | variant-5 - searchCorrelatedMessageSubscriptions - path #1 | +| observe-present-search | data-driven | `searchCorrelatedMessageSubscriptions.variant.spec.ts:359` | variant-6 - searchCorrelatedMessageSubscriptions - path #1 | +| observe-absence | observe-absence | `searchCorrelatedMessageSubscriptions.feature.spec.ts:38` | feature-2 - searchCorrelatedMessageSubscriptions - negative empty (2) | + +### `message-subscriptions` — 8 tests + +- **Prerequisite to create**: deployed-process-with-message-catch-event +- **Files**: `searchMessageSubscriptions.feature.spec.ts`, `searchMessageSubscriptions.variant.spec.ts` +- **Observation channel**: GET = 0, Search = 7 +- **Form-step counts**: observe-present-search=7, observe-absence=1 +- **Variants**: happy-path=1, observe-absence=1, data-driven=6 + +| 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 | `searchMessageSubscriptions.variant.spec.ts:13` | variant-1 - searchMessageSubscriptions - path #1 | +| observe-present-search | data-driven | `searchMessageSubscriptions.variant.spec.ts:69` | variant-2 - searchMessageSubscriptions - bpmn #1 | +| observe-present-search | data-driven | `searchMessageSubscriptions.variant.spec.ts:121` | variant-3 - searchMessageSubscriptions - bpmn #1 | +| observe-present-search | data-driven | `searchMessageSubscriptions.variant.spec.ts:195` | variant-4 - searchMessageSubscriptions - bpmn #1 | +| observe-present-search | data-driven | `searchMessageSubscriptions.variant.spec.ts:298` | variant-5 - searchMessageSubscriptions - path #1 | +| observe-present-search | data-driven | `searchMessageSubscriptions.variant.spec.ts:351` | variant-6 - searchMessageSubscriptions - path #1 | +| observe-absence | observe-absence | `searchMessageSubscriptions.feature.spec.ts:37` | feature-2 - searchMessageSubscriptions - negative empty (2) | + +### `message` — 4 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` +- **Observation channel**: GET = 0, Search = 0 +- **Form-step counts**: create=4 +- **Variants**: happy-path=2, unlabeled=2 + +| form step | variants | file:line | test name | +|--|--|--|--| +| create | happy-path | `correlateMessage.feature.spec.ts:11` | feature-1 - correlateMessage - base (1) | +| create | unlabeled | `correlateMessage.variant.spec.ts:11` | variant-1 - scenario | +| create | happy-path | `publishMessage.feature.spec.ts:11` | feature-1 - publishMessage - base (1) | +| create | unlabeled | `publishMessage.variant.spec.ts:11` | variant-1 - scenario | + +### `signal` — 2 tests + +- **Prerequisite to create**: deployed-process-with-signal-catch-event +- **Files**: `broadcastSignal.feature.spec.ts`, `broadcastSignal.variant.spec.ts` +- **Observation channel**: GET = 0, Search = 0 +- **Form-step counts**: create=2 +- **Variants**: happy-path=1, unlabeled=1 + +| form step | variants | file:line | test name | +|--|--|--|--| +| create | happy-path | `broadcastSignal.feature.spec.ts:11` | feature-1 - broadcastSignal - base (1) | +| create | unlabeled | `broadcastSignal.variant.spec.ts:11` | variant-1 - scenario | + +## N. Engine Evaluation + +**Form**: Submit expression / conditional → Receive result (stateless, no entity persisted) + +**Total tests**: 4 + +### `conditional` — 3 tests + +- **Prerequisite to create**: none +- **Files**: `evaluateConditionals.feature.spec.ts`, `evaluateConditionals.variant.spec.ts` +- **Observation channel**: GET = 0, Search = 0 +- **Form-step counts**: create=3 +- **Variants**: happy-path=1, data-driven=1, unlabeled=1 + +| form step | variants | file:line | test name | +|--|--|--|--| +| create | happy-path | `evaluateConditionals.feature.spec.ts:11` | feature-1 - evaluateConditionals - base (1) | +| create | unlabeled | `evaluateConditionals.variant.spec.ts:12` | variant-1 - scenario | +| create | data-driven | `evaluateConditionals.variant.spec.ts:40` | variant-2 - evaluateConditionals - bpmn #1 | + +### `expression` — 1 tests + +- **Prerequisite to create**: none +- **Files**: `evaluateExpression.feature.spec.ts` +- **Observation channel**: GET = 0, Search = 0 +- **Form-step counts**: create=1 +- **Variants**: happy-path=1 + +| form step | variants | file:line | test name | +|--|--|--|--| +| create | happy-path | `evaluateExpression.feature.spec.ts:11` | feature-1 - evaluateExpression - base (1) | + +## O. System/Admin + +**Form**: Read system state (auth, license, cluster, clock, metrics) or perform admin action (pin/reset clock) + +**Total tests**: 9 + +### `system` — 2 tests + +- **Prerequisite to create**: none +- **Files**: `getSystemConfiguration.feature.spec.ts`, `getUsageMetrics.feature.spec.ts` +- **Observation channel**: GET = 2, Search = 0 +- **Form-step counts**: observe-present-get=2 +- **Variants**: happy-path=2 + +| 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) | + +### `clock` — 2 tests + +- **Prerequisite to create**: none +- **Files**: `pinClock.feature.spec.ts`, `resetClock.feature.spec.ts` +- **Observation channel**: GET = 0, Search = 0 +- **Form-step counts**: create=1, delete=1 +- **Variants**: happy-path=2 + +| form step | variants | file:line | test name | +|--|--|--|--| +| create | happy-path | `pinClock.feature.spec.ts:8` | feature-1 - pinClock - base (1) | +| delete | happy-path | `resetClock.feature.spec.ts:8` | feature-1 - resetClock - base (1) | + +### `setup` — 1 tests + +- **Prerequisite to create**: none +- **Files**: `createAdminUser.feature.spec.ts` +- **Observation channel**: GET = 0, Search = 0 +- **Form-step counts**: create=1 +- **Variants**: happy-path=1 + +| form step | variants | file:line | test name | +|--|--|--|--| +| create | happy-path | `createAdminUser.feature.spec.ts:11` | feature-1 - createAdminUser - base (1) | + +### `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**: 9 + +### `agent-instance` — 9 tests + +- **Prerequisite to create**: unknown +- **Files**: `getAgentInstance.feature.spec.ts`, `searchAgentInstances.feature.spec.ts`, `searchAgentInstances.variant.spec.ts` +- **Observation channel**: GET = 1, Search = 7 +- **Form-step counts**: observe-present-get=1, observe-present-search=7, observe-absence=1 +- **Variants**: happy-path=2, observe-absence=1, data-driven=5, unlabeled=1 + +| form step | variants | file:line | test name | +|--|--|--|--| +| observe-present-get | happy-path | `getAgentInstance.feature.spec.ts:12` | feature-1 - getAgentInstance - base (1) | +| observe-present-search | happy-path | `searchAgentInstances.feature.spec.ts:12` | feature-1 - searchAgentInstances - base (1) | +| observe-present-search | unlabeled | `searchAgentInstances.variant.spec.ts:13` | variant-1 - scenario | +| observe-present-search | data-driven | `searchAgentInstances.variant.spec.ts:44` | variant-2 - searchAgentInstances - bpmn #1 | +| observe-present-search | data-driven | `searchAgentInstances.variant.spec.ts:145` | variant-3 - searchAgentInstances - bpmn #1 | +| observe-present-search | data-driven | `searchAgentInstances.variant.spec.ts:218` | variant-4 - searchAgentInstances - bpmn #1 | +| observe-present-search | data-driven | `searchAgentInstances.variant.spec.ts:270` | variant-5 - searchAgentInstances - path #1 | +| observe-present-search | data-driven | `searchAgentInstances.variant.spec.ts:334` | variant-6 - searchAgentInstances - path #1 | +| observe-absence | observe-absence | `searchAgentInstances.feature.spec.ts:37` | feature-2 - searchAgentInstances - negative empty (2) | + diff --git a/coverage-analysis/coverage_matrix.csv b/coverage-analysis/coverage_matrix.csv new file mode 100644 index 0000000..c58126f --- /dev/null +++ b/coverage-analysis/coverage_matrix.csv @@ -0,0 +1,102 @@ +entity,operation,total,happy-path,bad-request,unauthorized,forbidden,not-found,conflict,pagination-sort,filter,observe-absence,data-driven,unlabeled +process-instance,create,8,1,0,0,0,0,0,0,0,0,7,0 +process-instance,get,4,4,0,0,0,0,0,0,0,0,0,0 +process-instance,update,50,6,0,0,0,0,0,0,0,0,44,0 +process-instance,delete,24,4,0,0,0,0,0,0,0,0,20,0 +process-instance,search,21,2,0,0,0,0,0,0,0,1,18,0 +tenant,create,1,1,0,0,0,0,0,0,0,0,0,0 +tenant,get,1,1,0,0,0,0,0,0,0,0,0,0 +tenant,update,6,6,0,0,0,0,0,0,0,0,0,0 +tenant,delete,6,6,0,0,0,0,0,0,0,0,0,0 +tenant,search,22,6,0,0,0,0,0,0,0,1,15,0 +role,create,1,1,0,0,0,0,0,0,0,0,0,0 +role,get,1,1,0,0,0,0,0,0,0,0,0,0 +role,update,5,5,0,0,0,0,0,0,0,0,0,0 +role,delete,5,5,0,0,0,0,0,0,0,0,0,0 +role,search,18,5,0,0,0,0,0,0,0,1,12,0 +group,create,1,1,0,0,0,0,0,0,0,0,0,0 +group,get,1,1,0,0,0,0,0,0,0,0,0,0 +group,update,4,4,0,0,0,0,0,0,0,0,0,0 +group,delete,4,4,0,0,0,0,0,0,0,0,0,0 +group,search,18,5,0,0,0,0,0,0,0,1,12,0 +job,create,4,2,0,0,0,0,0,0,0,1,1,0 +job,get,9,5,0,0,0,0,0,0,0,0,4,0 +job,update,6,3,0,0,0,0,0,0,0,0,3,0 +job,search,8,1,0,0,0,0,0,0,0,1,6,0 +decision-instance,get,1,1,0,0,0,0,0,0,0,0,0,0 +decision-instance,delete,12,2,0,0,0,0,0,0,0,0,9,1 +decision-instance,search,14,1,0,0,0,0,0,0,0,1,12,0 +process-definition,get,21,7,0,0,0,0,0,0,0,0,14,0 +process-definition,search,6,1,0,0,0,0,0,0,0,1,4,0 +element-instance,create,3,2,0,0,0,0,0,0,0,0,1,0 +element-instance,get,1,1,0,0,0,0,0,0,0,0,0,0 +element-instance,search,21,2,0,0,0,0,0,0,0,1,18,0 +user-task,get,2,2,0,0,0,0,0,0,0,0,0,0 +user-task,update,3,3,0,0,0,0,0,0,0,0,0,0 +user-task,delete,1,1,0,0,0,0,0,0,0,0,0,0 +user-task,search,14,4,0,0,0,0,0,0,0,1,9,0 +audit-log,get,1,1,0,0,0,0,0,0,0,0,0,0 +audit-log,search,17,1,0,0,0,0,0,0,0,1,11,4 +resource,create,5,0,0,0,0,0,0,0,0,0,5,0 +resource,get,2,2,0,0,0,0,0,0,0,0,0,0 +resource,delete,1,1,0,0,0,0,0,0,0,0,0,0 +resource,search,7,1,0,0,0,0,0,0,0,1,5,0 +decision-definition,create,4,1,0,0,0,0,0,0,0,0,3,0 +decision-definition,get,2,2,0,0,0,0,0,0,0,0,0,0 +decision-definition,search,8,1,0,0,0,0,0,0,0,1,6,0 +authorization,create,3,1,0,0,0,0,0,0,0,0,2,0 +authorization,get,1,1,0,0,0,0,0,0,0,0,0,0 +authorization,update,3,1,0,0,0,0,0,0,0,0,2,0 +authorization,delete,1,1,0,0,0,0,0,0,0,0,0,0 +authorization,search,4,1,0,0,0,0,0,0,0,1,2,0 +cluster-variables,create,2,2,0,0,0,0,0,0,0,0,0,0 +cluster-variables,get,2,2,0,0,0,0,0,0,0,0,0,0 +cluster-variables,update,2,2,0,0,0,0,0,0,0,0,0,0 +cluster-variables,delete,2,2,0,0,0,0,0,0,0,0,0,0 +cluster-variables,search,4,1,0,0,0,0,0,0,0,1,2,0 +incident,get,3,3,0,0,0,0,0,0,0,0,0,0 +incident,update,1,1,0,0,0,0,0,0,0,0,0,0 +incident,search,8,1,0,0,0,0,0,0,0,1,6,0 +document,create,7,3,0,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 +mapping-rule,create,1,1,0,0,0,0,0,0,0,0,0,0 +mapping-rule,get,1,1,0,0,0,0,0,0,0,0,0,0 +mapping-rule,update,1,1,0,0,0,0,0,0,0,0,0,0 +mapping-rule,delete,1,1,0,0,0,0,0,0,0,0,0,0 +mapping-rule,search,5,1,0,0,0,0,0,0,0,1,3,0 +agent-instance,get,1,1,0,0,0,0,0,0,0,0,0,0 +agent-instance,search,8,1,0,0,0,0,0,0,0,1,5,1 +variable,get,1,1,0,0,0,0,0,0,0,0,0,0 +variable,search,8,1,0,0,0,0,0,0,0,1,4,2 +batch-operation,get,1,1,0,0,0,0,0,0,0,0,0,0 +batch-operation,update,2,2,0,0,0,0,0,0,0,0,0,0 +batch-operation,delete,1,1,0,0,0,0,0,0,0,0,0,0 +batch-operation,search,4,1,0,0,0,0,0,0,0,1,2,0 +global-task-listener,create,1,1,0,0,0,0,0,0,0,0,0,0 +global-task-listener,get,1,1,0,0,0,0,0,0,0,0,0,0 +global-task-listener,update,1,1,0,0,0,0,0,0,0,0,0,0 +global-task-listener,delete,1,1,0,0,0,0,0,0,0,0,0,0 +global-task-listener,search,4,1,0,0,0,0,0,0,0,1,2,0 +user,create,1,1,0,0,0,0,0,0,0,0,0,0 +user,get,1,1,0,0,0,0,0,0,0,0,0,0 +user,update,1,1,0,0,0,0,0,0,0,0,0,0 +user,delete,1,1,0,0,0,0,0,0,0,0,0,0 +user,search,4,1,0,0,0,0,0,0,0,1,2,0 +decision-requirements,get,2,2,0,0,0,0,0,0,0,0,0,0 +decision-requirements,search,6,1,0,0,0,0,0,0,0,1,4,0 +correlated-message-subscription,search,8,1,0,0,0,0,0,0,0,1,6,0 +message-subscriptions,search,8,1,0,0,0,0,0,0,0,1,6,0 +batch-operation-item,search,5,1,0,0,0,0,0,0,0,1,3,0 +message,create,4,2,0,0,0,0,0,0,0,0,0,2 +conditional,create,3,1,0,0,0,0,0,0,0,0,1,1 +signal,create,2,1,0,0,0,0,0,0,0,0,0,1 +system,get,2,2,0,0,0,0,0,0,0,0,0,0 +clock,create,1,1,0,0,0,0,0,0,0,0,0,0 +clock,delete,1,1,0,0,0,0,0,0,0,0,0,0 +setup,create,1,1,0,0,0,0,0,0,0,0,0,0 +expression,create,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..e7f953d --- /dev/null +++ b/coverage-analysis/coverage_matrix.md @@ -0,0 +1,219 @@ +# api-test-generator — Coverage matrix (entity × operation × variant) + +Total test declarations: **518** across **37** entities. + +Variants are first-match labels derived from the generator's emitter suffix (`base`, `negative empty`, `bpmn|dmn|drd|form|path|cycle/...`, `oneOf ...`, `scenario`). 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 | 8 | ✓ | | | | | | | | | ✓ | | +| process-instance | get | 4 | ✓ | | | | | | | | | | | +| process-instance | update | 50 | ✓ | | | | | | | | | ✓ | | +| process-instance | delete | 24 | ✓ | | | | | | | | | ✓ | | +| process-instance | search | 21 | ✓ | | | | | | | | ✓ | ✓ | | +| tenant | create | 1 | ✓ | | | | | | | | | | | +| tenant | get | 1 | ✓ | | | | | | | | | | | +| tenant | update | 6 | ✓ | | | | | | | | | | | +| tenant | delete | 6 | ✓ | | | | | | | | | | | +| tenant | search | 22 | ✓ | | | | | | | | ✓ | ✓ | | +| role | create | 1 | ✓ | | | | | | | | | | | +| role | get | 1 | ✓ | | | | | | | | | | | +| role | update | 5 | ✓ | | | | | | | | | | | +| role | delete | 5 | ✓ | | | | | | | | | | | +| role | search | 18 | ✓ | | | | | | | | ✓ | ✓ | | +| group | create | 1 | ✓ | | | | | | | | | | | +| group | get | 1 | ✓ | | | | | | | | | | | +| group | update | 4 | ✓ | | | | | | | | | | | +| group | delete | 4 | ✓ | | | | | | | | | | | +| group | search | 18 | ✓ | | | | | | | | ✓ | ✓ | | +| job | create | 4 | ✓ | | | | | | | | ✓ | ✓ | | +| job | get | 9 | ✓ | | | | | | | | | ✓ | | +| job | update | 6 | ✓ | | | | | | | | | ✓ | | +| job | search | 8 | ✓ | | | | | | | | ✓ | ✓ | | +| decision-instance | get | 1 | ✓ | | | | | | | | | | | +| decision-instance | delete | 12 | ✓ | | | | | | | | | ✓ | ✓ | +| decision-instance | search | 14 | ✓ | | | | | | | | ✓ | ✓ | | +| process-definition | get | 21 | ✓ | | | | | | | | | ✓ | | +| process-definition | search | 6 | ✓ | | | | | | | | ✓ | ✓ | | +| element-instance | create | 3 | ✓ | | | | | | | | | ✓ | | +| element-instance | get | 1 | ✓ | | | | | | | | | | | +| element-instance | search | 21 | ✓ | | | | | | | | ✓ | ✓ | | +| user-task | get | 2 | ✓ | | | | | | | | | | | +| user-task | update | 3 | ✓ | | | | | | | | | | | +| user-task | delete | 1 | ✓ | | | | | | | | | | | +| user-task | search | 14 | ✓ | | | | | | | | ✓ | ✓ | | +| audit-log | get | 1 | ✓ | | | | | | | | | | | +| audit-log | search | 17 | ✓ | | | | | | | | ✓ | ✓ | ✓ | +| resource | create | 5 | | | | | | | | | | ✓ | | +| resource | get | 2 | ✓ | | | | | | | | | | | +| resource | delete | 1 | ✓ | | | | | | | | | | | +| resource | search | 7 | ✓ | | | | | | | | ✓ | ✓ | | +| decision-definition | create | 4 | ✓ | | | | | | | | | ✓ | | +| decision-definition | get | 2 | ✓ | | | | | | | | | | | +| decision-definition | search | 8 | ✓ | | | | | | | | ✓ | ✓ | | +| authorization | create | 3 | ✓ | | | | | | | | | ✓ | | +| authorization | get | 1 | ✓ | | | | | | | | | | | +| authorization | update | 3 | ✓ | | | | | | | | | ✓ | | +| authorization | delete | 1 | ✓ | | | | | | | | | | | +| authorization | search | 4 | ✓ | | | | | | | | ✓ | ✓ | | +| cluster-variables | create | 2 | ✓ | | | | | | | | | | | +| cluster-variables | get | 2 | ✓ | | | | | | | | | | | +| cluster-variables | update | 2 | ✓ | | | | | | | | | | | +| cluster-variables | delete | 2 | ✓ | | | | | | | | | | | +| cluster-variables | search | 4 | ✓ | | | | | | | | ✓ | ✓ | | +| incident | get | 3 | ✓ | | | | | | | | | | | +| incident | update | 1 | ✓ | | | | | | | | | | | +| incident | search | 8 | ✓ | | | | | | | | ✓ | ✓ | | +| document | create | 7 | ✓ | | | | | | | | | ✓ | | +| document | get | 1 | ✓ | | | | | | | | | | | +| document | delete | 1 | ✓ | | | | | | | | | | | +| mapping-rule | create | 1 | ✓ | | | | | | | | | | | +| mapping-rule | get | 1 | ✓ | | | | | | | | | | | +| mapping-rule | update | 1 | ✓ | | | | | | | | | | | +| mapping-rule | delete | 1 | ✓ | | | | | | | | | | | +| mapping-rule | search | 5 | ✓ | | | | | | | | ✓ | ✓ | | +| agent-instance | get | 1 | ✓ | | | | | | | | | | | +| agent-instance | search | 8 | ✓ | | | | | | | | ✓ | ✓ | ✓ | +| variable | get | 1 | ✓ | | | | | | | | | | | +| variable | search | 8 | ✓ | | | | | | | | ✓ | ✓ | ✓ | +| batch-operation | get | 1 | ✓ | | | | | | | | | | | +| batch-operation | update | 2 | ✓ | | | | | | | | | | | +| batch-operation | delete | 1 | ✓ | | | | | | | | | | | +| batch-operation | search | 4 | ✓ | | | | | | | | ✓ | ✓ | | +| global-task-listener | create | 1 | ✓ | | | | | | | | | | | +| global-task-listener | get | 1 | ✓ | | | | | | | | | | | +| global-task-listener | update | 1 | ✓ | | | | | | | | | | | +| global-task-listener | delete | 1 | ✓ | | | | | | | | | | | +| global-task-listener | search | 4 | ✓ | | | | | | | | ✓ | ✓ | | +| user | create | 1 | ✓ | | | | | | | | | | | +| user | get | 1 | ✓ | | | | | | | | | | | +| user | update | 1 | ✓ | | | | | | | | | | | +| user | delete | 1 | ✓ | | | | | | | | | | | +| user | search | 4 | ✓ | | | | | | | | ✓ | ✓ | | +| decision-requirements | get | 2 | ✓ | | | | | | | | | | | +| decision-requirements | search | 6 | ✓ | | | | | | | | ✓ | ✓ | | +| correlated-message-subscription | search | 8 | ✓ | | | | | | | | ✓ | ✓ | | +| message-subscriptions | search | 8 | ✓ | | | | | | | | ✓ | ✓ | | +| batch-operation-item | search | 5 | ✓ | | | | | | | | ✓ | ✓ | | +| message | create | 4 | ✓ | | | | | | | | | | ✓ | +| conditional | create | 3 | ✓ | | | | | | | | | ✓ | ✓ | +| signal | create | 2 | ✓ | | | | | | | | | | ✓ | +| system | get | 2 | ✓ | | | | | | | | | | | +| clock | create | 1 | ✓ | | | | | | | | | | | +| clock | delete | 1 | ✓ | | | | | | | | | | | +| setup | create | 1 | ✓ | | | | | | | | | | | +| expression | create | 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 | 8 | 1 | | | | | | | | | 7 | | +| process-instance | get | 4 | 4 | | | | | | | | | | | +| process-instance | update | 50 | 6 | | | | | | | | | 44 | | +| process-instance | delete | 24 | 4 | | | | | | | | | 20 | | +| process-instance | search | 21 | 2 | | | | | | | | 1 | 18 | | +| tenant | create | 1 | 1 | | | | | | | | | | | +| tenant | get | 1 | 1 | | | | | | | | | | | +| tenant | update | 6 | 6 | | | | | | | | | | | +| tenant | delete | 6 | 6 | | | | | | | | | | | +| tenant | search | 22 | 6 | | | | | | | | 1 | 15 | | +| role | create | 1 | 1 | | | | | | | | | | | +| role | get | 1 | 1 | | | | | | | | | | | +| role | update | 5 | 5 | | | | | | | | | | | +| role | delete | 5 | 5 | | | | | | | | | | | +| role | search | 18 | 5 | | | | | | | | 1 | 12 | | +| group | create | 1 | 1 | | | | | | | | | | | +| group | get | 1 | 1 | | | | | | | | | | | +| group | update | 4 | 4 | | | | | | | | | | | +| group | delete | 4 | 4 | | | | | | | | | | | +| group | search | 18 | 5 | | | | | | | | 1 | 12 | | +| job | create | 4 | 2 | | | | | | | | 1 | 1 | | +| job | get | 9 | 5 | | | | | | | | | 4 | | +| job | update | 6 | 3 | | | | | | | | | 3 | | +| job | search | 8 | 1 | | | | | | | | 1 | 6 | | +| decision-instance | get | 1 | 1 | | | | | | | | | | | +| decision-instance | delete | 12 | 2 | | | | | | | | | 9 | 1 | +| decision-instance | search | 14 | 1 | | | | | | | | 1 | 12 | | +| process-definition | get | 21 | 7 | | | | | | | | | 14 | | +| process-definition | search | 6 | 1 | | | | | | | | 1 | 4 | | +| element-instance | create | 3 | 2 | | | | | | | | | 1 | | +| element-instance | get | 1 | 1 | | | | | | | | | | | +| element-instance | search | 21 | 2 | | | | | | | | 1 | 18 | | +| user-task | get | 2 | 2 | | | | | | | | | | | +| user-task | update | 3 | 3 | | | | | | | | | | | +| user-task | delete | 1 | 1 | | | | | | | | | | | +| user-task | search | 14 | 4 | | | | | | | | 1 | 9 | | +| audit-log | get | 1 | 1 | | | | | | | | | | | +| audit-log | search | 17 | 1 | | | | | | | | 1 | 11 | 4 | +| resource | create | 5 | | | | | | | | | | 5 | | +| resource | get | 2 | 2 | | | | | | | | | | | +| resource | delete | 1 | 1 | | | | | | | | | | | +| resource | search | 7 | 1 | | | | | | | | 1 | 5 | | +| decision-definition | create | 4 | 1 | | | | | | | | | 3 | | +| decision-definition | get | 2 | 2 | | | | | | | | | | | +| decision-definition | search | 8 | 1 | | | | | | | | 1 | 6 | | +| authorization | create | 3 | 1 | | | | | | | | | 2 | | +| authorization | get | 1 | 1 | | | | | | | | | | | +| authorization | update | 3 | 1 | | | | | | | | | 2 | | +| authorization | delete | 1 | 1 | | | | | | | | | | | +| authorization | search | 4 | 1 | | | | | | | | 1 | 2 | | +| cluster-variables | create | 2 | 2 | | | | | | | | | | | +| cluster-variables | get | 2 | 2 | | | | | | | | | | | +| cluster-variables | update | 2 | 2 | | | | | | | | | | | +| cluster-variables | delete | 2 | 2 | | | | | | | | | | | +| cluster-variables | search | 4 | 1 | | | | | | | | 1 | 2 | | +| incident | get | 3 | 3 | | | | | | | | | | | +| incident | update | 1 | 1 | | | | | | | | | | | +| incident | search | 8 | 1 | | | | | | | | 1 | 6 | | +| document | create | 7 | 3 | | | | | | | | | 4 | | +| document | get | 1 | 1 | | | | | | | | | | | +| document | delete | 1 | 1 | | | | | | | | | | | +| mapping-rule | create | 1 | 1 | | | | | | | | | | | +| mapping-rule | get | 1 | 1 | | | | | | | | | | | +| mapping-rule | update | 1 | 1 | | | | | | | | | | | +| mapping-rule | delete | 1 | 1 | | | | | | | | | | | +| mapping-rule | search | 5 | 1 | | | | | | | | 1 | 3 | | +| agent-instance | get | 1 | 1 | | | | | | | | | | | +| agent-instance | search | 8 | 1 | | | | | | | | 1 | 5 | 1 | +| variable | get | 1 | 1 | | | | | | | | | | | +| variable | search | 8 | 1 | | | | | | | | 1 | 4 | 2 | +| batch-operation | get | 1 | 1 | | | | | | | | | | | +| batch-operation | update | 2 | 2 | | | | | | | | | | | +| batch-operation | delete | 1 | 1 | | | | | | | | | | | +| batch-operation | search | 4 | 1 | | | | | | | | 1 | 2 | | +| global-task-listener | create | 1 | 1 | | | | | | | | | | | +| global-task-listener | get | 1 | 1 | | | | | | | | | | | +| global-task-listener | update | 1 | 1 | | | | | | | | | | | +| global-task-listener | delete | 1 | 1 | | | | | | | | | | | +| global-task-listener | search | 4 | 1 | | | | | | | | 1 | 2 | | +| user | create | 1 | 1 | | | | | | | | | | | +| user | get | 1 | 1 | | | | | | | | | | | +| user | update | 1 | 1 | | | | | | | | | | | +| user | delete | 1 | 1 | | | | | | | | | | | +| user | search | 4 | 1 | | | | | | | | 1 | 2 | | +| decision-requirements | get | 2 | 2 | | | | | | | | | | | +| decision-requirements | search | 6 | 1 | | | | | | | | 1 | 4 | | +| correlated-message-subscription | search | 8 | 1 | | | | | | | | 1 | 6 | | +| message-subscriptions | search | 8 | 1 | | | | | | | | 1 | 6 | | +| batch-operation-item | search | 5 | 1 | | | | | | | | 1 | 3 | | +| message | create | 4 | 2 | | | | | | | | | | 2 | +| conditional | create | 3 | 1 | | | | | | | | | 1 | 1 | +| signal | create | 2 | 1 | | | | | | | | | | 1 | +| system | get | 2 | 2 | | | | | | | | | | | +| clock | create | 1 | 1 | | | | | | | | | | | +| clock | delete | 1 | 1 | | | | | | | | | | | +| setup | create | 1 | 1 | | | | | | | | | | | +| expression | create | 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..3921d90 --- /dev/null +++ b/coverage-analysis/gaps.md @@ -0,0 +1,240 @@ +# Coverage gaps (heuristic) + +Computed across **518** 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). + +- **clock** — has create+delete but no `observe-absence` test +- **document** — has create+delete but no `observe-absence` test + +## 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 + +- 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 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`. + +- agent-instance (search): no pagination-sort/filter labels +- audit-log (search): no pagination-sort/filter labels +- authorization (search): no pagination-sort/filter labels +- batch-operation (search): no pagination-sort/filter labels +- batch-operation-item (search): no pagination-sort/filter labels +- cluster-variables (search): no pagination-sort/filter labels +- correlated-message-subscription (search): no pagination-sort/filter labels +- decision-definition (search): no pagination-sort/filter labels +- decision-instance (search): no pagination-sort/filter labels +- decision-requirements (search): no pagination-sort/filter labels +- element-instance (search): no pagination-sort/filter labels +- global-task-listener (search): no pagination-sort/filter labels +- group (search): no pagination-sort/filter labels +- incident (search): no pagination-sort/filter labels +- job (search): no pagination-sort/filter labels +- mapping-rule (search): no pagination-sort/filter labels +- message-subscriptions (search): no pagination-sort/filter labels +- process-definition (search): no pagination-sort/filter labels +- process-instance (search): no pagination-sort/filter labels +- resource (search): no pagination-sort/filter labels +- role (search): no pagination-sort/filter labels +- tenant (search): no pagination-sort/filter labels +- user (search): no pagination-sort/filter labels +- user-task (search): no pagination-sort/filter labels +- variable (search): no pagination-sort/filter labels diff --git a/coverage-analysis/tests.csv b/coverage-analysis/tests.csv new file mode 100644 index 0000000..ab9096a --- /dev/null +++ b/coverage-analysis/tests.csv @@ -0,0 +1,519 @@ +file,line,entity,category,operation,form_step,prerequisite,method,path,operationId,variants,test_name +activateAdHocSubProcessActivities.feature.spec.ts,9,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,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,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,77,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,13,job,G. Job Lifecycle & Stats,create,create,running-process-instance-with-job,POST,/jobs/activation,activateJobs,data-driven,variant-1 - activateJobs - bpmn #1 +assignClientToGroup.feature.spec.ts,8,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,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,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,group,B. Membership/Association,update,mutate,group + mappingrule,PUT,/groups/{groupId}/mapping-rules/{mappingRuleId},assignMappingRuleToGroup,happy-path,feature-1 - assignMappingRuleToGroup - base (1) +assignMappingRuleToTenant.feature.spec.ts,8,tenant,B. Membership/Association,update,mutate,tenant + mappingrule,PUT,/tenants/{tenantId}/mapping-rules/{mappingRuleId},assignMappingRuleToTenant,happy-path,feature-1 - assignMappingRuleToTenant - base (1) +assignRoleToClient.feature.spec.ts,8,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,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,role,B. Membership/Association,update,mutate,mappingrule + role,PUT,/roles/{roleId}/mapping-rules/{mappingRuleId},assignRoleToMappingRule,happy-path,feature-1 - assignRoleToMappingRule - base (1) +assignRoleToTenant.feature.spec.ts,8,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,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,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,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,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,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,signal,M. Messaging/Signals,create,create,deployed-process-with-signal-catch-event,POST,/signals/broadcast,broadcastSignal,unlabeled,variant-1 - scenario +cancelBatchOperation.feature.spec.ts,8,batch-operation,E. Batch-Operation Lifecycle,delete,delete,running-process-instance(s),POST,/batch-operations/{batchOperationKey}/cancellation,cancelBatchOperation,happy-path,feature-1 - cancelBatchOperation - base (1) +cancelProcessInstance.feature.spec.ts,9,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,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,happy-path,feature-1 - cancelProcessInstancesBatchOperation - base (1) +cancelProcessInstancesBatchOperation.variant.spec.ts,12,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven,variant-1 - cancelProcessInstancesBatchOperation - bpmn #1 +cancelProcessInstancesBatchOperation.variant.spec.ts,64,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven,variant-2 - cancelProcessInstancesBatchOperation - bpmn #1 +cancelProcessInstancesBatchOperation.variant.spec.ts,137,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven,variant-3 - cancelProcessInstancesBatchOperation - bpmn #1 +cancelProcessInstancesBatchOperation.variant.spec.ts,210,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven,variant-4 - cancelProcessInstancesBatchOperation - bpmn #1 +cancelProcessInstancesBatchOperation.variant.spec.ts,311,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven,variant-5 - cancelProcessInstancesBatchOperation - bpmn #1 +cancelProcessInstancesBatchOperation.variant.spec.ts,412,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven,variant-6 - cancelProcessInstancesBatchOperation - bpmn #1 +cancelProcessInstancesBatchOperation.variant.spec.ts,468,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven,variant-7 - cancelProcessInstancesBatchOperation - bpmn #1 +cancelProcessInstancesBatchOperation.variant.spec.ts,545,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven,variant-8 - cancelProcessInstancesBatchOperation - bpmn #1 +cancelProcessInstancesBatchOperation.variant.spec.ts,622,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven,variant-9 - cancelProcessInstancesBatchOperation - bpmn #1 +cancelProcessInstancesBatchOperation.variant.spec.ts,727,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven,variant-10 - cancelProcessInstancesBatchOperation - bpmn #1 +completeJob.feature.spec.ts,9,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,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,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,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,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,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,message,M. Messaging/Signals,create,create,deployed-process-with-message-catch-event,POST,/messages/correlation,correlateMessage,unlabeled,variant-1 - scenario +createAdminUser.feature.spec.ts,11,setup,O. System/Admin,create,create,none,POST,/setup/user,createAdminUser,happy-path,feature-1 - createAdminUser - base (1) +createAuthorization.feature.spec.ts,11,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,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,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,resource,C. Deployment Lifecycle,create,create,none,POST,/deployments,createDeployment,data-driven,feature-1 - createDeployment - bpmn (1) +createDeployment.feature.spec.ts,41,resource,C. Deployment Lifecycle,create,create,none,POST,/deployments,createDeployment,data-driven,feature-2 - createDeployment - form (2) +createDeployment.feature.spec.ts,69,resource,C. Deployment Lifecycle,create,create,none,POST,/deployments,createDeployment,data-driven,feature-3 - createDeployment - dmn (3) +createDeployment.feature.spec.ts,97,resource,C. Deployment Lifecycle,create,create,none,POST,/deployments,createDeployment,data-driven,feature-4 - createDeployment - drd (4) +createDeployment.variant.spec.ts,13,resource,C. Deployment Lifecycle,create,create,none,POST,/deployments,createDeployment,data-driven,variant-1 - createDeployment - bpmn #1 +createDocument.feature.spec.ts,12,document,A. Entity Lifecycle (CRUD),create,create,none,POST,/documents,createDocument,happy-path,feature-1 - createDocument - base (1) +createDocument.variant.spec.ts,13,document,A. Entity Lifecycle (CRUD),create,create,none,POST,/documents,createDocument,data-driven,variant-1 - createDocument - bpmn #1 +createDocument.variant.spec.ts,76,document,A. Entity Lifecycle (CRUD),create,create,none,POST,/documents,createDocument,data-driven,variant-2 - createDocument - bpmn #1 +createDocumentLink.feature.spec.ts,12,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,document,A. Entity Lifecycle (CRUD),create,create,none,POST,/documents/batch,createDocuments,happy-path,feature-1 - createDocuments - base (1) +createDocuments.variant.spec.ts,13,document,A. Entity Lifecycle (CRUD),create,create,none,POST,/documents/batch,createDocuments,data-driven,variant-1 - createDocuments - bpmn #1 +createDocuments.variant.spec.ts,74,document,A. Entity Lifecycle (CRUD),create,create,none,POST,/documents/batch,createDocuments,data-driven,variant-2 - createDocuments - bpmn #1 +createElementInstanceVariables.feature.spec.ts,9,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,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,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,group,A. Entity Lifecycle (CRUD),create,create,none,POST,/groups,createGroup,happy-path,feature-1 - createGroup - base (1) +createMappingRule.feature.spec.ts,11,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,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,56,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,103,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,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,65,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,117,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,208,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,302,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,role,A. Entity Lifecycle (CRUD),create,create,none,POST,/roles,createRole,happy-path,feature-1 - createRole - base (1) +createTenant.feature.spec.ts,11,tenant,A. Entity Lifecycle (CRUD),create,create,none,POST,/tenants,createTenant,happy-path,feature-1 - createTenant - base (1) +createTenantClusterVariable.feature.spec.ts,11,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,user,A. Entity Lifecycle (CRUD),create,create,none,POST,/users,createUser,happy-path,feature-1 - createUser - base (1) +deleteAuthorization.feature.spec.ts,8,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,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,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,happy-path,feature-1 - deleteDecisionInstancesBatchOperation - base (1) +deleteDecisionInstancesBatchOperation.variant.spec.ts,12,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-1 - deleteDecisionInstancesBatchOperation - dmn #1 +deleteDecisionInstancesBatchOperation.variant.spec.ts,90,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-2 - deleteDecisionInstancesBatchOperation - dmn #1 +deleteDecisionInstancesBatchOperation.variant.spec.ts,140,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,unlabeled,variant-3 - scenario +deleteDecisionInstancesBatchOperation.variant.spec.ts,170,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-4 - deleteDecisionInstancesBatchOperation - dmn #1 +deleteDecisionInstancesBatchOperation.variant.spec.ts,248,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-5 - deleteDecisionInstancesBatchOperation - bpmn #1 +deleteDecisionInstancesBatchOperation.variant.spec.ts,300,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-6 - deleteDecisionInstancesBatchOperation - bpmn #1 +deleteDecisionInstancesBatchOperation.variant.spec.ts,372,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-7 - deleteDecisionInstancesBatchOperation - dmn #1 +deleteDecisionInstancesBatchOperation.variant.spec.ts,422,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-8 - deleteDecisionInstancesBatchOperation - bpmn #1 +deleteDecisionInstancesBatchOperation.variant.spec.ts,523,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-9 - deleteDecisionInstancesBatchOperation - dmn #1 +deleteDecisionInstancesBatchOperation.variant.spec.ts,573,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-10 - deleteDecisionInstancesBatchOperation - drd #1 +deleteDocument.feature.spec.ts,9,document,A. Entity Lifecycle (CRUD),delete,delete,none,DELETE,/documents/{documentId},deleteDocument,happy-path,feature-1 - deleteDocument - base (1) +deleteGlobalClusterVariable.feature.spec.ts,8,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,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,group,A. Entity Lifecycle (CRUD),delete,delete,none,DELETE,/groups/{groupId},deleteGroup,happy-path,feature-1 - deleteGroup - base (1) +deleteMappingRule.feature.spec.ts,8,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,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,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,happy-path,feature-1 - deleteProcessInstancesBatchOperation - base (1) +deleteProcessInstancesBatchOperation.variant.spec.ts,12,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven,variant-1 - deleteProcessInstancesBatchOperation - bpmn #1 +deleteProcessInstancesBatchOperation.variant.spec.ts,64,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven,variant-2 - deleteProcessInstancesBatchOperation - bpmn #1 +deleteProcessInstancesBatchOperation.variant.spec.ts,137,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven,variant-3 - deleteProcessInstancesBatchOperation - bpmn #1 +deleteProcessInstancesBatchOperation.variant.spec.ts,210,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven,variant-4 - deleteProcessInstancesBatchOperation - bpmn #1 +deleteProcessInstancesBatchOperation.variant.spec.ts,311,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven,variant-5 - deleteProcessInstancesBatchOperation - bpmn #1 +deleteProcessInstancesBatchOperation.variant.spec.ts,412,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven,variant-6 - deleteProcessInstancesBatchOperation - bpmn #1 +deleteProcessInstancesBatchOperation.variant.spec.ts,468,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven,variant-7 - deleteProcessInstancesBatchOperation - bpmn #1 +deleteProcessInstancesBatchOperation.variant.spec.ts,545,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven,variant-8 - deleteProcessInstancesBatchOperation - bpmn #1 +deleteProcessInstancesBatchOperation.variant.spec.ts,622,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven,variant-9 - deleteProcessInstancesBatchOperation - bpmn #1 +deleteProcessInstancesBatchOperation.variant.spec.ts,727,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven,variant-10 - deleteProcessInstancesBatchOperation - bpmn #1 +deleteResource.feature.spec.ts,11,resource,C. Deployment Lifecycle,delete,delete,none,POST,/resources/{resourceKey}/deletion,deleteResource,happy-path,feature-1 - deleteResource - base (1) +deleteRole.feature.spec.ts,8,role,A. Entity Lifecycle (CRUD),delete,delete,none,DELETE,/roles/{roleId},deleteRole,happy-path,feature-1 - deleteRole - base (1) +deleteTenant.feature.spec.ts,8,tenant,A. Entity Lifecycle (CRUD),delete,delete,none,DELETE,/tenants/{tenantId},deleteTenant,happy-path,feature-1 - deleteTenant - base (1) +deleteTenantClusterVariable.feature.spec.ts,8,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,user,A. Entity Lifecycle (CRUD),delete,delete,none,DELETE,/users/{username},deleteUser,happy-path,feature-1 - deleteUser - base (1) +evaluateConditionals.feature.spec.ts,11,conditional,N. Engine Evaluation,create,create,none,POST,/conditionals/evaluation,evaluateConditionals,happy-path,feature-1 - evaluateConditionals - base (1) +evaluateConditionals.variant.spec.ts,12,conditional,N. Engine Evaluation,create,create,none,POST,/conditionals/evaluation,evaluateConditionals,unlabeled,variant-1 - scenario +evaluateConditionals.variant.spec.ts,40,conditional,N. Engine Evaluation,create,create,none,POST,/conditionals/evaluation,evaluateConditionals,data-driven,variant-2 - evaluateConditionals - bpmn #1 +evaluateDecision.feature.spec.ts,12,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,60,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,111,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,13,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,expression,N. Engine Evaluation,create,create,none,POST,/expression/evaluation,evaluateExpression,happy-path,feature-1 - evaluateExpression - base (1) +failJob.feature.spec.ts,9,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,12,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,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,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,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,batch-operation,E. Batch-Operation Lifecycle,get,observe-present-get,running-process-instance(s),GET,/batch-operations/{batchOperationKey},getBatchOperation,happy-path,feature-1 - getBatchOperation - base (1) +getDecisionDefinition.feature.spec.ts,13,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,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,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,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,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,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,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) +getGlobalClusterVariable.feature.spec.ts,12,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,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,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,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,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,job,G. Job Lifecycle & Stats,get,observe-present-get,running-process-instance-with-job,POST,/jobs/statistics/errors,getJobErrorStatistics,happy-path,feature-1 - getJobErrorStatistics - base (1) +getJobErrorStatistics.variant.spec.ts,12,job,G. Job Lifecycle & Stats,get,observe-present-get,running-process-instance-with-job,POST,/jobs/statistics/errors,getJobErrorStatistics,data-driven,variant-1 - getJobErrorStatistics - path #1 +getJobTimeSeriesStatistics.feature.spec.ts,11,job,G. Job Lifecycle & Stats,get,observe-present-get,running-process-instance-with-job,POST,/jobs/statistics/time-series,getJobTimeSeriesStatistics,happy-path,feature-1 - getJobTimeSeriesStatistics - base (1) +getJobTimeSeriesStatistics.variant.spec.ts,12,job,G. Job Lifecycle & Stats,get,observe-present-get,running-process-instance-with-job,POST,/jobs/statistics/time-series,getJobTimeSeriesStatistics,data-driven,variant-1 - getJobTimeSeriesStatistics - path #1 +getJobTypeStatistics.feature.spec.ts,11,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,job,G. Job Lifecycle & Stats,get,observe-present-get,running-process-instance-with-job,POST,/jobs/statistics/by-types,getJobTypeStatistics,data-driven,variant-1 - getJobTypeStatistics - path #1 +getJobWorkerStatistics.feature.spec.ts,11,job,G. Job Lifecycle & Stats,get,observe-present-get,running-process-instance-with-job,POST,/jobs/statistics/by-workers,getJobWorkerStatistics,happy-path,feature-1 - getJobWorkerStatistics - base (1) +getJobWorkerStatistics.variant.spec.ts,12,job,G. Job Lifecycle & Stats,get,observe-present-get,running-process-instance-with-job,POST,/jobs/statistics/by-workers,getJobWorkerStatistics,data-driven,variant-1 - getJobWorkerStatistics - path #1 +getLicense.feature.spec.ts,11,license,O. System/Admin,get,observe-present-get,none,GET,/license,getLicense,happy-path,feature-1 - getLicense - base (1) +getMappingRule.feature.spec.ts,12,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,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,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,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/process-instances-by-version,getProcessDefinitionInstanceVersionStatistics,happy-path,feature-1 - getProcessDefinitionInstanceVersionStatistics - base (1) +getProcessDefinitionInstanceVersionStatistics.variant.spec.ts,13,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/process-instances-by-version,getProcessDefinitionInstanceVersionStatistics,data-driven,variant-1 - getProcessDefinitionInstanceVersionStatistics - bpmn #1 +getProcessDefinitionMessageSubscriptionStatistics.feature.spec.ts,11,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,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/message-subscriptions,getProcessDefinitionMessageSubscriptionStatistics,data-driven,variant-1 - getProcessDefinitionMessageSubscriptionStatistics - path #1 +getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts,71,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/message-subscriptions,getProcessDefinitionMessageSubscriptionStatistics,data-driven,variant-2 - getProcessDefinitionMessageSubscriptionStatistics - path #1 +getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts,132,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/message-subscriptions,getProcessDefinitionMessageSubscriptionStatistics,data-driven,variant-3 - getProcessDefinitionMessageSubscriptionStatistics - bpmn #1 +getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts,189,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/message-subscriptions,getProcessDefinitionMessageSubscriptionStatistics,data-driven,variant-4 - getProcessDefinitionMessageSubscriptionStatistics - bpmn #1 +getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts,267,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/message-subscriptions,getProcessDefinitionMessageSubscriptionStatistics,data-driven,variant-5 - getProcessDefinitionMessageSubscriptionStatistics - bpmn #1 +getProcessDefinitionStatistics.feature.spec.ts,12,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,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,data-driven,variant-1 - getProcessDefinitionStatistics - bpmn #1 +getProcessDefinitionStatistics.variant.spec.ts,86,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,data-driven,variant-2 - getProcessDefinitionStatistics - bpmn #1 +getProcessDefinitionStatistics.variant.spec.ts,160,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,data-driven,variant-3 - getProcessDefinitionStatistics - bpmn #1 +getProcessDefinitionStatistics.variant.spec.ts,214,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,data-driven,variant-4 - getProcessDefinitionStatistics - bpmn #1 +getProcessDefinitionStatistics.variant.spec.ts,268,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,data-driven,variant-5 - getProcessDefinitionStatistics - bpmn #1 +getProcessDefinitionStatistics.variant.spec.ts,346,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,data-driven,variant-6 - getProcessDefinitionStatistics - bpmn #1 +getProcessDefinitionStatistics.variant.spec.ts,424,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,data-driven,variant-7 - getProcessDefinitionStatistics - bpmn #1 +getProcessDefinitionStatistics.variant.spec.ts,482,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,data-driven,variant-8 - getProcessDefinitionStatistics - bpmn #1 +getProcessDefinitionXML.feature.spec.ts,10,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,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,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,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,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,incident,H. Incident Lifecycle,get,observe-present-get,running-process-instance-with-failing-job,POST,/incidents/statistics/process-instances-by-definition,getProcessInstanceStatisticsByDefinition,happy-path,feature-1 - getProcessInstanceStatisticsByDefinition - base (1) +getProcessInstanceStatisticsByError.feature.spec.ts,11,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,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,resource,C. Deployment Lifecycle,get,observe-present-get,none,GET,/resources/{resourceKey}/content,getResourceContent,happy-path,feature-1 - getResourceContent - base (1) +getRole.feature.spec.ts,12,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,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,status,O. System/Admin,get,observe-present-get,none,GET,/status,getStatus,happy-path,feature-1 - getStatus - base (1) +getSystemConfiguration.feature.spec.ts,11,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,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,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,topology,O. System/Admin,get,observe-present-get,none,GET,/topology,getTopology,happy-path,feature-1 - getTopology - base (1) +getUsageMetrics.feature.spec.ts,12,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,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,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,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,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,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,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,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,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,happy-path,feature-1 - migrateProcessInstancesBatchOperation - base (1) +migrateProcessInstancesBatchOperation.variant.spec.ts,12,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven,variant-1 - migrateProcessInstancesBatchOperation - bpmn #1 +migrateProcessInstancesBatchOperation.variant.spec.ts,66,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven,variant-2 - migrateProcessInstancesBatchOperation - bpmn #1 +migrateProcessInstancesBatchOperation.variant.spec.ts,141,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven,variant-3 - migrateProcessInstancesBatchOperation - bpmn #1 +migrateProcessInstancesBatchOperation.variant.spec.ts,216,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven,variant-4 - migrateProcessInstancesBatchOperation - bpmn #1 +migrateProcessInstancesBatchOperation.variant.spec.ts,271,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven,variant-5 - migrateProcessInstancesBatchOperation - bpmn #1 +migrateProcessInstancesBatchOperation.variant.spec.ts,326,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven,variant-6 - migrateProcessInstancesBatchOperation - bpmn #1 +migrateProcessInstancesBatchOperation.variant.spec.ts,384,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven,variant-7 - migrateProcessInstancesBatchOperation - bpmn #1 +migrateProcessInstancesBatchOperation.variant.spec.ts,463,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven,variant-8 - migrateProcessInstancesBatchOperation - bpmn #1 +migrateProcessInstancesBatchOperation.variant.spec.ts,542,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven,variant-9 - migrateProcessInstancesBatchOperation - bpmn #1 +migrateProcessInstancesBatchOperation.variant.spec.ts,601,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven,variant-10 - migrateProcessInstancesBatchOperation - bpmn #1 +migrateProcessInstancesBatchOperation.variant.spec.ts,660,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven,variant-11 - migrateProcessInstancesBatchOperation - bpmn #1 +migrateProcessInstancesBatchOperation.variant.spec.ts,720,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven,variant-12 - migrateProcessInstancesBatchOperation - bpmn #1 +modifyProcessInstance.feature.spec.ts,9,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,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,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,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,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,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,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,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,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,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,happy-path,feature-1 - modifyProcessInstancesBatchOperation - base (1) +modifyProcessInstancesBatchOperation.variant.spec.ts,12,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven,variant-1 - modifyProcessInstancesBatchOperation - bpmn #1 +modifyProcessInstancesBatchOperation.variant.spec.ts,65,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven,variant-2 - modifyProcessInstancesBatchOperation - bpmn #1 +modifyProcessInstancesBatchOperation.variant.spec.ts,139,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven,variant-3 - modifyProcessInstancesBatchOperation - bpmn #1 +modifyProcessInstancesBatchOperation.variant.spec.ts,213,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven,variant-4 - modifyProcessInstancesBatchOperation - bpmn #1 +modifyProcessInstancesBatchOperation.variant.spec.ts,315,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven,variant-5 - modifyProcessInstancesBatchOperation - bpmn #1 +modifyProcessInstancesBatchOperation.variant.spec.ts,417,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven,variant-6 - modifyProcessInstancesBatchOperation - bpmn #1 +modifyProcessInstancesBatchOperation.variant.spec.ts,474,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven,variant-7 - modifyProcessInstancesBatchOperation - bpmn #1 +modifyProcessInstancesBatchOperation.variant.spec.ts,552,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven,variant-8 - modifyProcessInstancesBatchOperation - bpmn #1 +modifyProcessInstancesBatchOperation.variant.spec.ts,630,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven,variant-9 - modifyProcessInstancesBatchOperation - bpmn #1 +modifyProcessInstancesBatchOperation.variant.spec.ts,736,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven,variant-10 - modifyProcessInstancesBatchOperation - bpmn #1 +modifyProcessInstancesBatchOperation.variant.spec.ts,842,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven,variant-11 - modifyProcessInstancesBatchOperation - bpmn #1 +modifyProcessInstancesBatchOperation.variant.spec.ts,946,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven,variant-12 - modifyProcessInstancesBatchOperation - bpmn #1 +pinClock.feature.spec.ts,8,clock,O. System/Admin,create,create,none,PUT,/clock,pinClock,happy-path,feature-1 - pinClock - base (1) +publishMessage.feature.spec.ts,11,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,message,M. Messaging/Signals,create,create,deployed-process-with-message-catch-event,POST,/messages/publication,publishMessage,unlabeled,variant-1 - scenario +resetClock.feature.spec.ts,8,clock,O. System/Admin,delete,delete,none,POST,/clock/reset,resetClock,happy-path,feature-1 - resetClock - base (1) +resolveIncident.feature.spec.ts,8,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,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,happy-path,feature-1 - resolveIncidentsBatchOperation - base (1) +resolveIncidentsBatchOperation.variant.spec.ts,12,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven,variant-1 - resolveIncidentsBatchOperation - bpmn #1 +resolveIncidentsBatchOperation.variant.spec.ts,64,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven,variant-2 - resolveIncidentsBatchOperation - bpmn #1 +resolveIncidentsBatchOperation.variant.spec.ts,137,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven,variant-3 - resolveIncidentsBatchOperation - bpmn #1 +resolveIncidentsBatchOperation.variant.spec.ts,210,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven,variant-4 - resolveIncidentsBatchOperation - bpmn #1 +resolveIncidentsBatchOperation.variant.spec.ts,311,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven,variant-5 - resolveIncidentsBatchOperation - bpmn #1 +resolveIncidentsBatchOperation.variant.spec.ts,412,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven,variant-6 - resolveIncidentsBatchOperation - bpmn #1 +resolveIncidentsBatchOperation.variant.spec.ts,468,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven,variant-7 - resolveIncidentsBatchOperation - bpmn #1 +resolveIncidentsBatchOperation.variant.spec.ts,545,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven,variant-8 - resolveIncidentsBatchOperation - bpmn #1 +resolveIncidentsBatchOperation.variant.spec.ts,622,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven,variant-9 - resolveIncidentsBatchOperation - bpmn #1 +resolveIncidentsBatchOperation.variant.spec.ts,727,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven,variant-10 - resolveIncidentsBatchOperation - bpmn #1 +resolveProcessInstanceIncidents.feature.spec.ts,12,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,batch-operation,E. Batch-Operation Lifecycle,update,mutate,running-process-instance(s),POST,/batch-operations/{batchOperationKey}/resumption,resumeBatchOperation,happy-path,feature-1 - resumeBatchOperation - base (1) +searchAgentInstances.feature.spec.ts,12,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,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,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,unlabeled,variant-1 - scenario +searchAgentInstances.variant.spec.ts,44,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,data-driven,variant-2 - searchAgentInstances - bpmn #1 +searchAgentInstances.variant.spec.ts,145,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,data-driven,variant-3 - searchAgentInstances - bpmn #1 +searchAgentInstances.variant.spec.ts,218,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,data-driven,variant-4 - searchAgentInstances - bpmn #1 +searchAgentInstances.variant.spec.ts,270,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,data-driven,variant-5 - searchAgentInstances - path #1 +searchAgentInstances.variant.spec.ts,334,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,data-driven,variant-6 - searchAgentInstances - path #1 +searchAuditLogs.feature.spec.ts,12,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,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,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,unlabeled,variant-1 - scenario +searchAuditLogs.variant.spec.ts,42,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven,variant-2 - searchAuditLogs - bpmn #1 +searchAuditLogs.variant.spec.ts,92,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven,variant-3 - searchAuditLogs - bpmn #1 +searchAuditLogs.variant.spec.ts,163,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven,variant-4 - searchAuditLogs - bpmn #1 +searchAuditLogs.variant.spec.ts,265,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,unlabeled,variant-5 - scenario +searchAuditLogs.variant.spec.ts,293,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,unlabeled,variant-6 - scenario +searchAuditLogs.variant.spec.ts,322,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven,variant-7 - searchAuditLogs - form #1 +searchAuditLogs.variant.spec.ts,371,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven,variant-8 - searchAuditLogs - bpmn #1 +searchAuditLogs.variant.spec.ts,421,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven,variant-9 - searchAuditLogs - bpmn #1 +searchAuditLogs.variant.spec.ts,523,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven,variant-10 - searchAuditLogs - drd #1 +searchAuditLogs.variant.spec.ts,572,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven,variant-11 - searchAuditLogs - dmn #1 +searchAuditLogs.variant.spec.ts,621,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven,variant-12 - searchAuditLogs - dmn #1 +searchAuditLogs.variant.spec.ts,697,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,unlabeled,variant-13 - scenario +searchAuditLogs.variant.spec.ts,725,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven,variant-14 - searchAuditLogs - path #1 +searchAuditLogs.variant.spec.ts,776,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven,variant-15 - searchAuditLogs - path #1 +searchAuthorizations.feature.spec.ts,12,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,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,authorization,A. Entity Lifecycle (CRUD),search,observe-present-search,owner-entity-or-resource,POST,/authorizations/search,searchAuthorizations,data-driven,variant-1 - searchAuthorizations - path #1 +searchAuthorizations.variant.spec.ts,65,authorization,A. Entity Lifecycle (CRUD),search,observe-present-search,owner-entity-or-resource,POST,/authorizations/search,searchAuthorizations,data-driven,variant-2 - searchAuthorizations - path #1 +searchBatchOperationItems.feature.spec.ts,12,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,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,batch-operation-item,E. Batch-Operation Lifecycle,search,observe-present-search,running-batch-operation,POST,/batch-operation-items/search,searchBatchOperationItems,data-driven,variant-1 - searchBatchOperationItems - bpmn #1 +searchBatchOperationItems.variant.spec.ts,84,batch-operation-item,E. Batch-Operation Lifecycle,search,observe-present-search,running-batch-operation,POST,/batch-operation-items/search,searchBatchOperationItems,data-driven,variant-2 - searchBatchOperationItems - path #1 +searchBatchOperationItems.variant.spec.ts,137,batch-operation-item,E. Batch-Operation Lifecycle,search,observe-present-search,running-batch-operation,POST,/batch-operation-items/search,searchBatchOperationItems,data-driven,variant-3 - searchBatchOperationItems - path #1 +searchBatchOperations.feature.spec.ts,12,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,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,batch-operation,E. Batch-Operation Lifecycle,search,observe-present-search,running-process-instance(s),POST,/batch-operations/search,searchBatchOperations,data-driven,variant-1 - searchBatchOperations - path #1 +searchBatchOperations.variant.spec.ts,65,batch-operation,E. Batch-Operation Lifecycle,search,observe-present-search,running-process-instance(s),POST,/batch-operations/search,searchBatchOperations,data-driven,variant-2 - searchBatchOperations - path #1 +searchClientsForGroup.feature.spec.ts,12,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,group,B. Membership/Association,search,observe-present-search,group + client,POST,/groups/{groupId}/clients/search,searchClientsForGroup,data-driven,variant-1 - searchClientsForGroup - path #1 +searchClientsForGroup.variant.spec.ts,85,group,B. Membership/Association,search,observe-present-search,group + client,POST,/groups/{groupId}/clients/search,searchClientsForGroup,data-driven,variant-2 - searchClientsForGroup - path #1 +searchClientsForRole.feature.spec.ts,12,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,role,B. Membership/Association,search,observe-present-search,role + client,POST,/roles/{roleId}/clients/search,searchClientsForRole,data-driven,variant-1 - searchClientsForRole - path #1 +searchClientsForRole.variant.spec.ts,85,role,B. Membership/Association,search,observe-present-search,role + client,POST,/roles/{roleId}/clients/search,searchClientsForRole,data-driven,variant-2 - searchClientsForRole - path #1 +searchClientsForTenant.feature.spec.ts,12,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,tenant,B. Membership/Association,search,observe-present-search,tenant + client,POST,/tenants/{tenantId}/clients/search,searchClientsForTenant,data-driven,variant-1 - searchClientsForTenant - path #1 +searchClientsForTenant.variant.spec.ts,87,tenant,B. Membership/Association,search,observe-present-search,tenant + client,POST,/tenants/{tenantId}/clients/search,searchClientsForTenant,data-driven,variant-2 - searchClientsForTenant - path #1 +searchClusterVariables.feature.spec.ts,12,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,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,cluster-variables,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/cluster-variables/search,searchClusterVariables,data-driven,variant-1 - searchClusterVariables - path #1 +searchClusterVariables.variant.spec.ts,65,cluster-variables,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/cluster-variables/search,searchClusterVariables,data-driven,variant-2 - searchClusterVariables - path #1 +searchCorrelatedMessageSubscriptions.feature.spec.ts,12,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,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,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,variant-1 - searchCorrelatedMessageSubscriptions - bpmn #1 +searchCorrelatedMessageSubscriptions.variant.spec.ts,117,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,variant-2 - searchCorrelatedMessageSubscriptions - bpmn #1 +searchCorrelatedMessageSubscriptions.variant.spec.ts,170,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,variant-3 - searchCorrelatedMessageSubscriptions - bpmn #1 +searchCorrelatedMessageSubscriptions.variant.spec.ts,244,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,variant-4 - searchCorrelatedMessageSubscriptions - path #1 +searchCorrelatedMessageSubscriptions.variant.spec.ts,305,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,variant-5 - searchCorrelatedMessageSubscriptions - path #1 +searchCorrelatedMessageSubscriptions.variant.spec.ts,359,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,variant-6 - searchCorrelatedMessageSubscriptions - path #1 +searchDecisionDefinitions.feature.spec.ts,12,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,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,decision-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-definitions/search,searchDecisionDefinitions,data-driven,variant-1 - searchDecisionDefinitions - dmn #1 +searchDecisionDefinitions.variant.spec.ts,64,decision-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-definitions/search,searchDecisionDefinitions,data-driven,variant-2 - searchDecisionDefinitions - path #1 +searchDecisionDefinitions.variant.spec.ts,117,decision-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-definitions/search,searchDecisionDefinitions,data-driven,variant-3 - searchDecisionDefinitions - dmn #1 +searchDecisionDefinitions.variant.spec.ts,168,decision-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-definitions/search,searchDecisionDefinitions,data-driven,variant-4 - searchDecisionDefinitions - drd #1 +searchDecisionDefinitions.variant.spec.ts,219,decision-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-definitions/search,searchDecisionDefinitions,data-driven,variant-5 - searchDecisionDefinitions - path #1 +searchDecisionDefinitions.variant.spec.ts,272,decision-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-definitions/search,searchDecisionDefinitions,data-driven,variant-6 - searchDecisionDefinitions - path #1 +searchDecisionInstances.feature.spec.ts,12,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,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,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-1 - searchDecisionInstances - dmn #1 +searchDecisionInstances.variant.spec.ts,92,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-2 - searchDecisionInstances - dmn #1 +searchDecisionInstances.variant.spec.ts,143,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-3 - searchDecisionInstances - path #1 +searchDecisionInstances.variant.spec.ts,196,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-4 - searchDecisionInstances - dmn #1 +searchDecisionInstances.variant.spec.ts,275,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-5 - searchDecisionInstances - bpmn #1 +searchDecisionInstances.variant.spec.ts,327,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-6 - searchDecisionInstances - bpmn #1 +searchDecisionInstances.variant.spec.ts,400,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-7 - searchDecisionInstances - dmn #1 +searchDecisionInstances.variant.spec.ts,451,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-8 - searchDecisionInstances - bpmn #1 +searchDecisionInstances.variant.spec.ts,553,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-9 - searchDecisionInstances - dmn #1 +searchDecisionInstances.variant.spec.ts,604,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-10 - searchDecisionInstances - drd #1 +searchDecisionInstances.variant.spec.ts,655,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-11 - searchDecisionInstances - path #1 +searchDecisionInstances.variant.spec.ts,708,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-12 - searchDecisionInstances - path #1 +searchDecisionRequirements.feature.spec.ts,12,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,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,decision-requirements,C. Deployment Lifecycle,search,observe-present-search,deployed-drd,POST,/decision-requirements/search,searchDecisionRequirements,data-driven,variant-1 - searchDecisionRequirements - drd #1 +searchDecisionRequirements.variant.spec.ts,64,decision-requirements,C. Deployment Lifecycle,search,observe-present-search,deployed-drd,POST,/decision-requirements/search,searchDecisionRequirements,data-driven,variant-2 - searchDecisionRequirements - path #1 +searchDecisionRequirements.variant.spec.ts,117,decision-requirements,C. Deployment Lifecycle,search,observe-present-search,deployed-drd,POST,/decision-requirements/search,searchDecisionRequirements,data-driven,variant-3 - searchDecisionRequirements - path #1 +searchDecisionRequirements.variant.spec.ts,170,decision-requirements,C. Deployment Lifecycle,search,observe-present-search,deployed-drd,POST,/decision-requirements/search,searchDecisionRequirements,data-driven,variant-4 - searchDecisionRequirements - path #1 +searchElementInstanceIncidents.feature.spec.ts,13,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,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/{elementInstanceKey}/incidents/search,searchElementInstanceIncidents,data-driven,variant-1 - searchElementInstanceIncidents - bpmn #1 +searchElementInstanceIncidents.variant.spec.ts,122,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/{elementInstanceKey}/incidents/search,searchElementInstanceIncidents,data-driven,variant-2 - searchElementInstanceIncidents - bpmn #1 +searchElementInstanceIncidents.variant.spec.ts,231,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/{elementInstanceKey}/incidents/search,searchElementInstanceIncidents,data-driven,variant-3 - searchElementInstanceIncidents - bpmn #1 +searchElementInstanceIncidents.variant.spec.ts,340,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/{elementInstanceKey}/incidents/search,searchElementInstanceIncidents,data-driven,variant-4 - searchElementInstanceIncidents - bpmn #1 +searchElementInstanceIncidents.variant.spec.ts,449,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/{elementInstanceKey}/incidents/search,searchElementInstanceIncidents,data-driven,variant-5 - searchElementInstanceIncidents - bpmn #1 +searchElementInstanceIncidents.variant.spec.ts,583,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/{elementInstanceKey}/incidents/search,searchElementInstanceIncidents,data-driven,variant-6 - searchElementInstanceIncidents - bpmn #1 +searchElementInstances.feature.spec.ts,12,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,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,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,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,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-1 - searchElementInstances - bpmn #1 +searchElementInstances.variant.spec.ts,63,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-2 - searchElementInstances - bpmn #1 +searchElementInstances.variant.spec.ts,162,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-3 - searchElementInstances - path #1 +searchElementInstances.variant.spec.ts,215,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-4 - searchElementInstances - bpmn #1 +searchElementInstances.variant.spec.ts,314,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-5 - searchElementInstances - bpmn #1 +searchElementInstances.variant.spec.ts,384,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-6 - searchElementInstances - bpmn #1 +searchElementInstances.variant.spec.ts,434,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-7 - searchElementInstances - bpmn #1 +searchElementInstances.variant.spec.ts,595,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-8 - searchElementInstances - bpmn #1 +searchElementInstances.variant.spec.ts,694,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-9 - searchElementInstances - path #1 +searchElementInstances.variant.spec.ts,747,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-10 - searchElementInstances - path #1 +searchGlobalTaskListeners.feature.spec.ts,12,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,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,global-task-listener,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/global-task-listeners/search,searchGlobalTaskListeners,data-driven,variant-1 - searchGlobalTaskListeners - path #1 +searchGlobalTaskListeners.variant.spec.ts,65,global-task-listener,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/global-task-listeners/search,searchGlobalTaskListeners,data-driven,variant-2 - searchGlobalTaskListeners - path #1 +searchGroupIdsForTenant.feature.spec.ts,12,tenant,B. Membership/Association,search,observe-present-search,tenant + groupid,POST,/tenants/{tenantId}/groups/search,searchGroupIdsForTenant,happy-path,feature-1 - searchGroupIdsForTenant - base (1) +searchGroupIdsForTenant.variant.spec.ts,12,tenant,B. Membership/Association,search,observe-present-search,tenant + groupid,POST,/tenants/{tenantId}/groups/search,searchGroupIdsForTenant,data-driven,variant-1 - searchGroupIdsForTenant - path #1 +searchGroupIdsForTenant.variant.spec.ts,87,tenant,B. Membership/Association,search,observe-present-search,tenant + groupid,POST,/tenants/{tenantId}/groups/search,searchGroupIdsForTenant,data-driven,variant-2 - searchGroupIdsForTenant - path #1 +searchGroups.feature.spec.ts,12,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,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,group,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/groups/search,searchGroups,data-driven,variant-1 - searchGroups - path #1 +searchGroups.variant.spec.ts,63,group,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/groups/search,searchGroups,data-driven,variant-2 - searchGroups - path #1 +searchGroupsForRole.feature.spec.ts,12,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,role,B. Membership/Association,search,observe-present-search,role + group,POST,/roles/{roleId}/groups/search,searchGroupsForRole,data-driven,variant-1 - searchGroupsForRole - path #1 +searchGroupsForRole.variant.spec.ts,85,role,B. Membership/Association,search,observe-present-search,role + group,POST,/roles/{roleId}/groups/search,searchGroupsForRole,data-driven,variant-2 - searchGroupsForRole - path #1 +searchIncidents.feature.spec.ts,12,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,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,incident,H. Incident Lifecycle,search,observe-present-search,running-process-instance-with-failing-job,POST,/incidents/search,searchIncidents,data-driven,variant-1 - searchIncidents - bpmn #1 +searchIncidents.variant.spec.ts,63,incident,H. Incident Lifecycle,search,observe-present-search,running-process-instance-with-failing-job,POST,/incidents/search,searchIncidents,data-driven,variant-2 - searchIncidents - bpmn #1 +searchIncidents.variant.spec.ts,134,incident,H. Incident Lifecycle,search,observe-present-search,running-process-instance-with-failing-job,POST,/incidents/search,searchIncidents,data-driven,variant-3 - searchIncidents - bpmn #1 +searchIncidents.variant.spec.ts,236,incident,H. Incident Lifecycle,search,observe-present-search,running-process-instance-with-failing-job,POST,/incidents/search,searchIncidents,data-driven,variant-4 - searchIncidents - bpmn #1 +searchIncidents.variant.spec.ts,338,incident,H. Incident Lifecycle,search,observe-present-search,running-process-instance-with-failing-job,POST,/incidents/search,searchIncidents,data-driven,variant-5 - searchIncidents - path #1 +searchIncidents.variant.spec.ts,389,incident,H. Incident Lifecycle,search,observe-present-search,running-process-instance-with-failing-job,POST,/incidents/search,searchIncidents,data-driven,variant-6 - searchIncidents - path #1 +searchJobs.feature.spec.ts,13,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,79,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,job,G. Job Lifecycle & Stats,search,observe-present-search,running-process-instance-with-job,POST,/jobs/search,searchJobs,data-driven,variant-1 - searchJobs - bpmn #1 +searchJobs.variant.spec.ts,116,job,G. Job Lifecycle & Stats,search,observe-present-search,running-process-instance-with-job,POST,/jobs/search,searchJobs,data-driven,variant-2 - searchJobs - bpmn #1 +searchJobs.variant.spec.ts,219,job,G. Job Lifecycle & Stats,search,observe-present-search,running-process-instance-with-job,POST,/jobs/search,searchJobs,data-driven,variant-3 - searchJobs - path #1 +searchJobs.variant.spec.ts,293,job,G. Job Lifecycle & Stats,search,observe-present-search,running-process-instance-with-job,POST,/jobs/search,searchJobs,data-driven,variant-4 - searchJobs - bpmn #1 +searchJobs.variant.spec.ts,366,job,G. Job Lifecycle & Stats,search,observe-present-search,running-process-instance-with-job,POST,/jobs/search,searchJobs,data-driven,variant-5 - searchJobs - path #1 +searchJobs.variant.spec.ts,461,job,G. Job Lifecycle & Stats,search,observe-present-search,running-process-instance-with-job,POST,/jobs/search,searchJobs,data-driven,variant-6 - searchJobs - path #1 +searchMappingRule.feature.spec.ts,12,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,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,mapping-rule,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/mapping-rules/search,searchMappingRule,data-driven,variant-1 - searchMappingRule - path #1 +searchMappingRule.variant.spec.ts,106,mapping-rule,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/mapping-rules/search,searchMappingRule,data-driven,variant-2 - searchMappingRule - path #1 +searchMappingRule.variant.spec.ts,159,mapping-rule,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/mapping-rules/search,searchMappingRule,data-driven,variant-3 - searchMappingRule - path #1 +searchMappingRulesForGroup.feature.spec.ts,12,group,B. Membership/Association,search,observe-present-search,group + mappingrule,POST,/groups/{groupId}/mapping-rules/search,searchMappingRulesForGroup,happy-path,feature-1 - searchMappingRulesForGroup - base (1) +searchMappingRulesForGroup.variant.spec.ts,12,group,B. Membership/Association,search,observe-present-search,group + mappingrule,POST,/groups/{groupId}/mapping-rules/search,searchMappingRulesForGroup,data-driven,variant-1 - searchMappingRulesForGroup - path #1 +searchMappingRulesForGroup.variant.spec.ts,84,group,B. Membership/Association,search,observe-present-search,group + mappingrule,POST,/groups/{groupId}/mapping-rules/search,searchMappingRulesForGroup,data-driven,variant-2 - searchMappingRulesForGroup - path #1 +searchMappingRulesForGroup.variant.spec.ts,158,group,B. Membership/Association,search,observe-present-search,group + mappingrule,POST,/groups/{groupId}/mapping-rules/search,searchMappingRulesForGroup,data-driven,variant-3 - searchMappingRulesForGroup - path #1 +searchMappingRulesForRole.feature.spec.ts,12,role,B. Membership/Association,search,observe-present-search,role + mappingrule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,happy-path,feature-1 - searchMappingRulesForRole - base (1) +searchMappingRulesForRole.variant.spec.ts,12,role,B. Membership/Association,search,observe-present-search,role + mappingrule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,data-driven,variant-1 - searchMappingRulesForRole - path #1 +searchMappingRulesForRole.variant.spec.ts,123,role,B. Membership/Association,search,observe-present-search,role + mappingrule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,data-driven,variant-2 - searchMappingRulesForRole - path #1 +searchMappingRulesForRole.variant.spec.ts,197,role,B. Membership/Association,search,observe-present-search,role + mappingrule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,data-driven,variant-3 - searchMappingRulesForRole - path #1 +searchMappingRulesForTenant.feature.spec.ts,12,tenant,B. Membership/Association,search,observe-present-search,tenant + mappingrule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,happy-path,feature-1 - searchMappingRulesForTenant - base (1) +searchMappingRulesForTenant.variant.spec.ts,12,tenant,B. Membership/Association,search,observe-present-search,tenant + mappingrule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,data-driven,variant-1 - searchMappingRulesForTenant - path #1 +searchMappingRulesForTenant.variant.spec.ts,125,tenant,B. Membership/Association,search,observe-present-search,tenant + mappingrule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,data-driven,variant-2 - searchMappingRulesForTenant - path #1 +searchMappingRulesForTenant.variant.spec.ts,201,tenant,B. Membership/Association,search,observe-present-search,tenant + mappingrule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,data-driven,variant-3 - searchMappingRulesForTenant - path #1 +searchMessageSubscriptions.feature.spec.ts,12,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,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,message-subscriptions,M. Messaging/Signals,search,observe-present-search,deployed-process-with-message-catch-event,POST,/message-subscriptions/search,searchMessageSubscriptions,data-driven,variant-1 - searchMessageSubscriptions - path #1 +searchMessageSubscriptions.variant.spec.ts,69,message-subscriptions,M. Messaging/Signals,search,observe-present-search,deployed-process-with-message-catch-event,POST,/message-subscriptions/search,searchMessageSubscriptions,data-driven,variant-2 - searchMessageSubscriptions - bpmn #1 +searchMessageSubscriptions.variant.spec.ts,121,message-subscriptions,M. Messaging/Signals,search,observe-present-search,deployed-process-with-message-catch-event,POST,/message-subscriptions/search,searchMessageSubscriptions,data-driven,variant-3 - searchMessageSubscriptions - bpmn #1 +searchMessageSubscriptions.variant.spec.ts,195,message-subscriptions,M. Messaging/Signals,search,observe-present-search,deployed-process-with-message-catch-event,POST,/message-subscriptions/search,searchMessageSubscriptions,data-driven,variant-4 - searchMessageSubscriptions - bpmn #1 +searchMessageSubscriptions.variant.spec.ts,298,message-subscriptions,M. Messaging/Signals,search,observe-present-search,deployed-process-with-message-catch-event,POST,/message-subscriptions/search,searchMessageSubscriptions,data-driven,variant-5 - searchMessageSubscriptions - path #1 +searchMessageSubscriptions.variant.spec.ts,351,message-subscriptions,M. Messaging/Signals,search,observe-present-search,deployed-process-with-message-catch-event,POST,/message-subscriptions/search,searchMessageSubscriptions,data-driven,variant-6 - searchMessageSubscriptions - path #1 +searchProcessDefinitions.feature.spec.ts,13,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,59,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,process-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-process,POST,/process-definitions/search,searchProcessDefinitions,data-driven,variant-1 - searchProcessDefinitions - path #1 +searchProcessDefinitions.variant.spec.ts,88,process-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-process,POST,/process-definitions/search,searchProcessDefinitions,data-driven,variant-2 - searchProcessDefinitions - bpmn #1 +searchProcessDefinitions.variant.spec.ts,140,process-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-process,POST,/process-definitions/search,searchProcessDefinitions,data-driven,variant-3 - searchProcessDefinitions - path #1 +searchProcessDefinitions.variant.spec.ts,215,process-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-process,POST,/process-definitions/search,searchProcessDefinitions,data-driven,variant-4 - searchProcessDefinitions - path #1 +searchProcessInstanceIncidents.feature.spec.ts,13,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,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/{processInstanceKey}/incidents/search,searchProcessInstanceIncidents,data-driven,variant-1 - searchProcessInstanceIncidents - cycle/bpmn+bpmn #1 +searchProcessInstanceIncidents.variant.spec.ts,109,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/{processInstanceKey}/incidents/search,searchProcessInstanceIncidents,data-driven,variant-2 - searchProcessInstanceIncidents - bpmn #1 +searchProcessInstanceIncidents.variant.spec.ts,187,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/{processInstanceKey}/incidents/search,searchProcessInstanceIncidents,data-driven,variant-3 - searchProcessInstanceIncidents - bpmn #1 +searchProcessInstanceIncidents.variant.spec.ts,297,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/{processInstanceKey}/incidents/search,searchProcessInstanceIncidents,data-driven,variant-4 - searchProcessInstanceIncidents - bpmn #1 +searchProcessInstanceIncidents.variant.spec.ts,407,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/{processInstanceKey}/incidents/search,searchProcessInstanceIncidents,data-driven,variant-5 - searchProcessInstanceIncidents - bpmn #1 +searchProcessInstanceIncidents.variant.spec.ts,511,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/{processInstanceKey}/incidents/search,searchProcessInstanceIncidents,data-driven,variant-6 - searchProcessInstanceIncidents - bpmn #1 +searchProcessInstances.feature.spec.ts,13,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,79,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,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven,variant-1 - searchProcessInstances - path #1 +searchProcessInstances.variant.spec.ts,87,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven,variant-2 - searchProcessInstances - bpmn #1 +searchProcessInstances.variant.spec.ts,161,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven,variant-3 - searchProcessInstances - bpmn #1 +searchProcessInstances.variant.spec.ts,235,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven,variant-4 - searchProcessInstances - bpmn #1 +searchProcessInstances.variant.spec.ts,337,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven,variant-5 - searchProcessInstances - bpmn #1 +searchProcessInstances.variant.spec.ts,440,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven,variant-6 - searchProcessInstances - path #1 +searchProcessInstances.variant.spec.ts,518,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven,variant-7 - searchProcessInstances - bpmn #1 +searchProcessInstances.variant.spec.ts,596,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven,variant-8 - searchProcessInstances - bpmn #1 +searchProcessInstances.variant.spec.ts,674,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven,variant-9 - searchProcessInstances - bpmn #1 +searchProcessInstances.variant.spec.ts,780,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven,variant-10 - searchProcessInstances - bpmn #1 +searchProcessInstances.variant.spec.ts,887,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven,variant-11 - searchProcessInstances - path #1 +searchProcessInstances.variant.spec.ts,982,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven,variant-12 - searchProcessInstances - path #1 +searchResources.feature.spec.ts,12,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,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,resource,C. Deployment Lifecycle,search,observe-present-search,none,POST,/resources/search,searchResources,data-driven,variant-1 - searchResources - bpmn #1 +searchResources.variant.spec.ts,62,resource,C. Deployment Lifecycle,search,observe-present-search,none,POST,/resources/search,searchResources,data-driven,variant-2 - searchResources - path #1 +searchResources.variant.spec.ts,130,resource,C. Deployment Lifecycle,search,observe-present-search,none,POST,/resources/search,searchResources,data-driven,variant-3 - searchResources - path #1 +searchResources.variant.spec.ts,181,resource,C. Deployment Lifecycle,search,observe-present-search,none,POST,/resources/search,searchResources,data-driven,variant-4 - searchResources - path #1 +searchResources.variant.spec.ts,232,resource,C. Deployment Lifecycle,search,observe-present-search,none,POST,/resources/search,searchResources,data-driven,variant-5 - searchResources - path #1 +searchRoles.feature.spec.ts,12,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,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,role,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/roles/search,searchRoles,data-driven,variant-1 - searchRoles - path #1 +searchRoles.variant.spec.ts,104,role,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/roles/search,searchRoles,data-driven,variant-2 - searchRoles - path #1 +searchRoles.variant.spec.ts,155,role,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/roles/search,searchRoles,data-driven,variant-3 - searchRoles - path #1 +searchRolesForGroup.feature.spec.ts,12,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,group,B. Membership/Association,search,observe-present-search,group + role,POST,/groups/{groupId}/roles/search,searchRolesForGroup,data-driven,variant-1 - searchRolesForGroup - path #1 +searchRolesForGroup.variant.spec.ts,84,group,B. Membership/Association,search,observe-present-search,group + role,POST,/groups/{groupId}/roles/search,searchRolesForGroup,data-driven,variant-2 - searchRolesForGroup - path #1 +searchRolesForGroup.variant.spec.ts,158,group,B. Membership/Association,search,observe-present-search,group + role,POST,/groups/{groupId}/roles/search,searchRolesForGroup,data-driven,variant-3 - searchRolesForGroup - path #1 +searchRolesForTenant.feature.spec.ts,12,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,tenant,B. Membership/Association,search,observe-present-search,tenant + role,POST,/tenants/{tenantId}/roles/search,searchRolesForTenant,data-driven,variant-1 - searchRolesForTenant - path #1 +searchRolesForTenant.variant.spec.ts,125,tenant,B. Membership/Association,search,observe-present-search,tenant + role,POST,/tenants/{tenantId}/roles/search,searchRolesForTenant,data-driven,variant-2 - searchRolesForTenant - path #1 +searchRolesForTenant.variant.spec.ts,201,tenant,B. Membership/Association,search,observe-present-search,tenant + role,POST,/tenants/{tenantId}/roles/search,searchRolesForTenant,data-driven,variant-3 - searchRolesForTenant - path #1 +searchTenants.feature.spec.ts,12,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,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,tenant,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/tenants/search,searchTenants,data-driven,variant-1 - searchTenants - path #1 +searchTenants.variant.spec.ts,63,tenant,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/tenants/search,searchTenants,data-driven,variant-2 - searchTenants - path #1 +searchTenants.variant.spec.ts,114,tenant,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/tenants/search,searchTenants,data-driven,variant-3 - searchTenants - path #1 +searchUserTaskAuditLogs.feature.spec.ts,12,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,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,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,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,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,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,data-driven,variant-1 - searchUserTasks - bpmn #1 +searchUserTasks.variant.spec.ts,114,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,data-driven,variant-2 - searchUserTasks - bpmn #1 +searchUserTasks.variant.spec.ts,164,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,data-driven,variant-3 - searchUserTasks - path #1 +searchUserTasks.variant.spec.ts,232,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,data-driven,variant-4 - searchUserTasks - bpmn #1 +searchUserTasks.variant.spec.ts,282,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,data-driven,variant-5 - searchUserTasks - bpmn #1 +searchUserTasks.variant.spec.ts,353,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,data-driven,variant-6 - searchUserTasks - bpmn #1 +searchUserTasks.variant.spec.ts,454,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,data-driven,variant-7 - searchUserTasks - bpmn #1 +searchUserTasks.variant.spec.ts,552,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,data-driven,variant-8 - searchUserTasks - path #1 +searchUserTasks.variant.spec.ts,603,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,data-driven,variant-9 - searchUserTasks - path #1 +searchUsers.feature.spec.ts,12,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,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,user,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/users/search,searchUsers,data-driven,variant-1 - searchUsers - path #1 +searchUsers.variant.spec.ts,63,user,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/users/search,searchUsers,data-driven,variant-2 - searchUsers - path #1 +searchUsersForGroup.feature.spec.ts,12,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,group,B. Membership/Association,search,observe-present-search,group + user,POST,/groups/{groupId}/users/search,searchUsersForGroup,data-driven,variant-1 - searchUsersForGroup - path #1 +searchUsersForGroup.variant.spec.ts,85,group,B. Membership/Association,search,observe-present-search,group + user,POST,/groups/{groupId}/users/search,searchUsersForGroup,data-driven,variant-2 - searchUsersForGroup - path #1 +searchUsersForRole.feature.spec.ts,12,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,role,B. Membership/Association,search,observe-present-search,role + user,POST,/roles/{roleId}/users/search,searchUsersForRole,data-driven,variant-1 - searchUsersForRole - path #1 +searchUsersForRole.variant.spec.ts,85,role,B. Membership/Association,search,observe-present-search,role + user,POST,/roles/{roleId}/users/search,searchUsersForRole,data-driven,variant-2 - searchUsersForRole - path #1 +searchUsersForTenant.feature.spec.ts,12,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,tenant,B. Membership/Association,search,observe-present-search,tenant + user,POST,/tenants/{tenantId}/users/search,searchUsersForTenant,data-driven,variant-1 - searchUsersForTenant - path #1 +searchUsersForTenant.variant.spec.ts,87,tenant,B. Membership/Association,search,observe-present-search,tenant + user,POST,/tenants/{tenantId}/users/search,searchUsersForTenant,data-driven,variant-2 - searchUsersForTenant - path #1 +searchVariables.feature.spec.ts,12,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,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,variable,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/variables/search,searchVariables,data-driven,variant-1 - searchVariables - path #1 +searchVariables.variant.spec.ts,64,variable,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/variables/search,searchVariables,unlabeled,variant-2 - scenario +searchVariables.variant.spec.ts,93,variable,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/variables/search,searchVariables,unlabeled,variant-3 - scenario +searchVariables.variant.spec.ts,122,variable,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/variables/search,searchVariables,data-driven,variant-4 - searchVariables - bpmn #1 +searchVariables.variant.spec.ts,191,variable,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/variables/search,searchVariables,data-driven,variant-5 - searchVariables - path #1 +searchVariables.variant.spec.ts,242,variable,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/variables/search,searchVariables,data-driven,variant-6 - searchVariables - path #1 +suspendBatchOperation.feature.spec.ts,8,batch-operation,E. Batch-Operation Lifecycle,update,mutate,running-process-instance(s),POST,/batch-operations/{batchOperationKey}/suspension,suspendBatchOperation,happy-path,feature-1 - suspendBatchOperation - base (1) +throwJobError.feature.spec.ts,9,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,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,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,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,group,B. Membership/Association,delete,delete,group + mappingrule,DELETE,/groups/{groupId}/mapping-rules/{mappingRuleId},unassignMappingRuleFromGroup,happy-path,feature-1 - unassignMappingRuleFromGroup - base (1) +unassignMappingRuleFromTenant.feature.spec.ts,8,tenant,B. Membership/Association,delete,delete,tenant + mappingrule,DELETE,/tenants/{tenantId}/mapping-rules/{mappingRuleId},unassignMappingRuleFromTenant,happy-path,feature-1 - unassignMappingRuleFromTenant - base (1) +unassignRoleFromClient.feature.spec.ts,8,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,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,role,B. Membership/Association,delete,delete,mappingrule + role,DELETE,/roles/{roleId}/mapping-rules/{mappingRuleId},unassignRoleFromMappingRule,happy-path,feature-1 - unassignRoleFromMappingRule - base (1) +unassignRoleFromTenant.feature.spec.ts,8,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,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,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,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,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) +updateAuthorization.feature.spec.ts,8,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,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,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,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,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,group,A. Entity Lifecycle (CRUD),update,mutate,none,PUT,/groups/{groupId},updateGroup,happy-path,feature-1 - updateGroup - base (1) +updateJob.feature.spec.ts,9,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,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,role,A. Entity Lifecycle (CRUD),update,mutate,none,PUT,/roles/{roleId},updateRole,happy-path,feature-1 - updateRole - base (1) +updateTenant.feature.spec.ts,11,tenant,A. Entity Lifecycle (CRUD),update,mutate,none,PUT,/tenants/{tenantId},updateTenant,happy-path,feature-1 - updateTenant - base (1) +updateTenantClusterVariable.feature.spec.ts,11,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,user,A. Entity Lifecycle (CRUD),update,mutate,none,PUT,/users/{username},updateUser,happy-path,feature-1 - updateUser - base (1) +updateUserTask.feature.spec.ts,8,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) From 5277d5cecd9075c5894f7afa9d1fb3034cfda07b Mon Sep 17 00:00:00 2001 From: esraagamal6 Date: Mon, 18 May 2026 13:52:21 +0200 Subject: [PATCH 02/15] docs: mark coverage-analysis as implementation-phase scaffolding MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Makes it explicit in the README that this directory is not part of the product surface — it exists to assess what the generator emits during implementation, and can be deleted once the generator is delivered. Co-Authored-By: Claude Opus 4.7 (1M context) --- coverage-analysis/README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/coverage-analysis/README.md b/coverage-analysis/README.md index fe4809f..c10ca93 100644 --- a/coverage-analysis/README.md +++ b/coverage-analysis/README.md @@ -1,5 +1,10 @@ # 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), From c49f125411d9cf9edb8abe1d249d61fddf990b74 Mon Sep 17 00:00:00 2001 From: esraagamal6 Date: Mon, 18 May 2026 15:47:42 +0200 Subject: [PATCH 03/15] docs(coverage-analysis): refresh against upstream camunda/camunda#53387 Upstream regenerated coverage_matrix.csv so the total column now equals unique-test count (previously double-counted multi-labeled tests). The overall 483-test gap is unchanged, but the per-bucket numbers tighten: - bad-request: 232 -> 195 - unauthorized: 163 -> 165 - not-found: 123 -> 127 - forbidden: 28 -> 29 - conflict: 29 -> 31 - pagination-sort + filter: 138 (unchanged) Also distinguish "label occurrences" (a test with two negative labels counts twice) from "unique tests with any negative label" (543), which is the more useful number for emitter planning. Co-Authored-By: Claude Opus 4.7 (1M context) --- coverage-analysis/README.md | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/coverage-analysis/README.md b/coverage-analysis/README.md index c10ca93..9a63ee5 100644 --- a/coverage-analysis/README.md +++ b/coverage-analysis/README.md @@ -55,22 +55,32 @@ No dependencies beyond the Python stdlib. Re-run after any change under - **Prerequisite** — entity-based, copied from upstream's mapping; for membership ops it's parent + member (e.g. `tenant + client`). -## Comparison with upstream (snapshot at the time these files were generated) +## Comparison with upstream + +Upstream snapshot: +[camunda/camunda#53387](https://github.com/camunda/camunda/pull/53387) (head +`7cf8bc1`), which regenerates `coverage_matrix.csv` so the `total` column +equals unique-test count (previously double-counted multi-labeled tests). Variant +columns are label-occurrences, so a test tagged `happy-path|filter` shows up in +both. | | upstream | generator | |---|---:|---:| -| Unique tests | 1001 | 518 | +| Unique tests | **1001** | **518** | | Entities | 33 | 37 | -| Happy-path | 173 | 185 | -| Negative (400/401/403/404/409) | 575 | **0** | -| Pagination-sort + filter | 138 | **0** | +| Happy-path (occurrences) | 173 | 185 | +| Negative (400/401/403/404/409, occurrences) | 547 | **0** | +| Unique tests with any negative label | 543 | **0** | +| Pagination-sort + filter (occurrences) | 138 | **0** | +| Unique tests with pagination/filter label | 135 | **0** | | Observe-absence | 2 | 26 | | Data-driven / oneOf variants | 5 | **295** | -The ~483-test gap is concentrated in **negative paths** (575 tests missing) and -**search refinement** (138 tests missing). The generator already exceeds upstream -on input-shape variants (`data-driven` +290) and `observe-absence` (+24). -See `gaps.md` for the categorised list. +The **483-test gap** is concentrated in **negative paths** (543 unique upstream +tests have a negative label; generator has 0) and **search refinement** (135 +unique upstream tests have pagination/filter; generator has 0). The generator +already exceeds upstream on input-shape variants (`data-driven` +290) and +`observe-absence` (+24). See `gaps.md` for the categorised list. ## Limitations From 287f85bfcce7f37cde5c4aa73a30eb38f7ad45e5 Mon Sep 17 00:00:00 2001 From: esraagamal6 Date: Mon, 18 May 2026 15:50:22 +0200 Subject: [PATCH 04/15] docs(coverage-analysis): drop historical phrasing from upstream snapshot note Co-Authored-By: Claude Opus 4.7 (1M context) --- coverage-analysis/README.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/coverage-analysis/README.md b/coverage-analysis/README.md index 9a63ee5..8220aed 100644 --- a/coverage-analysis/README.md +++ b/coverage-analysis/README.md @@ -58,11 +58,10 @@ No dependencies beyond the Python stdlib. Re-run after any change under ## Comparison with upstream Upstream snapshot: -[camunda/camunda#53387](https://github.com/camunda/camunda/pull/53387) (head -`7cf8bc1`), which regenerates `coverage_matrix.csv` so the `total` column -equals unique-test count (previously double-counted multi-labeled tests). Variant -columns are label-occurrences, so a test tagged `happy-path|filter` shows up in -both. +[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 | |---|---:|---:| From d943236a551358f09398e771f696864ad8e57507 Mon Sep 17 00:00:00 2001 From: esraagamal6 Date: Tue, 19 May 2026 12:43:51 +0200 Subject: [PATCH 05/15] fix(coverage-analysis): scan request-validation + edge lifecycle sources The previous build_coverage.py only scanned playwright/*.feature.spec.ts and *.variant.spec.ts (518 tests). It missed two other generator outputs: - request-validation/*.spec.ts (1037 bad-request tests across 17 violation kinds: additional-prop, constraint-violation, enum-violation, missing-body, missing-required, oneof-ambiguous/cross-bleed/none-match, param-missing, type-mismatch, union, unique-items-violation, etc.) - playwright/edges/*.lifecycle.spec.ts (12 edge lifecycle tests, each exercising establish -> observe present -> revoke -> observe absent) Corrected totals: generator emits 1567 unique tests (was misreported as 518) across 4 sources (feature 227, variant 291, lifecycle 12, request-validation 1037). The generator emits 566 more tests than upstream's 1001, not 483 fewer. The real gap is in 401/403/404/409 + pagination/filter (~490 tests upstream has that the generator does not). Adds 'source' column to tests.csv so each test row identifies which emitter produced it. Adds 'lifecycle' operation kind and 'negative-*' form steps to the form-step ordering. Co-Authored-By: Claude Opus 4.7 (1M context) --- coverage-analysis/README.md | 59 +- coverage-analysis/build_coverage.py | 154 +- coverage-analysis/category_breakdown.md | 1583 ++++++++++++++--- coverage-analysis/coverage_matrix.csv | 183 +- coverage-analysis/coverage_matrix.md | 368 ++-- coverage-analysis/gaps.md | 35 +- coverage-analysis/tests.csv | 2087 +++++++++++++++++------ 7 files changed, 3334 insertions(+), 1135 deletions(-) diff --git a/coverage-analysis/README.md b/coverage-analysis/README.md index 8220aed..8272ad2 100644 --- a/coverage-analysis/README.md +++ b/coverage-analysis/README.md @@ -15,13 +15,24 @@ so the two suites can be diffed directly. Answers the questions in | file | what it is | |---|---| -| `build_coverage.py` | Walks the generated specs, 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, entity, category, operation, form_step, prerequisite, method, path, operationId, variants, test_name`. | +| `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`. | +## Test sources scanned + +The generator emits tests into three 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/request-validation/-validation-api-tests.spec.ts` | request-validation emitter (negative schema cases, all bad-request) | `request-validation` | + ## Regenerate ```sh @@ -65,21 +76,41 @@ unique-test count; variant columns are label-occurrences, so a test tagged | | upstream | generator | |---|---:|---:| -| Unique tests | **1001** | **518** | +| Unique tests | 1001 | **1567** | | Entities | 33 | 37 | -| Happy-path (occurrences) | 173 | 185 | -| Negative (400/401/403/404/409, occurrences) | 547 | **0** | -| Unique tests with any negative label | 543 | **0** | -| Pagination-sort + filter (occurrences) | 138 | **0** | -| Unique tests with pagination/filter label | 135 | **0** | -| Observe-absence | 2 | 26 | +| Happy-path (occurrences) | 173 | 197 | +| Bad-request (400, occurrences) | 195 | **1037** | +| Unauthorized (401) | 165 | **0** | +| Not-found (404) | 127 | **0** | +| Filter | 85 | **0** | +| Pagination-sort | 53 | **0** | +| Conflict (409) | 31 | **0** | +| Forbidden (403) | 29 | **0** | +| Observe-absence | 2 | 38 | | Data-driven / oneOf variants | 5 | **295** | -The **483-test gap** is concentrated in **negative paths** (543 unique upstream -tests have a negative label; generator has 0) and **search refinement** (135 -unique upstream tests have pagination/filter; generator has 0). The generator -already exceeds upstream on input-shape variants (`data-driven` +290) and -`observe-absence` (+24). See `gaps.md` for the categorised list. +**The generator emits 566 more tests than upstream.** It massively exceeds +upstream on 400 bad-request coverage (the `request-validation` emitter alone +produces 1037 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`). + +The buckets where the generator currently emits zero tests: + +- **401 unauthorized** (165 in upstream) — needs deployment-mode-aware auth + context, see `camunda/camunda#52511`. +- **403 forbidden** (29 in upstream) — needs RBAC ABox + restricted-token + test infrastructure. +- **404 not-found** (127 in upstream) — fake-ID variant on path params; computable. +- **409 conflict** (31 in upstream) — needs `duplicatePolicy` ABox slice + (designed in 8.8, not yet landed; see #277). +- **Pagination + sort** (53 in upstream) — computable from declared params. +- **Filter** (85 in upstream) — computable from filter schemas on search ops. + +See `gaps.md` for the categorised per-entity list. ## Limitations diff --git a/coverage-analysis/build_coverage.py b/coverage-analysis/build_coverage.py index 99d1581..422a320 100644 --- a/coverage-analysis/build_coverage.py +++ b/coverage-analysis/build_coverage.py @@ -6,9 +6,16 @@ Run from this script's directory: python3 build_coverage.py -Scans ../generated/camunda-oca/playwright/*.spec.ts and emits, next to this script: - - tests.csv : per-test labels (file, line, entity, operation, variants, test_name) +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/request-validation/*.spec.ts (negative request-validation, all bad-request) """ import csv import json @@ -18,6 +25,9 @@ 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') +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 @@ -272,42 +282,66 @@ def variants_of(test_name): TEST_RE = re.compile( r"""(?m)^[ \t]*test(?:\.(?:skip|only|fixme|fail))?\s*\(\s*['"`]([^'"`]+)['"`]""" ) -SPEC_FILE_RE = re.compile(r'^(?P[A-Za-z][A-Za-z0-9]*)\.(feature|variant)\.spec\.ts$') +# 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$') +# 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() + +def read_tests(path): + with open(path, encoding='utf-8') as fp: + content = fp.read() + out = [] + for tm in TEST_RE.finditer(content): + out.append((tm.group(1), content.count('\n', 0, tm.start()) + 1)) + return out + +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') - method_path = OPS.get(op_id) - if not method_path: + source = m.group('src') # 'feature' or 'variant' + method, path, entity, operation = resolve_op(op_id) + if entity == 'unknown': unresolved_ops.add(op_id) - method = '' - path = '' - entity = 'unknown' - operation = 'other' - else: - method, path = method_path - entity = entity_of_path(path) - operation = operation_of(op_id, method, path) - - full = os.path.join(PLAYWRIGHT_DIR, f) - with open(full, encoding='utf-8') as fp: - content = fp.read() - for tm in TEST_RE.finditer(content): - name = tm.group(1) - line_no = content.count('\n', 0, tm.start()) + 1 + for name, line_no in read_tests(os.path.join(PLAYWRIGHT_DIR, f)): variants = variants_of(name) rows.append({ - 'file': f, - 'line': line_no, - 'entity': entity, - 'operation': operation, - 'method': method, - 'path': path, - 'operationId': op_id, + '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), @@ -315,10 +349,67 @@ def variants_of(test_name): '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 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, + }) + +# --- 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 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','entity','category','operation','form_step','prerequisite','method','path','operationId','variants','test_name']) + 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)") @@ -329,7 +420,7 @@ def variants_of(test_name): # 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','other','parameterized'] +op_order = ['create','get','update','delete','search','lifecycle','other','parameterized'] matrix = defaultdict(lambda: defaultdict(lambda: defaultdict(int))) entity_totals = defaultdict(int) @@ -500,7 +591,10 @@ def variants_of(test_name): ] form_step_order = [ 'create', 'observe-present-get', 'observe-present-search', 'mutate', - 'delete', 'observe-absence', 'other', + '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', diff --git a/coverage-analysis/category_breakdown.md b/coverage-analysis/category_breakdown.md index 95f1d23..31b4b7c 100644 --- a/coverage-analysis/category_breakdown.md +++ b/coverage-analysis/category_breakdown.md @@ -1,6 +1,6 @@ # api-test-generator — Per-category breakdown -Total test declarations: **518** across **37** entities. +Total test declarations: **1567** 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**. @@ -8,57 +8,34 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra ## Table of contents -- [A. Entity Lifecycle (CRUD)](#a-entity-lifecycle-crud) — 84 tests -- [B. Membership/Association](#b-membershipassociation) — 68 tests -- [C. Deployment Lifecycle](#c-deployment-lifecycle) — 64 tests -- [D. Process-Instance Lifecycle & Ops](#d-process-instance-lifecycle--ops) — 107 tests -- [E. Batch-Operation Lifecycle](#e-batch-operation-lifecycle) — 13 tests -- [F. User-Task Lifecycle](#f-user-task-lifecycle) — 20 tests -- [G. Job Lifecycle & Stats](#g-job-lifecycle--stats) — 27 tests -- [H. Incident Lifecycle](#h-incident-lifecycle) — 12 tests -- [I. Decision-Instance Lifecycle](#i-decision-instance-lifecycle) — 27 tests -- [J/K/L. Observation-only](#jkl-observation-only) — 52 tests -- [M. Messaging/Signals](#m-messagingsignals) — 22 tests -- [N. Engine Evaluation](#n-engine-evaluation) — 4 tests -- [O. System/Admin](#o-systemadmin) — 9 tests -- [P. Agent-Instance (new in v2)](#p-agent-instance-new-in-v2) — 9 tests +- [A. Entity Lifecycle (CRUD)](#a-entity-lifecycle-crud) — 351 tests +- [B. Membership/Association](#b-membershipassociation) — 206 tests +- [C. Deployment Lifecycle](#c-deployment-lifecycle) — 148 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) — 63 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) — 22 tests +- [O. System/Admin](#o-systemadmin) — 36 tests +- [P. Agent-Instance (new in v2)](#p-agent-instance-new-in-v2) — 15 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**: 84 +**Total tests**: 351 -### `authorization` — 12 tests - -- **Prerequisite to create**: owner-entity-or-resource -- **Files**: `createAuthorization.feature.spec.ts`, `deleteAuthorization.feature.spec.ts`, `getAuthorization.feature.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 -- **Variants**: happy-path=5, observe-absence=1, data-driven=6 - -| 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 | `searchAuthorizations.variant.spec.ts:12` | variant-1 - searchAuthorizations - path #1 | -| observe-present-search | data-driven | `searchAuthorizations.variant.spec.ts:65` | 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) | - -### `cluster-variables` — 12 tests +### `cluster-variables` — 60 tests - **Prerequisite to create**: none -- **Files**: `createGlobalClusterVariable.feature.spec.ts`, `createTenantClusterVariable.feature.spec.ts`, `deleteGlobalClusterVariable.feature.spec.ts`, `deleteTenantClusterVariable.feature.spec.ts`, `getGlobalClusterVariable.feature.spec.ts`, `getTenantClusterVariable.feature.spec.ts`, `searchClusterVariables.feature.spec.ts`, `searchClusterVariables.variant.spec.ts`, `updateGlobalClusterVariable.feature.spec.ts`, `updateTenantClusterVariable.feature.spec.ts` +- **Files**: `createGlobalClusterVariable.feature.spec.ts`, `createTenantClusterVariable.feature.spec.ts`, `deleteGlobalClusterVariable.feature.spec.ts`, `deleteTenantClusterVariable.feature.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 -- **Variants**: happy-path=9, observe-absence=1, data-driven=2 +- **Form-step counts**: create=2, observe-present-get=2, observe-present-search=3, mutate=2, delete=2, observe-absence=1, negative-create=25, negative-get=3, negative-update=11, negative-delete=3, negative-search=6 +- **Variants**: happy-path=9, observe-absence=1, data-driven=2, bad-request=48 | form step | variants | file:line | test name | |--|--|--|--| @@ -74,34 +51,62 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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) | - -### `document` — 9 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`, `getDocument.feature.spec.ts` -- **Observation channel**: GET = 1, Search = 0 -- **Form-step counts**: create=7, observe-present-get=1, delete=1 -- **Variants**: happy-path=5, data-driven=4 - -| 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) | - -### `mapping-rule` — 9 tests +| 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` — 48 tests - **Prerequisite to create**: none -- **Files**: `createMappingRule.feature.spec.ts`, `deleteMappingRule.feature.spec.ts`, `getMappingRule.feature.spec.ts`, `searchMappingRule.feature.spec.ts`, `searchMappingRule.variant.spec.ts`, `updateMappingRule.feature.spec.ts` +- **Files**: `createMappingRule.feature.spec.ts`, `deleteMappingRule.feature.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 -- **Variants**: happy-path=5, observe-absence=1, data-driven=3 +- **Form-step counts**: create=1, observe-present-get=1, observe-present-search=4, mutate=1, delete=1, observe-absence=1, negative-create=20, negative-get=1, negative-update=12, negative-delete=1, negative-search=5 +- **Variants**: happy-path=5, observe-absence=1, data-driven=3, bad-request=39 | form step | variants | file:line | test name | |--|--|--|--| @@ -114,34 +119,111 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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) | - -### `role` — 9 tests +| 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` — 47 tests - **Prerequisite to create**: none -- **Files**: `createRole.feature.spec.ts`, `deleteRole.feature.spec.ts`, `getRole.feature.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 -- **Variants**: happy-path=5, observe-absence=1, data-driven=3 +- **Files**: `createGlobalTaskListener.feature.spec.ts`, `deleteGlobalTaskListener.feature.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, negative-create=21, negative-get=1, negative-update=11, negative-delete=1, negative-search=5 +- **Variants**: happy-path=5, observe-absence=1, data-driven=2, bad-request=39 | 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 | `searchRoles.variant.spec.ts:12` | variant-1 - searchRoles - path #1 | -| observe-present-search | data-driven | `searchRoles.variant.spec.ts:104` | variant-2 - searchRoles - path #1 | -| observe-present-search | data-driven | `searchRoles.variant.spec.ts:155` | 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) | - -### `tenant` — 9 tests +| 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 | `searchGlobalTaskListeners.variant.spec.ts:12` | variant-1 - searchGlobalTaskListeners - path #1 | +| observe-present-search | data-driven | `searchGlobalTaskListeners.variant.spec.ts:65` | 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) | +| 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` — 37 tests - **Prerequisite to create**: none -- **Files**: `createTenant.feature.spec.ts`, `deleteTenant.feature.spec.ts`, `getTenant.feature.spec.ts`, `searchTenants.feature.spec.ts`, `searchTenants.variant.spec.ts`, `updateTenant.feature.spec.ts` +- **Files**: `createTenant.feature.spec.ts`, `deleteTenant.feature.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 -- **Variants**: happy-path=5, observe-absence=1, data-driven=3 +- **Form-step counts**: create=1, observe-present-get=1, observe-present-search=4, mutate=1, delete=1, observe-absence=1, negative-create=14, negative-get=1, negative-update=7, negative-delete=1, negative-search=5 +- **Variants**: happy-path=5, observe-absence=1, data-driven=3, bad-request=28 | form step | variants | file:line | test name | |--|--|--|--| @@ -154,33 +236,136 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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) | +| 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` — 36 tests -### `global-task-listener` — 8 tests - -- **Prerequisite to create**: none -- **Files**: `createGlobalTaskListener.feature.spec.ts`, `deleteGlobalTaskListener.feature.spec.ts`, `getGlobalTaskListener.feature.spec.ts`, `searchGlobalTaskListeners.feature.spec.ts`, `searchGlobalTaskListeners.variant.spec.ts`, `updateGlobalTaskListener.feature.spec.ts` +- **Prerequisite to create**: owner-entity-or-resource +- **Files**: `createAuthorization.feature.spec.ts`, `deleteAuthorization.feature.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=1, observe-present-get=1, observe-present-search=3, mutate=1, delete=1, observe-absence=1 -- **Variants**: happy-path=5, observe-absence=1, data-driven=2 +- **Form-step counts**: create=3, observe-present-get=1, observe-present-search=3, mutate=3, delete=1, observe-absence=1, negative-create=7, negative-get=1, negative-update=8, negative-delete=1, negative-search=7 +- **Variants**: happy-path=5, observe-absence=1, data-driven=6, bad-request=24 | 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 | `searchGlobalTaskListeners.variant.spec.ts:12` | variant-1 - searchGlobalTaskListeners - path #1 | -| observe-present-search | data-driven | `searchGlobalTaskListeners.variant.spec.ts:65` | 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) | +| 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 | `searchAuthorizations.variant.spec.ts:12` | variant-1 - searchAuthorizations - path #1 | +| observe-present-search | data-driven | `searchAuthorizations.variant.spec.ts:65` | 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) | +| 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` — 36 tests + +- **Prerequisite to create**: none +- **Files**: `createRole.feature.spec.ts`, `deleteRole.feature.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, negative-create=13, negative-get=1, negative-update=7, negative-delete=1, negative-search=5 +- **Variants**: happy-path=5, observe-absence=1, data-driven=3, bad-request=27 -### `group` — 8 tests +| 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 | `searchRoles.variant.spec.ts:12` | variant-1 - searchRoles - path #1 | +| observe-present-search | data-driven | `searchRoles.variant.spec.ts:104` | variant-2 - searchRoles - path #1 | +| observe-present-search | data-driven | `searchRoles.variant.spec.ts:155` | 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) | +| 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` — 34 tests - **Prerequisite to create**: none -- **Files**: `createGroup.feature.spec.ts`, `deleteGroup.feature.spec.ts`, `getGroup.feature.spec.ts`, `searchGroups.feature.spec.ts`, `searchGroups.variant.spec.ts`, `updateGroup.feature.spec.ts` +- **Files**: `createGroup.feature.spec.ts`, `deleteGroup.feature.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 -- **Variants**: happy-path=5, observe-absence=1, data-driven=2 +- **Form-step counts**: create=1, observe-present-get=1, observe-present-search=3, mutate=1, delete=1, observe-absence=1, negative-create=12, negative-get=1, negative-update=7, negative-delete=1, negative-search=5 +- **Variants**: happy-path=5, observe-absence=1, data-driven=2, bad-request=26 | form step | variants | file:line | test name | |--|--|--|--| @@ -192,14 +377,40 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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) | - -### `user` — 8 tests +| 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` — 33 tests - **Prerequisite to create**: none -- **Files**: `createUser.feature.spec.ts`, `deleteUser.feature.spec.ts`, `getUser.feature.spec.ts`, `searchUsers.feature.spec.ts`, `searchUsers.variant.spec.ts`, `updateUser.feature.spec.ts` +- **Files**: `createUser.feature.spec.ts`, `deleteUser.feature.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 -- **Variants**: happy-path=5, observe-absence=1, data-driven=2 +- **Form-step counts**: create=1, observe-present-get=1, observe-present-search=3, mutate=1, delete=1, observe-absence=1, negative-create=14, negative-get=1, negative-update=4, negative-delete=1, negative-search=5 +- **Variants**: happy-path=5, observe-absence=1, data-driven=2, bad-request=25 | form step | variants | file:line | test name | |--|--|--|--| @@ -211,20 +422,76 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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) | +| 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` — 20 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`, `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, negative-create=11 +- **Variants**: happy-path=5, 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) | +| 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**: 68 +**Total tests**: 206 -### `tenant` — 27 tests +### `tenant` — 82 tests - **Prerequisite to create**: tenant + client, tenant + group, tenant + groupid, tenant + mappingrule, 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`, `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` +- **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 -- **Variants**: happy-path=15, data-driven=12 +- **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=15, data-driven=12, bad-request=50 | form step | variants | file:line | test name | |--|--|--|--| @@ -255,14 +522,69 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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) | - -### `role` — 21 tests +| 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, mappingrule + role, role + client, role + group, role + mappingrule, role + user, user + role -- **Files**: `assignRoleToClient.feature.spec.ts`, `assignRoleToGroup.feature.spec.ts`, `assignRoleToMappingRule.feature.spec.ts`, `assignRoleToUser.feature.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` +- **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 -- **Variants**: happy-path=12, data-driven=9 +- **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=12, data-driven=9, bad-request=40 | form step | variants | file:line | test name | |--|--|--|--| @@ -287,14 +609,58 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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) | - -### `group` — 20 tests +| 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 + mappingrule, group + role, group + user -- **Files**: `assignClientToGroup.feature.spec.ts`, `assignMappingRuleToGroup.feature.spec.ts`, `assignUserToGroup.feature.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` +- **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 -- **Variants**: happy-path=10, data-driven=10 +- **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=10, data-driven=10, bad-request=36 | form step | variants | file:line | test name | |--|--|--|--| @@ -318,20 +684,59 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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**: 64 +**Total tests**: 148 -### `process-definition` — 27 tests +### `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`, `searchProcessDefinitions.feature.spec.ts`, `searchProcessDefinitions.variant.spec.ts` +- **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 -- **Variants**: happy-path=8, observe-absence=1, data-driven=18 +- **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 | form step | variants | file:line | test name | |--|--|--|--| @@ -362,14 +767,57 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | observe-present-search | data-driven | `searchProcessDefinitions.variant.spec.ts:140` | variant-3 - searchProcessDefinitions - path #1 | | observe-present-search | data-driven | `searchProcessDefinitions.variant.spec.ts:215` | variant-4 - searchProcessDefinitions - path #1 | | observe-absence | observe-absence | `searchProcessDefinitions.feature.spec.ts:59` | feature-2 - searchProcessDefinitions - negative empty (2) | - -### `resource` — 15 tests +| 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` — 35 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`, `searchResources.feature.spec.ts`, `searchResources.variant.spec.ts` +- **Files**: `createDeployment.feature.spec.ts`, `createDeployment.variant.spec.ts`, `deleteResource.feature.spec.ts`, `getResource.feature.spec.ts`, `getResourceContent.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 = 2, Search = 6 -- **Form-step counts**: create=5, observe-present-get=2, observe-present-search=6, delete=1, observe-absence=1 -- **Variants**: happy-path=4, observe-absence=1, data-driven=10 +- **Form-step counts**: create=5, observe-present-get=2, observe-present-search=6, delete=1, observe-absence=1, negative-create=8, negative-delete=7, negative-search=5 +- **Variants**: happy-path=4, observe-absence=1, data-driven=10, bad-request=20 | form step | variants | file:line | test name | |--|--|--|--| @@ -388,14 +836,34 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | observe-present-search | data-driven | `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) | - -### `decision-definition` — 14 tests +| 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`, `searchDecisionDefinitions.feature.spec.ts`, `searchDecisionDefinitions.variant.spec.ts` +- **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 -- **Variants**: happy-path=4, observe-absence=1, data-driven=9 +- **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 | form step | variants | file:line | test name | |--|--|--|--| @@ -413,14 +881,28 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | observe-present-search | data-driven | `searchDecisionDefinitions.variant.spec.ts:219` | variant-5 - searchDecisionDefinitions - path #1 | | observe-present-search | data-driven | `searchDecisionDefinitions.variant.spec.ts:272` | variant-6 - searchDecisionDefinitions - path #1 | | observe-absence | observe-absence | `searchDecisionDefinitions.feature.spec.ts:37` | feature-2 - searchDecisionDefinitions - negative empty (2) | - -### `decision-requirements` — 8 tests +| 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`, `searchDecisionRequirements.feature.spec.ts`, `searchDecisionRequirements.variant.spec.ts` +- **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 -- **Variants**: happy-path=3, observe-absence=1, data-driven=4 +- **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 | form step | variants | file:line | test name | |--|--|--|--| @@ -432,20 +914,27 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | observe-present-search | data-driven | `searchDecisionRequirements.variant.spec.ts:117` | variant-3 - searchDecisionRequirements - path #1 | | observe-present-search | data-driven | `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**: 107 +**Total tests**: 282 -### `process-instance` — 107 tests +### `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`, `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` +- **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 -- **Variants**: happy-path=17, observe-absence=1, data-driven=89 +- **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 | form step | variants | file:line | test name | |--|--|--|--| @@ -556,20 +1045,195 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | delete | data-driven | `deleteProcessInstancesBatchOperation.variant.spec.ts:622` | variant-9 - deleteProcessInstancesBatchOperation - bpmn #1 | | delete | data-driven | `deleteProcessInstancesBatchOperation.variant.spec.ts:727` | variant-10 - deleteProcessInstancesBatchOperation - bpmn #1 | | observe-absence | observe-absence | `searchProcessInstances.feature.spec.ts:79` | 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**: 13 +**Total tests**: 24 -### `batch-operation` — 8 tests +### `batch-operation` — 14 tests - **Prerequisite to create**: running-process-instance(s) -- **Files**: `cancelBatchOperation.feature.spec.ts`, `getBatchOperation.feature.spec.ts`, `resumeBatchOperation.feature.spec.ts`, `searchBatchOperations.feature.spec.ts`, `searchBatchOperations.variant.spec.ts`, `suspendBatchOperation.feature.spec.ts` +- **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 -- **Variants**: happy-path=5, observe-absence=1, data-driven=2 +- **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 | form step | variants | file:line | test name | |--|--|--|--| @@ -581,14 +1245,20 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | mutate | happy-path | `suspendBatchOperation.feature.spec.ts:8` | feature-1 - suspendBatchOperation - base (1) | | delete | happy-path | `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` — 5 tests +### `batch-operation-item` — 10 tests - **Prerequisite to create**: running-batch-operation -- **Files**: `searchBatchOperationItems.feature.spec.ts`, `searchBatchOperationItems.variant.spec.ts` +- **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 -- **Variants**: happy-path=1, observe-absence=1, data-driven=3 +- **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 | form step | variants | file:line | test name | |--|--|--|--| @@ -597,20 +1267,25 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | observe-present-search | data-driven | `searchBatchOperationItems.variant.spec.ts:84` | variant-2 - searchBatchOperationItems - path #1 | | observe-present-search | data-driven | `searchBatchOperationItems.variant.spec.ts:137` | 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**: 20 +**Total tests**: 63 -### `user-task` — 20 tests +### `user-task` — 63 tests - **Prerequisite to create**: running-process-instance-with-user-task -- **Files**: `assignUserTask.feature.spec.ts`, `completeUserTask.feature.spec.ts`, `getUserTask.feature.spec.ts`, `getUserTaskForm.feature.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` +- **Files**: `assignUserTask.feature.spec.ts`, `completeUserTask.feature.spec.ts`, `getUserTask.feature.spec.ts`, `getUserTaskForm.feature.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 = 2, Search = 13 -- **Form-step counts**: observe-present-get=2, observe-present-search=13, mutate=3, delete=1, observe-absence=1 -- **Variants**: happy-path=10, observe-absence=1, data-driven=9 +- **Form-step counts**: observe-present-get=2, observe-present-search=13, mutate=3, delete=1, observe-absence=1, negative-get=2, negative-update=10, negative-delete=1, negative-search=30 +- **Variants**: happy-path=10, observe-absence=1, data-driven=9, bad-request=43 | form step | variants | file:line | test name | |--|--|--|--| @@ -634,20 +1309,63 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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/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**: 27 +**Total tests**: 142 -### `job` — 27 tests +### `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`, `searchJobs.feature.spec.ts`, `searchJobs.variant.spec.ts`, `throwJobError.feature.spec.ts`, `updateJob.feature.spec.ts` +- **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 -- **Variants**: happy-path=11, observe-absence=2, data-driven=14 +- **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 | form step | variants | file:line | test name | |--|--|--|--| @@ -678,20 +1396,135 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | mutate | happy-path | `updateJob.feature.spec.ts:9` | feature-1 - updateJob - base (1) | | observe-absence | observe-absence | `activateJobs.feature.spec.ts:77` | feature-2 - activateJobs - negative empty (2) | | observe-absence | observe-absence | `searchJobs.feature.spec.ts:79` | 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 timeout,maxJobsToActivate | +| 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,timeout | +| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:403` | activateJobs - Missing combo type,timeout,maxJobsToActivate | +| 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**: 12 +**Total tests**: 41 -### `incident` — 12 tests +### `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`, `resolveIncident.feature.spec.ts`, `searchIncidents.feature.spec.ts`, `searchIncidents.variant.spec.ts` +- **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 -- **Variants**: happy-path=5, observe-absence=1, data-driven=6 +- **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 | form step | variants | file:line | test name | |--|--|--|--| @@ -707,20 +1540,49 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | observe-present-search | data-driven | `searchIncidents.variant.spec.ts:389` | 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**: 27 +**Total tests**: 72 -### `decision-instance` — 27 tests +### `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`, `searchDecisionInstances.feature.spec.ts`, `searchDecisionInstances.variant.spec.ts` +- **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 -- **Variants**: happy-path=4, observe-absence=1, data-driven=21, unlabeled=1 +- **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=21, unlabeled=1, bad-request=45 | form step | variants | file:line | test name | |--|--|--|--| @@ -751,20 +1613,65 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:523` | variant-9 - deleteDecisionInstancesBatchOperation - dmn #1 | | delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:573` | 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**: 52 +**Total tests**: 95 -### `element-instance` — 25 tests +### `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`, `searchElementInstanceIncidents.feature.spec.ts`, `searchElementInstanceIncidents.variant.spec.ts`, `searchElementInstances.feature.spec.ts`, `searchElementInstances.variant.spec.ts` +- **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 -- **Variants**: happy-path=5, observe-absence=1, data-driven=19 +- **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 | form step | variants | file:line | test name | |--|--|--|--| @@ -793,14 +1700,44 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:694` | variant-9 - searchElementInstances - path #1 | | observe-present-search | data-driven | `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) | - -### `audit-log` — 18 tests +| 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`, `searchAuditLogs.feature.spec.ts`, `searchAuditLogs.variant.spec.ts` +- **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 -- **Variants**: happy-path=2, observe-absence=1, data-driven=11, unlabeled=4 +- **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 | form step | variants | file:line | test name | |--|--|--|--| @@ -822,14 +1759,20 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | observe-present-search | data-driven | `searchAuditLogs.variant.spec.ts:725` | variant-14 - searchAuditLogs - path #1 | | observe-present-search | data-driven | `searchAuditLogs.variant.spec.ts:776` | 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` — 9 tests +### `variable` — 16 tests - **Prerequisite to create**: running-process-instance -- **Files**: `getVariable.feature.spec.ts`, `searchVariables.feature.spec.ts`, `searchVariables.variant.spec.ts` +- **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 -- **Variants**: happy-path=2, observe-absence=1, data-driven=4, unlabeled=2 +- **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 | form step | variants | file:line | test name | |--|--|--|--| @@ -842,20 +1785,93 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | observe-present-search | data-driven | `searchVariables.variant.spec.ts:191` | variant-5 - searchVariables - path #1 | | observe-present-search | data-driven | `searchVariables.variant.spec.ts:242` | 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**: 22 +**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, unlabeled=2, bad-request=26 -### `correlated-message-subscription` — 8 tests +| form step | variants | file:line | test name | +|--|--|--|--| +| create | happy-path | `correlateMessage.feature.spec.ts:11` | feature-1 - correlateMessage - base (1) | +| create | unlabeled | `correlateMessage.variant.spec.ts:11` | variant-1 - scenario | +| create | happy-path | `publishMessage.feature.spec.ts:11` | feature-1 - publishMessage - base (1) | +| create | unlabeled | `publishMessage.variant.spec.ts:11` | variant-1 - scenario | +| 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, unlabeled=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 | unlabeled | `broadcastSignal.variant.spec.ts:11` | variant-1 - scenario | +| 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**: `searchCorrelatedMessageSubscriptions.feature.spec.ts`, `searchCorrelatedMessageSubscriptions.variant.spec.ts` +- **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 -- **Variants**: happy-path=1, observe-absence=1, data-driven=6 +- **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 | form step | variants | file:line | test name | |--|--|--|--| @@ -867,14 +1883,19 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | observe-present-search | data-driven | `searchCorrelatedMessageSubscriptions.variant.spec.ts:305` | variant-5 - searchCorrelatedMessageSubscriptions - path #1 | | observe-present-search | data-driven | `searchCorrelatedMessageSubscriptions.variant.spec.ts:359` | 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` — 8 tests +### `message-subscriptions` — 13 tests - **Prerequisite to create**: deployed-process-with-message-catch-event -- **Files**: `searchMessageSubscriptions.feature.spec.ts`, `searchMessageSubscriptions.variant.spec.ts` +- **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 -- **Variants**: happy-path=1, observe-absence=1, data-driven=6 +- **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 | form step | variants | file:line | test name | |--|--|--|--| @@ -886,110 +1907,132 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | observe-present-search | data-driven | `searchMessageSubscriptions.variant.spec.ts:298` | variant-5 - searchMessageSubscriptions - path #1 | | observe-present-search | data-driven | `searchMessageSubscriptions.variant.spec.ts:351` | variant-6 - searchMessageSubscriptions - path #1 | | observe-absence | observe-absence | `searchMessageSubscriptions.feature.spec.ts:37` | feature-2 - searchMessageSubscriptions - negative empty (2) | - -### `message` — 4 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` -- **Observation channel**: GET = 0, Search = 0 -- **Form-step counts**: create=4 -- **Variants**: happy-path=2, unlabeled=2 - -| form step | variants | file:line | test name | -|--|--|--|--| -| create | happy-path | `correlateMessage.feature.spec.ts:11` | feature-1 - correlateMessage - base (1) | -| create | unlabeled | `correlateMessage.variant.spec.ts:11` | variant-1 - scenario | -| create | happy-path | `publishMessage.feature.spec.ts:11` | feature-1 - publishMessage - base (1) | -| create | unlabeled | `publishMessage.variant.spec.ts:11` | variant-1 - scenario | - -### `signal` — 2 tests - -- **Prerequisite to create**: deployed-process-with-signal-catch-event -- **Files**: `broadcastSignal.feature.spec.ts`, `broadcastSignal.variant.spec.ts` -- **Observation channel**: GET = 0, Search = 0 -- **Form-step counts**: create=2 -- **Variants**: happy-path=1, unlabeled=1 - -| form step | variants | file:line | test name | -|--|--|--|--| -| create | happy-path | `broadcastSignal.feature.spec.ts:11` | feature-1 - broadcastSignal - base (1) | -| create | unlabeled | `broadcastSignal.variant.spec.ts:11` | variant-1 - scenario | +| 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**: 4 +**Total tests**: 22 -### `conditional` — 3 tests +### `conditional` — 15 tests - **Prerequisite to create**: none -- **Files**: `evaluateConditionals.feature.spec.ts`, `evaluateConditionals.variant.spec.ts` +- **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 -- **Variants**: happy-path=1, data-driven=1, unlabeled=1 +- **Form-step counts**: create=3, negative-create=12 +- **Variants**: happy-path=1, data-driven=1, unlabeled=1, bad-request=12 | form step | variants | file:line | test name | |--|--|--|--| | create | happy-path | `evaluateConditionals.feature.spec.ts:11` | feature-1 - evaluateConditionals - base (1) | | create | unlabeled | `evaluateConditionals.variant.spec.ts:12` | variant-1 - scenario | | create | data-driven | `evaluateConditionals.variant.spec.ts:40` | variant-2 - evaluateConditionals - bpmn #1 | - -### `expression` — 1 tests +| 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` — 7 tests - **Prerequisite to create**: none -- **Files**: `evaluateExpression.feature.spec.ts` +- **Files**: `evaluateExpression.feature.spec.ts`, `request-validation/expression-validation-api-tests.spec.ts` - **Observation channel**: GET = 0, Search = 0 -- **Form-step counts**: create=1 -- **Variants**: happy-path=1 +- **Form-step counts**: create=1, negative-create=6 +- **Variants**: happy-path=1, bad-request=6 | form step | variants | file:line | test name | |--|--|--|--| | create | happy-path | `evaluateExpression.feature.spec.ts:11` | feature-1 - evaluateExpression - base (1) | +| 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:36` | evaluateExpression - Body wrong top-level type | +| negative-create | bad-request | `request-validation/expression-validation-api-tests.spec.ts:51` | evaluateExpression - Param expression wrong type (#1) | +| negative-create | bad-request | `request-validation/expression-validation-api-tests.spec.ts:68` | evaluateExpression - Param expression wrong type (#2) | +| negative-create | bad-request | `request-validation/expression-validation-api-tests.spec.ts:85` | evaluateExpression - Missing expression | +| negative-create | bad-request | `request-validation/expression-validation-api-tests.spec.ts:100` | evaluateExpression - Missing body | ## O. System/Admin **Form**: Read system state (auth, license, cluster, clock, metrics) or perform admin action (pin/reset clock) -**Total tests**: 9 +**Total tests**: 36 -### `system` — 2 tests +### `setup` — 15 tests - **Prerequisite to create**: none -- **Files**: `getSystemConfiguration.feature.spec.ts`, `getUsageMetrics.feature.spec.ts` -- **Observation channel**: GET = 2, Search = 0 -- **Form-step counts**: observe-present-get=2 -- **Variants**: happy-path=2 +- **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 | |--|--|--|--| -| 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) | - -### `clock` — 2 tests +| 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**: `pinClock.feature.spec.ts`, `resetClock.feature.spec.ts` -- **Observation channel**: GET = 0, Search = 0 -- **Form-step counts**: create=1, delete=1 -- **Variants**: happy-path=2 +- **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 | |--|--|--|--| -| create | happy-path | `pinClock.feature.spec.ts:8` | feature-1 - pinClock - base (1) | -| delete | happy-path | `resetClock.feature.spec.ts:8` | feature-1 - resetClock - base (1) | +| 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 | -### `setup` — 1 tests +### `clock` — 8 tests - **Prerequisite to create**: none -- **Files**: `createAdminUser.feature.spec.ts` +- **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 -- **Variants**: happy-path=1 +- **Form-step counts**: create=1, delete=1, negative-create=6 +- **Variants**: happy-path=2, bad-request=6 | form step | variants | file:line | test name | |--|--|--|--| -| create | happy-path | `createAdminUser.feature.spec.ts:11` | feature-1 - createAdminUser - base (1) | +| create | happy-path | `pinClock.feature.spec.ts:8` | feature-1 - pinClock - base (1) | +| delete | 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 @@ -1043,15 +2086,15 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra **Form**: New v2 endpoint family — get / search agent instances (lifecycle TBD) -**Total tests**: 9 +**Total tests**: 15 -### `agent-instance` — 9 tests +### `agent-instance` — 15 tests - **Prerequisite to create**: unknown -- **Files**: `getAgentInstance.feature.spec.ts`, `searchAgentInstances.feature.spec.ts`, `searchAgentInstances.variant.spec.ts` +- **Files**: `getAgentInstance.feature.spec.ts`, `request-validation/agentinstances-validation-api-tests.spec.ts`, `searchAgentInstances.feature.spec.ts`, `searchAgentInstances.variant.spec.ts` - **Observation channel**: GET = 1, Search = 7 -- **Form-step counts**: observe-present-get=1, observe-present-search=7, observe-absence=1 -- **Variants**: happy-path=2, observe-absence=1, data-driven=5, unlabeled=1 +- **Form-step counts**: observe-present-get=1, observe-present-search=7, observe-absence=1, negative-get=1, negative-search=5 +- **Variants**: happy-path=2, observe-absence=1, data-driven=5, unlabeled=1, bad-request=6 | form step | variants | file:line | test name | |--|--|--|--| @@ -1064,4 +2107,10 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | observe-present-search | data-driven | `searchAgentInstances.variant.spec.ts:270` | variant-5 - searchAgentInstances - path #1 | | observe-present-search | data-driven | `searchAgentInstances.variant.spec.ts:334` | variant-6 - searchAgentInstances - path #1 | | observe-absence | observe-absence | `searchAgentInstances.feature.spec.ts:37` | feature-2 - searchAgentInstances - negative empty (2) | +| negative-get | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:18` | getAgentInstance - Path param agentInstanceKey pattern violation | +| negative-search | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:34` | searchAgentInstances - Additional prop __unexpectedField | +| negative-search | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:53` | searchAgentInstances - Body wrong top-level type | +| negative-search | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:68` | searchAgentInstances - Missing sort.0.field | +| negative-search | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:85` | searchAgentInstances - Enum violation sort.0.field | +| negative-search | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:106` | searchAgentInstances - Enum violation sort.0.order | diff --git a/coverage-analysis/coverage_matrix.csv b/coverage-analysis/coverage_matrix.csv index c58126f..06ccd6e 100644 --- a/coverage-analysis/coverage_matrix.csv +++ b/coverage-analysis/coverage_matrix.csv @@ -1,101 +1,104 @@ entity,operation,total,happy-path,bad-request,unauthorized,forbidden,not-found,conflict,pagination-sort,filter,observe-absence,data-driven,unlabeled -process-instance,create,8,1,0,0,0,0,0,0,0,0,7,0 -process-instance,get,4,4,0,0,0,0,0,0,0,0,0,0 -process-instance,update,50,6,0,0,0,0,0,0,0,0,44,0 -process-instance,delete,24,4,0,0,0,0,0,0,0,0,20,0 -process-instance,search,21,2,0,0,0,0,0,0,0,1,18,0 -tenant,create,1,1,0,0,0,0,0,0,0,0,0,0 -tenant,get,1,1,0,0,0,0,0,0,0,0,0,0 -tenant,update,6,6,0,0,0,0,0,0,0,0,0,0 -tenant,delete,6,6,0,0,0,0,0,0,0,0,0,0 -tenant,search,22,6,0,0,0,0,0,0,0,1,15,0 -role,create,1,1,0,0,0,0,0,0,0,0,0,0 -role,get,1,1,0,0,0,0,0,0,0,0,0,0 -role,update,5,5,0,0,0,0,0,0,0,0,0,0 -role,delete,5,5,0,0,0,0,0,0,0,0,0,0 -role,search,18,5,0,0,0,0,0,0,0,1,12,0 -group,create,1,1,0,0,0,0,0,0,0,0,0,0 -group,get,1,1,0,0,0,0,0,0,0,0,0,0 -group,update,4,4,0,0,0,0,0,0,0,0,0,0 -group,delete,4,4,0,0,0,0,0,0,0,0,0,0 -group,search,18,5,0,0,0,0,0,0,0,1,12,0 -job,create,4,2,0,0,0,0,0,0,0,1,1,0 -job,get,9,5,0,0,0,0,0,0,0,0,4,0 -job,update,6,3,0,0,0,0,0,0,0,0,3,0 -job,search,8,1,0,0,0,0,0,0,0,1,6,0 -decision-instance,get,1,1,0,0,0,0,0,0,0,0,0,0 -decision-instance,delete,12,2,0,0,0,0,0,0,0,0,9,1 -decision-instance,search,14,1,0,0,0,0,0,0,0,1,12,0 -process-definition,get,21,7,0,0,0,0,0,0,0,0,14,0 -process-definition,search,6,1,0,0,0,0,0,0,0,1,4,0 -element-instance,create,3,2,0,0,0,0,0,0,0,0,1,0 -element-instance,get,1,1,0,0,0,0,0,0,0,0,0,0 -element-instance,search,21,2,0,0,0,0,0,0,0,1,18,0 -user-task,get,2,2,0,0,0,0,0,0,0,0,0,0 -user-task,update,3,3,0,0,0,0,0,0,0,0,0,0 -user-task,delete,1,1,0,0,0,0,0,0,0,0,0,0 -user-task,search,14,4,0,0,0,0,0,0,0,1,9,0 -audit-log,get,1,1,0,0,0,0,0,0,0,0,0,0 -audit-log,search,17,1,0,0,0,0,0,0,0,1,11,4 -resource,create,5,0,0,0,0,0,0,0,0,0,5,0 +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,0,0,44,0 +process-instance,delete,74,4,50,0,0,0,0,0,0,0,20,0 +process-instance,search,38,2,17,0,0,0,0,0,0,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,0,0,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,0,0,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,0,0,1,15,0 +tenant,lifecycle,10,5,0,0,0,0,0,0,0,5,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,0,0,1,12,0 +role,lifecycle,8,4,0,0,0,0,0,0,0,4,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,0,0,1,12,0 +group,lifecycle,6,3,0,0,0,0,0,0,0,3,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,0,0,9,1 +decision-instance,search,20,1,6,0,0,0,0,0,0,1,12,0 +process-definition,get,59,7,38,0,0,0,0,0,0,0,14,0 +process-definition,search,11,1,5,0,0,0,0,0,0,1,4,0 +user-task,get,4,2,2,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,0,0,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,0,0,1,2,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,0,0,1,18,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,0,0,1,3,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,0,0,1,2,0 +incident,get,19,3,16,0,0,0,0,0,0,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,0,0,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,0,0,1,2,0 +resource,create,13,0,8,0,0,0,0,0,0,0,5,0 resource,get,2,2,0,0,0,0,0,0,0,0,0,0 -resource,delete,1,1,0,0,0,0,0,0,0,0,0,0 -resource,search,7,1,0,0,0,0,0,0,0,1,5,0 -decision-definition,create,4,1,0,0,0,0,0,0,0,0,3,0 -decision-definition,get,2,2,0,0,0,0,0,0,0,0,0,0 -decision-definition,search,8,1,0,0,0,0,0,0,0,1,6,0 -authorization,create,3,1,0,0,0,0,0,0,0,0,2,0 -authorization,get,1,1,0,0,0,0,0,0,0,0,0,0 -authorization,update,3,1,0,0,0,0,0,0,0,0,2,0 -authorization,delete,1,1,0,0,0,0,0,0,0,0,0,0 -authorization,search,4,1,0,0,0,0,0,0,0,1,2,0 -cluster-variables,create,2,2,0,0,0,0,0,0,0,0,0,0 -cluster-variables,get,2,2,0,0,0,0,0,0,0,0,0,0 -cluster-variables,update,2,2,0,0,0,0,0,0,0,0,0,0 -cluster-variables,delete,2,2,0,0,0,0,0,0,0,0,0,0 -cluster-variables,search,4,1,0,0,0,0,0,0,0,1,2,0 -incident,get,3,3,0,0,0,0,0,0,0,0,0,0 -incident,update,1,1,0,0,0,0,0,0,0,0,0,0 -incident,search,8,1,0,0,0,0,0,0,0,1,6,0 -document,create,7,3,0,0,0,0,0,0,0,0,4,0 +resource,delete,8,1,7,0,0,0,0,0,0,0,0,0 +resource,search,12,1,5,0,0,0,0,0,0,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,0,0,1,2,0 +message,create,30,2,26,0,0,0,0,0,0,0,0,2 +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,0,0,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,0,0,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 -mapping-rule,create,1,1,0,0,0,0,0,0,0,0,0,0 -mapping-rule,get,1,1,0,0,0,0,0,0,0,0,0,0 -mapping-rule,update,1,1,0,0,0,0,0,0,0,0,0,0 -mapping-rule,delete,1,1,0,0,0,0,0,0,0,0,0,0 -mapping-rule,search,5,1,0,0,0,0,0,0,0,1,3,0 -agent-instance,get,1,1,0,0,0,0,0,0,0,0,0,0 -agent-instance,search,8,1,0,0,0,0,0,0,0,1,5,1 -variable,get,1,1,0,0,0,0,0,0,0,0,0,0 -variable,search,8,1,0,0,0,0,0,0,0,1,4,2 +variable,get,2,1,1,0,0,0,0,0,0,0,0,0 +variable,search,14,1,6,0,0,0,0,0,0,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,1,1 +agent-instance,get,2,1,1,0,0,0,0,0,0,0,0,0 +agent-instance,search,13,1,5,0,0,0,0,0,0,1,5,1 +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,0,0,1,4,0 +signal,create,14,1,12,0,0,0,0,0,0,0,0,1 batch-operation,get,1,1,0,0,0,0,0,0,0,0,0,0 batch-operation,update,2,2,0,0,0,0,0,0,0,0,0,0 batch-operation,delete,1,1,0,0,0,0,0,0,0,0,0,0 -batch-operation,search,4,1,0,0,0,0,0,0,0,1,2,0 -global-task-listener,create,1,1,0,0,0,0,0,0,0,0,0,0 -global-task-listener,get,1,1,0,0,0,0,0,0,0,0,0,0 -global-task-listener,update,1,1,0,0,0,0,0,0,0,0,0,0 -global-task-listener,delete,1,1,0,0,0,0,0,0,0,0,0,0 -global-task-listener,search,4,1,0,0,0,0,0,0,0,1,2,0 -user,create,1,1,0,0,0,0,0,0,0,0,0,0 -user,get,1,1,0,0,0,0,0,0,0,0,0,0 -user,update,1,1,0,0,0,0,0,0,0,0,0,0 -user,delete,1,1,0,0,0,0,0,0,0,0,0,0 -user,search,4,1,0,0,0,0,0,0,0,1,2,0 -decision-requirements,get,2,2,0,0,0,0,0,0,0,0,0,0 -decision-requirements,search,6,1,0,0,0,0,0,0,0,1,4,0 -correlated-message-subscription,search,8,1,0,0,0,0,0,0,0,1,6,0 -message-subscriptions,search,8,1,0,0,0,0,0,0,0,1,6,0 -batch-operation-item,search,5,1,0,0,0,0,0,0,0,1,3,0 -message,create,4,2,0,0,0,0,0,0,0,0,0,2 -conditional,create,3,1,0,0,0,0,0,0,0,0,1,1 -signal,create,2,1,0,0,0,0,0,0,0,0,0,1 -system,get,2,2,0,0,0,0,0,0,0,0,0,0 -clock,create,1,1,0,0,0,0,0,0,0,0,0,0 +batch-operation,search,10,1,6,0,0,0,0,0,0,1,2,0 +correlated-message-subscription,search,13,1,5,0,0,0,0,0,0,1,6,0 +message-subscriptions,search,13,1,5,0,0,0,0,0,0,1,6,0 +batch-operation-item,search,10,1,5,0,0,0,0,0,0,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,delete,1,1,0,0,0,0,0,0,0,0,0,0 -setup,create,1,1,0,0,0,0,0,0,0,0,0,0 -expression,create,1,1,0,0,0,0,0,0,0,0,0,0 +expression,create,7,1,6,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 diff --git a/coverage-analysis/coverage_matrix.md b/coverage-analysis/coverage_matrix.md index e7f953d..7bce02b 100644 --- a/coverage-analysis/coverage_matrix.md +++ b/coverage-analysis/coverage_matrix.md @@ -1,6 +1,6 @@ # api-test-generator — Coverage matrix (entity × operation × variant) -Total test declarations: **518** across **37** entities. +Total test declarations: **1567** across **37** entities. Variants are first-match labels derived from the generator's emitter suffix (`base`, `negative empty`, `bpmn|dmn|drd|form|path|cycle/...`, `oneOf ...`, `scenario`). See `build_coverage.py` for the rule table. @@ -10,103 +10,106 @@ Legend: ✓ = at least 1, blank = 0. | entity | op | total | happy | bad-req | 401 | 403 | 404 | conflict | pagin/sort | filter | absence | data-driven | unlabeled | |--|--|--:|--|--|--|--|--|--|--|--|--|--|--| -| process-instance | create | 8 | ✓ | | | | | | | | | ✓ | | -| process-instance | get | 4 | ✓ | | | | | | | | | | | -| process-instance | update | 50 | ✓ | | | | | | | | | ✓ | | -| process-instance | delete | 24 | ✓ | | | | | | | | | ✓ | | -| process-instance | search | 21 | ✓ | | | | | | | | ✓ | ✓ | | -| tenant | create | 1 | ✓ | | | | | | | | | | | -| tenant | get | 1 | ✓ | | | | | | | | | | | -| tenant | update | 6 | ✓ | | | | | | | | | | | -| tenant | delete | 6 | ✓ | | | | | | | | | | | -| tenant | search | 22 | ✓ | | | | | | | | ✓ | ✓ | | -| role | create | 1 | ✓ | | | | | | | | | | | -| role | get | 1 | ✓ | | | | | | | | | | | -| role | update | 5 | ✓ | | | | | | | | | | | -| role | delete | 5 | ✓ | | | | | | | | | | | -| role | search | 18 | ✓ | | | | | | | | ✓ | ✓ | | -| group | create | 1 | ✓ | | | | | | | | | | | -| group | get | 1 | ✓ | | | | | | | | | | | -| group | update | 4 | ✓ | | | | | | | | | | | -| group | delete | 4 | ✓ | | | | | | | | | | | -| group | search | 18 | ✓ | | | | | | | | ✓ | ✓ | | -| job | create | 4 | ✓ | | | | | | | | ✓ | ✓ | | -| job | get | 9 | ✓ | | | | | | | | | ✓ | | -| job | update | 6 | ✓ | | | | | | | | | ✓ | | -| job | search | 8 | ✓ | | | | | | | | ✓ | ✓ | | -| decision-instance | get | 1 | ✓ | | | | | | | | | | | -| decision-instance | delete | 12 | ✓ | | | | | | | | | ✓ | ✓ | -| decision-instance | search | 14 | ✓ | | | | | | | | ✓ | ✓ | | -| process-definition | get | 21 | ✓ | | | | | | | | | ✓ | | -| process-definition | search | 6 | ✓ | | | | | | | | ✓ | ✓ | | -| element-instance | create | 3 | ✓ | | | | | | | | | ✓ | | -| element-instance | get | 1 | ✓ | | | | | | | | | | | -| element-instance | search | 21 | ✓ | | | | | | | | ✓ | ✓ | | -| user-task | get | 2 | ✓ | | | | | | | | | | | -| user-task | update | 3 | ✓ | | | | | | | | | | | -| user-task | delete | 1 | ✓ | | | | | | | | | | | -| user-task | search | 14 | ✓ | | | | | | | | ✓ | ✓ | | -| audit-log | get | 1 | ✓ | | | | | | | | | | | -| audit-log | search | 17 | ✓ | | | | | | | | ✓ | ✓ | ✓ | -| resource | create | 5 | | | | | | | | | | ✓ | | +| 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 | 10 | ✓ | | | | | | | | ✓ | | | +| role | create | 14 | ✓ | ✓ | | | | | | | | | | +| role | get | 2 | ✓ | ✓ | | | | | | | | | | +| role | update | 20 | ✓ | ✓ | | | | | | | | | | +| role | delete | 14 | ✓ | ✓ | | | | | | | | | | +| role | search | 47 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| role | lifecycle | 8 | ✓ | | | | | | | | ✓ | | | +| group | create | 13 | ✓ | ✓ | | | | | | | | | | +| group | get | 2 | ✓ | ✓ | | | | | | | | | | +| group | update | 17 | ✓ | ✓ | | | | | | | | | | +| group | delete | 11 | ✓ | ✓ | | | | | | | | | | +| group | search | 47 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| group | lifecycle | 6 | ✓ | | | | | | | | ✓ | | | +| decision-instance | get | 2 | ✓ | ✓ | | | | | | | | | | +| decision-instance | delete | 50 | ✓ | ✓ | | | | | | | | ✓ | ✓ | +| decision-instance | search | 20 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| process-definition | get | 59 | ✓ | ✓ | | | | | | | | ✓ | | +| process-definition | search | 11 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| user-task | get | 4 | ✓ | ✓ | | | | | | | | | | +| 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 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| element-instance | create | 19 | ✓ | ✓ | | | | | | | | ✓ | | +| element-instance | get | 2 | ✓ | ✓ | | | | | | | | | | +| element-instance | search | 34 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| mapping-rule | create | 21 | ✓ | ✓ | | | | | | | | | | +| mapping-rule | get | 2 | ✓ | ✓ | | | | | | | | | | +| mapping-rule | update | 13 | ✓ | ✓ | | | | | | | | | | +| mapping-rule | delete | 2 | ✓ | ✓ | | | | | | | | | | +| mapping-rule | search | 10 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| 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 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| incident | get | 19 | ✓ | ✓ | | | | | | | | | | +| incident | update | 9 | ✓ | ✓ | | | | | | | | | | +| incident | search | 13 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| authorization | create | 10 | ✓ | ✓ | | | | | | | | ✓ | | +| authorization | get | 2 | ✓ | ✓ | | | | | | | | | | +| authorization | update | 11 | ✓ | ✓ | | | | | | | | ✓ | | +| authorization | delete | 2 | ✓ | ✓ | | | | | | | | | | +| authorization | search | 11 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| resource | create | 13 | | ✓ | | | | | | | | ✓ | | | resource | get | 2 | ✓ | | | | | | | | | | | -| resource | delete | 1 | ✓ | | | | | | | | | | | -| resource | search | 7 | ✓ | | | | | | | | ✓ | ✓ | | -| decision-definition | create | 4 | ✓ | | | | | | | | | ✓ | | -| decision-definition | get | 2 | ✓ | | | | | | | | | | | -| decision-definition | search | 8 | ✓ | | | | | | | | ✓ | ✓ | | -| authorization | create | 3 | ✓ | | | | | | | | | ✓ | | -| authorization | get | 1 | ✓ | | | | | | | | | | | -| authorization | update | 3 | ✓ | | | | | | | | | ✓ | | -| authorization | delete | 1 | ✓ | | | | | | | | | | | -| authorization | search | 4 | ✓ | | | | | | | | ✓ | ✓ | | -| cluster-variables | create | 2 | ✓ | | | | | | | | | | | -| cluster-variables | get | 2 | ✓ | | | | | | | | | | | -| cluster-variables | update | 2 | ✓ | | | | | | | | | | | -| cluster-variables | delete | 2 | ✓ | | | | | | | | | | | -| cluster-variables | search | 4 | ✓ | | | | | | | | ✓ | ✓ | | -| incident | get | 3 | ✓ | | | | | | | | | | | -| incident | update | 1 | ✓ | | | | | | | | | | | -| incident | search | 8 | ✓ | | | | | | | | ✓ | ✓ | | -| document | create | 7 | ✓ | | | | | | | | | ✓ | | +| resource | delete | 8 | ✓ | ✓ | | | | | | | | | | +| resource | search | 12 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| user | create | 15 | ✓ | ✓ | | | | | | | | | | +| user | get | 2 | ✓ | ✓ | | | | | | | | | | +| user | update | 5 | ✓ | ✓ | | | | | | | | | | +| user | delete | 2 | ✓ | ✓ | | | | | | | | | | +| user | search | 9 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| 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 | ✓ | | | | | | | | | | | -| mapping-rule | create | 1 | ✓ | | | | | | | | | | | -| mapping-rule | get | 1 | ✓ | | | | | | | | | | | -| mapping-rule | update | 1 | ✓ | | | | | | | | | | | -| mapping-rule | delete | 1 | ✓ | | | | | | | | | | | -| mapping-rule | search | 5 | ✓ | | | | | | | | ✓ | ✓ | | -| agent-instance | get | 1 | ✓ | | | | | | | | | | | -| agent-instance | search | 8 | ✓ | | | | | | | | ✓ | ✓ | ✓ | -| variable | get | 1 | ✓ | | | | | | | | | | | -| variable | search | 8 | ✓ | | | | | | | | ✓ | ✓ | ✓ | +| variable | get | 2 | ✓ | ✓ | | | | | | | | | | +| variable | search | 14 | ✓ | ✓ | | | | | | | ✓ | ✓ | ✓ | +| setup | create | 15 | ✓ | ✓ | | | | | | | | | | +| conditional | create | 15 | ✓ | ✓ | | | | | | | | ✓ | ✓ | +| agent-instance | get | 2 | ✓ | ✓ | | | | | | | | | | +| agent-instance | search | 13 | ✓ | ✓ | | | | | | | ✓ | ✓ | ✓ | +| 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 | 4 | ✓ | | | | | | | | ✓ | ✓ | | -| global-task-listener | create | 1 | ✓ | | | | | | | | | | | -| global-task-listener | get | 1 | ✓ | | | | | | | | | | | -| global-task-listener | update | 1 | ✓ | | | | | | | | | | | -| global-task-listener | delete | 1 | ✓ | | | | | | | | | | | -| global-task-listener | search | 4 | ✓ | | | | | | | | ✓ | ✓ | | -| user | create | 1 | ✓ | | | | | | | | | | | -| user | get | 1 | ✓ | | | | | | | | | | | -| user | update | 1 | ✓ | | | | | | | | | | | -| user | delete | 1 | ✓ | | | | | | | | | | | -| user | search | 4 | ✓ | | | | | | | | ✓ | ✓ | | -| decision-requirements | get | 2 | ✓ | | | | | | | | | | | -| decision-requirements | search | 6 | ✓ | | | | | | | | ✓ | ✓ | | -| correlated-message-subscription | search | 8 | ✓ | | | | | | | | ✓ | ✓ | | -| message-subscriptions | search | 8 | ✓ | | | | | | | | ✓ | ✓ | | -| batch-operation-item | search | 5 | ✓ | | | | | | | | ✓ | ✓ | | -| message | create | 4 | ✓ | | | | | | | | | | ✓ | -| conditional | create | 3 | ✓ | | | | | | | | | ✓ | ✓ | -| signal | create | 2 | ✓ | | | | | | | | | | ✓ | -| system | get | 2 | ✓ | | | | | | | | | | | -| clock | create | 1 | ✓ | | | | | | | | | | | +| batch-operation | search | 10 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| correlated-message-subscription | search | 13 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| message-subscriptions | search | 13 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| batch-operation-item | search | 10 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| system | get | 9 | ✓ | ✓ | | | | | | | | | | +| clock | create | 7 | ✓ | ✓ | | | | | | | | | | | clock | delete | 1 | ✓ | | | | | | | | | | | -| setup | create | 1 | ✓ | | | | | | | | | | | -| expression | create | 1 | ✓ | | | | | | | | | | | +| expression | create | 7 | ✓ | ✓ | | | | | | | | | | | authentication | get | 1 | ✓ | | | | | | | | | | | | license | get | 1 | ✓ | | | | | | | | | | | | status | get | 1 | ✓ | | | | | | | | | | | @@ -116,103 +119,106 @@ Legend: ✓ = at least 1, blank = 0. | entity | op | total | happy | bad-req | 401 | 403 | 404 | conflict | pagin/sort | filter | absence | data-driven | unlabeled | |--|--|--:|--:|--:|--:|--:|--:|--:|--:|--:|--:|--:|--:| -| process-instance | create | 8 | 1 | | | | | | | | | 7 | | -| process-instance | get | 4 | 4 | | | | | | | | | | | -| process-instance | update | 50 | 6 | | | | | | | | | 44 | | -| process-instance | delete | 24 | 4 | | | | | | | | | 20 | | -| process-instance | search | 21 | 2 | | | | | | | | 1 | 18 | | -| tenant | create | 1 | 1 | | | | | | | | | | | -| tenant | get | 1 | 1 | | | | | | | | | | | -| tenant | update | 6 | 6 | | | | | | | | | | | -| tenant | delete | 6 | 6 | | | | | | | | | | | -| tenant | search | 22 | 6 | | | | | | | | 1 | 15 | | -| role | create | 1 | 1 | | | | | | | | | | | -| role | get | 1 | 1 | | | | | | | | | | | -| role | update | 5 | 5 | | | | | | | | | | | -| role | delete | 5 | 5 | | | | | | | | | | | -| role | search | 18 | 5 | | | | | | | | 1 | 12 | | -| group | create | 1 | 1 | | | | | | | | | | | -| group | get | 1 | 1 | | | | | | | | | | | -| group | update | 4 | 4 | | | | | | | | | | | -| group | delete | 4 | 4 | | | | | | | | | | | -| group | search | 18 | 5 | | | | | | | | 1 | 12 | | -| job | create | 4 | 2 | | | | | | | | 1 | 1 | | -| job | get | 9 | 5 | | | | | | | | | 4 | | -| job | update | 6 | 3 | | | | | | | | | 3 | | -| job | search | 8 | 1 | | | | | | | | 1 | 6 | | -| decision-instance | get | 1 | 1 | | | | | | | | | | | -| decision-instance | delete | 12 | 2 | | | | | | | | | 9 | 1 | -| decision-instance | search | 14 | 1 | | | | | | | | 1 | 12 | | -| process-definition | get | 21 | 7 | | | | | | | | | 14 | | -| process-definition | search | 6 | 1 | | | | | | | | 1 | 4 | | -| element-instance | create | 3 | 2 | | | | | | | | | 1 | | -| element-instance | get | 1 | 1 | | | | | | | | | | | -| element-instance | search | 21 | 2 | | | | | | | | 1 | 18 | | -| user-task | get | 2 | 2 | | | | | | | | | | | -| user-task | update | 3 | 3 | | | | | | | | | | | -| user-task | delete | 1 | 1 | | | | | | | | | | | -| user-task | search | 14 | 4 | | | | | | | | 1 | 9 | | -| audit-log | get | 1 | 1 | | | | | | | | | | | -| audit-log | search | 17 | 1 | | | | | | | | 1 | 11 | 4 | -| resource | create | 5 | | | | | | | | | | 5 | | +| process-instance | create | 14 | 1 | 6 | | | | | | | | 7 | | +| process-instance | get | 8 | 4 | 4 | | | | | | | | | | +| process-instance | update | 148 | 6 | 98 | | | | | | | | 44 | | +| process-instance | delete | 74 | 4 | 50 | | | | | | | | 20 | | +| process-instance | search | 38 | 2 | 17 | | | | | | | 1 | 18 | | +| job | create | 32 | 2 | 28 | | | | | | | 1 | 1 | | +| job | get | 67 | 5 | 58 | | | | | | | | 4 | | +| job | update | 30 | 3 | 24 | | | | | | | | 3 | | +| job | search | 13 | 1 | 5 | | | | | | | 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 | | | | | | | 1 | 15 | | +| tenant | lifecycle | 10 | 5 | | | | | | | | 5 | | | +| 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 | | | | | | | 1 | 12 | | +| role | lifecycle | 8 | 4 | | | | | | | | 4 | | | +| 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 | | | | | | | 1 | 12 | | +| group | lifecycle | 6 | 3 | | | | | | | | 3 | | | +| decision-instance | get | 2 | 1 | 1 | | | | | | | | | | +| decision-instance | delete | 50 | 2 | 38 | | | | | | | | 9 | 1 | +| decision-instance | search | 20 | 1 | 6 | | | | | | | 1 | 12 | | +| process-definition | get | 59 | 7 | 38 | | | | | | | | 14 | | +| process-definition | search | 11 | 1 | 5 | | | | | | | 1 | 4 | | +| user-task | get | 4 | 2 | 2 | | | | | | | | | | +| user-task | update | 13 | 3 | 10 | | | | | | | | | | +| user-task | delete | 2 | 1 | 1 | | | | | | | | | | +| user-task | search | 44 | 4 | 30 | | | | | | | 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 | | | | | | | 1 | 2 | | +| element-instance | create | 19 | 2 | 16 | | | | | | | | 1 | | +| element-instance | get | 2 | 1 | 1 | | | | | | | | | | +| element-instance | search | 34 | 2 | 13 | | | | | | | 1 | 18 | | +| 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 | | | | | | | 1 | 3 | | +| 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 | | | | | | | 1 | 2 | | +| incident | get | 19 | 3 | 16 | | | | | | | | | | +| incident | update | 9 | 1 | 8 | | | | | | | | | | +| incident | search | 13 | 1 | 5 | | | | | | | 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 | | | | | | | 1 | 2 | | +| resource | create | 13 | | 8 | | | | | | | | 5 | | | resource | get | 2 | 2 | | | | | | | | | | | -| resource | delete | 1 | 1 | | | | | | | | | | | -| resource | search | 7 | 1 | | | | | | | | 1 | 5 | | -| decision-definition | create | 4 | 1 | | | | | | | | | 3 | | -| decision-definition | get | 2 | 2 | | | | | | | | | | | -| decision-definition | search | 8 | 1 | | | | | | | | 1 | 6 | | -| authorization | create | 3 | 1 | | | | | | | | | 2 | | -| authorization | get | 1 | 1 | | | | | | | | | | | -| authorization | update | 3 | 1 | | | | | | | | | 2 | | -| authorization | delete | 1 | 1 | | | | | | | | | | | -| authorization | search | 4 | 1 | | | | | | | | 1 | 2 | | -| cluster-variables | create | 2 | 2 | | | | | | | | | | | -| cluster-variables | get | 2 | 2 | | | | | | | | | | | -| cluster-variables | update | 2 | 2 | | | | | | | | | | | -| cluster-variables | delete | 2 | 2 | | | | | | | | | | | -| cluster-variables | search | 4 | 1 | | | | | | | | 1 | 2 | | -| incident | get | 3 | 3 | | | | | | | | | | | -| incident | update | 1 | 1 | | | | | | | | | | | -| incident | search | 8 | 1 | | | | | | | | 1 | 6 | | -| document | create | 7 | 3 | | | | | | | | | 4 | | +| resource | delete | 8 | 1 | 7 | | | | | | | | | | +| resource | search | 12 | 1 | 5 | | | | | | | 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 | | | | | | | 1 | 2 | | +| 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 | | | | | | | 1 | 6 | | +| audit-log | get | 2 | 1 | 1 | | | | | | | | | | +| audit-log | search | 22 | 1 | 5 | | | | | | | 1 | 11 | 4 | +| document | create | 18 | 3 | 11 | | | | | | | | 4 | | | document | get | 1 | 1 | | | | | | | | | | | | document | delete | 1 | 1 | | | | | | | | | | | -| mapping-rule | create | 1 | 1 | | | | | | | | | | | -| mapping-rule | get | 1 | 1 | | | | | | | | | | | -| mapping-rule | update | 1 | 1 | | | | | | | | | | | -| mapping-rule | delete | 1 | 1 | | | | | | | | | | | -| mapping-rule | search | 5 | 1 | | | | | | | | 1 | 3 | | -| agent-instance | get | 1 | 1 | | | | | | | | | | | -| agent-instance | search | 8 | 1 | | | | | | | | 1 | 5 | 1 | -| variable | get | 1 | 1 | | | | | | | | | | | -| variable | search | 8 | 1 | | | | | | | | 1 | 4 | 2 | +| variable | get | 2 | 1 | 1 | | | | | | | | | | +| variable | search | 14 | 1 | 6 | | | | | | | 1 | 4 | 2 | +| setup | create | 15 | 1 | 14 | | | | | | | | | | +| conditional | create | 15 | 1 | 12 | | | | | | | | 1 | 1 | +| agent-instance | get | 2 | 1 | 1 | | | | | | | | | | +| agent-instance | search | 13 | 1 | 5 | | | | | | | 1 | 5 | 1 | +| decision-requirements | get | 4 | 2 | 2 | | | | | | | | | | +| decision-requirements | search | 11 | 1 | 5 | | | | | | | 1 | 4 | | +| signal | create | 14 | 1 | 12 | | | | | | | | | 1 | | batch-operation | get | 1 | 1 | | | | | | | | | | | | batch-operation | update | 2 | 2 | | | | | | | | | | | | batch-operation | delete | 1 | 1 | | | | | | | | | | | -| batch-operation | search | 4 | 1 | | | | | | | | 1 | 2 | | -| global-task-listener | create | 1 | 1 | | | | | | | | | | | -| global-task-listener | get | 1 | 1 | | | | | | | | | | | -| global-task-listener | update | 1 | 1 | | | | | | | | | | | -| global-task-listener | delete | 1 | 1 | | | | | | | | | | | -| global-task-listener | search | 4 | 1 | | | | | | | | 1 | 2 | | -| user | create | 1 | 1 | | | | | | | | | | | -| user | get | 1 | 1 | | | | | | | | | | | -| user | update | 1 | 1 | | | | | | | | | | | -| user | delete | 1 | 1 | | | | | | | | | | | -| user | search | 4 | 1 | | | | | | | | 1 | 2 | | -| decision-requirements | get | 2 | 2 | | | | | | | | | | | -| decision-requirements | search | 6 | 1 | | | | | | | | 1 | 4 | | -| correlated-message-subscription | search | 8 | 1 | | | | | | | | 1 | 6 | | -| message-subscriptions | search | 8 | 1 | | | | | | | | 1 | 6 | | -| batch-operation-item | search | 5 | 1 | | | | | | | | 1 | 3 | | -| message | create | 4 | 2 | | | | | | | | | | 2 | -| conditional | create | 3 | 1 | | | | | | | | | 1 | 1 | -| signal | create | 2 | 1 | | | | | | | | | | 1 | -| system | get | 2 | 2 | | | | | | | | | | | -| clock | create | 1 | 1 | | | | | | | | | | | +| batch-operation | search | 10 | 1 | 6 | | | | | | | 1 | 2 | | +| correlated-message-subscription | search | 13 | 1 | 5 | | | | | | | 1 | 6 | | +| message-subscriptions | search | 13 | 1 | 5 | | | | | | | 1 | 6 | | +| batch-operation-item | search | 10 | 1 | 5 | | | | | | | 1 | 3 | | +| system | get | 9 | 2 | 7 | | | | | | | | | | +| clock | create | 7 | 1 | 6 | | | | | | | | | | | clock | delete | 1 | 1 | | | | | | | | | | | -| setup | create | 1 | 1 | | | | | | | | | | | -| expression | create | 1 | 1 | | | | | | | | | | | +| expression | create | 7 | 1 | 6 | | | | | | | | | | | authentication | get | 1 | 1 | | | | | | | | | | | | license | get | 1 | 1 | | | | | | | | | | | | status | get | 1 | 1 | | | | | | | | | | | diff --git a/coverage-analysis/gaps.md b/coverage-analysis/gaps.md index 3921d90..a97d4a2 100644 --- a/coverage-analysis/gaps.md +++ b/coverage-analysis/gaps.md @@ -1,6 +1,6 @@ # Coverage gaps (heuristic) -Computed across **518** generated test declarations in **37** entities. +Computed across **1567** generated test declarations in **37** entities. ## Entities missing delete-then-observe-absence variant @@ -91,43 +91,10 @@ Entities that have both `create` and `delete` tests but no test tagged `observe- ## Entities with no bad-request (400) 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 not-found (404) coverage diff --git a/coverage-analysis/tests.csv b/coverage-analysis/tests.csv index ab9096a..30056ea 100644 --- a/coverage-analysis/tests.csv +++ b/coverage-analysis/tests.csv @@ -1,519 +1,1568 @@ -file,line,entity,category,operation,form_step,prerequisite,method,path,operationId,variants,test_name -activateAdHocSubProcessActivities.feature.spec.ts,9,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,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,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,77,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,13,job,G. Job Lifecycle & Stats,create,create,running-process-instance-with-job,POST,/jobs/activation,activateJobs,data-driven,variant-1 - activateJobs - bpmn #1 -assignClientToGroup.feature.spec.ts,8,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,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,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,group,B. Membership/Association,update,mutate,group + mappingrule,PUT,/groups/{groupId}/mapping-rules/{mappingRuleId},assignMappingRuleToGroup,happy-path,feature-1 - assignMappingRuleToGroup - base (1) -assignMappingRuleToTenant.feature.spec.ts,8,tenant,B. Membership/Association,update,mutate,tenant + mappingrule,PUT,/tenants/{tenantId}/mapping-rules/{mappingRuleId},assignMappingRuleToTenant,happy-path,feature-1 - assignMappingRuleToTenant - base (1) -assignRoleToClient.feature.spec.ts,8,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,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,role,B. Membership/Association,update,mutate,mappingrule + role,PUT,/roles/{roleId}/mapping-rules/{mappingRuleId},assignRoleToMappingRule,happy-path,feature-1 - assignRoleToMappingRule - base (1) -assignRoleToTenant.feature.spec.ts,8,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,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,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,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,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,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,signal,M. Messaging/Signals,create,create,deployed-process-with-signal-catch-event,POST,/signals/broadcast,broadcastSignal,unlabeled,variant-1 - scenario -cancelBatchOperation.feature.spec.ts,8,batch-operation,E. Batch-Operation Lifecycle,delete,delete,running-process-instance(s),POST,/batch-operations/{batchOperationKey}/cancellation,cancelBatchOperation,happy-path,feature-1 - cancelBatchOperation - base (1) -cancelProcessInstance.feature.spec.ts,9,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,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,happy-path,feature-1 - cancelProcessInstancesBatchOperation - base (1) -cancelProcessInstancesBatchOperation.variant.spec.ts,12,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven,variant-1 - cancelProcessInstancesBatchOperation - bpmn #1 -cancelProcessInstancesBatchOperation.variant.spec.ts,64,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven,variant-2 - cancelProcessInstancesBatchOperation - bpmn #1 -cancelProcessInstancesBatchOperation.variant.spec.ts,137,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven,variant-3 - cancelProcessInstancesBatchOperation - bpmn #1 -cancelProcessInstancesBatchOperation.variant.spec.ts,210,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven,variant-4 - cancelProcessInstancesBatchOperation - bpmn #1 -cancelProcessInstancesBatchOperation.variant.spec.ts,311,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven,variant-5 - cancelProcessInstancesBatchOperation - bpmn #1 -cancelProcessInstancesBatchOperation.variant.spec.ts,412,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven,variant-6 - cancelProcessInstancesBatchOperation - bpmn #1 -cancelProcessInstancesBatchOperation.variant.spec.ts,468,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven,variant-7 - cancelProcessInstancesBatchOperation - bpmn #1 -cancelProcessInstancesBatchOperation.variant.spec.ts,545,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven,variant-8 - cancelProcessInstancesBatchOperation - bpmn #1 -cancelProcessInstancesBatchOperation.variant.spec.ts,622,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven,variant-9 - cancelProcessInstancesBatchOperation - bpmn #1 -cancelProcessInstancesBatchOperation.variant.spec.ts,727,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/cancellation,cancelProcessInstancesBatchOperation,data-driven,variant-10 - cancelProcessInstancesBatchOperation - bpmn #1 -completeJob.feature.spec.ts,9,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,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,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,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,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,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,message,M. Messaging/Signals,create,create,deployed-process-with-message-catch-event,POST,/messages/correlation,correlateMessage,unlabeled,variant-1 - scenario -createAdminUser.feature.spec.ts,11,setup,O. System/Admin,create,create,none,POST,/setup/user,createAdminUser,happy-path,feature-1 - createAdminUser - base (1) -createAuthorization.feature.spec.ts,11,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,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,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,resource,C. Deployment Lifecycle,create,create,none,POST,/deployments,createDeployment,data-driven,feature-1 - createDeployment - bpmn (1) -createDeployment.feature.spec.ts,41,resource,C. Deployment Lifecycle,create,create,none,POST,/deployments,createDeployment,data-driven,feature-2 - createDeployment - form (2) -createDeployment.feature.spec.ts,69,resource,C. Deployment Lifecycle,create,create,none,POST,/deployments,createDeployment,data-driven,feature-3 - createDeployment - dmn (3) -createDeployment.feature.spec.ts,97,resource,C. Deployment Lifecycle,create,create,none,POST,/deployments,createDeployment,data-driven,feature-4 - createDeployment - drd (4) -createDeployment.variant.spec.ts,13,resource,C. Deployment Lifecycle,create,create,none,POST,/deployments,createDeployment,data-driven,variant-1 - createDeployment - bpmn #1 -createDocument.feature.spec.ts,12,document,A. Entity Lifecycle (CRUD),create,create,none,POST,/documents,createDocument,happy-path,feature-1 - createDocument - base (1) -createDocument.variant.spec.ts,13,document,A. Entity Lifecycle (CRUD),create,create,none,POST,/documents,createDocument,data-driven,variant-1 - createDocument - bpmn #1 -createDocument.variant.spec.ts,76,document,A. Entity Lifecycle (CRUD),create,create,none,POST,/documents,createDocument,data-driven,variant-2 - createDocument - bpmn #1 -createDocumentLink.feature.spec.ts,12,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,document,A. Entity Lifecycle (CRUD),create,create,none,POST,/documents/batch,createDocuments,happy-path,feature-1 - createDocuments - base (1) -createDocuments.variant.spec.ts,13,document,A. Entity Lifecycle (CRUD),create,create,none,POST,/documents/batch,createDocuments,data-driven,variant-1 - createDocuments - bpmn #1 -createDocuments.variant.spec.ts,74,document,A. Entity Lifecycle (CRUD),create,create,none,POST,/documents/batch,createDocuments,data-driven,variant-2 - createDocuments - bpmn #1 -createElementInstanceVariables.feature.spec.ts,9,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,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,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,group,A. Entity Lifecycle (CRUD),create,create,none,POST,/groups,createGroup,happy-path,feature-1 - createGroup - base (1) -createMappingRule.feature.spec.ts,11,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,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,56,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,103,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,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,65,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,117,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,208,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,302,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,role,A. Entity Lifecycle (CRUD),create,create,none,POST,/roles,createRole,happy-path,feature-1 - createRole - base (1) -createTenant.feature.spec.ts,11,tenant,A. Entity Lifecycle (CRUD),create,create,none,POST,/tenants,createTenant,happy-path,feature-1 - createTenant - base (1) -createTenantClusterVariable.feature.spec.ts,11,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,user,A. Entity Lifecycle (CRUD),create,create,none,POST,/users,createUser,happy-path,feature-1 - createUser - base (1) -deleteAuthorization.feature.spec.ts,8,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,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,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,happy-path,feature-1 - deleteDecisionInstancesBatchOperation - base (1) -deleteDecisionInstancesBatchOperation.variant.spec.ts,12,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-1 - deleteDecisionInstancesBatchOperation - dmn #1 -deleteDecisionInstancesBatchOperation.variant.spec.ts,90,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-2 - deleteDecisionInstancesBatchOperation - dmn #1 -deleteDecisionInstancesBatchOperation.variant.spec.ts,140,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,unlabeled,variant-3 - scenario -deleteDecisionInstancesBatchOperation.variant.spec.ts,170,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-4 - deleteDecisionInstancesBatchOperation - dmn #1 -deleteDecisionInstancesBatchOperation.variant.spec.ts,248,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-5 - deleteDecisionInstancesBatchOperation - bpmn #1 -deleteDecisionInstancesBatchOperation.variant.spec.ts,300,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-6 - deleteDecisionInstancesBatchOperation - bpmn #1 -deleteDecisionInstancesBatchOperation.variant.spec.ts,372,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-7 - deleteDecisionInstancesBatchOperation - dmn #1 -deleteDecisionInstancesBatchOperation.variant.spec.ts,422,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-8 - deleteDecisionInstancesBatchOperation - bpmn #1 -deleteDecisionInstancesBatchOperation.variant.spec.ts,523,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-9 - deleteDecisionInstancesBatchOperation - dmn #1 -deleteDecisionInstancesBatchOperation.variant.spec.ts,573,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-10 - deleteDecisionInstancesBatchOperation - drd #1 -deleteDocument.feature.spec.ts,9,document,A. Entity Lifecycle (CRUD),delete,delete,none,DELETE,/documents/{documentId},deleteDocument,happy-path,feature-1 - deleteDocument - base (1) -deleteGlobalClusterVariable.feature.spec.ts,8,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,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,group,A. Entity Lifecycle (CRUD),delete,delete,none,DELETE,/groups/{groupId},deleteGroup,happy-path,feature-1 - deleteGroup - base (1) -deleteMappingRule.feature.spec.ts,8,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,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,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,happy-path,feature-1 - deleteProcessInstancesBatchOperation - base (1) -deleteProcessInstancesBatchOperation.variant.spec.ts,12,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven,variant-1 - deleteProcessInstancesBatchOperation - bpmn #1 -deleteProcessInstancesBatchOperation.variant.spec.ts,64,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven,variant-2 - deleteProcessInstancesBatchOperation - bpmn #1 -deleteProcessInstancesBatchOperation.variant.spec.ts,137,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven,variant-3 - deleteProcessInstancesBatchOperation - bpmn #1 -deleteProcessInstancesBatchOperation.variant.spec.ts,210,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven,variant-4 - deleteProcessInstancesBatchOperation - bpmn #1 -deleteProcessInstancesBatchOperation.variant.spec.ts,311,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven,variant-5 - deleteProcessInstancesBatchOperation - bpmn #1 -deleteProcessInstancesBatchOperation.variant.spec.ts,412,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven,variant-6 - deleteProcessInstancesBatchOperation - bpmn #1 -deleteProcessInstancesBatchOperation.variant.spec.ts,468,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven,variant-7 - deleteProcessInstancesBatchOperation - bpmn #1 -deleteProcessInstancesBatchOperation.variant.spec.ts,545,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven,variant-8 - deleteProcessInstancesBatchOperation - bpmn #1 -deleteProcessInstancesBatchOperation.variant.spec.ts,622,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven,variant-9 - deleteProcessInstancesBatchOperation - bpmn #1 -deleteProcessInstancesBatchOperation.variant.spec.ts,727,process-instance,D. Process-Instance Lifecycle & Ops,delete,delete,deployed-process,POST,/process-instances/deletion,deleteProcessInstancesBatchOperation,data-driven,variant-10 - deleteProcessInstancesBatchOperation - bpmn #1 -deleteResource.feature.spec.ts,11,resource,C. Deployment Lifecycle,delete,delete,none,POST,/resources/{resourceKey}/deletion,deleteResource,happy-path,feature-1 - deleteResource - base (1) -deleteRole.feature.spec.ts,8,role,A. Entity Lifecycle (CRUD),delete,delete,none,DELETE,/roles/{roleId},deleteRole,happy-path,feature-1 - deleteRole - base (1) -deleteTenant.feature.spec.ts,8,tenant,A. Entity Lifecycle (CRUD),delete,delete,none,DELETE,/tenants/{tenantId},deleteTenant,happy-path,feature-1 - deleteTenant - base (1) -deleteTenantClusterVariable.feature.spec.ts,8,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,user,A. Entity Lifecycle (CRUD),delete,delete,none,DELETE,/users/{username},deleteUser,happy-path,feature-1 - deleteUser - base (1) -evaluateConditionals.feature.spec.ts,11,conditional,N. Engine Evaluation,create,create,none,POST,/conditionals/evaluation,evaluateConditionals,happy-path,feature-1 - evaluateConditionals - base (1) -evaluateConditionals.variant.spec.ts,12,conditional,N. Engine Evaluation,create,create,none,POST,/conditionals/evaluation,evaluateConditionals,unlabeled,variant-1 - scenario -evaluateConditionals.variant.spec.ts,40,conditional,N. Engine Evaluation,create,create,none,POST,/conditionals/evaluation,evaluateConditionals,data-driven,variant-2 - evaluateConditionals - bpmn #1 -evaluateDecision.feature.spec.ts,12,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,60,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,111,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,13,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,expression,N. Engine Evaluation,create,create,none,POST,/expression/evaluation,evaluateExpression,happy-path,feature-1 - evaluateExpression - base (1) -failJob.feature.spec.ts,9,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,12,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,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,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,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,batch-operation,E. Batch-Operation Lifecycle,get,observe-present-get,running-process-instance(s),GET,/batch-operations/{batchOperationKey},getBatchOperation,happy-path,feature-1 - getBatchOperation - base (1) -getDecisionDefinition.feature.spec.ts,13,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,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,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,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,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,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,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) -getGlobalClusterVariable.feature.spec.ts,12,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,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,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,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,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,job,G. Job Lifecycle & Stats,get,observe-present-get,running-process-instance-with-job,POST,/jobs/statistics/errors,getJobErrorStatistics,happy-path,feature-1 - getJobErrorStatistics - base (1) -getJobErrorStatistics.variant.spec.ts,12,job,G. Job Lifecycle & Stats,get,observe-present-get,running-process-instance-with-job,POST,/jobs/statistics/errors,getJobErrorStatistics,data-driven,variant-1 - getJobErrorStatistics - path #1 -getJobTimeSeriesStatistics.feature.spec.ts,11,job,G. Job Lifecycle & Stats,get,observe-present-get,running-process-instance-with-job,POST,/jobs/statistics/time-series,getJobTimeSeriesStatistics,happy-path,feature-1 - getJobTimeSeriesStatistics - base (1) -getJobTimeSeriesStatistics.variant.spec.ts,12,job,G. Job Lifecycle & Stats,get,observe-present-get,running-process-instance-with-job,POST,/jobs/statistics/time-series,getJobTimeSeriesStatistics,data-driven,variant-1 - getJobTimeSeriesStatistics - path #1 -getJobTypeStatistics.feature.spec.ts,11,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,job,G. Job Lifecycle & Stats,get,observe-present-get,running-process-instance-with-job,POST,/jobs/statistics/by-types,getJobTypeStatistics,data-driven,variant-1 - getJobTypeStatistics - path #1 -getJobWorkerStatistics.feature.spec.ts,11,job,G. Job Lifecycle & Stats,get,observe-present-get,running-process-instance-with-job,POST,/jobs/statistics/by-workers,getJobWorkerStatistics,happy-path,feature-1 - getJobWorkerStatistics - base (1) -getJobWorkerStatistics.variant.spec.ts,12,job,G. Job Lifecycle & Stats,get,observe-present-get,running-process-instance-with-job,POST,/jobs/statistics/by-workers,getJobWorkerStatistics,data-driven,variant-1 - getJobWorkerStatistics - path #1 -getLicense.feature.spec.ts,11,license,O. System/Admin,get,observe-present-get,none,GET,/license,getLicense,happy-path,feature-1 - getLicense - base (1) -getMappingRule.feature.spec.ts,12,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,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,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,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/process-instances-by-version,getProcessDefinitionInstanceVersionStatistics,happy-path,feature-1 - getProcessDefinitionInstanceVersionStatistics - base (1) -getProcessDefinitionInstanceVersionStatistics.variant.spec.ts,13,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/process-instances-by-version,getProcessDefinitionInstanceVersionStatistics,data-driven,variant-1 - getProcessDefinitionInstanceVersionStatistics - bpmn #1 -getProcessDefinitionMessageSubscriptionStatistics.feature.spec.ts,11,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,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/message-subscriptions,getProcessDefinitionMessageSubscriptionStatistics,data-driven,variant-1 - getProcessDefinitionMessageSubscriptionStatistics - path #1 -getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts,71,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/message-subscriptions,getProcessDefinitionMessageSubscriptionStatistics,data-driven,variant-2 - getProcessDefinitionMessageSubscriptionStatistics - path #1 -getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts,132,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/message-subscriptions,getProcessDefinitionMessageSubscriptionStatistics,data-driven,variant-3 - getProcessDefinitionMessageSubscriptionStatistics - bpmn #1 -getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts,189,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/message-subscriptions,getProcessDefinitionMessageSubscriptionStatistics,data-driven,variant-4 - getProcessDefinitionMessageSubscriptionStatistics - bpmn #1 -getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts,267,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/message-subscriptions,getProcessDefinitionMessageSubscriptionStatistics,data-driven,variant-5 - getProcessDefinitionMessageSubscriptionStatistics - bpmn #1 -getProcessDefinitionStatistics.feature.spec.ts,12,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,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,data-driven,variant-1 - getProcessDefinitionStatistics - bpmn #1 -getProcessDefinitionStatistics.variant.spec.ts,86,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,data-driven,variant-2 - getProcessDefinitionStatistics - bpmn #1 -getProcessDefinitionStatistics.variant.spec.ts,160,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,data-driven,variant-3 - getProcessDefinitionStatistics - bpmn #1 -getProcessDefinitionStatistics.variant.spec.ts,214,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,data-driven,variant-4 - getProcessDefinitionStatistics - bpmn #1 -getProcessDefinitionStatistics.variant.spec.ts,268,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,data-driven,variant-5 - getProcessDefinitionStatistics - bpmn #1 -getProcessDefinitionStatistics.variant.spec.ts,346,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,data-driven,variant-6 - getProcessDefinitionStatistics - bpmn #1 -getProcessDefinitionStatistics.variant.spec.ts,424,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,data-driven,variant-7 - getProcessDefinitionStatistics - bpmn #1 -getProcessDefinitionStatistics.variant.spec.ts,482,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/{processDefinitionKey}/statistics/element-instances,getProcessDefinitionStatistics,data-driven,variant-8 - getProcessDefinitionStatistics - bpmn #1 -getProcessDefinitionXML.feature.spec.ts,10,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,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,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,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,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,incident,H. Incident Lifecycle,get,observe-present-get,running-process-instance-with-failing-job,POST,/incidents/statistics/process-instances-by-definition,getProcessInstanceStatisticsByDefinition,happy-path,feature-1 - getProcessInstanceStatisticsByDefinition - base (1) -getProcessInstanceStatisticsByError.feature.spec.ts,11,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,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,resource,C. Deployment Lifecycle,get,observe-present-get,none,GET,/resources/{resourceKey}/content,getResourceContent,happy-path,feature-1 - getResourceContent - base (1) -getRole.feature.spec.ts,12,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,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,status,O. System/Admin,get,observe-present-get,none,GET,/status,getStatus,happy-path,feature-1 - getStatus - base (1) -getSystemConfiguration.feature.spec.ts,11,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,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,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,topology,O. System/Admin,get,observe-present-get,none,GET,/topology,getTopology,happy-path,feature-1 - getTopology - base (1) -getUsageMetrics.feature.spec.ts,12,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,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,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,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,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,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,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,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,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,happy-path,feature-1 - migrateProcessInstancesBatchOperation - base (1) -migrateProcessInstancesBatchOperation.variant.spec.ts,12,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven,variant-1 - migrateProcessInstancesBatchOperation - bpmn #1 -migrateProcessInstancesBatchOperation.variant.spec.ts,66,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven,variant-2 - migrateProcessInstancesBatchOperation - bpmn #1 -migrateProcessInstancesBatchOperation.variant.spec.ts,141,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven,variant-3 - migrateProcessInstancesBatchOperation - bpmn #1 -migrateProcessInstancesBatchOperation.variant.spec.ts,216,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven,variant-4 - migrateProcessInstancesBatchOperation - bpmn #1 -migrateProcessInstancesBatchOperation.variant.spec.ts,271,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven,variant-5 - migrateProcessInstancesBatchOperation - bpmn #1 -migrateProcessInstancesBatchOperation.variant.spec.ts,326,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven,variant-6 - migrateProcessInstancesBatchOperation - bpmn #1 -migrateProcessInstancesBatchOperation.variant.spec.ts,384,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven,variant-7 - migrateProcessInstancesBatchOperation - bpmn #1 -migrateProcessInstancesBatchOperation.variant.spec.ts,463,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven,variant-8 - migrateProcessInstancesBatchOperation - bpmn #1 -migrateProcessInstancesBatchOperation.variant.spec.ts,542,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven,variant-9 - migrateProcessInstancesBatchOperation - bpmn #1 -migrateProcessInstancesBatchOperation.variant.spec.ts,601,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven,variant-10 - migrateProcessInstancesBatchOperation - bpmn #1 -migrateProcessInstancesBatchOperation.variant.spec.ts,660,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven,variant-11 - migrateProcessInstancesBatchOperation - bpmn #1 -migrateProcessInstancesBatchOperation.variant.spec.ts,720,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/migration,migrateProcessInstancesBatchOperation,data-driven,variant-12 - migrateProcessInstancesBatchOperation - bpmn #1 -modifyProcessInstance.feature.spec.ts,9,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,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,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,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,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,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,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,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,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,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,happy-path,feature-1 - modifyProcessInstancesBatchOperation - base (1) -modifyProcessInstancesBatchOperation.variant.spec.ts,12,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven,variant-1 - modifyProcessInstancesBatchOperation - bpmn #1 -modifyProcessInstancesBatchOperation.variant.spec.ts,65,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven,variant-2 - modifyProcessInstancesBatchOperation - bpmn #1 -modifyProcessInstancesBatchOperation.variant.spec.ts,139,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven,variant-3 - modifyProcessInstancesBatchOperation - bpmn #1 -modifyProcessInstancesBatchOperation.variant.spec.ts,213,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven,variant-4 - modifyProcessInstancesBatchOperation - bpmn #1 -modifyProcessInstancesBatchOperation.variant.spec.ts,315,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven,variant-5 - modifyProcessInstancesBatchOperation - bpmn #1 -modifyProcessInstancesBatchOperation.variant.spec.ts,417,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven,variant-6 - modifyProcessInstancesBatchOperation - bpmn #1 -modifyProcessInstancesBatchOperation.variant.spec.ts,474,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven,variant-7 - modifyProcessInstancesBatchOperation - bpmn #1 -modifyProcessInstancesBatchOperation.variant.spec.ts,552,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven,variant-8 - modifyProcessInstancesBatchOperation - bpmn #1 -modifyProcessInstancesBatchOperation.variant.spec.ts,630,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven,variant-9 - modifyProcessInstancesBatchOperation - bpmn #1 -modifyProcessInstancesBatchOperation.variant.spec.ts,736,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven,variant-10 - modifyProcessInstancesBatchOperation - bpmn #1 -modifyProcessInstancesBatchOperation.variant.spec.ts,842,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven,variant-11 - modifyProcessInstancesBatchOperation - bpmn #1 -modifyProcessInstancesBatchOperation.variant.spec.ts,946,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven,variant-12 - modifyProcessInstancesBatchOperation - bpmn #1 -pinClock.feature.spec.ts,8,clock,O. System/Admin,create,create,none,PUT,/clock,pinClock,happy-path,feature-1 - pinClock - base (1) -publishMessage.feature.spec.ts,11,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,message,M. Messaging/Signals,create,create,deployed-process-with-message-catch-event,POST,/messages/publication,publishMessage,unlabeled,variant-1 - scenario -resetClock.feature.spec.ts,8,clock,O. System/Admin,delete,delete,none,POST,/clock/reset,resetClock,happy-path,feature-1 - resetClock - base (1) -resolveIncident.feature.spec.ts,8,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,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,happy-path,feature-1 - resolveIncidentsBatchOperation - base (1) -resolveIncidentsBatchOperation.variant.spec.ts,12,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven,variant-1 - resolveIncidentsBatchOperation - bpmn #1 -resolveIncidentsBatchOperation.variant.spec.ts,64,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven,variant-2 - resolveIncidentsBatchOperation - bpmn #1 -resolveIncidentsBatchOperation.variant.spec.ts,137,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven,variant-3 - resolveIncidentsBatchOperation - bpmn #1 -resolveIncidentsBatchOperation.variant.spec.ts,210,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven,variant-4 - resolveIncidentsBatchOperation - bpmn #1 -resolveIncidentsBatchOperation.variant.spec.ts,311,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven,variant-5 - resolveIncidentsBatchOperation - bpmn #1 -resolveIncidentsBatchOperation.variant.spec.ts,412,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven,variant-6 - resolveIncidentsBatchOperation - bpmn #1 -resolveIncidentsBatchOperation.variant.spec.ts,468,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven,variant-7 - resolveIncidentsBatchOperation - bpmn #1 -resolveIncidentsBatchOperation.variant.spec.ts,545,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven,variant-8 - resolveIncidentsBatchOperation - bpmn #1 -resolveIncidentsBatchOperation.variant.spec.ts,622,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven,variant-9 - resolveIncidentsBatchOperation - bpmn #1 -resolveIncidentsBatchOperation.variant.spec.ts,727,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/incident-resolution,resolveIncidentsBatchOperation,data-driven,variant-10 - resolveIncidentsBatchOperation - bpmn #1 -resolveProcessInstanceIncidents.feature.spec.ts,12,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,batch-operation,E. Batch-Operation Lifecycle,update,mutate,running-process-instance(s),POST,/batch-operations/{batchOperationKey}/resumption,resumeBatchOperation,happy-path,feature-1 - resumeBatchOperation - base (1) -searchAgentInstances.feature.spec.ts,12,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,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,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,unlabeled,variant-1 - scenario -searchAgentInstances.variant.spec.ts,44,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,data-driven,variant-2 - searchAgentInstances - bpmn #1 -searchAgentInstances.variant.spec.ts,145,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,data-driven,variant-3 - searchAgentInstances - bpmn #1 -searchAgentInstances.variant.spec.ts,218,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,data-driven,variant-4 - searchAgentInstances - bpmn #1 -searchAgentInstances.variant.spec.ts,270,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,data-driven,variant-5 - searchAgentInstances - path #1 -searchAgentInstances.variant.spec.ts,334,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,data-driven,variant-6 - searchAgentInstances - path #1 -searchAuditLogs.feature.spec.ts,12,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,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,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,unlabeled,variant-1 - scenario -searchAuditLogs.variant.spec.ts,42,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven,variant-2 - searchAuditLogs - bpmn #1 -searchAuditLogs.variant.spec.ts,92,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven,variant-3 - searchAuditLogs - bpmn #1 -searchAuditLogs.variant.spec.ts,163,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven,variant-4 - searchAuditLogs - bpmn #1 -searchAuditLogs.variant.spec.ts,265,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,unlabeled,variant-5 - scenario -searchAuditLogs.variant.spec.ts,293,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,unlabeled,variant-6 - scenario -searchAuditLogs.variant.spec.ts,322,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven,variant-7 - searchAuditLogs - form #1 -searchAuditLogs.variant.spec.ts,371,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven,variant-8 - searchAuditLogs - bpmn #1 -searchAuditLogs.variant.spec.ts,421,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven,variant-9 - searchAuditLogs - bpmn #1 -searchAuditLogs.variant.spec.ts,523,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven,variant-10 - searchAuditLogs - drd #1 -searchAuditLogs.variant.spec.ts,572,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven,variant-11 - searchAuditLogs - dmn #1 -searchAuditLogs.variant.spec.ts,621,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven,variant-12 - searchAuditLogs - dmn #1 -searchAuditLogs.variant.spec.ts,697,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,unlabeled,variant-13 - scenario -searchAuditLogs.variant.spec.ts,725,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven,variant-14 - searchAuditLogs - path #1 -searchAuditLogs.variant.spec.ts,776,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven,variant-15 - searchAuditLogs - path #1 -searchAuthorizations.feature.spec.ts,12,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,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,authorization,A. Entity Lifecycle (CRUD),search,observe-present-search,owner-entity-or-resource,POST,/authorizations/search,searchAuthorizations,data-driven,variant-1 - searchAuthorizations - path #1 -searchAuthorizations.variant.spec.ts,65,authorization,A. Entity Lifecycle (CRUD),search,observe-present-search,owner-entity-or-resource,POST,/authorizations/search,searchAuthorizations,data-driven,variant-2 - searchAuthorizations - path #1 -searchBatchOperationItems.feature.spec.ts,12,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,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,batch-operation-item,E. Batch-Operation Lifecycle,search,observe-present-search,running-batch-operation,POST,/batch-operation-items/search,searchBatchOperationItems,data-driven,variant-1 - searchBatchOperationItems - bpmn #1 -searchBatchOperationItems.variant.spec.ts,84,batch-operation-item,E. Batch-Operation Lifecycle,search,observe-present-search,running-batch-operation,POST,/batch-operation-items/search,searchBatchOperationItems,data-driven,variant-2 - searchBatchOperationItems - path #1 -searchBatchOperationItems.variant.spec.ts,137,batch-operation-item,E. Batch-Operation Lifecycle,search,observe-present-search,running-batch-operation,POST,/batch-operation-items/search,searchBatchOperationItems,data-driven,variant-3 - searchBatchOperationItems - path #1 -searchBatchOperations.feature.spec.ts,12,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,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,batch-operation,E. Batch-Operation Lifecycle,search,observe-present-search,running-process-instance(s),POST,/batch-operations/search,searchBatchOperations,data-driven,variant-1 - searchBatchOperations - path #1 -searchBatchOperations.variant.spec.ts,65,batch-operation,E. Batch-Operation Lifecycle,search,observe-present-search,running-process-instance(s),POST,/batch-operations/search,searchBatchOperations,data-driven,variant-2 - searchBatchOperations - path #1 -searchClientsForGroup.feature.spec.ts,12,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,group,B. Membership/Association,search,observe-present-search,group + client,POST,/groups/{groupId}/clients/search,searchClientsForGroup,data-driven,variant-1 - searchClientsForGroup - path #1 -searchClientsForGroup.variant.spec.ts,85,group,B. Membership/Association,search,observe-present-search,group + client,POST,/groups/{groupId}/clients/search,searchClientsForGroup,data-driven,variant-2 - searchClientsForGroup - path #1 -searchClientsForRole.feature.spec.ts,12,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,role,B. Membership/Association,search,observe-present-search,role + client,POST,/roles/{roleId}/clients/search,searchClientsForRole,data-driven,variant-1 - searchClientsForRole - path #1 -searchClientsForRole.variant.spec.ts,85,role,B. Membership/Association,search,observe-present-search,role + client,POST,/roles/{roleId}/clients/search,searchClientsForRole,data-driven,variant-2 - searchClientsForRole - path #1 -searchClientsForTenant.feature.spec.ts,12,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,tenant,B. Membership/Association,search,observe-present-search,tenant + client,POST,/tenants/{tenantId}/clients/search,searchClientsForTenant,data-driven,variant-1 - searchClientsForTenant - path #1 -searchClientsForTenant.variant.spec.ts,87,tenant,B. Membership/Association,search,observe-present-search,tenant + client,POST,/tenants/{tenantId}/clients/search,searchClientsForTenant,data-driven,variant-2 - searchClientsForTenant - path #1 -searchClusterVariables.feature.spec.ts,12,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,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,cluster-variables,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/cluster-variables/search,searchClusterVariables,data-driven,variant-1 - searchClusterVariables - path #1 -searchClusterVariables.variant.spec.ts,65,cluster-variables,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/cluster-variables/search,searchClusterVariables,data-driven,variant-2 - searchClusterVariables - path #1 -searchCorrelatedMessageSubscriptions.feature.spec.ts,12,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,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,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,variant-1 - searchCorrelatedMessageSubscriptions - bpmn #1 -searchCorrelatedMessageSubscriptions.variant.spec.ts,117,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,variant-2 - searchCorrelatedMessageSubscriptions - bpmn #1 -searchCorrelatedMessageSubscriptions.variant.spec.ts,170,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,variant-3 - searchCorrelatedMessageSubscriptions - bpmn #1 -searchCorrelatedMessageSubscriptions.variant.spec.ts,244,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,variant-4 - searchCorrelatedMessageSubscriptions - path #1 -searchCorrelatedMessageSubscriptions.variant.spec.ts,305,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,variant-5 - searchCorrelatedMessageSubscriptions - path #1 -searchCorrelatedMessageSubscriptions.variant.spec.ts,359,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,variant-6 - searchCorrelatedMessageSubscriptions - path #1 -searchDecisionDefinitions.feature.spec.ts,12,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,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,decision-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-definitions/search,searchDecisionDefinitions,data-driven,variant-1 - searchDecisionDefinitions - dmn #1 -searchDecisionDefinitions.variant.spec.ts,64,decision-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-definitions/search,searchDecisionDefinitions,data-driven,variant-2 - searchDecisionDefinitions - path #1 -searchDecisionDefinitions.variant.spec.ts,117,decision-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-definitions/search,searchDecisionDefinitions,data-driven,variant-3 - searchDecisionDefinitions - dmn #1 -searchDecisionDefinitions.variant.spec.ts,168,decision-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-definitions/search,searchDecisionDefinitions,data-driven,variant-4 - searchDecisionDefinitions - drd #1 -searchDecisionDefinitions.variant.spec.ts,219,decision-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-definitions/search,searchDecisionDefinitions,data-driven,variant-5 - searchDecisionDefinitions - path #1 -searchDecisionDefinitions.variant.spec.ts,272,decision-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-definitions/search,searchDecisionDefinitions,data-driven,variant-6 - searchDecisionDefinitions - path #1 -searchDecisionInstances.feature.spec.ts,12,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,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,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-1 - searchDecisionInstances - dmn #1 -searchDecisionInstances.variant.spec.ts,92,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-2 - searchDecisionInstances - dmn #1 -searchDecisionInstances.variant.spec.ts,143,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-3 - searchDecisionInstances - path #1 -searchDecisionInstances.variant.spec.ts,196,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-4 - searchDecisionInstances - dmn #1 -searchDecisionInstances.variant.spec.ts,275,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-5 - searchDecisionInstances - bpmn #1 -searchDecisionInstances.variant.spec.ts,327,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-6 - searchDecisionInstances - bpmn #1 -searchDecisionInstances.variant.spec.ts,400,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-7 - searchDecisionInstances - dmn #1 -searchDecisionInstances.variant.spec.ts,451,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-8 - searchDecisionInstances - bpmn #1 -searchDecisionInstances.variant.spec.ts,553,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-9 - searchDecisionInstances - dmn #1 -searchDecisionInstances.variant.spec.ts,604,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-10 - searchDecisionInstances - drd #1 -searchDecisionInstances.variant.spec.ts,655,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-11 - searchDecisionInstances - path #1 -searchDecisionInstances.variant.spec.ts,708,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-12 - searchDecisionInstances - path #1 -searchDecisionRequirements.feature.spec.ts,12,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,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,decision-requirements,C. Deployment Lifecycle,search,observe-present-search,deployed-drd,POST,/decision-requirements/search,searchDecisionRequirements,data-driven,variant-1 - searchDecisionRequirements - drd #1 -searchDecisionRequirements.variant.spec.ts,64,decision-requirements,C. Deployment Lifecycle,search,observe-present-search,deployed-drd,POST,/decision-requirements/search,searchDecisionRequirements,data-driven,variant-2 - searchDecisionRequirements - path #1 -searchDecisionRequirements.variant.spec.ts,117,decision-requirements,C. Deployment Lifecycle,search,observe-present-search,deployed-drd,POST,/decision-requirements/search,searchDecisionRequirements,data-driven,variant-3 - searchDecisionRequirements - path #1 -searchDecisionRequirements.variant.spec.ts,170,decision-requirements,C. Deployment Lifecycle,search,observe-present-search,deployed-drd,POST,/decision-requirements/search,searchDecisionRequirements,data-driven,variant-4 - searchDecisionRequirements - path #1 -searchElementInstanceIncidents.feature.spec.ts,13,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,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/{elementInstanceKey}/incidents/search,searchElementInstanceIncidents,data-driven,variant-1 - searchElementInstanceIncidents - bpmn #1 -searchElementInstanceIncidents.variant.spec.ts,122,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/{elementInstanceKey}/incidents/search,searchElementInstanceIncidents,data-driven,variant-2 - searchElementInstanceIncidents - bpmn #1 -searchElementInstanceIncidents.variant.spec.ts,231,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/{elementInstanceKey}/incidents/search,searchElementInstanceIncidents,data-driven,variant-3 - searchElementInstanceIncidents - bpmn #1 -searchElementInstanceIncidents.variant.spec.ts,340,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/{elementInstanceKey}/incidents/search,searchElementInstanceIncidents,data-driven,variant-4 - searchElementInstanceIncidents - bpmn #1 -searchElementInstanceIncidents.variant.spec.ts,449,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/{elementInstanceKey}/incidents/search,searchElementInstanceIncidents,data-driven,variant-5 - searchElementInstanceIncidents - bpmn #1 -searchElementInstanceIncidents.variant.spec.ts,583,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/{elementInstanceKey}/incidents/search,searchElementInstanceIncidents,data-driven,variant-6 - searchElementInstanceIncidents - bpmn #1 -searchElementInstances.feature.spec.ts,12,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,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,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,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,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-1 - searchElementInstances - bpmn #1 -searchElementInstances.variant.spec.ts,63,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-2 - searchElementInstances - bpmn #1 -searchElementInstances.variant.spec.ts,162,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-3 - searchElementInstances - path #1 -searchElementInstances.variant.spec.ts,215,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-4 - searchElementInstances - bpmn #1 -searchElementInstances.variant.spec.ts,314,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-5 - searchElementInstances - bpmn #1 -searchElementInstances.variant.spec.ts,384,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-6 - searchElementInstances - bpmn #1 -searchElementInstances.variant.spec.ts,434,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-7 - searchElementInstances - bpmn #1 -searchElementInstances.variant.spec.ts,595,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-8 - searchElementInstances - bpmn #1 -searchElementInstances.variant.spec.ts,694,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-9 - searchElementInstances - path #1 -searchElementInstances.variant.spec.ts,747,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-10 - searchElementInstances - path #1 -searchGlobalTaskListeners.feature.spec.ts,12,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,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,global-task-listener,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/global-task-listeners/search,searchGlobalTaskListeners,data-driven,variant-1 - searchGlobalTaskListeners - path #1 -searchGlobalTaskListeners.variant.spec.ts,65,global-task-listener,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/global-task-listeners/search,searchGlobalTaskListeners,data-driven,variant-2 - searchGlobalTaskListeners - path #1 -searchGroupIdsForTenant.feature.spec.ts,12,tenant,B. Membership/Association,search,observe-present-search,tenant + groupid,POST,/tenants/{tenantId}/groups/search,searchGroupIdsForTenant,happy-path,feature-1 - searchGroupIdsForTenant - base (1) -searchGroupIdsForTenant.variant.spec.ts,12,tenant,B. Membership/Association,search,observe-present-search,tenant + groupid,POST,/tenants/{tenantId}/groups/search,searchGroupIdsForTenant,data-driven,variant-1 - searchGroupIdsForTenant - path #1 -searchGroupIdsForTenant.variant.spec.ts,87,tenant,B. Membership/Association,search,observe-present-search,tenant + groupid,POST,/tenants/{tenantId}/groups/search,searchGroupIdsForTenant,data-driven,variant-2 - searchGroupIdsForTenant - path #1 -searchGroups.feature.spec.ts,12,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,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,group,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/groups/search,searchGroups,data-driven,variant-1 - searchGroups - path #1 -searchGroups.variant.spec.ts,63,group,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/groups/search,searchGroups,data-driven,variant-2 - searchGroups - path #1 -searchGroupsForRole.feature.spec.ts,12,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,role,B. Membership/Association,search,observe-present-search,role + group,POST,/roles/{roleId}/groups/search,searchGroupsForRole,data-driven,variant-1 - searchGroupsForRole - path #1 -searchGroupsForRole.variant.spec.ts,85,role,B. Membership/Association,search,observe-present-search,role + group,POST,/roles/{roleId}/groups/search,searchGroupsForRole,data-driven,variant-2 - searchGroupsForRole - path #1 -searchIncidents.feature.spec.ts,12,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,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,incident,H. Incident Lifecycle,search,observe-present-search,running-process-instance-with-failing-job,POST,/incidents/search,searchIncidents,data-driven,variant-1 - searchIncidents - bpmn #1 -searchIncidents.variant.spec.ts,63,incident,H. Incident Lifecycle,search,observe-present-search,running-process-instance-with-failing-job,POST,/incidents/search,searchIncidents,data-driven,variant-2 - searchIncidents - bpmn #1 -searchIncidents.variant.spec.ts,134,incident,H. Incident Lifecycle,search,observe-present-search,running-process-instance-with-failing-job,POST,/incidents/search,searchIncidents,data-driven,variant-3 - searchIncidents - bpmn #1 -searchIncidents.variant.spec.ts,236,incident,H. Incident Lifecycle,search,observe-present-search,running-process-instance-with-failing-job,POST,/incidents/search,searchIncidents,data-driven,variant-4 - searchIncidents - bpmn #1 -searchIncidents.variant.spec.ts,338,incident,H. Incident Lifecycle,search,observe-present-search,running-process-instance-with-failing-job,POST,/incidents/search,searchIncidents,data-driven,variant-5 - searchIncidents - path #1 -searchIncidents.variant.spec.ts,389,incident,H. Incident Lifecycle,search,observe-present-search,running-process-instance-with-failing-job,POST,/incidents/search,searchIncidents,data-driven,variant-6 - searchIncidents - path #1 -searchJobs.feature.spec.ts,13,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,79,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,job,G. Job Lifecycle & Stats,search,observe-present-search,running-process-instance-with-job,POST,/jobs/search,searchJobs,data-driven,variant-1 - searchJobs - bpmn #1 -searchJobs.variant.spec.ts,116,job,G. Job Lifecycle & Stats,search,observe-present-search,running-process-instance-with-job,POST,/jobs/search,searchJobs,data-driven,variant-2 - searchJobs - bpmn #1 -searchJobs.variant.spec.ts,219,job,G. Job Lifecycle & Stats,search,observe-present-search,running-process-instance-with-job,POST,/jobs/search,searchJobs,data-driven,variant-3 - searchJobs - path #1 -searchJobs.variant.spec.ts,293,job,G. Job Lifecycle & Stats,search,observe-present-search,running-process-instance-with-job,POST,/jobs/search,searchJobs,data-driven,variant-4 - searchJobs - bpmn #1 -searchJobs.variant.spec.ts,366,job,G. Job Lifecycle & Stats,search,observe-present-search,running-process-instance-with-job,POST,/jobs/search,searchJobs,data-driven,variant-5 - searchJobs - path #1 -searchJobs.variant.spec.ts,461,job,G. Job Lifecycle & Stats,search,observe-present-search,running-process-instance-with-job,POST,/jobs/search,searchJobs,data-driven,variant-6 - searchJobs - path #1 -searchMappingRule.feature.spec.ts,12,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,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,mapping-rule,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/mapping-rules/search,searchMappingRule,data-driven,variant-1 - searchMappingRule - path #1 -searchMappingRule.variant.spec.ts,106,mapping-rule,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/mapping-rules/search,searchMappingRule,data-driven,variant-2 - searchMappingRule - path #1 -searchMappingRule.variant.spec.ts,159,mapping-rule,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/mapping-rules/search,searchMappingRule,data-driven,variant-3 - searchMappingRule - path #1 -searchMappingRulesForGroup.feature.spec.ts,12,group,B. Membership/Association,search,observe-present-search,group + mappingrule,POST,/groups/{groupId}/mapping-rules/search,searchMappingRulesForGroup,happy-path,feature-1 - searchMappingRulesForGroup - base (1) -searchMappingRulesForGroup.variant.spec.ts,12,group,B. Membership/Association,search,observe-present-search,group + mappingrule,POST,/groups/{groupId}/mapping-rules/search,searchMappingRulesForGroup,data-driven,variant-1 - searchMappingRulesForGroup - path #1 -searchMappingRulesForGroup.variant.spec.ts,84,group,B. Membership/Association,search,observe-present-search,group + mappingrule,POST,/groups/{groupId}/mapping-rules/search,searchMappingRulesForGroup,data-driven,variant-2 - searchMappingRulesForGroup - path #1 -searchMappingRulesForGroup.variant.spec.ts,158,group,B. Membership/Association,search,observe-present-search,group + mappingrule,POST,/groups/{groupId}/mapping-rules/search,searchMappingRulesForGroup,data-driven,variant-3 - searchMappingRulesForGroup - path #1 -searchMappingRulesForRole.feature.spec.ts,12,role,B. Membership/Association,search,observe-present-search,role + mappingrule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,happy-path,feature-1 - searchMappingRulesForRole - base (1) -searchMappingRulesForRole.variant.spec.ts,12,role,B. Membership/Association,search,observe-present-search,role + mappingrule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,data-driven,variant-1 - searchMappingRulesForRole - path #1 -searchMappingRulesForRole.variant.spec.ts,123,role,B. Membership/Association,search,observe-present-search,role + mappingrule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,data-driven,variant-2 - searchMappingRulesForRole - path #1 -searchMappingRulesForRole.variant.spec.ts,197,role,B. Membership/Association,search,observe-present-search,role + mappingrule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,data-driven,variant-3 - searchMappingRulesForRole - path #1 -searchMappingRulesForTenant.feature.spec.ts,12,tenant,B. Membership/Association,search,observe-present-search,tenant + mappingrule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,happy-path,feature-1 - searchMappingRulesForTenant - base (1) -searchMappingRulesForTenant.variant.spec.ts,12,tenant,B. Membership/Association,search,observe-present-search,tenant + mappingrule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,data-driven,variant-1 - searchMappingRulesForTenant - path #1 -searchMappingRulesForTenant.variant.spec.ts,125,tenant,B. Membership/Association,search,observe-present-search,tenant + mappingrule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,data-driven,variant-2 - searchMappingRulesForTenant - path #1 -searchMappingRulesForTenant.variant.spec.ts,201,tenant,B. Membership/Association,search,observe-present-search,tenant + mappingrule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,data-driven,variant-3 - searchMappingRulesForTenant - path #1 -searchMessageSubscriptions.feature.spec.ts,12,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,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,message-subscriptions,M. Messaging/Signals,search,observe-present-search,deployed-process-with-message-catch-event,POST,/message-subscriptions/search,searchMessageSubscriptions,data-driven,variant-1 - searchMessageSubscriptions - path #1 -searchMessageSubscriptions.variant.spec.ts,69,message-subscriptions,M. Messaging/Signals,search,observe-present-search,deployed-process-with-message-catch-event,POST,/message-subscriptions/search,searchMessageSubscriptions,data-driven,variant-2 - searchMessageSubscriptions - bpmn #1 -searchMessageSubscriptions.variant.spec.ts,121,message-subscriptions,M. Messaging/Signals,search,observe-present-search,deployed-process-with-message-catch-event,POST,/message-subscriptions/search,searchMessageSubscriptions,data-driven,variant-3 - searchMessageSubscriptions - bpmn #1 -searchMessageSubscriptions.variant.spec.ts,195,message-subscriptions,M. Messaging/Signals,search,observe-present-search,deployed-process-with-message-catch-event,POST,/message-subscriptions/search,searchMessageSubscriptions,data-driven,variant-4 - searchMessageSubscriptions - bpmn #1 -searchMessageSubscriptions.variant.spec.ts,298,message-subscriptions,M. Messaging/Signals,search,observe-present-search,deployed-process-with-message-catch-event,POST,/message-subscriptions/search,searchMessageSubscriptions,data-driven,variant-5 - searchMessageSubscriptions - path #1 -searchMessageSubscriptions.variant.spec.ts,351,message-subscriptions,M. Messaging/Signals,search,observe-present-search,deployed-process-with-message-catch-event,POST,/message-subscriptions/search,searchMessageSubscriptions,data-driven,variant-6 - searchMessageSubscriptions - path #1 -searchProcessDefinitions.feature.spec.ts,13,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,59,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,process-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-process,POST,/process-definitions/search,searchProcessDefinitions,data-driven,variant-1 - searchProcessDefinitions - path #1 -searchProcessDefinitions.variant.spec.ts,88,process-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-process,POST,/process-definitions/search,searchProcessDefinitions,data-driven,variant-2 - searchProcessDefinitions - bpmn #1 -searchProcessDefinitions.variant.spec.ts,140,process-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-process,POST,/process-definitions/search,searchProcessDefinitions,data-driven,variant-3 - searchProcessDefinitions - path #1 -searchProcessDefinitions.variant.spec.ts,215,process-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-process,POST,/process-definitions/search,searchProcessDefinitions,data-driven,variant-4 - searchProcessDefinitions - path #1 -searchProcessInstanceIncidents.feature.spec.ts,13,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,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/{processInstanceKey}/incidents/search,searchProcessInstanceIncidents,data-driven,variant-1 - searchProcessInstanceIncidents - cycle/bpmn+bpmn #1 -searchProcessInstanceIncidents.variant.spec.ts,109,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/{processInstanceKey}/incidents/search,searchProcessInstanceIncidents,data-driven,variant-2 - searchProcessInstanceIncidents - bpmn #1 -searchProcessInstanceIncidents.variant.spec.ts,187,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/{processInstanceKey}/incidents/search,searchProcessInstanceIncidents,data-driven,variant-3 - searchProcessInstanceIncidents - bpmn #1 -searchProcessInstanceIncidents.variant.spec.ts,297,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/{processInstanceKey}/incidents/search,searchProcessInstanceIncidents,data-driven,variant-4 - searchProcessInstanceIncidents - bpmn #1 -searchProcessInstanceIncidents.variant.spec.ts,407,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/{processInstanceKey}/incidents/search,searchProcessInstanceIncidents,data-driven,variant-5 - searchProcessInstanceIncidents - bpmn #1 -searchProcessInstanceIncidents.variant.spec.ts,511,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/{processInstanceKey}/incidents/search,searchProcessInstanceIncidents,data-driven,variant-6 - searchProcessInstanceIncidents - bpmn #1 -searchProcessInstances.feature.spec.ts,13,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,79,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,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven,variant-1 - searchProcessInstances - path #1 -searchProcessInstances.variant.spec.ts,87,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven,variant-2 - searchProcessInstances - bpmn #1 -searchProcessInstances.variant.spec.ts,161,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven,variant-3 - searchProcessInstances - bpmn #1 -searchProcessInstances.variant.spec.ts,235,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven,variant-4 - searchProcessInstances - bpmn #1 -searchProcessInstances.variant.spec.ts,337,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven,variant-5 - searchProcessInstances - bpmn #1 -searchProcessInstances.variant.spec.ts,440,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven,variant-6 - searchProcessInstances - path #1 -searchProcessInstances.variant.spec.ts,518,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven,variant-7 - searchProcessInstances - bpmn #1 -searchProcessInstances.variant.spec.ts,596,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven,variant-8 - searchProcessInstances - bpmn #1 -searchProcessInstances.variant.spec.ts,674,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven,variant-9 - searchProcessInstances - bpmn #1 -searchProcessInstances.variant.spec.ts,780,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven,variant-10 - searchProcessInstances - bpmn #1 -searchProcessInstances.variant.spec.ts,887,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven,variant-11 - searchProcessInstances - path #1 -searchProcessInstances.variant.spec.ts,982,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven,variant-12 - searchProcessInstances - path #1 -searchResources.feature.spec.ts,12,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,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,resource,C. Deployment Lifecycle,search,observe-present-search,none,POST,/resources/search,searchResources,data-driven,variant-1 - searchResources - bpmn #1 -searchResources.variant.spec.ts,62,resource,C. Deployment Lifecycle,search,observe-present-search,none,POST,/resources/search,searchResources,data-driven,variant-2 - searchResources - path #1 -searchResources.variant.spec.ts,130,resource,C. Deployment Lifecycle,search,observe-present-search,none,POST,/resources/search,searchResources,data-driven,variant-3 - searchResources - path #1 -searchResources.variant.spec.ts,181,resource,C. Deployment Lifecycle,search,observe-present-search,none,POST,/resources/search,searchResources,data-driven,variant-4 - searchResources - path #1 -searchResources.variant.spec.ts,232,resource,C. Deployment Lifecycle,search,observe-present-search,none,POST,/resources/search,searchResources,data-driven,variant-5 - searchResources - path #1 -searchRoles.feature.spec.ts,12,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,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,role,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/roles/search,searchRoles,data-driven,variant-1 - searchRoles - path #1 -searchRoles.variant.spec.ts,104,role,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/roles/search,searchRoles,data-driven,variant-2 - searchRoles - path #1 -searchRoles.variant.spec.ts,155,role,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/roles/search,searchRoles,data-driven,variant-3 - searchRoles - path #1 -searchRolesForGroup.feature.spec.ts,12,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,group,B. Membership/Association,search,observe-present-search,group + role,POST,/groups/{groupId}/roles/search,searchRolesForGroup,data-driven,variant-1 - searchRolesForGroup - path #1 -searchRolesForGroup.variant.spec.ts,84,group,B. Membership/Association,search,observe-present-search,group + role,POST,/groups/{groupId}/roles/search,searchRolesForGroup,data-driven,variant-2 - searchRolesForGroup - path #1 -searchRolesForGroup.variant.spec.ts,158,group,B. Membership/Association,search,observe-present-search,group + role,POST,/groups/{groupId}/roles/search,searchRolesForGroup,data-driven,variant-3 - searchRolesForGroup - path #1 -searchRolesForTenant.feature.spec.ts,12,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,tenant,B. Membership/Association,search,observe-present-search,tenant + role,POST,/tenants/{tenantId}/roles/search,searchRolesForTenant,data-driven,variant-1 - searchRolesForTenant - path #1 -searchRolesForTenant.variant.spec.ts,125,tenant,B. Membership/Association,search,observe-present-search,tenant + role,POST,/tenants/{tenantId}/roles/search,searchRolesForTenant,data-driven,variant-2 - searchRolesForTenant - path #1 -searchRolesForTenant.variant.spec.ts,201,tenant,B. Membership/Association,search,observe-present-search,tenant + role,POST,/tenants/{tenantId}/roles/search,searchRolesForTenant,data-driven,variant-3 - searchRolesForTenant - path #1 -searchTenants.feature.spec.ts,12,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,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,tenant,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/tenants/search,searchTenants,data-driven,variant-1 - searchTenants - path #1 -searchTenants.variant.spec.ts,63,tenant,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/tenants/search,searchTenants,data-driven,variant-2 - searchTenants - path #1 -searchTenants.variant.spec.ts,114,tenant,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/tenants/search,searchTenants,data-driven,variant-3 - searchTenants - path #1 -searchUserTaskAuditLogs.feature.spec.ts,12,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,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,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,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,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,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,data-driven,variant-1 - searchUserTasks - bpmn #1 -searchUserTasks.variant.spec.ts,114,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,data-driven,variant-2 - searchUserTasks - bpmn #1 -searchUserTasks.variant.spec.ts,164,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,data-driven,variant-3 - searchUserTasks - path #1 -searchUserTasks.variant.spec.ts,232,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,data-driven,variant-4 - searchUserTasks - bpmn #1 -searchUserTasks.variant.spec.ts,282,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,data-driven,variant-5 - searchUserTasks - bpmn #1 -searchUserTasks.variant.spec.ts,353,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,data-driven,variant-6 - searchUserTasks - bpmn #1 -searchUserTasks.variant.spec.ts,454,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,data-driven,variant-7 - searchUserTasks - bpmn #1 -searchUserTasks.variant.spec.ts,552,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,data-driven,variant-8 - searchUserTasks - path #1 -searchUserTasks.variant.spec.ts,603,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,data-driven,variant-9 - searchUserTasks - path #1 -searchUsers.feature.spec.ts,12,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,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,user,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/users/search,searchUsers,data-driven,variant-1 - searchUsers - path #1 -searchUsers.variant.spec.ts,63,user,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/users/search,searchUsers,data-driven,variant-2 - searchUsers - path #1 -searchUsersForGroup.feature.spec.ts,12,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,group,B. Membership/Association,search,observe-present-search,group + user,POST,/groups/{groupId}/users/search,searchUsersForGroup,data-driven,variant-1 - searchUsersForGroup - path #1 -searchUsersForGroup.variant.spec.ts,85,group,B. Membership/Association,search,observe-present-search,group + user,POST,/groups/{groupId}/users/search,searchUsersForGroup,data-driven,variant-2 - searchUsersForGroup - path #1 -searchUsersForRole.feature.spec.ts,12,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,role,B. Membership/Association,search,observe-present-search,role + user,POST,/roles/{roleId}/users/search,searchUsersForRole,data-driven,variant-1 - searchUsersForRole - path #1 -searchUsersForRole.variant.spec.ts,85,role,B. Membership/Association,search,observe-present-search,role + user,POST,/roles/{roleId}/users/search,searchUsersForRole,data-driven,variant-2 - searchUsersForRole - path #1 -searchUsersForTenant.feature.spec.ts,12,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,tenant,B. Membership/Association,search,observe-present-search,tenant + user,POST,/tenants/{tenantId}/users/search,searchUsersForTenant,data-driven,variant-1 - searchUsersForTenant - path #1 -searchUsersForTenant.variant.spec.ts,87,tenant,B. Membership/Association,search,observe-present-search,tenant + user,POST,/tenants/{tenantId}/users/search,searchUsersForTenant,data-driven,variant-2 - searchUsersForTenant - path #1 -searchVariables.feature.spec.ts,12,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,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,variable,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/variables/search,searchVariables,data-driven,variant-1 - searchVariables - path #1 -searchVariables.variant.spec.ts,64,variable,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/variables/search,searchVariables,unlabeled,variant-2 - scenario -searchVariables.variant.spec.ts,93,variable,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/variables/search,searchVariables,unlabeled,variant-3 - scenario -searchVariables.variant.spec.ts,122,variable,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/variables/search,searchVariables,data-driven,variant-4 - searchVariables - bpmn #1 -searchVariables.variant.spec.ts,191,variable,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/variables/search,searchVariables,data-driven,variant-5 - searchVariables - path #1 -searchVariables.variant.spec.ts,242,variable,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/variables/search,searchVariables,data-driven,variant-6 - searchVariables - path #1 -suspendBatchOperation.feature.spec.ts,8,batch-operation,E. Batch-Operation Lifecycle,update,mutate,running-process-instance(s),POST,/batch-operations/{batchOperationKey}/suspension,suspendBatchOperation,happy-path,feature-1 - suspendBatchOperation - base (1) -throwJobError.feature.spec.ts,9,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,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,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,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,group,B. Membership/Association,delete,delete,group + mappingrule,DELETE,/groups/{groupId}/mapping-rules/{mappingRuleId},unassignMappingRuleFromGroup,happy-path,feature-1 - unassignMappingRuleFromGroup - base (1) -unassignMappingRuleFromTenant.feature.spec.ts,8,tenant,B. Membership/Association,delete,delete,tenant + mappingrule,DELETE,/tenants/{tenantId}/mapping-rules/{mappingRuleId},unassignMappingRuleFromTenant,happy-path,feature-1 - unassignMappingRuleFromTenant - base (1) -unassignRoleFromClient.feature.spec.ts,8,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,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,role,B. Membership/Association,delete,delete,mappingrule + role,DELETE,/roles/{roleId}/mapping-rules/{mappingRuleId},unassignRoleFromMappingRule,happy-path,feature-1 - unassignRoleFromMappingRule - base (1) -unassignRoleFromTenant.feature.spec.ts,8,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,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,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,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,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) -updateAuthorization.feature.spec.ts,8,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,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,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,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,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,group,A. Entity Lifecycle (CRUD),update,mutate,none,PUT,/groups/{groupId},updateGroup,happy-path,feature-1 - updateGroup - base (1) -updateJob.feature.spec.ts,9,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,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,role,A. Entity Lifecycle (CRUD),update,mutate,none,PUT,/roles/{roleId},updateRole,happy-path,feature-1 - updateRole - base (1) -updateTenant.feature.spec.ts,11,tenant,A. Entity Lifecycle (CRUD),update,mutate,none,PUT,/tenants/{tenantId},updateTenant,happy-path,feature-1 - updateTenant - base (1) -updateTenantClusterVariable.feature.spec.ts,11,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,user,A. Entity Lifecycle (CRUD),update,mutate,none,PUT,/users/{username},updateUser,happy-path,feature-1 - updateUser - base (1) -updateUserTask.feature.spec.ts,8,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) +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,77,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,13,variant,job,G. Job Lifecycle & Stats,create,create,running-process-instance-with-job,POST,/jobs/activation,activateJobs,data-driven,variant-1 - activateJobs - bpmn #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 + mappingrule,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 + mappingrule,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,mappingrule + 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,unlabeled,variant-1 - scenario +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,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,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,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,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,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,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,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,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,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,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,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,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,unlabeled,variant-1 - scenario +createAdminUser.feature.spec.ts,11,feature,setup,O. System/Admin,create,create,none,POST,/setup/user,createAdminUser,happy-path,feature-1 - createAdminUser - 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,69,feature,resource,C. Deployment Lifecycle,create,create,none,POST,/deployments,createDeployment,data-driven,feature-3 - createDeployment - dmn (3) +createDeployment.feature.spec.ts,97,feature,resource,C. Deployment Lifecycle,create,create,none,POST,/deployments,createDeployment,data-driven,feature-4 - createDeployment - drd (4) +createDeployment.variant.spec.ts,13,variant,resource,C. Deployment Lifecycle,create,create,none,POST,/deployments,createDeployment,data-driven,variant-1 - createDeployment - bpmn #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,56,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,103,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,65,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,117,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,208,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,302,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,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,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,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,unlabeled,variant-3 - scenario +deleteDecisionInstancesBatchOperation.variant.spec.ts,170,variant,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-4 - deleteDecisionInstancesBatchOperation - dmn #1 +deleteDecisionInstancesBatchOperation.variant.spec.ts,248,variant,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-5 - deleteDecisionInstancesBatchOperation - bpmn #1 +deleteDecisionInstancesBatchOperation.variant.spec.ts,300,variant,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-6 - deleteDecisionInstancesBatchOperation - bpmn #1 +deleteDecisionInstancesBatchOperation.variant.spec.ts,372,variant,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-7 - deleteDecisionInstancesBatchOperation - dmn #1 +deleteDecisionInstancesBatchOperation.variant.spec.ts,422,variant,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-8 - deleteDecisionInstancesBatchOperation - bpmn #1 +deleteDecisionInstancesBatchOperation.variant.spec.ts,523,variant,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-9 - deleteDecisionInstancesBatchOperation - dmn #1 +deleteDecisionInstancesBatchOperation.variant.spec.ts,573,variant,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,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,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,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,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,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,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,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,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,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,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,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,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,unlabeled,variant-1 - scenario +evaluateConditionals.variant.spec.ts,40,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,60,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,111,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,13,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) +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,12,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,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) +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,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,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,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,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,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,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,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,feature-1 - getProcessDefinitionInstanceVersionStatistics - base (1) +getProcessDefinitionInstanceVersionStatistics.variant.spec.ts,13,variant,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/process-instances-by-version,getProcessDefinitionInstanceVersionStatistics,data-driven,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,variant-1 - getProcessDefinitionMessageSubscriptionStatistics - path #1 +getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts,71,variant,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/message-subscriptions,getProcessDefinitionMessageSubscriptionStatistics,data-driven,variant-2 - getProcessDefinitionMessageSubscriptionStatistics - path #1 +getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts,132,variant,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/message-subscriptions,getProcessDefinitionMessageSubscriptionStatistics,data-driven,variant-3 - getProcessDefinitionMessageSubscriptionStatistics - bpmn #1 +getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts,189,variant,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/message-subscriptions,getProcessDefinitionMessageSubscriptionStatistics,data-driven,variant-4 - getProcessDefinitionMessageSubscriptionStatistics - bpmn #1 +getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts,267,variant,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/message-subscriptions,getProcessDefinitionMessageSubscriptionStatistics,data-driven,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,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,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,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,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,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,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,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,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,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) +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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,unlabeled,variant-1 - scenario +resetClock.feature.spec.ts,8,feature,clock,O. System/Admin,delete,delete,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,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,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,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,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,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,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,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,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,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,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,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,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,unlabeled,variant-1 - scenario +searchAgentInstances.variant.spec.ts,44,variant,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,data-driven,variant-2 - searchAgentInstances - bpmn #1 +searchAgentInstances.variant.spec.ts,145,variant,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,data-driven,variant-3 - searchAgentInstances - bpmn #1 +searchAgentInstances.variant.spec.ts,218,variant,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,data-driven,variant-4 - searchAgentInstances - bpmn #1 +searchAgentInstances.variant.spec.ts,270,variant,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,data-driven,variant-5 - searchAgentInstances - path #1 +searchAgentInstances.variant.spec.ts,334,variant,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,data-driven,variant-6 - 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,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,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,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,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,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,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,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,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,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,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,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,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,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,variant-14 - searchAuditLogs - path #1 +searchAuditLogs.variant.spec.ts,776,variant,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven,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,variant-1 - searchAuthorizations - path #1 +searchAuthorizations.variant.spec.ts,65,variant,authorization,A. Entity Lifecycle (CRUD),search,observe-present-search,owner-entity-or-resource,POST,/authorizations/search,searchAuthorizations,data-driven,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,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,variant-2 - searchBatchOperationItems - path #1 +searchBatchOperationItems.variant.spec.ts,137,variant,batch-operation-item,E. Batch-Operation Lifecycle,search,observe-present-search,running-batch-operation,POST,/batch-operation-items/search,searchBatchOperationItems,data-driven,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,variant-1 - searchBatchOperations - path #1 +searchBatchOperations.variant.spec.ts,65,variant,batch-operation,E. Batch-Operation Lifecycle,search,observe-present-search,running-process-instance(s),POST,/batch-operations/search,searchBatchOperations,data-driven,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,variant-1 - searchClientsForGroup - path #1 +searchClientsForGroup.variant.spec.ts,85,variant,group,B. Membership/Association,search,observe-present-search,group + client,POST,/groups/{groupId}/clients/search,searchClientsForGroup,data-driven,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,variant-1 - searchClientsForRole - path #1 +searchClientsForRole.variant.spec.ts,85,variant,role,B. Membership/Association,search,observe-present-search,role + client,POST,/roles/{roleId}/clients/search,searchClientsForRole,data-driven,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,variant-1 - searchClientsForTenant - path #1 +searchClientsForTenant.variant.spec.ts,87,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + client,POST,/tenants/{tenantId}/clients/search,searchClientsForTenant,data-driven,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,variant-1 - searchClusterVariables - path #1 +searchClusterVariables.variant.spec.ts,65,variant,cluster-variables,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/cluster-variables/search,searchClusterVariables,data-driven,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,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,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,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,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,variant-5 - searchCorrelatedMessageSubscriptions - path #1 +searchCorrelatedMessageSubscriptions.variant.spec.ts,359,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,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,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,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,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,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,variant-5 - searchDecisionDefinitions - path #1 +searchDecisionDefinitions.variant.spec.ts,272,variant,decision-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-definitions/search,searchDecisionDefinitions,data-driven,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,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,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,variant-3 - searchDecisionInstances - path #1 +searchDecisionInstances.variant.spec.ts,196,variant,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-4 - searchDecisionInstances - dmn #1 +searchDecisionInstances.variant.spec.ts,275,variant,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-5 - searchDecisionInstances - bpmn #1 +searchDecisionInstances.variant.spec.ts,327,variant,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-6 - searchDecisionInstances - bpmn #1 +searchDecisionInstances.variant.spec.ts,400,variant,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-7 - searchDecisionInstances - dmn #1 +searchDecisionInstances.variant.spec.ts,451,variant,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-8 - searchDecisionInstances - bpmn #1 +searchDecisionInstances.variant.spec.ts,553,variant,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-9 - searchDecisionInstances - dmn #1 +searchDecisionInstances.variant.spec.ts,604,variant,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-10 - searchDecisionInstances - drd #1 +searchDecisionInstances.variant.spec.ts,655,variant,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,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,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,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,variant-2 - searchDecisionRequirements - path #1 +searchDecisionRequirements.variant.spec.ts,117,variant,decision-requirements,C. Deployment Lifecycle,search,observe-present-search,deployed-drd,POST,/decision-requirements/search,searchDecisionRequirements,data-driven,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,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,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,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,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,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,variant-5 - searchElementInstanceIncidents - bpmn #1 +searchElementInstanceIncidents.variant.spec.ts,583,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/{elementInstanceKey}/incidents/search,searchElementInstanceIncidents,data-driven,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,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,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,variant-3 - searchElementInstances - path #1 +searchElementInstances.variant.spec.ts,215,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-4 - searchElementInstances - bpmn #1 +searchElementInstances.variant.spec.ts,314,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-5 - searchElementInstances - bpmn #1 +searchElementInstances.variant.spec.ts,384,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-6 - searchElementInstances - bpmn #1 +searchElementInstances.variant.spec.ts,434,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-7 - searchElementInstances - bpmn #1 +searchElementInstances.variant.spec.ts,595,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-8 - searchElementInstances - bpmn #1 +searchElementInstances.variant.spec.ts,694,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,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,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,variant-1 - searchGlobalTaskListeners - path #1 +searchGlobalTaskListeners.variant.spec.ts,65,variant,global-task-listener,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/global-task-listeners/search,searchGlobalTaskListeners,data-driven,variant-2 - searchGlobalTaskListeners - path #1 +searchGroupIdsForTenant.feature.spec.ts,12,feature,tenant,B. Membership/Association,search,observe-present-search,tenant + groupid,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 + groupid,POST,/tenants/{tenantId}/groups/search,searchGroupIdsForTenant,data-driven,variant-1 - searchGroupIdsForTenant - path #1 +searchGroupIdsForTenant.variant.spec.ts,87,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + groupid,POST,/tenants/{tenantId}/groups/search,searchGroupIdsForTenant,data-driven,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,variant-1 - searchGroups - path #1 +searchGroups.variant.spec.ts,63,variant,group,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/groups/search,searchGroups,data-driven,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,variant-1 - searchGroupsForRole - path #1 +searchGroupsForRole.variant.spec.ts,85,variant,role,B. Membership/Association,search,observe-present-search,role + group,POST,/roles/{roleId}/groups/search,searchGroupsForRole,data-driven,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,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,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,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,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,variant-5 - searchIncidents - path #1 +searchIncidents.variant.spec.ts,389,variant,incident,H. Incident Lifecycle,search,observe-present-search,running-process-instance-with-failing-job,POST,/incidents/search,searchIncidents,data-driven,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,79,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,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,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,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,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,variant-5 - searchJobs - path #1 +searchJobs.variant.spec.ts,461,variant,job,G. Job Lifecycle & Stats,search,observe-present-search,running-process-instance-with-job,POST,/jobs/search,searchJobs,data-driven,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,variant-1 - searchMappingRule - path #1 +searchMappingRule.variant.spec.ts,106,variant,mapping-rule,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/mapping-rules/search,searchMappingRule,data-driven,variant-2 - searchMappingRule - path #1 +searchMappingRule.variant.spec.ts,159,variant,mapping-rule,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/mapping-rules/search,searchMappingRule,data-driven,variant-3 - searchMappingRule - path #1 +searchMappingRulesForGroup.feature.spec.ts,12,feature,group,B. Membership/Association,search,observe-present-search,group + mappingrule,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 + mappingrule,POST,/groups/{groupId}/mapping-rules/search,searchMappingRulesForGroup,data-driven,variant-1 - searchMappingRulesForGroup - path #1 +searchMappingRulesForGroup.variant.spec.ts,84,variant,group,B. Membership/Association,search,observe-present-search,group + mappingrule,POST,/groups/{groupId}/mapping-rules/search,searchMappingRulesForGroup,data-driven,variant-2 - searchMappingRulesForGroup - path #1 +searchMappingRulesForGroup.variant.spec.ts,158,variant,group,B. Membership/Association,search,observe-present-search,group + mappingrule,POST,/groups/{groupId}/mapping-rules/search,searchMappingRulesForGroup,data-driven,variant-3 - searchMappingRulesForGroup - path #1 +searchMappingRulesForRole.feature.spec.ts,12,feature,role,B. Membership/Association,search,observe-present-search,role + mappingrule,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 + mappingrule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,data-driven,variant-1 - searchMappingRulesForRole - path #1 +searchMappingRulesForRole.variant.spec.ts,123,variant,role,B. Membership/Association,search,observe-present-search,role + mappingrule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,data-driven,variant-2 - searchMappingRulesForRole - path #1 +searchMappingRulesForRole.variant.spec.ts,197,variant,role,B. Membership/Association,search,observe-present-search,role + mappingrule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,data-driven,variant-3 - searchMappingRulesForRole - path #1 +searchMappingRulesForTenant.feature.spec.ts,12,feature,tenant,B. Membership/Association,search,observe-present-search,tenant + mappingrule,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 + mappingrule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,data-driven,variant-1 - searchMappingRulesForTenant - path #1 +searchMappingRulesForTenant.variant.spec.ts,125,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + mappingrule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,data-driven,variant-2 - searchMappingRulesForTenant - path #1 +searchMappingRulesForTenant.variant.spec.ts,201,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + mappingrule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,data-driven,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,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,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,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,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,variant-5 - searchMessageSubscriptions - path #1 +searchMessageSubscriptions.variant.spec.ts,351,variant,message-subscriptions,M. Messaging/Signals,search,observe-present-search,deployed-process-with-message-catch-event,POST,/message-subscriptions/search,searchMessageSubscriptions,data-driven,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,59,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,variant-1 - searchProcessDefinitions - path #1 +searchProcessDefinitions.variant.spec.ts,88,variant,process-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-process,POST,/process-definitions/search,searchProcessDefinitions,data-driven,variant-2 - searchProcessDefinitions - bpmn #1 +searchProcessDefinitions.variant.spec.ts,140,variant,process-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-process,POST,/process-definitions/search,searchProcessDefinitions,data-driven,variant-3 - searchProcessDefinitions - path #1 +searchProcessDefinitions.variant.spec.ts,215,variant,process-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-process,POST,/process-definitions/search,searchProcessDefinitions,data-driven,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,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,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,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,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,variant-5 - searchProcessInstanceIncidents - bpmn #1 +searchProcessInstanceIncidents.variant.spec.ts,511,variant,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/{processInstanceKey}/incidents/search,searchProcessInstanceIncidents,data-driven,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,79,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,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,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,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,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,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,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,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,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,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,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,variant-11 - searchProcessInstances - path #1 +searchProcessInstances.variant.spec.ts,982,variant,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven,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,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,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,variant-3 - searchResources - path #1 +searchResources.variant.spec.ts,181,variant,resource,C. Deployment Lifecycle,search,observe-present-search,none,POST,/resources/search,searchResources,data-driven,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,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,variant-1 - searchRoles - path #1 +searchRoles.variant.spec.ts,104,variant,role,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/roles/search,searchRoles,data-driven,variant-2 - searchRoles - path #1 +searchRoles.variant.spec.ts,155,variant,role,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/roles/search,searchRoles,data-driven,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,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,variant-2 - searchRolesForGroup - path #1 +searchRolesForGroup.variant.spec.ts,158,variant,group,B. Membership/Association,search,observe-present-search,group + role,POST,/groups/{groupId}/roles/search,searchRolesForGroup,data-driven,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,variant-1 - searchRolesForTenant - path #1 +searchRolesForTenant.variant.spec.ts,125,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + role,POST,/tenants/{tenantId}/roles/search,searchRolesForTenant,data-driven,variant-2 - searchRolesForTenant - path #1 +searchRolesForTenant.variant.spec.ts,201,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + role,POST,/tenants/{tenantId}/roles/search,searchRolesForTenant,data-driven,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,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,variant-2 - searchTenants - path #1 +searchTenants.variant.spec.ts,114,variant,tenant,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/tenants/search,searchTenants,data-driven,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,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,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,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,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,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,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,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,variant-8 - searchUserTasks - path #1 +searchUserTasks.variant.spec.ts,603,variant,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,data-driven,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,variant-1 - searchUsers - path #1 +searchUsers.variant.spec.ts,63,variant,user,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/users/search,searchUsers,data-driven,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,variant-1 - searchUsersForGroup - path #1 +searchUsersForGroup.variant.spec.ts,85,variant,group,B. Membership/Association,search,observe-present-search,group + user,POST,/groups/{groupId}/users/search,searchUsersForGroup,data-driven,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,variant-1 - searchUsersForRole - path #1 +searchUsersForRole.variant.spec.ts,85,variant,role,B. Membership/Association,search,observe-present-search,role + user,POST,/roles/{roleId}/users/search,searchUsersForRole,data-driven,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,variant-1 - searchUsersForTenant - path #1 +searchUsersForTenant.variant.spec.ts,87,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + user,POST,/tenants/{tenantId}/users/search,searchUsersForTenant,data-driven,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,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,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,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,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,variant-5 - searchVariables - path #1 +searchVariables.variant.spec.ts,242,variant,variable,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/variables/search,searchVariables,data-driven,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,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 + mappingrule,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 + mappingrule,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,mappingrule + 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) +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 + mappingrule,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,mappingrule + 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 + mappingrule,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" +request-validation/agentinstances-validation-api-tests.spec.ts,18,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,34,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,53,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,68,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,85,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,106,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/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,36,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,51,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,68,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,85,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,100,request-validation,expression,N. Engine Evaluation,create,negative-create,none,POST,/expression/evaluation,evaluateExpression,bad-request,evaluateExpression - Missing body +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 + mappingrule,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 + mappingrule,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 + mappingrule,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 + mappingrule,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 + mappingrule,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 + mappingrule,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 + mappingrule,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 + mappingrule,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 + mappingrule,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 + mappingrule,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 timeout,maxJobsToActivate" +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,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,maxJobsToActivate" +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,mappingrule + 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,mappingrule + 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 + mappingrule,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 + mappingrule,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 + mappingrule,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 + mappingrule,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 + mappingrule,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 + mappingrule,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,mappingrule + 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,mappingrule + 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 + mappingrule,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 + mappingrule,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 + groupid,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 + groupid,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 + groupid,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 + groupid,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 + groupid,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 + groupid,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 + mappingrule,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 + mappingrule,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 + mappingrule,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 + mappingrule,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 + mappingrule,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 + mappingrule,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 + mappingrule,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 + mappingrule,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 From 381aca86f11c50cca1c20a38f2b8482705879d68 Mon Sep 17 00:00:00 2001 From: esraagamal6 Date: Tue, 19 May 2026 12:55:39 +0200 Subject: [PATCH 06/15] chore(coverage-analysis): regenerate against current main + map /forms Re-ran the full generator pipeline (npm run pipeline + generate:request-validation) against latest main, then re-ran build_coverage.py. Updated totals: 1607 unique tests (1567 -> 1607, delta +40 from running against current generator code vs. the May 18 snapshot). Source breakdown: feature 231, variant 293, lifecycle 12, request-validation 1071. Also mapped /forms/{formKey} (new endpoint) into the user-task entity so the two getFormByKey tests land in F. User-Task Lifecycle instead of Z. Co-Authored-By: Claude Opus 4.7 (1M context) --- coverage-analysis/README.md | 12 +- coverage-analysis/build_coverage.py | 1 + coverage-analysis/category_breakdown.md | 332 +++++++++++++----------- coverage-analysis/coverage_matrix.csv | 20 +- coverage-analysis/coverage_matrix.md | 42 +-- coverage-analysis/gaps.md | 2 +- coverage-analysis/tests.csv | 268 +++++++++++-------- 7 files changed, 382 insertions(+), 295 deletions(-) diff --git a/coverage-analysis/README.md b/coverage-analysis/README.md index 8272ad2..5489d03 100644 --- a/coverage-analysis/README.md +++ b/coverage-analysis/README.md @@ -76,10 +76,10 @@ unique-test count; variant columns are label-occurrences, so a test tagged | | upstream | generator | |---|---:|---:| -| Unique tests | 1001 | **1567** | +| Unique tests | 1001 | **1607** | | Entities | 33 | 37 | -| Happy-path (occurrences) | 173 | 197 | -| Bad-request (400, occurrences) | 195 | **1037** | +| Happy-path (occurrences) | 173 | 201 | +| Bad-request (400, occurrences) | 195 | **1071** | | Unauthorized (401) | 165 | **0** | | Not-found (404) | 127 | **0** | | Filter | 85 | **0** | @@ -87,11 +87,11 @@ unique-test count; variant columns are label-occurrences, so a test tagged | Conflict (409) | 31 | **0** | | Forbidden (403) | 29 | **0** | | Observe-absence | 2 | 38 | -| Data-driven / oneOf variants | 5 | **295** | +| Data-driven / oneOf variants | 5 | **302** | -**The generator emits 566 more tests than upstream.** It massively exceeds +**The generator emits 606 more tests than upstream.** It massively exceeds upstream on 400 bad-request coverage (the `request-validation` emitter alone -produces 1037 tests across 17 violation kinds: `additional-prop`, +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`, diff --git a/coverage-analysis/build_coverage.py b/coverage-analysis/build_coverage.py index 422a320..4827ff7 100644 --- a/coverage-analysis/build_coverage.py +++ b/coverage-analysis/build_coverage.py @@ -69,6 +69,7 @@ def load_ops(): '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', diff --git a/coverage-analysis/category_breakdown.md b/coverage-analysis/category_breakdown.md index 31b4b7c..6d504c6 100644 --- a/coverage-analysis/category_breakdown.md +++ b/coverage-analysis/category_breakdown.md @@ -1,6 +1,6 @@ # api-test-generator — Per-category breakdown -Total test declarations: **1567** across **37** entities. +Total test declarations: **1607** 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**. @@ -10,18 +10,18 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - [A. Entity Lifecycle (CRUD)](#a-entity-lifecycle-crud) — 351 tests - [B. Membership/Association](#b-membershipassociation) — 206 tests -- [C. Deployment Lifecycle](#c-deployment-lifecycle) — 148 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) — 63 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) — 22 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) — 15 tests +- [P. Agent-Instance (new in v2)](#p-agent-instance-new-in-v2) — 49 tests ## A. Entity Lifecycle (CRUD) @@ -45,7 +45,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | `searchClusterVariables.variant.spec.ts:12` | variant-1 - searchClusterVariables - path #1 | -| observe-present-search | data-driven | `searchClusterVariables.variant.spec.ts:65` | variant-2 - searchClusterVariables - path #1 | +| observe-present-search | data-driven | `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) | @@ -114,8 +114,8 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | `searchMappingRule.variant.spec.ts:12` | variant-1 - searchMappingRule - path #1 | -| observe-present-search | data-driven | `searchMappingRule.variant.spec.ts:106` | variant-2 - searchMappingRule - path #1 | -| observe-present-search | data-driven | `searchMappingRule.variant.spec.ts:159` | variant-3 - searchMappingRule - path #1 | +| observe-present-search | data-driven | `searchMappingRule.variant.spec.ts:107` | variant-2 - searchMappingRule - path #1 | +| observe-present-search | data-driven | `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) | @@ -173,7 +173,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | `searchGlobalTaskListeners.variant.spec.ts:12` | variant-1 - searchGlobalTaskListeners - path #1 | -| observe-present-search | data-driven | `searchGlobalTaskListeners.variant.spec.ts:65` | variant-2 - searchGlobalTaskListeners - path #1 | +| observe-present-search | data-driven | `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) | @@ -232,7 +232,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | observe-present-search | happy-path | `searchTenants.feature.spec.ts:12` | feature-1 - searchTenants - base (1) | | observe-present-search | data-driven | `searchTenants.variant.spec.ts:12` | variant-1 - searchTenants - path #1 | | observe-present-search | data-driven | `searchTenants.variant.spec.ts:63` | variant-2 - searchTenants - path #1 | -| observe-present-search | data-driven | `searchTenants.variant.spec.ts:114` | variant-3 - searchTenants - path #1 | +| observe-present-search | data-driven | `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) | @@ -281,7 +281,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | `searchAuthorizations.variant.spec.ts:12` | variant-1 - searchAuthorizations - path #1 | -| observe-present-search | data-driven | `searchAuthorizations.variant.spec.ts:65` | variant-2 - searchAuthorizations - path #1 | +| observe-present-search | data-driven | `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) | @@ -326,8 +326,8 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | `searchRoles.variant.spec.ts:12` | variant-1 - searchRoles - path #1 | -| observe-present-search | data-driven | `searchRoles.variant.spec.ts:104` | variant-2 - searchRoles - path #1 | -| observe-present-search | data-driven | `searchRoles.variant.spec.ts:155` | variant-3 - searchRoles - path #1 | +| observe-present-search | data-driven | `searchRoles.variant.spec.ts:105` | variant-2 - searchRoles - path #1 | +| observe-present-search | data-driven | `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) | @@ -373,7 +373,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | `searchGroups.variant.spec.ts:12` | variant-1 - searchGroups - path #1 | -| observe-present-search | data-driven | `searchGroups.variant.spec.ts:63` | variant-2 - searchGroups - path #1 | +| observe-present-search | data-driven | `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) | @@ -418,7 +418,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | `searchUsers.variant.spec.ts:12` | variant-1 - searchUsers - path #1 | -| observe-present-search | data-driven | `searchUsers.variant.spec.ts:63` | variant-2 - searchUsers - path #1 | +| observe-present-search | data-driven | `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) | @@ -497,21 +497,21 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra |--|--|--|--| | observe-present-search | happy-path | `searchClientsForTenant.feature.spec.ts:12` | feature-1 - searchClientsForTenant - base (1) | | observe-present-search | data-driven | `searchClientsForTenant.variant.spec.ts:12` | variant-1 - searchClientsForTenant - path #1 | -| observe-present-search | data-driven | `searchClientsForTenant.variant.spec.ts:87` | variant-2 - searchClientsForTenant - path #1 | +| observe-present-search | data-driven | `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 | `searchGroupIdsForTenant.variant.spec.ts:12` | variant-1 - searchGroupIdsForTenant - path #1 | -| observe-present-search | data-driven | `searchGroupIdsForTenant.variant.spec.ts:87` | variant-2 - searchGroupIdsForTenant - path #1 | +| observe-present-search | data-driven | `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 | `searchMappingRulesForTenant.variant.spec.ts:12` | variant-1 - searchMappingRulesForTenant - path #1 | -| observe-present-search | data-driven | `searchMappingRulesForTenant.variant.spec.ts:125` | variant-2 - searchMappingRulesForTenant - path #1 | -| observe-present-search | data-driven | `searchMappingRulesForTenant.variant.spec.ts:201` | variant-3 - searchMappingRulesForTenant - path #1 | +| observe-present-search | data-driven | `searchMappingRulesForTenant.variant.spec.ts:126` | variant-2 - searchMappingRulesForTenant - path #1 | +| observe-present-search | data-driven | `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 | `searchRolesForTenant.variant.spec.ts:12` | variant-1 - searchRolesForTenant - path #1 | -| observe-present-search | data-driven | `searchRolesForTenant.variant.spec.ts:125` | variant-2 - searchRolesForTenant - path #1 | -| observe-present-search | data-driven | `searchRolesForTenant.variant.spec.ts:201` | variant-3 - searchRolesForTenant - path #1 | +| observe-present-search | data-driven | `searchRolesForTenant.variant.spec.ts:126` | variant-2 - searchRolesForTenant - path #1 | +| observe-present-search | data-driven | `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 | `searchUsersForTenant.variant.spec.ts:12` | variant-1 - searchUsersForTenant - path #1 | -| observe-present-search | data-driven | `searchUsersForTenant.variant.spec.ts:87` | variant-2 - searchUsersForTenant - path #1 | +| observe-present-search | data-driven | `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) | @@ -590,17 +590,17 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra |--|--|--|--| | observe-present-search | happy-path | `searchClientsForRole.feature.spec.ts:12` | feature-1 - searchClientsForRole - base (1) | | observe-present-search | data-driven | `searchClientsForRole.variant.spec.ts:12` | variant-1 - searchClientsForRole - path #1 | -| observe-present-search | data-driven | `searchClientsForRole.variant.spec.ts:85` | variant-2 - searchClientsForRole - path #1 | +| observe-present-search | data-driven | `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 | `searchGroupsForRole.variant.spec.ts:12` | variant-1 - searchGroupsForRole - path #1 | -| observe-present-search | data-driven | `searchGroupsForRole.variant.spec.ts:85` | variant-2 - searchGroupsForRole - path #1 | +| observe-present-search | data-driven | `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 | `searchMappingRulesForRole.variant.spec.ts:12` | variant-1 - searchMappingRulesForRole - path #1 | -| observe-present-search | data-driven | `searchMappingRulesForRole.variant.spec.ts:123` | variant-2 - searchMappingRulesForRole - path #1 | -| observe-present-search | data-driven | `searchMappingRulesForRole.variant.spec.ts:197` | variant-3 - searchMappingRulesForRole - path #1 | +| observe-present-search | data-driven | `searchMappingRulesForRole.variant.spec.ts:124` | variant-2 - searchMappingRulesForRole - path #1 | +| observe-present-search | data-driven | `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 | `searchUsersForRole.variant.spec.ts:12` | variant-1 - searchUsersForRole - path #1 | -| observe-present-search | data-driven | `searchUsersForRole.variant.spec.ts:85` | variant-2 - searchUsersForRole - path #1 | +| observe-present-search | data-driven | `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) | @@ -666,18 +666,18 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra |--|--|--|--| | observe-present-search | happy-path | `searchClientsForGroup.feature.spec.ts:12` | feature-1 - searchClientsForGroup - base (1) | | observe-present-search | data-driven | `searchClientsForGroup.variant.spec.ts:12` | variant-1 - searchClientsForGroup - path #1 | -| observe-present-search | data-driven | `searchClientsForGroup.variant.spec.ts:85` | variant-2 - searchClientsForGroup - path #1 | +| observe-present-search | data-driven | `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 | `searchMappingRulesForGroup.variant.spec.ts:12` | variant-1 - searchMappingRulesForGroup - path #1 | | observe-present-search | data-driven | `searchMappingRulesForGroup.variant.spec.ts:84` | variant-2 - searchMappingRulesForGroup - path #1 | -| observe-present-search | data-driven | `searchMappingRulesForGroup.variant.spec.ts:158` | variant-3 - searchMappingRulesForGroup - path #1 | +| observe-present-search | data-driven | `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 | `searchRolesForGroup.variant.spec.ts:12` | variant-1 - searchRolesForGroup - path #1 | | observe-present-search | data-driven | `searchRolesForGroup.variant.spec.ts:84` | variant-2 - searchRolesForGroup - path #1 | -| observe-present-search | data-driven | `searchRolesForGroup.variant.spec.ts:158` | variant-3 - searchRolesForGroup - path #1 | +| observe-present-search | data-driven | `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 | `searchUsersForGroup.variant.spec.ts:12` | variant-1 - searchUsersForGroup - path #1 | -| observe-present-search | data-driven | `searchUsersForGroup.variant.spec.ts:85` | variant-2 - searchUsersForGroup - path #1 | +| observe-present-search | data-driven | `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) | @@ -728,7 +728,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra **Form**: Deploy resource → Get definition (XML/JSON) → Search definitions (Observe Present) → Delete resource → Get definition (Observe Absence) -**Total tests**: 148 +**Total tests**: 149 ### `process-definition` — 70 tests @@ -743,13 +743,13 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | `getProcessDefinitionInstanceVersionStatistics.feature.spec.ts:12` | feature-1 - getProcessDefinitionInstanceVersionStatistics - base (1) | -| observe-present-get | data-driven | `getProcessDefinitionInstanceVersionStatistics.variant.spec.ts:13` | variant-1 - getProcessDefinitionInstanceVersionStatistics - bpmn #1 | +| observe-present-get | data-driven | `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 | `getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts:13` | variant-1 - getProcessDefinitionMessageSubscriptionStatistics - path #1 | -| observe-present-get | data-driven | `getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts:71` | variant-2 - getProcessDefinitionMessageSubscriptionStatistics - path #1 | -| observe-present-get | data-driven | `getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts:132` | variant-3 - getProcessDefinitionMessageSubscriptionStatistics - bpmn #1 | -| observe-present-get | data-driven | `getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts:189` | variant-4 - getProcessDefinitionMessageSubscriptionStatistics - bpmn #1 | -| observe-present-get | data-driven | `getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts:267` | variant-5 - getProcessDefinitionMessageSubscriptionStatistics - bpmn #1 | +| observe-present-get | data-driven | `getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts:72` | variant-2 - getProcessDefinitionMessageSubscriptionStatistics - path #1 | +| observe-present-get | data-driven | `getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts:133` | variant-3 - getProcessDefinitionMessageSubscriptionStatistics - bpmn #1 | +| observe-present-get | data-driven | `getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts:190` | variant-4 - getProcessDefinitionMessageSubscriptionStatistics - bpmn #1 | +| observe-present-get | data-driven | `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 | `getProcessDefinitionStatistics.variant.spec.ts:12` | variant-1 - getProcessDefinitionStatistics - bpmn #1 | | observe-present-get | data-driven | `getProcessDefinitionStatistics.variant.spec.ts:86` | variant-2 - getProcessDefinitionStatistics - bpmn #1 | @@ -763,10 +763,10 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | `searchProcessDefinitions.variant.spec.ts:13` | variant-1 - searchProcessDefinitions - path #1 | -| observe-present-search | data-driven | `searchProcessDefinitions.variant.spec.ts:88` | variant-2 - searchProcessDefinitions - bpmn #1 | -| observe-present-search | data-driven | `searchProcessDefinitions.variant.spec.ts:140` | variant-3 - searchProcessDefinitions - path #1 | -| observe-present-search | data-driven | `searchProcessDefinitions.variant.spec.ts:215` | variant-4 - searchProcessDefinitions - path #1 | -| observe-absence | observe-absence | `searchProcessDefinitions.feature.spec.ts:59` | feature-2 - searchProcessDefinitions - negative empty (2) | +| observe-present-search | data-driven | `searchProcessDefinitions.variant.spec.ts:86` | variant-2 - searchProcessDefinitions - bpmn #1 | +| observe-present-search | data-driven | `searchProcessDefinitions.variant.spec.ts:138` | variant-3 - searchProcessDefinitions - path #1 | +| observe-present-search | data-driven | `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 | @@ -811,28 +811,29 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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` — 35 tests +### `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`, `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 = 2, Search = 6 -- **Form-step counts**: create=5, observe-present-get=2, observe-present-search=6, delete=1, observe-absence=1, negative-create=8, negative-delete=7, negative-search=5 -- **Variants**: happy-path=4, observe-absence=1, data-driven=10, bad-request=20 +- **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 | 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:69` | feature-3 - createDeployment - dmn (3) | -| create | data-driven | `createDeployment.feature.spec.ts:97` | feature-4 - createDeployment - drd (4) | -| create | data-driven | `createDeployment.variant.spec.ts:13` | variant-1 - createDeployment - bpmn #1 | +| 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 | `searchResources.variant.spec.ts:13` | variant-1 - searchResources - bpmn #1 | | observe-present-search | data-driven | `searchResources.variant.spec.ts:62` | variant-2 - searchResources - path #1 | | observe-present-search | data-driven | `searchResources.variant.spec.ts:130` | variant-3 - searchResources - path #1 | -| observe-present-search | data-driven | `searchResources.variant.spec.ts:181` | variant-4 - searchResources - path #1 | +| observe-present-search | data-driven | `searchResources.variant.spec.ts:180` | variant-4 - searchResources - path #1 | | observe-present-search | data-driven | `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) | @@ -868,9 +869,9 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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:60` | feature-2 - evaluateDecision - oneOf group0 Decision evaluation by ID (2) | -| create | data-driven | `evaluateDecision.feature.spec.ts:111` | feature-3 - evaluateDecision - oneOf group0 Decision evaluation by key (3) | -| create | data-driven | `evaluateDecision.variant.spec.ts:13` | variant-1 - evaluateDecision - dmn #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) | @@ -879,7 +880,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | observe-present-search | data-driven | `searchDecisionDefinitions.variant.spec.ts:117` | variant-3 - searchDecisionDefinitions - dmn #1 | | observe-present-search | data-driven | `searchDecisionDefinitions.variant.spec.ts:168` | variant-4 - searchDecisionDefinitions - drd #1 | | observe-present-search | data-driven | `searchDecisionDefinitions.variant.spec.ts:219` | variant-5 - searchDecisionDefinitions - path #1 | -| observe-present-search | data-driven | `searchDecisionDefinitions.variant.spec.ts:272` | variant-6 - searchDecisionDefinitions - path #1 | +| observe-present-search | data-driven | `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 | @@ -911,7 +912,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | observe-present-search | happy-path | `searchDecisionRequirements.feature.spec.ts:12` | feature-1 - searchDecisionRequirements - base (1) | | observe-present-search | data-driven | `searchDecisionRequirements.variant.spec.ts:13` | variant-1 - searchDecisionRequirements - drd #1 | | observe-present-search | data-driven | `searchDecisionRequirements.variant.spec.ts:64` | variant-2 - searchDecisionRequirements - path #1 | -| observe-present-search | data-driven | `searchDecisionRequirements.variant.spec.ts:117` | variant-3 - searchDecisionRequirements - path #1 | +| observe-present-search | data-driven | `searchDecisionRequirements.variant.spec.ts:116` | variant-3 - searchDecisionRequirements - path #1 | | observe-present-search | data-driven | `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 | @@ -939,13 +940,13 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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:56` | feature-2 - createProcessInstance - oneOf group0 Process creation by key (2) | -| create | data-driven | `createProcessInstance.feature.spec.ts:103` | feature-3 - createProcessInstance - oneOf group0 Process creation by id (3) | +| 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:65` | variant-2 - createProcessInstance - bpmn #1 | -| create | data-driven | `createProcessInstance.variant.spec.ts:117` | variant-3 - createProcessInstance - bpmn #1 | -| create | data-driven | `createProcessInstance.variant.spec.ts:208` | variant-4 - createProcessInstance - bpmn #1 | -| create | data-driven | `createProcessInstance.variant.spec.ts:302` | variant-5 - 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) | @@ -956,7 +957,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | observe-present-search | data-driven | `searchProcessInstanceIncidents.variant.spec.ts:187` | variant-3 - searchProcessInstanceIncidents - bpmn #1 | | observe-present-search | data-driven | `searchProcessInstanceIncidents.variant.spec.ts:297` | variant-4 - searchProcessInstanceIncidents - bpmn #1 | | observe-present-search | data-driven | `searchProcessInstanceIncidents.variant.spec.ts:407` | variant-5 - searchProcessInstanceIncidents - bpmn #1 | -| observe-present-search | data-driven | `searchProcessInstanceIncidents.variant.spec.ts:511` | variant-6 - searchProcessInstanceIncidents - bpmn #1 | +| observe-present-search | data-driven | `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 | `searchProcessInstances.variant.spec.ts:13` | variant-1 - searchProcessInstances - path #1 | | observe-present-search | data-driven | `searchProcessInstances.variant.spec.ts:87` | variant-2 - searchProcessInstances - bpmn #1 | @@ -969,7 +970,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | observe-present-search | data-driven | `searchProcessInstances.variant.spec.ts:674` | variant-9 - searchProcessInstances - bpmn #1 | | observe-present-search | data-driven | `searchProcessInstances.variant.spec.ts:780` | variant-10 - searchProcessInstances - bpmn #1 | | observe-present-search | data-driven | `searchProcessInstances.variant.spec.ts:887` | variant-11 - searchProcessInstances - path #1 | -| observe-present-search | data-driven | `searchProcessInstances.variant.spec.ts:982` | variant-12 - searchProcessInstances - path #1 | +| observe-present-search | data-driven | `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 | @@ -1044,7 +1045,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | delete | data-driven | `deleteProcessInstancesBatchOperation.variant.spec.ts:545` | variant-8 - deleteProcessInstancesBatchOperation - bpmn #1 | | delete | data-driven | `deleteProcessInstancesBatchOperation.variant.spec.ts:622` | variant-9 - deleteProcessInstancesBatchOperation - bpmn #1 | | delete | data-driven | `deleteProcessInstancesBatchOperation.variant.spec.ts:727` | variant-10 - deleteProcessInstancesBatchOperation - bpmn #1 | -| observe-absence | observe-absence | `searchProcessInstances.feature.spec.ts:79` | feature-2 - searchProcessInstances - negative empty (2) | +| 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 | @@ -1240,7 +1241,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | observe-present-get | happy-path | `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 | `searchBatchOperations.variant.spec.ts:12` | variant-1 - searchBatchOperations - path #1 | -| observe-present-search | data-driven | `searchBatchOperations.variant.spec.ts:65` | variant-2 - searchBatchOperations - path #1 | +| observe-present-search | data-driven | `searchBatchOperations.variant.spec.ts:66` | variant-2 - searchBatchOperations - path #1 | | mutate | happy-path | `resumeBatchOperation.feature.spec.ts:8` | feature-1 - resumeBatchOperation - base (1) | | mutate | happy-path | `suspendBatchOperation.feature.spec.ts:8` | feature-1 - suspendBatchOperation - base (1) | | delete | happy-path | `cancelBatchOperation.feature.spec.ts:8` | feature-1 - cancelBatchOperation - base (1) | @@ -1265,7 +1266,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | observe-present-search | happy-path | `searchBatchOperationItems.feature.spec.ts:12` | feature-1 - searchBatchOperationItems - base (1) | | observe-present-search | data-driven | `searchBatchOperationItems.variant.spec.ts:13` | variant-1 - searchBatchOperationItems - bpmn #1 | | observe-present-search | data-driven | `searchBatchOperationItems.variant.spec.ts:84` | variant-2 - searchBatchOperationItems - path #1 | -| observe-present-search | data-driven | `searchBatchOperationItems.variant.spec.ts:137` | variant-3 - searchBatchOperationItems - path #1 | +| observe-present-search | data-driven | `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 | @@ -1277,18 +1278,19 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra **Form**: Deploy process w/ user task (prerequisite) → Create instance → Assign → Update → Search/Get → Get form → Search variables → Complete → Unassign -**Total tests**: 63 +**Total tests**: 65 -### `user-task` — 63 tests +### `user-task` — 65 tests - **Prerequisite to create**: running-process-instance-with-user-task -- **Files**: `assignUserTask.feature.spec.ts`, `completeUserTask.feature.spec.ts`, `getUserTask.feature.spec.ts`, `getUserTaskForm.feature.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 = 2, Search = 13 -- **Form-step counts**: observe-present-get=2, observe-present-search=13, mutate=3, delete=1, observe-absence=1, negative-get=2, negative-update=10, negative-delete=1, negative-search=30 -- **Variants**: happy-path=10, observe-absence=1, data-driven=9, bad-request=43 +- **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 | 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) | @@ -1303,12 +1305,13 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | observe-present-search | data-driven | `searchUserTasks.variant.spec.ts:353` | variant-6 - searchUserTasks - bpmn #1 | | observe-present-search | data-driven | `searchUserTasks.variant.spec.ts:454` | variant-7 - searchUserTasks - bpmn #1 | | observe-present-search | data-driven | `searchUserTasks.variant.spec.ts:552` | variant-8 - searchUserTasks - path #1 | -| observe-present-search | data-driven | `searchUserTasks.variant.spec.ts:603` | variant-9 - searchUserTasks - path #1 | +| observe-present-search | data-driven | `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 | @@ -1370,7 +1373,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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:13` | variant-1 - activateJobs - bpmn #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 | `getJobErrorStatistics.feature.spec.ts:11` | feature-1 - getJobErrorStatistics - base (1) | @@ -1387,15 +1390,15 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | observe-present-search | data-driven | `searchJobs.variant.spec.ts:219` | variant-3 - searchJobs - path #1 | | observe-present-search | data-driven | `searchJobs.variant.spec.ts:293` | variant-4 - searchJobs - bpmn #1 | | observe-present-search | data-driven | `searchJobs.variant.spec.ts:366` | variant-5 - searchJobs - path #1 | -| observe-present-search | data-driven | `searchJobs.variant.spec.ts:461` | variant-6 - searchJobs - path #1 | +| observe-present-search | data-driven | `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:77` | feature-2 - activateJobs - negative empty (2) | -| observe-absence | observe-absence | `searchJobs.feature.spec.ts:79` | feature-2 - searchJobs - negative empty (2) | +| 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) | @@ -1413,10 +1416,10 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 timeout,maxJobsToActivate | +| 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,timeout | -| negative-create | bad-request | `request-validation/jobs-validation-api-tests.spec.ts:403` | activateJobs - Missing combo type,timeout,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) | @@ -1537,7 +1540,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | observe-present-search | data-driven | `searchIncidents.variant.spec.ts:134` | variant-3 - searchIncidents - bpmn #1 | | observe-present-search | data-driven | `searchIncidents.variant.spec.ts:236` | variant-4 - searchIncidents - bpmn #1 | | observe-present-search | data-driven | `searchIncidents.variant.spec.ts:338` | variant-5 - searchIncidents - path #1 | -| observe-present-search | data-driven | `searchIncidents.variant.spec.ts:389` | variant-6 - searchIncidents - path #1 | +| observe-present-search | data-driven | `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 | @@ -1582,7 +1585,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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=21, unlabeled=1, bad-request=45 +- **Variants**: happy-path=4, observe-absence=1, data-driven=22, bad-request=45 | form step | variants | file:line | test name | |--|--|--|--| @@ -1591,27 +1594,27 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:13` | variant-1 - searchDecisionInstances - dmn #1 | | observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:92` | variant-2 - searchDecisionInstances - dmn #1 | | observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:143` | variant-3 - searchDecisionInstances - path #1 | -| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:196` | variant-4 - searchDecisionInstances - dmn #1 | -| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:275` | variant-5 - searchDecisionInstances - bpmn #1 | -| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:327` | variant-6 - searchDecisionInstances - bpmn #1 | -| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:400` | variant-7 - searchDecisionInstances - dmn #1 | -| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:451` | variant-8 - searchDecisionInstances - bpmn #1 | -| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:553` | variant-9 - searchDecisionInstances - dmn #1 | -| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:604` | variant-10 - searchDecisionInstances - drd #1 | -| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:655` | variant-11 - searchDecisionInstances - path #1 | +| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:195` | variant-4 - searchDecisionInstances - dmn #1 | +| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:274` | variant-5 - searchDecisionInstances - bpmn #1 | +| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:326` | variant-6 - searchDecisionInstances - bpmn #1 | +| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:399` | variant-7 - searchDecisionInstances - dmn #1 | +| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:450` | variant-8 - searchDecisionInstances - bpmn #1 | +| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:552` | variant-9 - searchDecisionInstances - dmn #1 | +| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:603` | variant-10 - searchDecisionInstances - drd #1 | +| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:654` | variant-11 - searchDecisionInstances - path #1 | | observe-present-search | data-driven | `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 | `deleteDecisionInstancesBatchOperation.feature.spec.ts:11` | feature-1 - deleteDecisionInstancesBatchOperation - base (1) | | delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:12` | variant-1 - deleteDecisionInstancesBatchOperation - dmn #1 | | delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:90` | variant-2 - deleteDecisionInstancesBatchOperation - dmn #1 | -| delete | unlabeled | `deleteDecisionInstancesBatchOperation.variant.spec.ts:140` | variant-3 - scenario | -| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:170` | variant-4 - deleteDecisionInstancesBatchOperation - dmn #1 | -| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:248` | variant-5 - deleteDecisionInstancesBatchOperation - bpmn #1 | -| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:300` | variant-6 - deleteDecisionInstancesBatchOperation - bpmn #1 | -| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:372` | variant-7 - deleteDecisionInstancesBatchOperation - dmn #1 | -| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:422` | variant-8 - deleteDecisionInstancesBatchOperation - bpmn #1 | -| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:523` | variant-9 - deleteDecisionInstancesBatchOperation - dmn #1 | -| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:573` | variant-10 - deleteDecisionInstancesBatchOperation - drd #1 | +| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:140` | variant-3 - deleteDecisionInstancesBatchOperation - path #1 | +| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:191` | variant-4 - deleteDecisionInstancesBatchOperation - dmn #1 | +| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:269` | variant-5 - deleteDecisionInstancesBatchOperation - bpmn #1 | +| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:321` | variant-6 - deleteDecisionInstancesBatchOperation - bpmn #1 | +| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:393` | variant-7 - deleteDecisionInstancesBatchOperation - dmn #1 | +| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:443` | variant-8 - deleteDecisionInstancesBatchOperation - bpmn #1 | +| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:544` | variant-9 - deleteDecisionInstancesBatchOperation - dmn #1 | +| delete | data-driven | `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 | @@ -1685,19 +1688,19 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | observe-present-search | data-driven | `searchElementInstanceIncidents.variant.spec.ts:231` | variant-3 - searchElementInstanceIncidents - bpmn #1 | | observe-present-search | data-driven | `searchElementInstanceIncidents.variant.spec.ts:340` | variant-4 - searchElementInstanceIncidents - bpmn #1 | | observe-present-search | data-driven | `searchElementInstanceIncidents.variant.spec.ts:449` | variant-5 - searchElementInstanceIncidents - bpmn #1 | -| observe-present-search | data-driven | `searchElementInstanceIncidents.variant.spec.ts:583` | variant-6 - searchElementInstanceIncidents - bpmn #1 | +| observe-present-search | data-driven | `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 | `searchElementInstances.variant.spec.ts:13` | variant-1 - searchElementInstances - bpmn #1 | | observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:63` | variant-2 - searchElementInstances - bpmn #1 | | observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:162` | variant-3 - searchElementInstances - path #1 | -| observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:215` | variant-4 - searchElementInstances - bpmn #1 | -| observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:314` | variant-5 - searchElementInstances - bpmn #1 | -| observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:384` | variant-6 - searchElementInstances - bpmn #1 | -| observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:434` | variant-7 - searchElementInstances - bpmn #1 | -| observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:595` | variant-8 - searchElementInstances - bpmn #1 | -| observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:694` | variant-9 - searchElementInstances - path #1 | +| observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:213` | variant-4 - searchElementInstances - bpmn #1 | +| observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:312` | variant-5 - searchElementInstances - bpmn #1 | +| observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:382` | variant-6 - searchElementInstances - bpmn #1 | +| observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:432` | variant-7 - searchElementInstances - bpmn #1 | +| observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:594` | variant-8 - searchElementInstances - bpmn #1 | +| observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:693` | variant-9 - searchElementInstances - path #1 | | observe-present-search | data-driven | `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 | @@ -1757,7 +1760,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | observe-present-search | data-driven | `searchAuditLogs.variant.spec.ts:621` | variant-12 - searchAuditLogs - dmn #1 | | observe-present-search | unlabeled | `searchAuditLogs.variant.spec.ts:697` | variant-13 - scenario | | observe-present-search | data-driven | `searchAuditLogs.variant.spec.ts:725` | variant-14 - searchAuditLogs - path #1 | -| observe-present-search | data-driven | `searchAuditLogs.variant.spec.ts:776` | variant-15 - searchAuditLogs - path #1 | +| observe-present-search | data-driven | `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 | @@ -1783,7 +1786,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | observe-present-search | unlabeled | `searchVariables.variant.spec.ts:93` | variant-3 - scenario | | observe-present-search | data-driven | `searchVariables.variant.spec.ts:122` | variant-4 - searchVariables - bpmn #1 | | observe-present-search | data-driven | `searchVariables.variant.spec.ts:191` | variant-5 - searchVariables - path #1 | -| observe-present-search | data-driven | `searchVariables.variant.spec.ts:242` | variant-6 - searchVariables - path #1 | +| observe-present-search | data-driven | `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 | @@ -1805,14 +1808,14 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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, unlabeled=2, bad-request=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 | unlabeled | `correlateMessage.variant.spec.ts:11` | variant-1 - scenario | +| 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 | unlabeled | `publishMessage.variant.spec.ts:11` | variant-1 - scenario | +| 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) | @@ -1846,12 +1849,12 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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, unlabeled=1, bad-request=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 | unlabeled | `broadcastSignal.variant.spec.ts:11` | variant-1 - scenario | +| 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) | @@ -1881,7 +1884,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | observe-present-search | data-driven | `searchCorrelatedMessageSubscriptions.variant.spec.ts:170` | variant-3 - searchCorrelatedMessageSubscriptions - bpmn #1 | | observe-present-search | data-driven | `searchCorrelatedMessageSubscriptions.variant.spec.ts:244` | variant-4 - searchCorrelatedMessageSubscriptions - path #1 | | observe-present-search | data-driven | `searchCorrelatedMessageSubscriptions.variant.spec.ts:305` | variant-5 - searchCorrelatedMessageSubscriptions - path #1 | -| observe-present-search | data-driven | `searchCorrelatedMessageSubscriptions.variant.spec.ts:359` | variant-6 - searchCorrelatedMessageSubscriptions - path #1 | +| observe-present-search | data-driven | `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 | @@ -1905,7 +1908,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | observe-present-search | data-driven | `searchMessageSubscriptions.variant.spec.ts:121` | variant-3 - searchMessageSubscriptions - bpmn #1 | | observe-present-search | data-driven | `searchMessageSubscriptions.variant.spec.ts:195` | variant-4 - searchMessageSubscriptions - bpmn #1 | | observe-present-search | data-driven | `searchMessageSubscriptions.variant.spec.ts:298` | variant-5 - searchMessageSubscriptions - path #1 | -| observe-present-search | data-driven | `searchMessageSubscriptions.variant.spec.ts:351` | variant-6 - searchMessageSubscriptions - path #1 | +| observe-present-search | data-driven | `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 | @@ -1917,7 +1920,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra **Form**: Submit expression / conditional → Receive result (stateless, no entity persisted) -**Total tests**: 22 +**Total tests**: 25 ### `conditional` — 15 tests @@ -1925,13 +1928,13 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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=1, unlabeled=1, bad-request=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 | unlabeled | `evaluateConditionals.variant.spec.ts:12` | variant-1 - scenario | -| create | data-driven | `evaluateConditionals.variant.spec.ts:40` | variant-2 - evaluateConditionals - bpmn #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) | @@ -1945,23 +1948,26 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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` — 7 tests +### `expression` — 10 tests - **Prerequisite to create**: none -- **Files**: `evaluateExpression.feature.spec.ts`, `request-validation/expression-validation-api-tests.spec.ts` +- **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=1, negative-create=6 -- **Variants**: happy-path=1, bad-request=6 +- **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:36` | evaluateExpression - Body wrong top-level type | -| negative-create | bad-request | `request-validation/expression-validation-api-tests.spec.ts:51` | evaluateExpression - Param expression wrong type (#1) | -| negative-create | bad-request | `request-validation/expression-validation-api-tests.spec.ts:68` | evaluateExpression - Param expression wrong type (#2) | -| negative-create | bad-request | `request-validation/expression-validation-api-tests.spec.ts:85` | evaluateExpression - Missing expression | -| negative-create | bad-request | `request-validation/expression-validation-api-tests.spec.ts:100` | evaluateExpression - Missing body | +| 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 @@ -2086,31 +2092,65 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra **Form**: New v2 endpoint family — get / search agent instances (lifecycle TBD) -**Total tests**: 15 +**Total tests**: 49 -### `agent-instance` — 15 tests +### `agent-instance` — 49 tests - **Prerequisite to create**: unknown -- **Files**: `getAgentInstance.feature.spec.ts`, `request-validation/agentinstances-validation-api-tests.spec.ts`, `searchAgentInstances.feature.spec.ts`, `searchAgentInstances.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=5 -- **Variants**: happy-path=2, observe-absence=1, data-driven=5, unlabeled=1, bad-request=6 +- **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 | form step | variants | file:line | test name | |--|--|--|--| -| observe-present-get | happy-path | `getAgentInstance.feature.spec.ts:12` | feature-1 - getAgentInstance - base (1) | +| 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 | unlabeled | `searchAgentInstances.variant.spec.ts:13` | variant-1 - scenario | -| observe-present-search | data-driven | `searchAgentInstances.variant.spec.ts:44` | variant-2 - searchAgentInstances - bpmn #1 | -| observe-present-search | data-driven | `searchAgentInstances.variant.spec.ts:145` | variant-3 - searchAgentInstances - bpmn #1 | -| observe-present-search | data-driven | `searchAgentInstances.variant.spec.ts:218` | variant-4 - searchAgentInstances - bpmn #1 | -| observe-present-search | data-driven | `searchAgentInstances.variant.spec.ts:270` | variant-5 - searchAgentInstances - path #1 | -| observe-present-search | data-driven | `searchAgentInstances.variant.spec.ts:334` | variant-6 - searchAgentInstances - path #1 | +| observe-present-search | data-driven | `searchAgentInstances.variant.spec.ts:13` | variant-1 - searchAgentInstances - bpmn #1 | +| observe-present-search | data-driven | `searchAgentInstances.variant.spec.ts:155` | variant-2 - searchAgentInstances - bpmn #1 | +| observe-present-search | data-driven | `searchAgentInstances.variant.spec.ts:256` | variant-3 - searchAgentInstances - bpmn #1 | +| observe-present-search | data-driven | `searchAgentInstances.variant.spec.ts:329` | variant-4 - searchAgentInstances - bpmn #1 | +| observe-present-search | data-driven | `searchAgentInstances.variant.spec.ts:381` | variant-5 - searchAgentInstances - bpmn #1 | +| observe-present-search | data-driven | `searchAgentInstances.variant.spec.ts:482` | variant-6 - searchAgentInstances - path #1 | +| observe-present-search | data-driven | `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-get | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:18` | getAgentInstance - Path param agentInstanceKey pattern violation | -| negative-search | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:34` | searchAgentInstances - Additional prop __unexpectedField | -| negative-search | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:53` | searchAgentInstances - Body wrong top-level type | -| negative-search | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:68` | searchAgentInstances - Missing sort.0.field | -| negative-search | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:85` | searchAgentInstances - Enum violation sort.0.field | -| negative-search | bad-request | `request-validation/agentinstances-validation-api-tests.spec.ts:106` | searchAgentInstances - Enum violation sort.0.order | +| 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 index 06ccd6e..4f1f14b 100644 --- a/coverage-analysis/coverage_matrix.csv +++ b/coverage-analysis/coverage_matrix.csv @@ -27,11 +27,11 @@ group,delete,11,4,7,0,0,0,0,0,0,0,0,0 group,search,47,5,29,0,0,0,0,0,0,1,12,0 group,lifecycle,6,3,0,0,0,0,0,0,0,3,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,0,0,9,1 +decision-instance,delete,50,2,38,0,0,0,0,0,0,0,10,0 decision-instance,search,20,1,6,0,0,0,0,0,0,1,12,0 process-definition,get,59,7,38,0,0,0,0,0,0,0,14,0 process-definition,search,11,1,5,0,0,0,0,0,0,1,4,0 -user-task,get,4,2,2,0,0,0,0,0,0,0,0,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,0,0,1,9,0 @@ -43,6 +43,10 @@ cluster-variables,search,10,1,6,0,0,0,0,0,0,1,2,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,0,0,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,0,0,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 @@ -62,7 +66,7 @@ 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,0,0,1,2,0 resource,create,13,0,8,0,0,0,0,0,0,0,5,0 -resource,get,2,2,0,0,0,0,0,0,0,0,0,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,0,0,1,5,0 user,create,15,1,14,0,0,0,0,0,0,0,0,0 @@ -70,7 +74,7 @@ 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,0,0,1,2,0 -message,create,30,2,26,0,0,0,0,0,0,0,0,2 +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,0,0,1,6,0 @@ -82,23 +86,21 @@ document,delete,1,1,0,0,0,0,0,0,0,0,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,0,0,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,1,1 -agent-instance,get,2,1,1,0,0,0,0,0,0,0,0,0 -agent-instance,search,13,1,5,0,0,0,0,0,0,1,5,1 +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,0,0,1,4,0 -signal,create,14,1,12,0,0,0,0,0,0,0,0,1 +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,0,0,0,0 batch-operation,update,2,2,0,0,0,0,0,0,0,0,0,0 batch-operation,delete,1,1,0,0,0,0,0,0,0,0,0,0 batch-operation,search,10,1,6,0,0,0,0,0,0,1,2,0 correlated-message-subscription,search,13,1,5,0,0,0,0,0,0,1,6,0 message-subscriptions,search,13,1,5,0,0,0,0,0,0,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,0,0,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,delete,1,1,0,0,0,0,0,0,0,0,0,0 -expression,create,7,1,6,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 diff --git a/coverage-analysis/coverage_matrix.md b/coverage-analysis/coverage_matrix.md index 7bce02b..9622aaf 100644 --- a/coverage-analysis/coverage_matrix.md +++ b/coverage-analysis/coverage_matrix.md @@ -1,6 +1,6 @@ # api-test-generator — Coverage matrix (entity × operation × variant) -Total test declarations: **1567** across **37** entities. +Total test declarations: **1607** across **37** entities. Variants are first-match labels derived from the generator's emitter suffix (`base`, `negative empty`, `bpmn|dmn|drd|form|path|cycle/...`, `oneOf ...`, `scenario`). See `build_coverage.py` for the rule table. @@ -38,11 +38,11 @@ Legend: ✓ = at least 1, blank = 0. | group | search | 47 | ✓ | ✓ | | | | | | | ✓ | ✓ | | | group | lifecycle | 6 | ✓ | | | | | | | | ✓ | | | | decision-instance | get | 2 | ✓ | ✓ | | | | | | | | | | -| decision-instance | delete | 50 | ✓ | ✓ | | | | | | | | ✓ | ✓ | +| decision-instance | delete | 50 | ✓ | ✓ | | | | | | | | ✓ | | | decision-instance | search | 20 | ✓ | ✓ | | | | | | | ✓ | ✓ | | | process-definition | get | 59 | ✓ | ✓ | | | | | | | | ✓ | | | process-definition | search | 11 | ✓ | ✓ | | | | | | | ✓ | ✓ | | -| user-task | get | 4 | ✓ | ✓ | | | | | | | | | | +| user-task | get | 6 | ✓ | ✓ | | | | | | | | | | | user-task | update | 13 | ✓ | ✓ | | | | | | | | | | | user-task | delete | 2 | ✓ | ✓ | | | | | | | | | | | user-task | search | 44 | ✓ | ✓ | | | | | | | ✓ | ✓ | | @@ -54,6 +54,10 @@ Legend: ✓ = at least 1, blank = 0. | 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 | ✓ | ✓ | | | | | | | | | | @@ -73,7 +77,7 @@ Legend: ✓ = at least 1, blank = 0. | authorization | delete | 2 | ✓ | ✓ | | | | | | | | | | | authorization | search | 11 | ✓ | ✓ | | | | | | | ✓ | ✓ | | | resource | create | 13 | | ✓ | | | | | | | | ✓ | | -| resource | get | 2 | ✓ | | | | | | | | | | | +| resource | get | 3 | ✓ | | | | | | | | | | | | resource | delete | 8 | ✓ | ✓ | | | | | | | | | | | resource | search | 12 | ✓ | ✓ | | | | | | | ✓ | ✓ | | | user | create | 15 | ✓ | ✓ | | | | | | | | | | @@ -81,7 +85,7 @@ Legend: ✓ = at least 1, blank = 0. | user | update | 5 | ✓ | ✓ | | | | | | | | | | | user | delete | 2 | ✓ | ✓ | | | | | | | | | | | user | search | 9 | ✓ | ✓ | | | | | | | ✓ | ✓ | | -| message | create | 30 | ✓ | ✓ | | | | | | | | | ✓ | +| message | create | 30 | ✓ | ✓ | | | | | | | | ✓ | | | decision-definition | create | 11 | ✓ | ✓ | | | | | | | | ✓ | | | decision-definition | get | 4 | ✓ | ✓ | | | | | | | | | | | decision-definition | search | 13 | ✓ | ✓ | | | | | | | ✓ | ✓ | | @@ -93,23 +97,21 @@ Legend: ✓ = at least 1, blank = 0. | variable | get | 2 | ✓ | ✓ | | | | | | | | | | | variable | search | 14 | ✓ | ✓ | | | | | | | ✓ | ✓ | ✓ | | setup | create | 15 | ✓ | ✓ | | | | | | | | | | -| conditional | create | 15 | ✓ | ✓ | | | | | | | | ✓ | ✓ | -| agent-instance | get | 2 | ✓ | ✓ | | | | | | | | | | -| agent-instance | search | 13 | ✓ | ✓ | | | | | | | ✓ | ✓ | ✓ | +| conditional | create | 15 | ✓ | ✓ | | | | | | | | ✓ | | | decision-requirements | get | 4 | ✓ | ✓ | | | | | | | | | | | decision-requirements | search | 11 | ✓ | ✓ | | | | | | | ✓ | ✓ | | -| signal | create | 14 | ✓ | ✓ | | | | | | | | | ✓ | +| 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 | delete | 1 | ✓ | | | | | | | | | | | -| expression | create | 7 | ✓ | ✓ | | | | | | | | | | | authentication | get | 1 | ✓ | | | | | | | | | | | | license | get | 1 | ✓ | | | | | | | | | | | | status | get | 1 | ✓ | | | | | | | | | | | @@ -147,11 +149,11 @@ Legend: ✓ = at least 1, blank = 0. | group | search | 47 | 5 | 29 | | | | | | | 1 | 12 | | | group | lifecycle | 6 | 3 | | | | | | | | 3 | | | | decision-instance | get | 2 | 1 | 1 | | | | | | | | | | -| decision-instance | delete | 50 | 2 | 38 | | | | | | | | 9 | 1 | +| decision-instance | delete | 50 | 2 | 38 | | | | | | | | 10 | | | decision-instance | search | 20 | 1 | 6 | | | | | | | 1 | 12 | | | process-definition | get | 59 | 7 | 38 | | | | | | | | 14 | | | process-definition | search | 11 | 1 | 5 | | | | | | | 1 | 4 | | -| user-task | get | 4 | 2 | 2 | | | | | | | | | | +| user-task | get | 6 | 3 | 3 | | | | | | | | | | | user-task | update | 13 | 3 | 10 | | | | | | | | | | | user-task | delete | 2 | 1 | 1 | | | | | | | | | | | user-task | search | 44 | 4 | 30 | | | | | | | 1 | 9 | | @@ -163,6 +165,10 @@ Legend: ✓ = at least 1, blank = 0. | element-instance | create | 19 | 2 | 16 | | | | | | | | 1 | | | element-instance | get | 2 | 1 | 1 | | | | | | | | | | | element-instance | search | 34 | 2 | 13 | | | | | | | 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 | | | | | | | 1 | 7 | | | mapping-rule | create | 21 | 1 | 20 | | | | | | | | | | | mapping-rule | get | 2 | 1 | 1 | | | | | | | | | | | mapping-rule | update | 13 | 1 | 12 | | | | | | | | | | @@ -182,7 +188,7 @@ Legend: ✓ = at least 1, blank = 0. | authorization | delete | 2 | 1 | 1 | | | | | | | | | | | authorization | search | 11 | 1 | 7 | | | | | | | 1 | 2 | | | resource | create | 13 | | 8 | | | | | | | | 5 | | -| resource | get | 2 | 2 | | | | | | | | | | | +| resource | get | 3 | 3 | | | | | | | | | | | | resource | delete | 8 | 1 | 7 | | | | | | | | | | | resource | search | 12 | 1 | 5 | | | | | | | 1 | 5 | | | user | create | 15 | 1 | 14 | | | | | | | | | | @@ -190,7 +196,7 @@ Legend: ✓ = at least 1, blank = 0. | user | update | 5 | 1 | 4 | | | | | | | | | | | user | delete | 2 | 1 | 1 | | | | | | | | | | | user | search | 9 | 1 | 5 | | | | | | | 1 | 2 | | -| message | create | 30 | 2 | 26 | | | | | | | | | 2 | +| 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 | | | | | | | 1 | 6 | | @@ -202,23 +208,21 @@ Legend: ✓ = at least 1, blank = 0. | variable | get | 2 | 1 | 1 | | | | | | | | | | | variable | search | 14 | 1 | 6 | | | | | | | 1 | 4 | 2 | | setup | create | 15 | 1 | 14 | | | | | | | | | | -| conditional | create | 15 | 1 | 12 | | | | | | | | 1 | 1 | -| agent-instance | get | 2 | 1 | 1 | | | | | | | | | | -| agent-instance | search | 13 | 1 | 5 | | | | | | | 1 | 5 | 1 | +| conditional | create | 15 | 1 | 12 | | | | | | | | 2 | | | decision-requirements | get | 4 | 2 | 2 | | | | | | | | | | | decision-requirements | search | 11 | 1 | 5 | | | | | | | 1 | 4 | | -| signal | create | 14 | 1 | 12 | | | | | | | | | 1 | +| signal | create | 14 | 1 | 12 | | | | | | | | 1 | | | batch-operation | get | 1 | 1 | | | | | | | | | | | | batch-operation | update | 2 | 2 | | | | | | | | | | | | batch-operation | delete | 1 | 1 | | | | | | | | | | | | batch-operation | search | 10 | 1 | 6 | | | | | | | 1 | 2 | | | correlated-message-subscription | search | 13 | 1 | 5 | | | | | | | 1 | 6 | | | message-subscriptions | search | 13 | 1 | 5 | | | | | | | 1 | 6 | | +| expression | create | 10 | 1 | 8 | | | | | | | | | 1 | | batch-operation-item | search | 10 | 1 | 5 | | | | | | | 1 | 3 | | | system | get | 9 | 2 | 7 | | | | | | | | | | | clock | create | 7 | 1 | 6 | | | | | | | | | | | clock | delete | 1 | 1 | | | | | | | | | | | -| expression | create | 7 | 1 | 6 | | | | | | | | | | | authentication | get | 1 | 1 | | | | | | | | | | | | license | get | 1 | 1 | | | | | | | | | | | | status | get | 1 | 1 | | | | | | | | | | | diff --git a/coverage-analysis/gaps.md b/coverage-analysis/gaps.md index a97d4a2..9a9be7e 100644 --- a/coverage-analysis/gaps.md +++ b/coverage-analysis/gaps.md @@ -1,6 +1,6 @@ # Coverage gaps (heuristic) -Computed across **1567** generated test declarations in **37** entities. +Computed across **1607** generated test declarations in **37** entities. ## Entities missing delete-then-observe-absence variant diff --git a/coverage-analysis/tests.csv b/coverage-analysis/tests.csv index 30056ea..35d3a47 100644 --- a/coverage-analysis/tests.csv +++ b/coverage-analysis/tests.csv @@ -2,8 +2,8 @@ file,line,source,entity,category,operation,form_step,prerequisite,method,path,op 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,77,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,13,variant,job,G. Job Lifecycle & Stats,create,create,running-process-instance-with-job,POST,/jobs/activation,activateJobs,data-driven,variant-1 - activateJobs - bpmn #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) @@ -18,7 +18,7 @@ assignUserTask.feature.spec.ts,8,feature,user-task,F. User-Task Lifecycle,update 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,unlabeled,variant-1 - scenario +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,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,feature-1 - cancelProcessInstancesBatchOperation - base (1) @@ -38,16 +38,17 @@ completeJob.feature.spec.ts,178,feature,job,G. Job Lifecycle & Stats,update,muta 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,unlabeled,variant-1 - scenario +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,69,feature,resource,C. Deployment Lifecycle,create,create,none,POST,/deployments,createDeployment,data-driven,feature-3 - createDeployment - dmn (3) -createDeployment.feature.spec.ts,97,feature,resource,C. Deployment Lifecycle,create,create,none,POST,/deployments,createDeployment,data-driven,feature-4 - createDeployment - drd (4) -createDeployment.variant.spec.ts,13,variant,resource,C. Deployment Lifecycle,create,create,none,POST,/deployments,createDeployment,data-driven,variant-1 - createDeployment - bpmn #1 +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 @@ -61,13 +62,13 @@ createGlobalTaskListener.feature.spec.ts,11,feature,global-task-listener,A. Enti 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,56,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,103,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.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,65,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,117,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,208,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,302,variant,process-instance,D. Process-Instance Lifecycle & Ops,create,create,deployed-process,POST,/process-instances,createProcessInstance,data-driven,variant-5 - 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) @@ -77,14 +78,14 @@ deleteDecisionInstance.feature.spec.ts,9,feature,decision-instance,I. Decision-I deleteDecisionInstancesBatchOperation.feature.spec.ts,11,feature,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,happy-path,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,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,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,unlabeled,variant-3 - scenario -deleteDecisionInstancesBatchOperation.variant.spec.ts,170,variant,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-4 - deleteDecisionInstancesBatchOperation - dmn #1 -deleteDecisionInstancesBatchOperation.variant.spec.ts,248,variant,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-5 - deleteDecisionInstancesBatchOperation - bpmn #1 -deleteDecisionInstancesBatchOperation.variant.spec.ts,300,variant,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-6 - deleteDecisionInstancesBatchOperation - bpmn #1 -deleteDecisionInstancesBatchOperation.variant.spec.ts,372,variant,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-7 - deleteDecisionInstancesBatchOperation - dmn #1 -deleteDecisionInstancesBatchOperation.variant.spec.ts,422,variant,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-8 - deleteDecisionInstancesBatchOperation - bpmn #1 -deleteDecisionInstancesBatchOperation.variant.spec.ts,523,variant,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-9 - deleteDecisionInstancesBatchOperation - dmn #1 -deleteDecisionInstancesBatchOperation.variant.spec.ts,573,variant,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,variant-10 - deleteDecisionInstancesBatchOperation - drd #1 +deleteDecisionInstancesBatchOperation.variant.spec.ts,140,variant,decision-instance,I. Decision-Instance Lifecycle,delete,delete,deployed-decision,POST,/decision-instances/deletion,deleteDecisionInstancesBatchOperation,data-driven,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,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,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,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,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,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,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,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) @@ -108,15 +109,16 @@ deleteTenant.feature.spec.ts,8,feature,tenant,A. Entity Lifecycle (CRUD),delete, 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,unlabeled,variant-1 - scenario -evaluateConditionals.variant.spec.ts,40,variant,conditional,N. Engine Evaluation,create,create,none,POST,/conditionals/evaluation,evaluateConditionals,data-driven,variant-2 - evaluateConditionals - bpmn #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,60,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,111,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,13,variant,decision-definition,C. Deployment Lifecycle,create,create,deployed-decision,POST,/decision-definitions/evaluation,evaluateDecision,data-driven,variant-1 - evaluateDecision - dmn #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,12,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) +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) @@ -128,6 +130,7 @@ getDecisionRequirements.feature.spec.ts,13,feature,decision-requirements,C. Depl 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) @@ -146,13 +149,13 @@ getMappingRule.feature.spec.ts,12,feature,mapping-rule,A. Entity Lifecycle (CRUD 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,feature-1 - getProcessDefinitionInstanceVersionStatistics - base (1) -getProcessDefinitionInstanceVersionStatistics.variant.spec.ts,13,variant,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/process-instances-by-version,getProcessDefinitionInstanceVersionStatistics,data-driven,variant-1 - getProcessDefinitionInstanceVersionStatistics - bpmn #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,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,variant-1 - getProcessDefinitionMessageSubscriptionStatistics - path #1 -getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts,71,variant,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/message-subscriptions,getProcessDefinitionMessageSubscriptionStatistics,data-driven,variant-2 - getProcessDefinitionMessageSubscriptionStatistics - path #1 -getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts,132,variant,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/message-subscriptions,getProcessDefinitionMessageSubscriptionStatistics,data-driven,variant-3 - getProcessDefinitionMessageSubscriptionStatistics - bpmn #1 -getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts,189,variant,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/message-subscriptions,getProcessDefinitionMessageSubscriptionStatistics,data-driven,variant-4 - getProcessDefinitionMessageSubscriptionStatistics - bpmn #1 -getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts,267,variant,process-definition,C. Deployment Lifecycle,get,observe-present-get,deployed-process,POST,/process-definitions/statistics/message-subscriptions,getProcessDefinitionMessageSubscriptionStatistics,data-driven,variant-5 - getProcessDefinitionMessageSubscriptionStatistics - bpmn #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,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,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,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,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,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,variant-2 - getProcessDefinitionStatistics - bpmn #1 @@ -171,6 +174,7 @@ getProcessInstanceStatisticsByDefinition.feature.spec.ts,11,feature,incident,H. 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) @@ -223,7 +227,7 @@ modifyProcessInstancesBatchOperation.variant.spec.ts,842,variant,process-instanc modifyProcessInstancesBatchOperation.variant.spec.ts,946,variant,process-instance,D. Process-Instance Lifecycle & Ops,update,mutate,deployed-process,POST,/process-instances/modification,modifyProcessInstancesBatchOperation,data-driven,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,unlabeled,variant-1 - scenario +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,delete,delete,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,feature-1 - resolveIncidentsBatchOperation - base (1) @@ -241,12 +245,13 @@ resolveProcessInstanceIncidents.feature.spec.ts,12,feature,process-instance,D. P 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,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,unlabeled,variant-1 - scenario -searchAgentInstances.variant.spec.ts,44,variant,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,data-driven,variant-2 - searchAgentInstances - bpmn #1 -searchAgentInstances.variant.spec.ts,145,variant,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,data-driven,variant-3 - searchAgentInstances - bpmn #1 -searchAgentInstances.variant.spec.ts,218,variant,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,data-driven,variant-4 - searchAgentInstances - bpmn #1 -searchAgentInstances.variant.spec.ts,270,variant,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,data-driven,variant-5 - searchAgentInstances - path #1 -searchAgentInstances.variant.spec.ts,334,variant,agent-instance,P. Agent-Instance (new in v2),search,observe-present-search,unknown,POST,/agent-instances/search,searchAgentInstances,data-driven,variant-6 - searchAgentInstances - path #1 +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,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,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,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,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,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,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,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,variant-1 - scenario @@ -263,33 +268,33 @@ searchAuditLogs.variant.spec.ts,572,variant,audit-log,J/K/L. Observation-only,se 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,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,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,variant-14 - searchAuditLogs - path #1 -searchAuditLogs.variant.spec.ts,776,variant,audit-log,J/K/L. Observation-only,search,observe-present-search,any-prior-action,POST,/audit-logs/search,searchAuditLogs,data-driven,variant-15 - 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,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,variant-1 - searchAuthorizations - path #1 -searchAuthorizations.variant.spec.ts,65,variant,authorization,A. Entity Lifecycle (CRUD),search,observe-present-search,owner-entity-or-resource,POST,/authorizations/search,searchAuthorizations,data-driven,variant-2 - 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,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,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,variant-2 - searchBatchOperationItems - path #1 -searchBatchOperationItems.variant.spec.ts,137,variant,batch-operation-item,E. Batch-Operation Lifecycle,search,observe-present-search,running-batch-operation,POST,/batch-operation-items/search,searchBatchOperationItems,data-driven,variant-3 - 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,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,variant-1 - searchBatchOperations - path #1 -searchBatchOperations.variant.spec.ts,65,variant,batch-operation,E. Batch-Operation Lifecycle,search,observe-present-search,running-process-instance(s),POST,/batch-operations/search,searchBatchOperations,data-driven,variant-2 - 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,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,variant-1 - searchClientsForGroup - path #1 -searchClientsForGroup.variant.spec.ts,85,variant,group,B. Membership/Association,search,observe-present-search,group + client,POST,/groups/{groupId}/clients/search,searchClientsForGroup,data-driven,variant-2 - 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,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,variant-1 - searchClientsForRole - path #1 -searchClientsForRole.variant.spec.ts,85,variant,role,B. Membership/Association,search,observe-present-search,role + client,POST,/roles/{roleId}/clients/search,searchClientsForRole,data-driven,variant-2 - 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,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,variant-1 - searchClientsForTenant - path #1 -searchClientsForTenant.variant.spec.ts,87,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + client,POST,/tenants/{tenantId}/clients/search,searchClientsForTenant,data-driven,variant-2 - 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,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,variant-1 - searchClusterVariables - path #1 -searchClusterVariables.variant.spec.ts,65,variant,cluster-variables,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/cluster-variables/search,searchClusterVariables,data-driven,variant-2 - 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,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,variant-1 - searchCorrelatedMessageSubscriptions - bpmn #1 @@ -297,7 +302,7 @@ searchCorrelatedMessageSubscriptions.variant.spec.ts,117,variant,correlated-mess 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,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,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,variant-5 - searchCorrelatedMessageSubscriptions - path #1 -searchCorrelatedMessageSubscriptions.variant.spec.ts,359,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,variant-6 - 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,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,variant-1 - searchDecisionDefinitions - dmn #1 @@ -305,26 +310,26 @@ searchDecisionDefinitions.variant.spec.ts,64,variant,decision-definition,C. Depl searchDecisionDefinitions.variant.spec.ts,117,variant,decision-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-definitions/search,searchDecisionDefinitions,data-driven,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,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,variant-5 - searchDecisionDefinitions - path #1 -searchDecisionDefinitions.variant.spec.ts,272,variant,decision-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-definitions/search,searchDecisionDefinitions,data-driven,variant-6 - 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,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,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,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,variant-3 - searchDecisionInstances - path #1 -searchDecisionInstances.variant.spec.ts,196,variant,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-4 - searchDecisionInstances - dmn #1 -searchDecisionInstances.variant.spec.ts,275,variant,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-5 - searchDecisionInstances - bpmn #1 -searchDecisionInstances.variant.spec.ts,327,variant,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-6 - searchDecisionInstances - bpmn #1 -searchDecisionInstances.variant.spec.ts,400,variant,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-7 - searchDecisionInstances - dmn #1 -searchDecisionInstances.variant.spec.ts,451,variant,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-8 - searchDecisionInstances - bpmn #1 -searchDecisionInstances.variant.spec.ts,553,variant,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-9 - searchDecisionInstances - dmn #1 -searchDecisionInstances.variant.spec.ts,604,variant,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-10 - searchDecisionInstances - drd #1 -searchDecisionInstances.variant.spec.ts,655,variant,decision-instance,I. Decision-Instance Lifecycle,search,observe-present-search,deployed-decision,POST,/decision-instances/search,searchDecisionInstances,data-driven,variant-11 - 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,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,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,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,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,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,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,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,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,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,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,variant-2 - searchDecisionRequirements - path #1 -searchDecisionRequirements.variant.spec.ts,117,variant,decision-requirements,C. Deployment Lifecycle,search,observe-present-search,deployed-drd,POST,/decision-requirements/search,searchDecisionRequirements,data-driven,variant-3 - 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,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,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,variant-1 - searchElementInstanceIncidents - bpmn #1 @@ -332,7 +337,7 @@ searchElementInstanceIncidents.variant.spec.ts,122,variant,element-instance,J/K/ 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,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,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,variant-5 - searchElementInstanceIncidents - bpmn #1 -searchElementInstanceIncidents.variant.spec.ts,583,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/{elementInstanceKey}/incidents/search,searchElementInstanceIncidents,data-driven,variant-6 - 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,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) @@ -340,27 +345,27 @@ searchElementInstances.feature.spec.ts,91,feature,element-instance,J/K/L. Observ 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,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,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,variant-3 - searchElementInstances - path #1 -searchElementInstances.variant.spec.ts,215,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-4 - searchElementInstances - bpmn #1 -searchElementInstances.variant.spec.ts,314,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-5 - searchElementInstances - bpmn #1 -searchElementInstances.variant.spec.ts,384,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-6 - searchElementInstances - bpmn #1 -searchElementInstances.variant.spec.ts,434,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-7 - searchElementInstances - bpmn #1 -searchElementInstances.variant.spec.ts,595,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-8 - searchElementInstances - bpmn #1 -searchElementInstances.variant.spec.ts,694,variant,element-instance,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/element-instances/search,searchElementInstances,data-driven,variant-9 - 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,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,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,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,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,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,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,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,variant-1 - searchGlobalTaskListeners - path #1 -searchGlobalTaskListeners.variant.spec.ts,65,variant,global-task-listener,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/global-task-listeners/search,searchGlobalTaskListeners,data-driven,variant-2 - 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,variant-2 - searchGlobalTaskListeners - path #1 searchGroupIdsForTenant.feature.spec.ts,12,feature,tenant,B. Membership/Association,search,observe-present-search,tenant + groupid,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 + groupid,POST,/tenants/{tenantId}/groups/search,searchGroupIdsForTenant,data-driven,variant-1 - searchGroupIdsForTenant - path #1 -searchGroupIdsForTenant.variant.spec.ts,87,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + groupid,POST,/tenants/{tenantId}/groups/search,searchGroupIdsForTenant,data-driven,variant-2 - searchGroupIdsForTenant - path #1 +searchGroupIdsForTenant.variant.spec.ts,88,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + groupid,POST,/tenants/{tenantId}/groups/search,searchGroupIdsForTenant,data-driven,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,variant-1 - searchGroups - path #1 -searchGroups.variant.spec.ts,63,variant,group,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/groups/search,searchGroups,data-driven,variant-2 - 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,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,variant-1 - searchGroupsForRole - path #1 -searchGroupsForRole.variant.spec.ts,85,variant,role,B. Membership/Association,search,observe-present-search,role + group,POST,/roles/{roleId}/groups/search,searchGroupsForRole,data-driven,variant-2 - 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,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,variant-1 - searchIncidents - bpmn #1 @@ -368,32 +373,32 @@ searchIncidents.variant.spec.ts,63,variant,incident,H. Incident Lifecycle,search 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,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,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,variant-5 - searchIncidents - path #1 -searchIncidents.variant.spec.ts,389,variant,incident,H. Incident Lifecycle,search,observe-present-search,running-process-instance-with-failing-job,POST,/incidents/search,searchIncidents,data-driven,variant-6 - 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,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,79,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.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,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,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,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,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,variant-5 - searchJobs - path #1 -searchJobs.variant.spec.ts,461,variant,job,G. Job Lifecycle & Stats,search,observe-present-search,running-process-instance-with-job,POST,/jobs/search,searchJobs,data-driven,variant-6 - 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,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,variant-1 - searchMappingRule - path #1 -searchMappingRule.variant.spec.ts,106,variant,mapping-rule,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/mapping-rules/search,searchMappingRule,data-driven,variant-2 - searchMappingRule - path #1 -searchMappingRule.variant.spec.ts,159,variant,mapping-rule,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/mapping-rules/search,searchMappingRule,data-driven,variant-3 - 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,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,variant-3 - searchMappingRule - path #1 searchMappingRulesForGroup.feature.spec.ts,12,feature,group,B. Membership/Association,search,observe-present-search,group + mappingrule,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 + mappingrule,POST,/groups/{groupId}/mapping-rules/search,searchMappingRulesForGroup,data-driven,variant-1 - searchMappingRulesForGroup - path #1 searchMappingRulesForGroup.variant.spec.ts,84,variant,group,B. Membership/Association,search,observe-present-search,group + mappingrule,POST,/groups/{groupId}/mapping-rules/search,searchMappingRulesForGroup,data-driven,variant-2 - searchMappingRulesForGroup - path #1 -searchMappingRulesForGroup.variant.spec.ts,158,variant,group,B. Membership/Association,search,observe-present-search,group + mappingrule,POST,/groups/{groupId}/mapping-rules/search,searchMappingRulesForGroup,data-driven,variant-3 - searchMappingRulesForGroup - path #1 +searchMappingRulesForGroup.variant.spec.ts,159,variant,group,B. Membership/Association,search,observe-present-search,group + mappingrule,POST,/groups/{groupId}/mapping-rules/search,searchMappingRulesForGroup,data-driven,variant-3 - searchMappingRulesForGroup - path #1 searchMappingRulesForRole.feature.spec.ts,12,feature,role,B. Membership/Association,search,observe-present-search,role + mappingrule,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 + mappingrule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,data-driven,variant-1 - searchMappingRulesForRole - path #1 -searchMappingRulesForRole.variant.spec.ts,123,variant,role,B. Membership/Association,search,observe-present-search,role + mappingrule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,data-driven,variant-2 - searchMappingRulesForRole - path #1 -searchMappingRulesForRole.variant.spec.ts,197,variant,role,B. Membership/Association,search,observe-present-search,role + mappingrule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,data-driven,variant-3 - searchMappingRulesForRole - path #1 +searchMappingRulesForRole.variant.spec.ts,124,variant,role,B. Membership/Association,search,observe-present-search,role + mappingrule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,data-driven,variant-2 - searchMappingRulesForRole - path #1 +searchMappingRulesForRole.variant.spec.ts,199,variant,role,B. Membership/Association,search,observe-present-search,role + mappingrule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,data-driven,variant-3 - searchMappingRulesForRole - path #1 searchMappingRulesForTenant.feature.spec.ts,12,feature,tenant,B. Membership/Association,search,observe-present-search,tenant + mappingrule,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 + mappingrule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,data-driven,variant-1 - searchMappingRulesForTenant - path #1 -searchMappingRulesForTenant.variant.spec.ts,125,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + mappingrule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,data-driven,variant-2 - searchMappingRulesForTenant - path #1 -searchMappingRulesForTenant.variant.spec.ts,201,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + mappingrule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,data-driven,variant-3 - searchMappingRulesForTenant - path #1 +searchMappingRulesForTenant.variant.spec.ts,126,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + mappingrule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,data-driven,variant-2 - searchMappingRulesForTenant - path #1 +searchMappingRulesForTenant.variant.spec.ts,203,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + mappingrule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,data-driven,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,variant-1 - searchMessageSubscriptions - path #1 @@ -401,22 +406,22 @@ searchMessageSubscriptions.variant.spec.ts,69,variant,message-subscriptions,M. M 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,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,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,variant-5 - searchMessageSubscriptions - path #1 -searchMessageSubscriptions.variant.spec.ts,351,variant,message-subscriptions,M. Messaging/Signals,search,observe-present-search,deployed-process-with-message-catch-event,POST,/message-subscriptions/search,searchMessageSubscriptions,data-driven,variant-6 - 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,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,59,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.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,variant-1 - searchProcessDefinitions - path #1 -searchProcessDefinitions.variant.spec.ts,88,variant,process-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-process,POST,/process-definitions/search,searchProcessDefinitions,data-driven,variant-2 - searchProcessDefinitions - bpmn #1 -searchProcessDefinitions.variant.spec.ts,140,variant,process-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-process,POST,/process-definitions/search,searchProcessDefinitions,data-driven,variant-3 - searchProcessDefinitions - path #1 -searchProcessDefinitions.variant.spec.ts,215,variant,process-definition,C. Deployment Lifecycle,search,observe-present-search,deployed-process,POST,/process-definitions/search,searchProcessDefinitions,data-driven,variant-4 - 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,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,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,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,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,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,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,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,variant-5 - searchProcessInstanceIncidents - bpmn #1 -searchProcessInstanceIncidents.variant.spec.ts,511,variant,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/{processInstanceKey}/incidents/search,searchProcessInstanceIncidents,data-driven,variant-6 - 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,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,79,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.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,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,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,variant-3 - searchProcessInstances - bpmn #1 @@ -428,32 +433,32 @@ searchProcessInstances.variant.spec.ts,596,variant,process-instance,D. Process-I 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,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,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,variant-11 - searchProcessInstances - path #1 -searchProcessInstances.variant.spec.ts,982,variant,process-instance,D. Process-Instance Lifecycle & Ops,search,observe-present-search,deployed-process,POST,/process-instances/search,searchProcessInstances,data-driven,variant-12 - 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,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,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,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,variant-3 - searchResources - path #1 -searchResources.variant.spec.ts,181,variant,resource,C. Deployment Lifecycle,search,observe-present-search,none,POST,/resources/search,searchResources,data-driven,variant-4 - searchResources - path #1 +searchResources.variant.spec.ts,180,variant,resource,C. Deployment Lifecycle,search,observe-present-search,none,POST,/resources/search,searchResources,data-driven,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,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,variant-1 - searchRoles - path #1 -searchRoles.variant.spec.ts,104,variant,role,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/roles/search,searchRoles,data-driven,variant-2 - searchRoles - path #1 -searchRoles.variant.spec.ts,155,variant,role,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/roles/search,searchRoles,data-driven,variant-3 - 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,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,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,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,variant-2 - searchRolesForGroup - path #1 -searchRolesForGroup.variant.spec.ts,158,variant,group,B. Membership/Association,search,observe-present-search,group + role,POST,/groups/{groupId}/roles/search,searchRolesForGroup,data-driven,variant-3 - 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,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,variant-1 - searchRolesForTenant - path #1 -searchRolesForTenant.variant.spec.ts,125,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + role,POST,/tenants/{tenantId}/roles/search,searchRolesForTenant,data-driven,variant-2 - searchRolesForTenant - path #1 -searchRolesForTenant.variant.spec.ts,201,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + role,POST,/tenants/{tenantId}/roles/search,searchRolesForTenant,data-driven,variant-3 - 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,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,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,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,variant-2 - searchTenants - path #1 -searchTenants.variant.spec.ts,114,variant,tenant,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/tenants/search,searchTenants,data-driven,variant-3 - 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,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) @@ -467,20 +472,20 @@ searchUserTasks.variant.spec.ts,282,variant,user-task,F. User-Task Lifecycle,sea 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,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,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,variant-8 - searchUserTasks - path #1 -searchUserTasks.variant.spec.ts,603,variant,user-task,F. User-Task Lifecycle,search,observe-present-search,running-process-instance-with-user-task,POST,/user-tasks/search,searchUserTasks,data-driven,variant-9 - 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,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,variant-1 - searchUsers - path #1 -searchUsers.variant.spec.ts,63,variant,user,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/users/search,searchUsers,data-driven,variant-2 - 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,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,variant-1 - searchUsersForGroup - path #1 -searchUsersForGroup.variant.spec.ts,85,variant,group,B. Membership/Association,search,observe-present-search,group + user,POST,/groups/{groupId}/users/search,searchUsersForGroup,data-driven,variant-2 - 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,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,variant-1 - searchUsersForRole - path #1 -searchUsersForRole.variant.spec.ts,85,variant,role,B. Membership/Association,search,observe-present-search,role + user,POST,/roles/{roleId}/users/search,searchUsersForRole,data-driven,variant-2 - 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,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,variant-1 - searchUsersForTenant - path #1 -searchUsersForTenant.variant.spec.ts,87,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + user,POST,/tenants/{tenantId}/users/search,searchUsersForTenant,data-driven,variant-2 - 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,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,variant-1 - searchVariables - path #1 @@ -488,7 +493,7 @@ searchVariables.variant.spec.ts,64,variant,variable,J/K/L. Observation-only,sear searchVariables.variant.spec.ts,93,variant,variable,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/variables/search,searchVariables,unlabeled,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,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,variant-5 - searchVariables - path #1 -searchVariables.variant.spec.ts,242,variant,variable,J/K/L. Observation-only,search,observe-present-search,running-process-instance,POST,/variables/search,searchVariables,data-driven,variant-6 - 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,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,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) @@ -504,6 +509,7 @@ unassignRoleFromUser.feature.spec.ts,8,feature,role,B. Membership/Association,de 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) @@ -529,12 +535,43 @@ edges/TenantGroupMembership.lifecycle.spec.ts,9,lifecycle,tenant,B. Membership/A edges/TenantMappingRuleMembership.lifecycle.spec.ts,9,lifecycle,tenant,B. Membership/Association,lifecycle,lifecycle,tenant + mappingrule,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" -request-validation/agentinstances-validation-api-tests.spec.ts,18,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,34,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,53,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,68,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,85,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,106,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,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 @@ -763,11 +800,14 @@ request-validation/elementinstances-validation-api-tests.spec.ts,542,request-val 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,36,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,51,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,68,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,85,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,100,request-validation,expression,N. Engine Evaluation,create,negative-create,none,POST,/expression/evaluation,evaluateExpression,bad-request,evaluateExpression - Missing body +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) @@ -915,10 +955,10 @@ request-validation/jobs-validation-api-tests.spec.ts,286,request-validation,job, 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 timeout,maxJobsToActivate" +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,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,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 From 9d4e305bbe73ed9b487c3bcdc0b6b30265ad3e0a Mon Sep 17 00:00:00 2001 From: esraagamal6 Date: Tue, 19 May 2026 13:30:51 +0200 Subject: [PATCH 07/15] fix(coverage-analysis): address review comments from PR #278 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - matrix total now equals unique-test count per (entity, operation), not the sum of variant labels (matches upstream camunda/camunda#53387 semantics where multi-label tests count once toward total) - category_breakdown variant counts now split multi-label variants ('happy-path|observe-absence') so the counts reconcile with matrix columns and per-test rows - README regenerate section now lists the full setup (npm install, npm run pipeline, npm run generate:request-validation) since spec/ and generated/ are gitignored - README limitations no longer claim 'zero error-path tests' — the generator emits 1000+ bad-request tests via request-validation; only 401/403/404/409 + pagination/filter are zero Co-Authored-By: Claude Opus 4.7 (1M context) --- coverage-analysis/README.md | 21 +++- coverage-analysis/build_coverage.py | 88 ++++++++++++---- coverage-analysis/category_breakdown.md | 94 +++++++++-------- coverage-analysis/coverage_matrix.csv | 12 ++- coverage-analysis/coverage_matrix.md | 26 +++-- coverage-analysis/gaps.md | 3 +- coverage-analysis/lifecycle_disjoint.md | 131 ++++++++++++++++++++++++ coverage-analysis/tests.csv | 10 ++ 8 files changed, 308 insertions(+), 77 deletions(-) create mode 100644 coverage-analysis/lifecycle_disjoint.md diff --git a/coverage-analysis/README.md b/coverage-analysis/README.md index 5489d03..2e0bd20 100644 --- a/coverage-analysis/README.md +++ b/coverage-analysis/README.md @@ -31,16 +31,25 @@ The generator emits tests into three locations; `build_coverage.py` scans all of | `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 +npm run generate:request-validation # emit request-validation tests python3 coverage-analysis/build_coverage.py ``` -No dependencies beyond the Python stdlib. Re-run after any change under -`generated/camunda-oca/playwright/` or the bundled OpenAPI spec. +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 @@ -117,8 +126,10 @@ See `gaps.md` for the categorised per-entity list. - 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 does not emit error-path tests (401/403/400/404/409) today, so - every row in those columns is 0 — this is a generator capability gap, not a - classifier limitation. +- The generator emits substantial 400/bad-request coverage via the + `request-validation` emitter (1000+ tests across 17 violation kinds), but + emits zero tests for 401/403/404/409 and zero for pagination/sort and filter. + Those zero columns are a generator capability gap, not a classifier + limitation — see `gaps.md` for the per-entity breakdown. - 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 index 4827ff7..62b6f21 100644 --- a/coverage-analysis/build_coverage.py +++ b/coverage-analysis/build_coverage.py @@ -26,6 +26,7 @@ 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')) @@ -287,6 +288,22 @@ def variants_of(test_name): 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.*)$') @@ -377,6 +394,30 @@ def resolve_op(op_id): '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 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 @@ -423,12 +464,19 @@ def resolve_op(op_id): 'conflict','pagination-sort','filter','observe-absence','data-driven','unlabeled'] op_order = ['create','get','update','delete','search','lifecycle','other','parameterized'] -matrix = defaultdict(lambda: defaultdict(lambda: defaultdict(int))) +# 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[r['entity']][r['operation']][v] += 1 + 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: @@ -436,10 +484,10 @@ def resolve_op(op_id): w.writerow(['entity','operation','total'] + variant_cols) for ent in sorted(entity_totals, key=lambda x: -entity_totals[x]): for op in op_order: - cell = matrix[ent].get(op, {}) - total = sum(cell.values()) + 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}") @@ -460,8 +508,8 @@ def resolve_op(op_id): 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[ent].get(op, {}) - total = sum(cell.values()) + 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] @@ -472,8 +520,8 @@ def resolve_op(op_id): 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[ent].get(op, {}) - total = sum(cell.values()) + 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] @@ -492,9 +540,9 @@ def resolve_op(op_id): '(no negative-after-delete check).\n\n') any_missing = False for ent in sorted(entity_totals): - cell = matrix[ent] - has_create = sum(cell.get('create', {}).values()) > 0 - has_delete = sum(cell.get('delete', {}).values()) > 0 + 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') @@ -504,33 +552,33 @@ def resolve_op(op_id): 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[ent].values()): + 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[ent].values()): + 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[ent].values()): + 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[ent].values()): + 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[ent].values()): + 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') for ent in sorted(entity_totals): - cell = matrix[ent].get('search', {}) + cell = matrix_variants[ent].get('search', {}) if not cell: continue if cell.get('pagination-sort', 0) == 0 and cell.get('filter', 0) == 0: @@ -654,9 +702,13 @@ def anchor(cat): 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: - var_counts[r['variants']] += 1 + for v in (r['variants'].split('|') if r['variants'] else ['unlabeled']): + var_counts[v] += 1 files = sorted({r['file'] for r in ent_rows}) diff --git a/coverage-analysis/category_breakdown.md b/coverage-analysis/category_breakdown.md index 6d504c6..071fe28 100644 --- a/coverage-analysis/category_breakdown.md +++ b/coverage-analysis/category_breakdown.md @@ -1,6 +1,6 @@ # api-test-generator — Per-category breakdown -Total test declarations: **1607** across **37** entities. +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**. @@ -8,7 +8,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra ## Table of contents -- [A. Entity Lifecycle (CRUD)](#a-entity-lifecycle-crud) — 351 tests +- [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 @@ -27,15 +27,15 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra **Form**: Create Entity → Get Entity (Observe Present) → Update Entity → Search Entity (Observe via list) → Delete Entity → Get Entity (Observe Absence) -**Total tests**: 351 +**Total tests**: 361 -### `cluster-variables` — 60 tests +### `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`, `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` +- **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, negative-create=25, negative-get=3, negative-update=11, negative-delete=3, negative-search=6 -- **Variants**: happy-path=9, observe-absence=1, data-driven=2, bad-request=48 +- **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 | form step | variants | file:line | test name | |--|--|--|--| @@ -51,6 +51,8 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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) | @@ -100,13 +102,13 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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` — 48 tests +### `mapping-rule` — 49 tests - **Prerequisite to create**: none -- **Files**: `createMappingRule.feature.spec.ts`, `deleteMappingRule.feature.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` +- **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, negative-create=20, negative-get=1, negative-update=12, negative-delete=1, negative-search=5 -- **Variants**: happy-path=5, observe-absence=1, data-driven=3, bad-request=39 +- **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 | form step | variants | file:line | test name | |--|--|--|--| @@ -119,6 +121,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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) | @@ -159,13 +162,13 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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` — 47 tests +### `global-task-listener` — 48 tests - **Prerequisite to create**: none -- **Files**: `createGlobalTaskListener.feature.spec.ts`, `deleteGlobalTaskListener.feature.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` +- **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, negative-create=21, negative-get=1, negative-update=11, negative-delete=1, negative-search=5 -- **Variants**: happy-path=5, observe-absence=1, data-driven=2, bad-request=39 +- **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 | form step | variants | file:line | test name | |--|--|--|--| @@ -177,6 +180,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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) | @@ -217,13 +221,13 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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` — 37 tests +### `tenant` — 38 tests - **Prerequisite to create**: none -- **Files**: `createTenant.feature.spec.ts`, `deleteTenant.feature.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` +- **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, negative-create=14, negative-get=1, negative-update=7, negative-delete=1, negative-search=5 -- **Variants**: happy-path=5, observe-absence=1, data-driven=3, bad-request=28 +- **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 | form step | variants | file:line | test name | |--|--|--|--| @@ -236,6 +240,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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) | @@ -265,13 +270,13 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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` — 36 tests +### `authorization` — 37 tests - **Prerequisite to create**: owner-entity-or-resource -- **Files**: `createAuthorization.feature.spec.ts`, `deleteAuthorization.feature.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` +- **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, negative-create=7, negative-get=1, negative-update=8, negative-delete=1, negative-search=7 -- **Variants**: happy-path=5, observe-absence=1, data-driven=6, bad-request=24 +- **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 | form step | variants | file:line | test name | |--|--|--|--| @@ -287,6 +292,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | @@ -312,13 +318,13 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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` — 36 tests +### `role` — 37 tests - **Prerequisite to create**: none -- **Files**: `createRole.feature.spec.ts`, `deleteRole.feature.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` +- **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, negative-create=13, negative-get=1, negative-update=7, negative-delete=1, negative-search=5 -- **Variants**: happy-path=5, observe-absence=1, data-driven=3, bad-request=27 +- **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 | form step | variants | file:line | test name | |--|--|--|--| @@ -331,6 +337,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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) | @@ -359,13 +366,13 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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` — 34 tests +### `group` — 35 tests - **Prerequisite to create**: none -- **Files**: `createGroup.feature.spec.ts`, `deleteGroup.feature.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` +- **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, negative-create=12, negative-get=1, negative-update=7, negative-delete=1, negative-search=5 -- **Variants**: happy-path=5, observe-absence=1, data-driven=2, bad-request=26 +- **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 | form step | variants | file:line | test name | |--|--|--|--| @@ -377,6 +384,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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) | @@ -404,13 +412,13 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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` — 33 tests +### `user` — 34 tests - **Prerequisite to create**: none -- **Files**: `createUser.feature.spec.ts`, `deleteUser.feature.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` +- **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, negative-create=14, negative-get=1, negative-update=4, negative-delete=1, negative-search=5 -- **Variants**: happy-path=5, observe-absence=1, data-driven=2, bad-request=25 +- **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 | form step | variants | file:line | test name | |--|--|--|--| @@ -422,6 +430,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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) | @@ -448,13 +457,13 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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` — 20 tests +### `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`, `getDocument.feature.spec.ts`, `request-validation/documents-validation-api-tests.spec.ts` +- **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, negative-create=11 -- **Variants**: happy-path=5, data-driven=4, bad-request=11 +- **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 | |--|--|--|--| @@ -467,6 +476,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | @@ -491,7 +501,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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=15, data-driven=12, bad-request=50 +- **Variants**: happy-path=20, observe-absence=5, data-driven=12, bad-request=50 | form step | variants | file:line | test name | |--|--|--|--| @@ -584,7 +594,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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=12, data-driven=9, bad-request=40 +- **Variants**: happy-path=16, observe-absence=4, data-driven=9, bad-request=40 | form step | variants | file:line | test name | |--|--|--|--| @@ -660,7 +670,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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=10, data-driven=10, bad-request=36 +- **Variants**: happy-path=13, observe-absence=3, data-driven=10, bad-request=36 | form step | variants | file:line | test name | |--|--|--|--| diff --git a/coverage-analysis/coverage_matrix.csv b/coverage-analysis/coverage_matrix.csv index 4f1f14b..74fc315 100644 --- a/coverage-analysis/coverage_matrix.csv +++ b/coverage-analysis/coverage_matrix.csv @@ -13,19 +13,19 @@ 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,0,0,1,15,0 -tenant,lifecycle,10,5,0,0,0,0,0,0,0,5,0,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,0,0,1,12,0 -role,lifecycle,8,4,0,0,0,0,0,0,0,4,0,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,0,0,1,12,0 -group,lifecycle,6,3,0,0,0,0,0,0,0,3,0,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,0,0,10,0 decision-instance,search,20,1,6,0,0,0,0,0,0,1,12,0 @@ -40,6 +40,7 @@ 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,0,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,0,0,1,18,0 @@ -52,11 +53,13 @@ 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,0,0,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,0,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,0,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,0,0,1,6,0 @@ -65,6 +68,7 @@ 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,0,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 @@ -74,6 +78,7 @@ 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,0,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 @@ -83,6 +88,7 @@ audit-log,search,22,1,5,0,0,0,0,0,0,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,0,0,1,4,2 setup,create,15,1,14,0,0,0,0,0,0,0,0,0 diff --git a/coverage-analysis/coverage_matrix.md b/coverage-analysis/coverage_matrix.md index 9622aaf..a18cf50 100644 --- a/coverage-analysis/coverage_matrix.md +++ b/coverage-analysis/coverage_matrix.md @@ -1,6 +1,6 @@ # api-test-generator — Coverage matrix (entity × operation × variant) -Total test declarations: **1607** across **37** entities. +Total test declarations: **1617** across **37** entities. Variants are first-match labels derived from the generator's emitter suffix (`base`, `negative empty`, `bpmn|dmn|drd|form|path|cycle/...`, `oneOf ...`, `scenario`). See `build_coverage.py` for the rule table. @@ -24,19 +24,19 @@ Legend: ✓ = at least 1, blank = 0. | tenant | update | 23 | ✓ | ✓ | | | | | | | | | | | tenant | delete | 17 | ✓ | ✓ | | | | | | | | | | | tenant | search | 57 | ✓ | ✓ | | | | | | | ✓ | ✓ | | -| tenant | lifecycle | 10 | ✓ | | | | | | | | ✓ | | | +| tenant | lifecycle | 6 | ✓ | | | | | | | | ✓ | | | | role | create | 14 | ✓ | ✓ | | | | | | | | | | | role | get | 2 | ✓ | ✓ | | | | | | | | | | | role | update | 20 | ✓ | ✓ | | | | | | | | | | | role | delete | 14 | ✓ | ✓ | | | | | | | | | | | role | search | 47 | ✓ | ✓ | | | | | | | ✓ | ✓ | | -| role | lifecycle | 8 | ✓ | | | | | | | | ✓ | | | +| role | lifecycle | 5 | ✓ | | | | | | | | ✓ | | | | group | create | 13 | ✓ | ✓ | | | | | | | | | | | group | get | 2 | ✓ | ✓ | | | | | | | | | | | group | update | 17 | ✓ | ✓ | | | | | | | | | | | group | delete | 11 | ✓ | ✓ | | | | | | | | | | | group | search | 47 | ✓ | ✓ | | | | | | | ✓ | ✓ | | -| group | lifecycle | 6 | ✓ | | | | | | | | ✓ | | | +| group | lifecycle | 4 | ✓ | | | | | | | | ✓ | | | | decision-instance | get | 2 | ✓ | ✓ | | | | | | | | | | | decision-instance | delete | 50 | ✓ | ✓ | | | | | | | | ✓ | | | decision-instance | search | 20 | ✓ | ✓ | | | | | | | ✓ | ✓ | | @@ -51,6 +51,7 @@ Legend: ✓ = at least 1, blank = 0. | 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 | ✓ | ✓ | | | | | | | ✓ | ✓ | | @@ -63,11 +64,13 @@ Legend: ✓ = at least 1, blank = 0. | 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 | ✓ | ✓ | | | | | | | ✓ | ✓ | | @@ -76,6 +79,7 @@ Legend: ✓ = at least 1, blank = 0. | authorization | update | 11 | ✓ | ✓ | | | | | | | | ✓ | | | authorization | delete | 2 | ✓ | ✓ | | | | | | | | | | | authorization | search | 11 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| authorization | lifecycle | 1 | ✓ | | | | | | | | ✓ | | | | resource | create | 13 | | ✓ | | | | | | | | ✓ | | | resource | get | 3 | ✓ | | | | | | | | | | | | resource | delete | 8 | ✓ | ✓ | | | | | | | | | | @@ -85,6 +89,7 @@ Legend: ✓ = at least 1, blank = 0. | user | update | 5 | ✓ | ✓ | | | | | | | | | | | user | delete | 2 | ✓ | ✓ | | | | | | | | | | | user | search | 9 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| user | lifecycle | 1 | ✓ | | | | | | | | ✓ | | | | message | create | 30 | ✓ | ✓ | | | | | | | | ✓ | | | decision-definition | create | 11 | ✓ | ✓ | | | | | | | | ✓ | | | decision-definition | get | 4 | ✓ | ✓ | | | | | | | | | | @@ -94,6 +99,7 @@ Legend: ✓ = at least 1, blank = 0. | document | create | 18 | ✓ | ✓ | | | | | | | | ✓ | | | document | get | 1 | ✓ | | | | | | | | | | | | document | delete | 1 | ✓ | | | | | | | | | | | +| document | lifecycle | 1 | ✓ | | | | | | | | ✓ | | | | variable | get | 2 | ✓ | ✓ | | | | | | | | | | | variable | search | 14 | ✓ | ✓ | | | | | | | ✓ | ✓ | ✓ | | setup | create | 15 | ✓ | ✓ | | | | | | | | | | @@ -135,19 +141,19 @@ Legend: ✓ = at least 1, blank = 0. | tenant | update | 23 | 6 | 17 | | | | | | | | | | | tenant | delete | 17 | 6 | 11 | | | | | | | | | | | tenant | search | 57 | 6 | 35 | | | | | | | 1 | 15 | | -| tenant | lifecycle | 10 | 5 | | | | | | | | 5 | | | +| 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 | | | | | | | 1 | 12 | | -| role | lifecycle | 8 | 4 | | | | | | | | 4 | | | +| 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 | | | | | | | 1 | 12 | | -| group | lifecycle | 6 | 3 | | | | | | | | 3 | | | +| group | lifecycle | 4 | 4 | | | | | | | | 4 | | | | decision-instance | get | 2 | 1 | 1 | | | | | | | | | | | decision-instance | delete | 50 | 2 | 38 | | | | | | | | 10 | | | decision-instance | search | 20 | 1 | 6 | | | | | | | 1 | 12 | | @@ -162,6 +168,7 @@ Legend: ✓ = at least 1, blank = 0. | cluster-variables | update | 13 | 2 | 11 | | | | | | | | | | | cluster-variables | delete | 5 | 2 | 3 | | | | | | | | | | | cluster-variables | search | 10 | 1 | 6 | | | | | | | 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 | | | | | | | 1 | 18 | | @@ -174,11 +181,13 @@ Legend: ✓ = at least 1, blank = 0. | mapping-rule | update | 13 | 1 | 12 | | | | | | | | | | | mapping-rule | delete | 2 | 1 | 1 | | | | | | | | | | | mapping-rule | search | 10 | 1 | 5 | | | | | | | 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 | | | | | | | 1 | 2 | | +| global-task-listener | lifecycle | 1 | 1 | | | | | | | | 1 | | | | incident | get | 19 | 3 | 16 | | | | | | | | | | | incident | update | 9 | 1 | 8 | | | | | | | | | | | incident | search | 13 | 1 | 5 | | | | | | | 1 | 6 | | @@ -187,6 +196,7 @@ Legend: ✓ = at least 1, blank = 0. | authorization | update | 11 | 1 | 8 | | | | | | | | 2 | | | authorization | delete | 2 | 1 | 1 | | | | | | | | | | | authorization | search | 11 | 1 | 7 | | | | | | | 1 | 2 | | +| authorization | lifecycle | 1 | 1 | | | | | | | | 1 | | | | resource | create | 13 | | 8 | | | | | | | | 5 | | | resource | get | 3 | 3 | | | | | | | | | | | | resource | delete | 8 | 1 | 7 | | | | | | | | | | @@ -196,6 +206,7 @@ Legend: ✓ = at least 1, blank = 0. | user | update | 5 | 1 | 4 | | | | | | | | | | | user | delete | 2 | 1 | 1 | | | | | | | | | | | user | search | 9 | 1 | 5 | | | | | | | 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 | | | | | | | | | | @@ -205,6 +216,7 @@ Legend: ✓ = at least 1, blank = 0. | 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 | | | | | | | 1 | 4 | 2 | | setup | create | 15 | 1 | 14 | | | | | | | | | | diff --git a/coverage-analysis/gaps.md b/coverage-analysis/gaps.md index 9a9be7e..dd93885 100644 --- a/coverage-analysis/gaps.md +++ b/coverage-analysis/gaps.md @@ -1,13 +1,12 @@ # Coverage gaps (heuristic) -Computed across **1607** generated test declarations in **37** entities. +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). - **clock** — has create+delete but no `observe-absence` test -- **document** — has create+delete but no `observe-absence` test ## Entities with no unauthorized (401) coverage diff --git a/coverage-analysis/lifecycle_disjoint.md b/coverage-analysis/lifecycle_disjoint.md new file mode 100644 index 0000000..ee92679 --- /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: +`establish → observe present → revoke → observe 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 index 35d3a47..5c4c078 100644 --- a/coverage-analysis/tests.csv +++ b/coverage-analysis/tests.csv @@ -535,6 +535,16 @@ edges/TenantGroupMembership.lifecycle.spec.ts,9,lifecycle,tenant,B. Membership/A edges/TenantMappingRuleMembership.lifecycle.spec.ts,9,lifecycle,tenant,B. Membership/Association,lifecycle,lifecycle,tenant + mappingrule,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) From 04f214058d2bfd799af0727bf7a7dbe5e0c3a220 Mon Sep 17 00:00:00 2001 From: esraagamal6 Date: Tue, 19 May 2026 13:41:37 +0200 Subject: [PATCH 08/15] fix(coverage-analysis): address 2nd round of review comments (PR #278) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - prerequisite_of now converts CamelCase entity names to kebab-case via a small helper, so MappingRule -> mapping-rule (was emitting 'mappingrule') in membership prerequisite strings — keeps slugs consistent across tests.csv and category_breakdown.md - category_breakdown.md table cells now escape multi-label variants: 'happy-path|observe-absence' is written as 'happy-path, observe-absence' so the literal | doesn't get parsed as a markdown column separator (lifecycle rows were rendering with an extra column) - README comparison table refreshed to match the regenerated artifacts: 1607 -> 1617 unique tests, +606 -> +616 vs upstream (was stale relative to coverage_matrix.csv after the entities/ scanner landed) Co-Authored-By: Claude Opus 4.7 (1M context) --- coverage-analysis/README.md | 4 +- coverage-analysis/build_coverage.py | 20 ++-- coverage-analysis/category_breakdown.md | 50 +++++----- coverage-analysis/tests.csv | 120 ++++++++++++------------ 4 files changed, 100 insertions(+), 94 deletions(-) diff --git a/coverage-analysis/README.md b/coverage-analysis/README.md index 2e0bd20..b24cd2c 100644 --- a/coverage-analysis/README.md +++ b/coverage-analysis/README.md @@ -85,7 +85,7 @@ unique-test count; variant columns are label-occurrences, so a test tagged | | upstream | generator | |---|---:|---:| -| Unique tests | 1001 | **1607** | +| Unique tests | 1001 | **1617** | | Entities | 33 | 37 | | Happy-path (occurrences) | 173 | 201 | | Bad-request (400, occurrences) | 195 | **1071** | @@ -98,7 +98,7 @@ unique-test count; variant columns are label-occurrences, so a test tagged | Observe-absence | 2 | 38 | | Data-driven / oneOf variants | 5 | **302** | -**The generator emits 606 more tests than upstream.** It massively exceeds +**The generator emits 616 more tests than upstream.** It massively exceeds 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`, diff --git a/coverage-analysis/build_coverage.py b/coverage-analysis/build_coverage.py index 62b6f21..7c2a3fb 100644 --- a/coverage-analysis/build_coverage.py +++ b/coverage-analysis/build_coverage.py @@ -248,18 +248,20 @@ def form_step_of(operation, variants): # 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 = m2.group(2).lower() - member = members.lower().rstrip('s') + 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') @@ -730,8 +732,12 @@ def anchor(cat): key=lambda r: (step_idx.get(r['form_step'], 999), r['file'], r['line']), ) for r in sorted_rows: - fp.write(f'| {r["form_step"]} | {r["variants"] or "—"} | ' - f'`{r["file"]}:{r["line"]}` | {r["test_name"]} |\n') + # 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() diff --git a/coverage-analysis/category_breakdown.md b/coverage-analysis/category_breakdown.md index 071fe28..20aef71 100644 --- a/coverage-analysis/category_breakdown.md +++ b/coverage-analysis/category_breakdown.md @@ -51,8 +51,8 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | +| 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) | @@ -121,7 +121,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | +| 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) | @@ -180,7 +180,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | +| 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) | @@ -240,7 +240,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | +| 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) | @@ -292,7 +292,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | +| 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 | @@ -337,7 +337,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | +| 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) | @@ -384,7 +384,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | +| 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) | @@ -430,7 +430,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | +| 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) | @@ -476,7 +476,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | +| 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 | @@ -497,7 +497,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra ### `tenant` — 82 tests -- **Prerequisite to create**: tenant + client, tenant + group, tenant + groupid, tenant + mappingrule, tenant + role, tenant + user +- **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 @@ -532,11 +532,11 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | +| 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 | @@ -590,7 +590,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra ### `role` — 65 tests -- **Prerequisite to create**: client + role, group + role, mappingrule + role, role + client, role + group, role + mappingrule, role + user, user + role +- **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 @@ -619,10 +619,10 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | +| 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 | @@ -666,7 +666,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra ### `group` — 59 tests -- **Prerequisite to create**: group + client, group + mappingrule, group + role, group + user +- **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 @@ -694,9 +694,9 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | +| 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 | diff --git a/coverage-analysis/tests.csv b/coverage-analysis/tests.csv index 5c4c078..00645f8 100644 --- a/coverage-analysis/tests.csv +++ b/coverage-analysis/tests.csv @@ -7,11 +7,11 @@ activateJobs.variant.spec.ts,12,variant,job,G. Job Lifecycle & Stats,create,crea 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 + mappingrule,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 + mappingrule,PUT,/tenants/{tenantId}/mapping-rules/{mappingRuleId},assignMappingRuleToTenant,happy-path,feature-1 - assignMappingRuleToTenant - 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,mappingrule + role,PUT,/roles/{roleId}/mapping-rules/{mappingRuleId},assignRoleToMappingRule,happy-path,feature-1 - assignRoleToMappingRule - 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) @@ -356,9 +356,9 @@ searchGlobalTaskListeners.feature.spec.ts,12,feature,global-task-listener,A. Ent 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,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,variant-2 - searchGlobalTaskListeners - path #1 -searchGroupIdsForTenant.feature.spec.ts,12,feature,tenant,B. Membership/Association,search,observe-present-search,tenant + groupid,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 + groupid,POST,/tenants/{tenantId}/groups/search,searchGroupIdsForTenant,data-driven,variant-1 - searchGroupIdsForTenant - path #1 -searchGroupIdsForTenant.variant.spec.ts,88,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + groupid,POST,/tenants/{tenantId}/groups/search,searchGroupIdsForTenant,data-driven,variant-2 - searchGroupIdsForTenant - 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,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,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,variant-1 - searchGroups - path #1 @@ -387,18 +387,18 @@ searchMappingRule.feature.spec.ts,37,feature,mapping-rule,A. Entity Lifecycle (C searchMappingRule.variant.spec.ts,12,variant,mapping-rule,A. Entity Lifecycle (CRUD),search,observe-present-search,none,POST,/mapping-rules/search,searchMappingRule,data-driven,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,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,variant-3 - searchMappingRule - path #1 -searchMappingRulesForGroup.feature.spec.ts,12,feature,group,B. Membership/Association,search,observe-present-search,group + mappingrule,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 + mappingrule,POST,/groups/{groupId}/mapping-rules/search,searchMappingRulesForGroup,data-driven,variant-1 - searchMappingRulesForGroup - path #1 -searchMappingRulesForGroup.variant.spec.ts,84,variant,group,B. Membership/Association,search,observe-present-search,group + mappingrule,POST,/groups/{groupId}/mapping-rules/search,searchMappingRulesForGroup,data-driven,variant-2 - searchMappingRulesForGroup - path #1 -searchMappingRulesForGroup.variant.spec.ts,159,variant,group,B. Membership/Association,search,observe-present-search,group + mappingrule,POST,/groups/{groupId}/mapping-rules/search,searchMappingRulesForGroup,data-driven,variant-3 - searchMappingRulesForGroup - path #1 -searchMappingRulesForRole.feature.spec.ts,12,feature,role,B. Membership/Association,search,observe-present-search,role + mappingrule,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 + mappingrule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,data-driven,variant-1 - searchMappingRulesForRole - path #1 -searchMappingRulesForRole.variant.spec.ts,124,variant,role,B. Membership/Association,search,observe-present-search,role + mappingrule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,data-driven,variant-2 - searchMappingRulesForRole - path #1 -searchMappingRulesForRole.variant.spec.ts,199,variant,role,B. Membership/Association,search,observe-present-search,role + mappingrule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,data-driven,variant-3 - searchMappingRulesForRole - path #1 -searchMappingRulesForTenant.feature.spec.ts,12,feature,tenant,B. Membership/Association,search,observe-present-search,tenant + mappingrule,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 + mappingrule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,data-driven,variant-1 - searchMappingRulesForTenant - path #1 -searchMappingRulesForTenant.variant.spec.ts,126,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + mappingrule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,data-driven,variant-2 - searchMappingRulesForTenant - path #1 -searchMappingRulesForTenant.variant.spec.ts,203,variant,tenant,B. Membership/Association,search,observe-present-search,tenant + mappingrule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,data-driven,variant-3 - searchMappingRulesForTenant - 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,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,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,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,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,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,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,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,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,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,variant-1 - searchMessageSubscriptions - path #1 @@ -499,11 +499,11 @@ throwJobError.feature.spec.ts,9,feature,job,G. Job Lifecycle & Stats,create,crea 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 + mappingrule,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 + mappingrule,DELETE,/tenants/{tenantId}/mapping-rules/{mappingRuleId},unassignMappingRuleFromTenant,happy-path,feature-1 - unassignMappingRuleFromTenant - 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,mappingrule + role,DELETE,/roles/{roleId}/mapping-rules/{mappingRuleId},unassignRoleFromMappingRule,happy-path,feature-1 - unassignRoleFromMappingRule - 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) @@ -524,15 +524,15 @@ updateTenantClusterVariable.feature.spec.ts,11,feature,cluster-variables,A. Enti 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 + mappingrule,PUT,/groups/{groupId}/mapping-rules/{mappingRuleId},assignMappingRuleToGroup,happy-path|observe-absence,"establish GroupMappingRuleMembership, 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,mappingrule + role,PUT,/roles/{roleId}/mapping-rules/{mappingRuleId},assignRoleToMappingRule,happy-path|observe-absence,"establish RoleMappingRuleMembership, 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 + mappingrule,PUT,/tenants/{tenantId}/mapping-rules/{mappingRuleId},assignMappingRuleToTenant,happy-path|observe-absence,"establish TenantMappingRuleMembership, 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" @@ -859,8 +859,8 @@ request-validation/globaltasklisteners-validation-api-tests.spec.ts,666,request- 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 + mappingrule,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 + mappingrule,PUT,/groups/{groupId}/mapping-rules/{mappingRuleId},assignMappingRuleToGroup,bad-request,assignMappingRuleToGroup - Path param mappingRuleId pattern 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 @@ -888,12 +888,12 @@ request-validation/groups-validation-api-tests.spec.ts,489,request-validation,gr 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 + mappingrule,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 + mappingrule,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 + mappingrule,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 + mappingrule,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 + mappingrule,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 + mappingrule,POST,/groups/{groupId}/mapping-rules/search,searchMappingRulesForGroup,bad-request,searchMappingRulesForGroup - Path param groupId length-max violation +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 @@ -908,8 +908,8 @@ request-validation/groups-validation-api-tests.spec.ts,865,request-validation,gr 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 + mappingrule,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 + mappingrule,DELETE,/groups/{groupId}/mapping-rules/{mappingRuleId},unassignMappingRuleFromGroup,bad-request,unassignMappingRuleFromGroup - Path param mappingRuleId pattern 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 @@ -1367,8 +1367,8 @@ request-validation/roles-validation-api-tests.spec.ts,18,request-validation,role 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,mappingrule + 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,mappingrule + role,PUT,/roles/{roleId}/mapping-rules/{mappingRuleId},assignRoleToMappingRule,bad-request,assignRoleToMappingRule - 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 @@ -1398,12 +1398,12 @@ request-validation/roles-validation-api-tests.spec.ts,541,request-validation,rol 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 + mappingrule,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 + mappingrule,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 + mappingrule,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 + mappingrule,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 + mappingrule,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 + mappingrule,POST,/roles/{roleId}/mapping-rules/search,searchMappingRulesForRole,bad-request,searchMappingRulesForRole - 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 @@ -1419,8 +1419,8 @@ request-validation/roles-validation-api-tests.spec.ts,917,request-validation,rol 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,mappingrule + 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,mappingrule + role,DELETE,/roles/{roleId}/mapping-rules/{mappingRuleId},unassignRoleFromMappingRule,bad-request,unassignRoleFromMappingRule - 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 @@ -1467,8 +1467,8 @@ request-validation/tenants-validation-api-tests.spec.ts,18,request-validation,te 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 + mappingrule,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 + mappingrule,PUT,/tenants/{tenantId}/mapping-rules/{mappingRuleId},assignMappingRuleToTenant,bad-request,assignMappingRuleToTenant - 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 @@ -1495,18 +1495,18 @@ request-validation/tenants-validation-api-tests.spec.ts,486,request-validation,t 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 + groupid,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 + groupid,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 + groupid,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 + groupid,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 + groupid,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 + groupid,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 + mappingrule,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 + mappingrule,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 + mappingrule,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 + mappingrule,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 + mappingrule,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 + mappingrule,POST,/tenants/{tenantId}/mapping-rules/search,searchMappingRulesForTenant,bad-request,searchMappingRulesForTenant - 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 @@ -1528,8 +1528,8 @@ request-validation/tenants-validation-api-tests.spec.ts,1102,request-validation, 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 + mappingrule,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 + mappingrule,DELETE,/tenants/{tenantId}/mapping-rules/{mappingRuleId},unassignMappingRuleFromTenant,bad-request,unassignMappingRuleFromTenant - 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 From 88f25d2a0b750575cb988b62aa687c9331fcf525 Mon Sep 17 00:00:00 2001 From: esraagamal6 Date: Tue, 19 May 2026 13:54:45 +0200 Subject: [PATCH 09/15] feat(coverage-analysis): body-detect pagination/filter request shapes The classifier previously only inspected test names. Variant emitter tests exercise pagination (page.after cursor) and filter (filter: { ... } body) on many search and batch-operation specs, but their names are generic (variant-N - X - path #1) so they were bucketed as data-driven/unlabeled instead of pagination-sort / filter. Added body-shape detection: if a test() block contains 'page: {' or 'sort: [' in the request body, add 'pagination-sort' to its variants; if it contains 'filter: {', add 'filter'. Matches the field-assignment form so response-access expressions (json?.page?.startCursor) don't false-positive. Effect on the matrix: - pagination-sort: 0 -> 85 (upstream 53) - filter: 0 -> 196 (upstream 85) - unlabeled: 12 -> 1 README updated to flag the semantic distinction: these counts are request-shape coverage, not behaviour coverage. Upstream's hand-written pagination/filter tests assert results; generator's only assert status code + response schema. Co-Authored-By: Claude Opus 4.7 (1M context) --- coverage-analysis/README.md | 49 +- coverage-analysis/build_coverage.py | 39 +- coverage-analysis/category_breakdown.md | 612 ++++++++++++------------ coverage-analysis/coverage_matrix.csv | 68 +-- coverage-analysis/coverage_matrix.md | 136 +++--- coverage-analysis/gaps.md | 25 - coverage-analysis/tests.csv | 556 ++++++++++----------- 7 files changed, 742 insertions(+), 743 deletions(-) diff --git a/coverage-analysis/README.md b/coverage-analysis/README.md index b24cd2c..a586878 100644 --- a/coverage-analysis/README.md +++ b/coverage-analysis/README.md @@ -87,37 +87,27 @@ unique-test count; variant columns are label-occurrences, so a test tagged |---|---:|---:| | Unique tests | 1001 | **1617** | | Entities | 33 | 37 | -| Happy-path (occurrences) | 173 | 201 | +| 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** | -| Filter | 85 | **0** | -| Pagination-sort | 53 | **0** | | Conflict (409) | 31 | **0** | | Forbidden (403) | 29 | **0** | -| Observe-absence | 2 | 38 | -| Data-driven / oneOf variants | 5 | **302** | - -**The generator emits 616 more tests than upstream.** It massively exceeds -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`). + +**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) — needs deployment-mode-aware auth - context, see `camunda/camunda#52511`. -- **403 forbidden** (29 in upstream) — needs RBAC ABox + restricted-token - test infrastructure. +- **401 unauthorized** (165 in upstream) — needs deployment-mode-aware auth context, see `camunda/camunda#52511`. +- **403 forbidden** (29 in upstream) — needs RBAC ABox + restricted-token test infrastructure. - **404 not-found** (127 in upstream) — fake-ID variant on path params; computable. -- **409 conflict** (31 in upstream) — needs `duplicatePolicy` ABox slice - (designed in 8.8, not yet landed; see #277). -- **Pagination + sort** (53 in upstream) — computable from declared params. -- **Filter** (85 in upstream) — computable from filter schemas on search ops. +- **409 conflict** (31 in upstream) — needs `duplicatePolicy` ABox slice (designed in 8.8, not yet landed; see #277). See `gaps.md` for the categorised per-entity list. @@ -127,9 +117,16 @@ See `gaps.md` for the categorised per-entity list. 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), but - emits zero tests for 401/403/404/409 and zero for pagination/sort and filter. - Those zero columns are a generator capability gap, not a classifier - limitation — see `gaps.md` for the per-entity breakdown. + `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 index 7c2a3fb..91da9a5 100644 --- a/coverage-analysis/build_coverage.py +++ b/coverage-analysis/build_coverage.py @@ -327,14 +327,35 @@ def load_edge_index(): 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 tm in TEST_RE.finditer(content): - out.append((tm.group(1), content.count('\n', 0, tm.start()) + 1)) + 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) @@ -356,8 +377,14 @@ def resolve_op(op_id): method, path, entity, operation = resolve_op(op_id) if entity == 'unknown': unresolved_ops.add(op_id) - for name, line_no in read_tests(os.path.join(PLAYWRIGHT_DIR, f)): + 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. + extras = body_extra_variants(body) + if extras: + base = [] if variants == 'unlabeled' else 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, @@ -384,7 +411,7 @@ def resolve_op(op_id): method, path, entity, operation = resolve_op(op_id) else: method, path, entity, operation = '', '', 'unknown', 'lifecycle' - for name, line_no in read_tests(os.path.join(EDGES_DIR, f)): + 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', @@ -408,7 +435,7 @@ def resolve_op(op_id): continue ent_pascal = m.group('entity') entity = PASCAL_TO_SLUG.get(ent_pascal, ent_pascal.lower()) - for name, line_no in read_tests(os.path.join(ENTITIES_DIR, f)): + 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', @@ -429,7 +456,7 @@ def resolve_op(op_id): for f in sorted(os.listdir(REQVAL_DIR)): if not f.endswith('.spec.ts'): continue - for name, line_no in read_tests(os.path.join(REQVAL_DIR, f)): + 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 '' diff --git a/coverage-analysis/category_breakdown.md b/coverage-analysis/category_breakdown.md index 20aef71..50195d9 100644 --- a/coverage-analysis/category_breakdown.md +++ b/coverage-analysis/category_breakdown.md @@ -35,7 +35,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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 +- **Variants**: happy-path=11, observe-absence=3, data-driven=2, bad-request=48, pagination-sort=2 | form step | variants | file:line | test name | |--|--|--|--| @@ -44,8 +44,8 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | `searchClusterVariables.variant.spec.ts:12` | variant-1 - searchClusterVariables - path #1 | -| observe-present-search | data-driven | `searchClusterVariables.variant.spec.ts:66` | variant-2 - searchClusterVariables - path #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) | @@ -108,16 +108,16 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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 +- **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 | `searchMappingRule.variant.spec.ts:12` | variant-1 - searchMappingRule - path #1 | -| observe-present-search | data-driven | `searchMappingRule.variant.spec.ts:107` | variant-2 - searchMappingRule - path #1 | -| observe-present-search | data-driven | `searchMappingRule.variant.spec.ts:161` | variant-3 - searchMappingRule - path #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) | @@ -168,15 +168,15 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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 +- **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 | `searchGlobalTaskListeners.variant.spec.ts:12` | variant-1 - searchGlobalTaskListeners - path #1 | -| observe-present-search | data-driven | `searchGlobalTaskListeners.variant.spec.ts:66` | variant-2 - searchGlobalTaskListeners - path #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) | @@ -227,16 +227,16 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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 +- **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 | `searchTenants.variant.spec.ts:12` | variant-1 - searchTenants - path #1 | -| observe-present-search | data-driven | `searchTenants.variant.spec.ts:63` | variant-2 - searchTenants - path #1 | -| observe-present-search | data-driven | `searchTenants.variant.spec.ts:115` | variant-3 - searchTenants - path #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) | @@ -276,7 +276,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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 +- **Variants**: happy-path=6, observe-absence=2, data-driven=6, bad-request=24, pagination-sort=2 | form step | variants | file:line | test name | |--|--|--|--| @@ -285,8 +285,8 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | `searchAuthorizations.variant.spec.ts:12` | variant-1 - searchAuthorizations - path #1 | -| observe-present-search | data-driven | `searchAuthorizations.variant.spec.ts:66` | variant-2 - searchAuthorizations - path #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) | @@ -324,16 +324,16 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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 +- **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 | `searchRoles.variant.spec.ts:12` | variant-1 - searchRoles - path #1 | -| observe-present-search | data-driven | `searchRoles.variant.spec.ts:105` | variant-2 - searchRoles - path #1 | -| observe-present-search | data-driven | `searchRoles.variant.spec.ts:157` | variant-3 - searchRoles - path #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) | @@ -372,15 +372,15 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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 +- **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 | `searchGroups.variant.spec.ts:12` | variant-1 - searchGroups - path #1 | -| observe-present-search | data-driven | `searchGroups.variant.spec.ts:64` | variant-2 - searchGroups - path #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) | @@ -418,15 +418,15 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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 +- **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 | `searchUsers.variant.spec.ts:12` | variant-1 - searchUsers - path #1 | -| observe-present-search | data-driven | `searchUsers.variant.spec.ts:64` | variant-2 - searchUsers - path #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) | @@ -501,27 +501,27 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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 +- **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 | `searchClientsForTenant.variant.spec.ts:12` | variant-1 - searchClientsForTenant - path #1 | -| observe-present-search | data-driven | `searchClientsForTenant.variant.spec.ts:88` | variant-2 - searchClientsForTenant - path #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 | `searchGroupIdsForTenant.variant.spec.ts:12` | variant-1 - searchGroupIdsForTenant - path #1 | -| observe-present-search | data-driven | `searchGroupIdsForTenant.variant.spec.ts:88` | variant-2 - searchGroupIdsForTenant - path #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 | `searchMappingRulesForTenant.variant.spec.ts:12` | variant-1 - searchMappingRulesForTenant - path #1 | -| observe-present-search | data-driven | `searchMappingRulesForTenant.variant.spec.ts:126` | variant-2 - searchMappingRulesForTenant - path #1 | -| observe-present-search | data-driven | `searchMappingRulesForTenant.variant.spec.ts:203` | variant-3 - searchMappingRulesForTenant - path #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 | `searchRolesForTenant.variant.spec.ts:12` | variant-1 - searchRolesForTenant - path #1 | -| observe-present-search | data-driven | `searchRolesForTenant.variant.spec.ts:126` | variant-2 - searchRolesForTenant - path #1 | -| observe-present-search | data-driven | `searchRolesForTenant.variant.spec.ts:203` | variant-3 - searchRolesForTenant - path #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 | `searchUsersForTenant.variant.spec.ts:12` | variant-1 - searchUsersForTenant - path #1 | -| observe-present-search | data-driven | `searchUsersForTenant.variant.spec.ts:88` | variant-2 - searchUsersForTenant - path #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) | @@ -594,23 +594,23 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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 +- **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 | `searchClientsForRole.variant.spec.ts:12` | variant-1 - searchClientsForRole - path #1 | -| observe-present-search | data-driven | `searchClientsForRole.variant.spec.ts:86` | variant-2 - searchClientsForRole - path #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 | `searchGroupsForRole.variant.spec.ts:12` | variant-1 - searchGroupsForRole - path #1 | -| observe-present-search | data-driven | `searchGroupsForRole.variant.spec.ts:86` | variant-2 - searchGroupsForRole - path #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 | `searchMappingRulesForRole.variant.spec.ts:12` | variant-1 - searchMappingRulesForRole - path #1 | -| observe-present-search | data-driven | `searchMappingRulesForRole.variant.spec.ts:124` | variant-2 - searchMappingRulesForRole - path #1 | -| observe-present-search | data-driven | `searchMappingRulesForRole.variant.spec.ts:199` | variant-3 - searchMappingRulesForRole - path #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 | `searchUsersForRole.variant.spec.ts:12` | variant-1 - searchUsersForRole - path #1 | -| observe-present-search | data-driven | `searchUsersForRole.variant.spec.ts:86` | variant-2 - searchUsersForRole - path #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) | @@ -670,24 +670,24 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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 +- **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 | `searchClientsForGroup.variant.spec.ts:12` | variant-1 - searchClientsForGroup - path #1 | -| observe-present-search | data-driven | `searchClientsForGroup.variant.spec.ts:86` | variant-2 - searchClientsForGroup - path #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 | `searchMappingRulesForGroup.variant.spec.ts:12` | variant-1 - searchMappingRulesForGroup - path #1 | -| observe-present-search | data-driven | `searchMappingRulesForGroup.variant.spec.ts:84` | variant-2 - searchMappingRulesForGroup - path #1 | -| observe-present-search | data-driven | `searchMappingRulesForGroup.variant.spec.ts:159` | variant-3 - searchMappingRulesForGroup - path #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 | `searchRolesForGroup.variant.spec.ts:12` | variant-1 - searchRolesForGroup - path #1 | -| observe-present-search | data-driven | `searchRolesForGroup.variant.spec.ts:84` | variant-2 - searchRolesForGroup - path #1 | -| observe-present-search | data-driven | `searchRolesForGroup.variant.spec.ts:159` | variant-3 - searchRolesForGroup - path #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 | `searchUsersForGroup.variant.spec.ts:12` | variant-1 - searchUsersForGroup - path #1 | -| observe-present-search | data-driven | `searchUsersForGroup.variant.spec.ts:86` | variant-2 - searchUsersForGroup - path #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) | @@ -746,36 +746,36 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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 +- **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 | `getProcessDefinitionInstanceVersionStatistics.feature.spec.ts:12` | feature-1 - getProcessDefinitionInstanceVersionStatistics - base (1) | -| observe-present-get | data-driven | `getProcessDefinitionInstanceVersionStatistics.variant.spec.ts:12` | variant-1 - getProcessDefinitionInstanceVersionStatistics - bpmn #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 | `getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts:13` | variant-1 - getProcessDefinitionMessageSubscriptionStatistics - path #1 | -| observe-present-get | data-driven | `getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts:72` | variant-2 - getProcessDefinitionMessageSubscriptionStatistics - path #1 | -| observe-present-get | data-driven | `getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts:133` | variant-3 - getProcessDefinitionMessageSubscriptionStatistics - bpmn #1 | -| observe-present-get | data-driven | `getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts:190` | variant-4 - getProcessDefinitionMessageSubscriptionStatistics - bpmn #1 | -| observe-present-get | data-driven | `getProcessDefinitionMessageSubscriptionStatistics.variant.spec.ts:268` | variant-5 - getProcessDefinitionMessageSubscriptionStatistics - bpmn #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 | `getProcessDefinitionStatistics.variant.spec.ts:12` | variant-1 - getProcessDefinitionStatistics - bpmn #1 | -| observe-present-get | data-driven | `getProcessDefinitionStatistics.variant.spec.ts:86` | variant-2 - getProcessDefinitionStatistics - bpmn #1 | -| observe-present-get | data-driven | `getProcessDefinitionStatistics.variant.spec.ts:160` | variant-3 - getProcessDefinitionStatistics - bpmn #1 | -| observe-present-get | data-driven | `getProcessDefinitionStatistics.variant.spec.ts:214` | variant-4 - getProcessDefinitionStatistics - bpmn #1 | -| observe-present-get | data-driven | `getProcessDefinitionStatistics.variant.spec.ts:268` | variant-5 - getProcessDefinitionStatistics - bpmn #1 | -| observe-present-get | data-driven | `getProcessDefinitionStatistics.variant.spec.ts:346` | variant-6 - getProcessDefinitionStatistics - bpmn #1 | -| observe-present-get | data-driven | `getProcessDefinitionStatistics.variant.spec.ts:424` | variant-7 - getProcessDefinitionStatistics - bpmn #1 | -| observe-present-get | data-driven | `getProcessDefinitionStatistics.variant.spec.ts:482` | variant-8 - getProcessDefinitionStatistics - bpmn #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 | `searchProcessDefinitions.variant.spec.ts:13` | variant-1 - searchProcessDefinitions - path #1 | -| observe-present-search | data-driven | `searchProcessDefinitions.variant.spec.ts:86` | variant-2 - searchProcessDefinitions - bpmn #1 | -| observe-present-search | data-driven | `searchProcessDefinitions.variant.spec.ts:138` | variant-3 - searchProcessDefinitions - path #1 | -| observe-present-search | data-driven | `searchProcessDefinitions.variant.spec.ts:214` | variant-4 - searchProcessDefinitions - path #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 | @@ -827,7 +827,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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 +- **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 | |--|--|--|--| @@ -840,11 +840,11 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | `searchResources.variant.spec.ts:13` | variant-1 - searchResources - bpmn #1 | -| observe-present-search | data-driven | `searchResources.variant.spec.ts:62` | variant-2 - searchResources - path #1 | -| observe-present-search | data-driven | `searchResources.variant.spec.ts:130` | variant-3 - searchResources - path #1 | -| observe-present-search | data-driven | `searchResources.variant.spec.ts:180` | variant-4 - searchResources - path #1 | -| observe-present-search | data-driven | `searchResources.variant.spec.ts:232` | variant-5 - searchResources - path #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 | @@ -874,7 +874,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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 +- **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 | |--|--|--|--| @@ -885,12 +885,12 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | `searchDecisionDefinitions.variant.spec.ts:13` | variant-1 - searchDecisionDefinitions - dmn #1 | -| observe-present-search | data-driven | `searchDecisionDefinitions.variant.spec.ts:64` | variant-2 - searchDecisionDefinitions - path #1 | -| observe-present-search | data-driven | `searchDecisionDefinitions.variant.spec.ts:117` | variant-3 - searchDecisionDefinitions - dmn #1 | -| observe-present-search | data-driven | `searchDecisionDefinitions.variant.spec.ts:168` | variant-4 - searchDecisionDefinitions - drd #1 | -| observe-present-search | data-driven | `searchDecisionDefinitions.variant.spec.ts:219` | variant-5 - searchDecisionDefinitions - path #1 | -| observe-present-search | data-driven | `searchDecisionDefinitions.variant.spec.ts:273` | variant-6 - searchDecisionDefinitions - path #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 | @@ -913,17 +913,17 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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 +- **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 | `searchDecisionRequirements.variant.spec.ts:13` | variant-1 - searchDecisionRequirements - drd #1 | -| observe-present-search | data-driven | `searchDecisionRequirements.variant.spec.ts:64` | variant-2 - searchDecisionRequirements - path #1 | -| observe-present-search | data-driven | `searchDecisionRequirements.variant.spec.ts:116` | variant-3 - searchDecisionRequirements - path #1 | -| observe-present-search | data-driven | `searchDecisionRequirements.variant.spec.ts:170` | variant-4 - searchDecisionRequirements - path #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 | @@ -945,7 +945,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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 +- **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 | |--|--|--|--| @@ -962,41 +962,41 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | `searchProcessInstanceIncidents.variant.spec.ts:13` | variant-1 - searchProcessInstanceIncidents - cycle/bpmn+bpmn #1 | -| observe-present-search | data-driven | `searchProcessInstanceIncidents.variant.spec.ts:109` | variant-2 - searchProcessInstanceIncidents - bpmn #1 | -| observe-present-search | data-driven | `searchProcessInstanceIncidents.variant.spec.ts:187` | variant-3 - searchProcessInstanceIncidents - bpmn #1 | -| observe-present-search | data-driven | `searchProcessInstanceIncidents.variant.spec.ts:297` | variant-4 - searchProcessInstanceIncidents - bpmn #1 | -| observe-present-search | data-driven | `searchProcessInstanceIncidents.variant.spec.ts:407` | variant-5 - searchProcessInstanceIncidents - bpmn #1 | -| observe-present-search | data-driven | `searchProcessInstanceIncidents.variant.spec.ts:512` | variant-6 - searchProcessInstanceIncidents - bpmn #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 | `searchProcessInstances.variant.spec.ts:13` | variant-1 - searchProcessInstances - path #1 | -| observe-present-search | data-driven | `searchProcessInstances.variant.spec.ts:87` | variant-2 - searchProcessInstances - bpmn #1 | -| observe-present-search | data-driven | `searchProcessInstances.variant.spec.ts:161` | variant-3 - searchProcessInstances - bpmn #1 | -| observe-present-search | data-driven | `searchProcessInstances.variant.spec.ts:235` | variant-4 - searchProcessInstances - bpmn #1 | -| observe-present-search | data-driven | `searchProcessInstances.variant.spec.ts:337` | variant-5 - searchProcessInstances - bpmn #1 | -| observe-present-search | data-driven | `searchProcessInstances.variant.spec.ts:440` | variant-6 - searchProcessInstances - path #1 | -| observe-present-search | data-driven | `searchProcessInstances.variant.spec.ts:518` | variant-7 - searchProcessInstances - bpmn #1 | -| observe-present-search | data-driven | `searchProcessInstances.variant.spec.ts:596` | variant-8 - searchProcessInstances - bpmn #1 | -| observe-present-search | data-driven | `searchProcessInstances.variant.spec.ts:674` | variant-9 - searchProcessInstances - bpmn #1 | -| observe-present-search | data-driven | `searchProcessInstances.variant.spec.ts:780` | variant-10 - searchProcessInstances - bpmn #1 | -| observe-present-search | data-driven | `searchProcessInstances.variant.spec.ts:887` | variant-11 - searchProcessInstances - path #1 | -| observe-present-search | data-driven | `searchProcessInstances.variant.spec.ts:983` | variant-12 - searchProcessInstances - path #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 | `migrateProcessInstancesBatchOperation.feature.spec.ts:12` | feature-1 - migrateProcessInstancesBatchOperation - base (1) | -| mutate | data-driven | `migrateProcessInstancesBatchOperation.variant.spec.ts:12` | variant-1 - migrateProcessInstancesBatchOperation - bpmn #1 | -| mutate | data-driven | `migrateProcessInstancesBatchOperation.variant.spec.ts:66` | variant-2 - migrateProcessInstancesBatchOperation - bpmn #1 | -| mutate | data-driven | `migrateProcessInstancesBatchOperation.variant.spec.ts:141` | variant-3 - migrateProcessInstancesBatchOperation - bpmn #1 | -| mutate | data-driven | `migrateProcessInstancesBatchOperation.variant.spec.ts:216` | variant-4 - migrateProcessInstancesBatchOperation - bpmn #1 | -| mutate | data-driven | `migrateProcessInstancesBatchOperation.variant.spec.ts:271` | variant-5 - migrateProcessInstancesBatchOperation - bpmn #1 | -| mutate | data-driven | `migrateProcessInstancesBatchOperation.variant.spec.ts:326` | variant-6 - migrateProcessInstancesBatchOperation - bpmn #1 | -| mutate | data-driven | `migrateProcessInstancesBatchOperation.variant.spec.ts:384` | variant-7 - migrateProcessInstancesBatchOperation - bpmn #1 | -| mutate | data-driven | `migrateProcessInstancesBatchOperation.variant.spec.ts:463` | variant-8 - migrateProcessInstancesBatchOperation - bpmn #1 | -| mutate | data-driven | `migrateProcessInstancesBatchOperation.variant.spec.ts:542` | variant-9 - migrateProcessInstancesBatchOperation - bpmn #1 | -| mutate | data-driven | `migrateProcessInstancesBatchOperation.variant.spec.ts:601` | variant-10 - migrateProcessInstancesBatchOperation - bpmn #1 | -| mutate | data-driven | `migrateProcessInstancesBatchOperation.variant.spec.ts:660` | variant-11 - migrateProcessInstancesBatchOperation - bpmn #1 | -| mutate | data-driven | `migrateProcessInstancesBatchOperation.variant.spec.ts:720` | variant-12 - migrateProcessInstancesBatchOperation - 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 | @@ -1006,55 +1006,55 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | `modifyProcessInstancesBatchOperation.feature.spec.ts:11` | feature-1 - modifyProcessInstancesBatchOperation - base (1) | -| mutate | data-driven | `modifyProcessInstancesBatchOperation.variant.spec.ts:12` | variant-1 - modifyProcessInstancesBatchOperation - bpmn #1 | -| mutate | data-driven | `modifyProcessInstancesBatchOperation.variant.spec.ts:65` | variant-2 - modifyProcessInstancesBatchOperation - bpmn #1 | -| mutate | data-driven | `modifyProcessInstancesBatchOperation.variant.spec.ts:139` | variant-3 - modifyProcessInstancesBatchOperation - bpmn #1 | -| mutate | data-driven | `modifyProcessInstancesBatchOperation.variant.spec.ts:213` | variant-4 - modifyProcessInstancesBatchOperation - bpmn #1 | -| mutate | data-driven | `modifyProcessInstancesBatchOperation.variant.spec.ts:315` | variant-5 - modifyProcessInstancesBatchOperation - bpmn #1 | -| mutate | data-driven | `modifyProcessInstancesBatchOperation.variant.spec.ts:417` | variant-6 - modifyProcessInstancesBatchOperation - bpmn #1 | -| mutate | data-driven | `modifyProcessInstancesBatchOperation.variant.spec.ts:474` | variant-7 - modifyProcessInstancesBatchOperation - bpmn #1 | -| mutate | data-driven | `modifyProcessInstancesBatchOperation.variant.spec.ts:552` | variant-8 - modifyProcessInstancesBatchOperation - bpmn #1 | -| mutate | data-driven | `modifyProcessInstancesBatchOperation.variant.spec.ts:630` | variant-9 - modifyProcessInstancesBatchOperation - bpmn #1 | -| mutate | data-driven | `modifyProcessInstancesBatchOperation.variant.spec.ts:736` | variant-10 - modifyProcessInstancesBatchOperation - bpmn #1 | -| mutate | data-driven | `modifyProcessInstancesBatchOperation.variant.spec.ts:842` | variant-11 - modifyProcessInstancesBatchOperation - bpmn #1 | -| mutate | data-driven | `modifyProcessInstancesBatchOperation.variant.spec.ts:946` | variant-12 - modifyProcessInstancesBatchOperation - bpmn #1 | -| mutate | happy-path | `resolveIncidentsBatchOperation.feature.spec.ts:11` | feature-1 - resolveIncidentsBatchOperation - base (1) | -| mutate | data-driven | `resolveIncidentsBatchOperation.variant.spec.ts:12` | variant-1 - resolveIncidentsBatchOperation - bpmn #1 | -| mutate | data-driven | `resolveIncidentsBatchOperation.variant.spec.ts:64` | variant-2 - resolveIncidentsBatchOperation - bpmn #1 | -| mutate | data-driven | `resolveIncidentsBatchOperation.variant.spec.ts:137` | variant-3 - resolveIncidentsBatchOperation - bpmn #1 | -| mutate | data-driven | `resolveIncidentsBatchOperation.variant.spec.ts:210` | variant-4 - resolveIncidentsBatchOperation - bpmn #1 | -| mutate | data-driven | `resolveIncidentsBatchOperation.variant.spec.ts:311` | variant-5 - resolveIncidentsBatchOperation - bpmn #1 | -| mutate | data-driven | `resolveIncidentsBatchOperation.variant.spec.ts:412` | variant-6 - resolveIncidentsBatchOperation - bpmn #1 | -| mutate | data-driven | `resolveIncidentsBatchOperation.variant.spec.ts:468` | variant-7 - resolveIncidentsBatchOperation - bpmn #1 | -| mutate | data-driven | `resolveIncidentsBatchOperation.variant.spec.ts:545` | variant-8 - resolveIncidentsBatchOperation - bpmn #1 | -| mutate | data-driven | `resolveIncidentsBatchOperation.variant.spec.ts:622` | variant-9 - resolveIncidentsBatchOperation - bpmn #1 | -| mutate | data-driven | `resolveIncidentsBatchOperation.variant.spec.ts:727` | variant-10 - resolveIncidentsBatchOperation - 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 | `cancelProcessInstancesBatchOperation.feature.spec.ts:11` | feature-1 - cancelProcessInstancesBatchOperation - base (1) | -| delete | data-driven | `cancelProcessInstancesBatchOperation.variant.spec.ts:12` | variant-1 - cancelProcessInstancesBatchOperation - bpmn #1 | -| delete | data-driven | `cancelProcessInstancesBatchOperation.variant.spec.ts:64` | variant-2 - cancelProcessInstancesBatchOperation - bpmn #1 | -| delete | data-driven | `cancelProcessInstancesBatchOperation.variant.spec.ts:137` | variant-3 - cancelProcessInstancesBatchOperation - bpmn #1 | -| delete | data-driven | `cancelProcessInstancesBatchOperation.variant.spec.ts:210` | variant-4 - cancelProcessInstancesBatchOperation - bpmn #1 | -| delete | data-driven | `cancelProcessInstancesBatchOperation.variant.spec.ts:311` | variant-5 - cancelProcessInstancesBatchOperation - bpmn #1 | -| delete | data-driven | `cancelProcessInstancesBatchOperation.variant.spec.ts:412` | variant-6 - cancelProcessInstancesBatchOperation - bpmn #1 | -| delete | data-driven | `cancelProcessInstancesBatchOperation.variant.spec.ts:468` | variant-7 - cancelProcessInstancesBatchOperation - bpmn #1 | -| delete | data-driven | `cancelProcessInstancesBatchOperation.variant.spec.ts:545` | variant-8 - cancelProcessInstancesBatchOperation - bpmn #1 | -| delete | data-driven | `cancelProcessInstancesBatchOperation.variant.spec.ts:622` | variant-9 - cancelProcessInstancesBatchOperation - bpmn #1 | -| delete | data-driven | `cancelProcessInstancesBatchOperation.variant.spec.ts:727` | variant-10 - cancelProcessInstancesBatchOperation - bpmn #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 | `deleteProcessInstancesBatchOperation.feature.spec.ts:11` | feature-1 - deleteProcessInstancesBatchOperation - base (1) | -| delete | data-driven | `deleteProcessInstancesBatchOperation.variant.spec.ts:12` | variant-1 - deleteProcessInstancesBatchOperation - bpmn #1 | -| delete | data-driven | `deleteProcessInstancesBatchOperation.variant.spec.ts:64` | variant-2 - deleteProcessInstancesBatchOperation - bpmn #1 | -| delete | data-driven | `deleteProcessInstancesBatchOperation.variant.spec.ts:137` | variant-3 - deleteProcessInstancesBatchOperation - bpmn #1 | -| delete | data-driven | `deleteProcessInstancesBatchOperation.variant.spec.ts:210` | variant-4 - deleteProcessInstancesBatchOperation - bpmn #1 | -| delete | data-driven | `deleteProcessInstancesBatchOperation.variant.spec.ts:311` | variant-5 - deleteProcessInstancesBatchOperation - bpmn #1 | -| delete | data-driven | `deleteProcessInstancesBatchOperation.variant.spec.ts:412` | variant-6 - deleteProcessInstancesBatchOperation - bpmn #1 | -| delete | data-driven | `deleteProcessInstancesBatchOperation.variant.spec.ts:468` | variant-7 - deleteProcessInstancesBatchOperation - bpmn #1 | -| delete | data-driven | `deleteProcessInstancesBatchOperation.variant.spec.ts:545` | variant-8 - deleteProcessInstancesBatchOperation - bpmn #1 | -| delete | data-driven | `deleteProcessInstancesBatchOperation.variant.spec.ts:622` | variant-9 - deleteProcessInstancesBatchOperation - bpmn #1 | -| delete | data-driven | `deleteProcessInstancesBatchOperation.variant.spec.ts:727` | variant-10 - deleteProcessInstancesBatchOperation - bpmn #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 | @@ -1244,17 +1244,17 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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 +- **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 | `getBatchOperation.feature.spec.ts:12` | feature-1 - getBatchOperation - base (1) | +| 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 | `searchBatchOperations.variant.spec.ts:12` | variant-1 - searchBatchOperations - path #1 | -| observe-present-search | data-driven | `searchBatchOperations.variant.spec.ts:66` | variant-2 - searchBatchOperations - path #1 | -| mutate | happy-path | `resumeBatchOperation.feature.spec.ts:8` | feature-1 - resumeBatchOperation - base (1) | -| mutate | happy-path | `suspendBatchOperation.feature.spec.ts:8` | feature-1 - suspendBatchOperation - base (1) | -| delete | happy-path | `cancelBatchOperation.feature.spec.ts:8` | feature-1 - cancelBatchOperation - 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 | @@ -1269,14 +1269,14 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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 +- **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 | `searchBatchOperationItems.variant.spec.ts:13` | variant-1 - searchBatchOperationItems - bpmn #1 | -| observe-present-search | data-driven | `searchBatchOperationItems.variant.spec.ts:84` | variant-2 - searchBatchOperationItems - path #1 | -| observe-present-search | data-driven | `searchBatchOperationItems.variant.spec.ts:138` | variant-3 - searchBatchOperationItems - path #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 | @@ -1296,7 +1296,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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 +- **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 | |--|--|--|--| @@ -1307,15 +1307,15 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | `searchUserTasks.variant.spec.ts:13` | variant-1 - searchUserTasks - bpmn #1 | -| observe-present-search | data-driven | `searchUserTasks.variant.spec.ts:114` | variant-2 - searchUserTasks - bpmn #1 | -| observe-present-search | data-driven | `searchUserTasks.variant.spec.ts:164` | variant-3 - searchUserTasks - path #1 | -| observe-present-search | data-driven | `searchUserTasks.variant.spec.ts:232` | variant-4 - searchUserTasks - bpmn #1 | -| observe-present-search | data-driven | `searchUserTasks.variant.spec.ts:282` | variant-5 - searchUserTasks - bpmn #1 | -| observe-present-search | data-driven | `searchUserTasks.variant.spec.ts:353` | variant-6 - searchUserTasks - bpmn #1 | -| observe-present-search | data-driven | `searchUserTasks.variant.spec.ts:454` | variant-7 - searchUserTasks - bpmn #1 | -| observe-present-search | data-driven | `searchUserTasks.variant.spec.ts:552` | variant-8 - searchUserTasks - path #1 | -| observe-present-search | data-driven | `searchUserTasks.variant.spec.ts:604` | variant-9 - searchUserTasks - path #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) | @@ -1378,7 +1378,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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 +- **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 | |--|--|--|--| @@ -1386,21 +1386,21 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | `getJobErrorStatistics.feature.spec.ts:11` | feature-1 - getJobErrorStatistics - base (1) | -| observe-present-get | data-driven | `getJobErrorStatistics.variant.spec.ts:12` | variant-1 - getJobErrorStatistics - path #1 | -| observe-present-get | happy-path | `getJobTimeSeriesStatistics.feature.spec.ts:11` | feature-1 - getJobTimeSeriesStatistics - base (1) | -| observe-present-get | data-driven | `getJobTimeSeriesStatistics.variant.spec.ts:12` | variant-1 - getJobTimeSeriesStatistics - path #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 | `getJobTypeStatistics.variant.spec.ts:12` | variant-1 - getJobTypeStatistics - path #1 | -| observe-present-get | happy-path | `getJobWorkerStatistics.feature.spec.ts:11` | feature-1 - getJobWorkerStatistics - base (1) | -| observe-present-get | data-driven | `getJobWorkerStatistics.variant.spec.ts:12` | variant-1 - getJobWorkerStatistics - path #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 | `searchJobs.variant.spec.ts:13` | variant-1 - searchJobs - bpmn #1 | -| observe-present-search | data-driven | `searchJobs.variant.spec.ts:116` | variant-2 - searchJobs - bpmn #1 | -| observe-present-search | data-driven | `searchJobs.variant.spec.ts:219` | variant-3 - searchJobs - path #1 | -| observe-present-search | data-driven | `searchJobs.variant.spec.ts:293` | variant-4 - searchJobs - bpmn #1 | -| observe-present-search | data-driven | `searchJobs.variant.spec.ts:366` | variant-5 - searchJobs - path #1 | -| observe-present-search | data-driven | `searchJobs.variant.spec.ts:462` | variant-6 - searchJobs - path #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) | @@ -1537,20 +1537,20 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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 +- **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 | `getProcessInstanceStatisticsByDefinition.feature.spec.ts:11` | feature-1 - getProcessInstanceStatisticsByDefinition - 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 | `searchIncidents.variant.spec.ts:13` | variant-1 - searchIncidents - bpmn #1 | -| observe-present-search | data-driven | `searchIncidents.variant.spec.ts:63` | variant-2 - searchIncidents - bpmn #1 | -| observe-present-search | data-driven | `searchIncidents.variant.spec.ts:134` | variant-3 - searchIncidents - bpmn #1 | -| observe-present-search | data-driven | `searchIncidents.variant.spec.ts:236` | variant-4 - searchIncidents - bpmn #1 | -| observe-present-search | data-driven | `searchIncidents.variant.spec.ts:338` | variant-5 - searchIncidents - path #1 | -| observe-present-search | data-driven | `searchIncidents.variant.spec.ts:390` | variant-6 - searchIncidents - path #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 | @@ -1595,36 +1595,36 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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 +- **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 | `searchDecisionInstances.variant.spec.ts:13` | variant-1 - searchDecisionInstances - dmn #1 | -| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:92` | variant-2 - searchDecisionInstances - dmn #1 | -| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:143` | variant-3 - searchDecisionInstances - path #1 | -| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:195` | variant-4 - searchDecisionInstances - dmn #1 | -| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:274` | variant-5 - searchDecisionInstances - bpmn #1 | -| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:326` | variant-6 - searchDecisionInstances - bpmn #1 | -| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:399` | variant-7 - searchDecisionInstances - dmn #1 | -| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:450` | variant-8 - searchDecisionInstances - bpmn #1 | -| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:552` | variant-9 - searchDecisionInstances - dmn #1 | -| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:603` | variant-10 - searchDecisionInstances - drd #1 | -| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:654` | variant-11 - searchDecisionInstances - path #1 | -| observe-present-search | data-driven | `searchDecisionInstances.variant.spec.ts:708` | variant-12 - searchDecisionInstances - path #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 | `deleteDecisionInstancesBatchOperation.feature.spec.ts:11` | feature-1 - deleteDecisionInstancesBatchOperation - base (1) | -| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:12` | variant-1 - deleteDecisionInstancesBatchOperation - dmn #1 | -| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:90` | variant-2 - deleteDecisionInstancesBatchOperation - dmn #1 | -| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:140` | variant-3 - deleteDecisionInstancesBatchOperation - path #1 | -| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:191` | variant-4 - deleteDecisionInstancesBatchOperation - dmn #1 | -| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:269` | variant-5 - deleteDecisionInstancesBatchOperation - bpmn #1 | -| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:321` | variant-6 - deleteDecisionInstancesBatchOperation - bpmn #1 | -| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:393` | variant-7 - deleteDecisionInstancesBatchOperation - dmn #1 | -| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:443` | variant-8 - deleteDecisionInstancesBatchOperation - bpmn #1 | -| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:544` | variant-9 - deleteDecisionInstancesBatchOperation - dmn #1 | -| delete | data-driven | `deleteDecisionInstancesBatchOperation.variant.spec.ts:594` | variant-10 - deleteDecisionInstancesBatchOperation - drd #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 | @@ -1684,7 +1684,7 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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 +- **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 | |--|--|--|--| @@ -1693,25 +1693,25 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra | 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 | `searchElementInstanceIncidents.variant.spec.ts:13` | variant-1 - searchElementInstanceIncidents - bpmn #1 | -| observe-present-search | data-driven | `searchElementInstanceIncidents.variant.spec.ts:122` | variant-2 - searchElementInstanceIncidents - bpmn #1 | -| observe-present-search | data-driven | `searchElementInstanceIncidents.variant.spec.ts:231` | variant-3 - searchElementInstanceIncidents - bpmn #1 | -| observe-present-search | data-driven | `searchElementInstanceIncidents.variant.spec.ts:340` | variant-4 - searchElementInstanceIncidents - bpmn #1 | -| observe-present-search | data-driven | `searchElementInstanceIncidents.variant.spec.ts:449` | variant-5 - searchElementInstanceIncidents - bpmn #1 | -| observe-present-search | data-driven | `searchElementInstanceIncidents.variant.spec.ts:584` | variant-6 - searchElementInstanceIncidents - bpmn #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 | `searchElementInstances.variant.spec.ts:13` | variant-1 - searchElementInstances - bpmn #1 | -| observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:63` | variant-2 - searchElementInstances - bpmn #1 | -| observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:162` | variant-3 - searchElementInstances - path #1 | -| observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:213` | variant-4 - searchElementInstances - bpmn #1 | -| observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:312` | variant-5 - searchElementInstances - bpmn #1 | -| observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:382` | variant-6 - searchElementInstances - bpmn #1 | -| observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:432` | variant-7 - searchElementInstances - bpmn #1 | -| observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:594` | variant-8 - searchElementInstances - bpmn #1 | -| observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:693` | variant-9 - searchElementInstances - path #1 | -| observe-present-search | data-driven | `searchElementInstances.variant.spec.ts:747` | variant-10 - searchElementInstances - path #1 | +| 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 | @@ -1750,27 +1750,27 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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 +- **Variants**: happy-path=2, observe-absence=1, data-driven=11, 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 | `searchAuditLogs.variant.spec.ts:13` | variant-1 - scenario | -| observe-present-search | data-driven | `searchAuditLogs.variant.spec.ts:42` | variant-2 - searchAuditLogs - bpmn #1 | -| observe-present-search | data-driven | `searchAuditLogs.variant.spec.ts:92` | variant-3 - searchAuditLogs - bpmn #1 | -| observe-present-search | data-driven | `searchAuditLogs.variant.spec.ts:163` | variant-4 - searchAuditLogs - bpmn #1 | -| observe-present-search | unlabeled | `searchAuditLogs.variant.spec.ts:265` | variant-5 - scenario | -| observe-present-search | unlabeled | `searchAuditLogs.variant.spec.ts:293` | variant-6 - scenario | -| observe-present-search | data-driven | `searchAuditLogs.variant.spec.ts:322` | variant-7 - searchAuditLogs - form #1 | -| observe-present-search | data-driven | `searchAuditLogs.variant.spec.ts:371` | variant-8 - searchAuditLogs - bpmn #1 | -| observe-present-search | data-driven | `searchAuditLogs.variant.spec.ts:421` | variant-9 - searchAuditLogs - bpmn #1 | -| observe-present-search | data-driven | `searchAuditLogs.variant.spec.ts:523` | variant-10 - searchAuditLogs - drd #1 | -| observe-present-search | data-driven | `searchAuditLogs.variant.spec.ts:572` | variant-11 - searchAuditLogs - dmn #1 | -| observe-present-search | data-driven | `searchAuditLogs.variant.spec.ts:621` | variant-12 - searchAuditLogs - dmn #1 | -| observe-present-search | unlabeled | `searchAuditLogs.variant.spec.ts:697` | variant-13 - scenario | -| observe-present-search | data-driven | `searchAuditLogs.variant.spec.ts:725` | variant-14 - searchAuditLogs - path #1 | -| observe-present-search | data-driven | `searchAuditLogs.variant.spec.ts:777` | variant-15 - searchAuditLogs - path #1 | +| observe-present-search | 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 | filter | `searchAuditLogs.variant.spec.ts:265` | variant-5 - scenario | +| observe-present-search | 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 | 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 | @@ -1785,18 +1785,18 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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 +- **Variants**: happy-path=2, observe-absence=1, data-driven=4, 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 | `searchVariables.variant.spec.ts:13` | variant-1 - searchVariables - path #1 | -| observe-present-search | unlabeled | `searchVariables.variant.spec.ts:64` | variant-2 - scenario | -| observe-present-search | unlabeled | `searchVariables.variant.spec.ts:93` | variant-3 - scenario | -| observe-present-search | data-driven | `searchVariables.variant.spec.ts:122` | variant-4 - searchVariables - bpmn #1 | -| observe-present-search | data-driven | `searchVariables.variant.spec.ts:191` | variant-5 - searchVariables - path #1 | -| observe-present-search | data-driven | `searchVariables.variant.spec.ts:243` | variant-6 - searchVariables - path #1 | +| observe-present-search | data-driven, filter | `searchVariables.variant.spec.ts:13` | variant-1 - searchVariables - path #1 | +| observe-present-search | filter | `searchVariables.variant.spec.ts:64` | variant-2 - scenario | +| observe-present-search | 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 | @@ -1884,17 +1884,17 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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 +- **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 | `searchCorrelatedMessageSubscriptions.variant.spec.ts:13` | variant-1 - searchCorrelatedMessageSubscriptions - bpmn #1 | -| observe-present-search | data-driven | `searchCorrelatedMessageSubscriptions.variant.spec.ts:117` | variant-2 - searchCorrelatedMessageSubscriptions - bpmn #1 | -| observe-present-search | data-driven | `searchCorrelatedMessageSubscriptions.variant.spec.ts:170` | variant-3 - searchCorrelatedMessageSubscriptions - bpmn #1 | -| observe-present-search | data-driven | `searchCorrelatedMessageSubscriptions.variant.spec.ts:244` | variant-4 - searchCorrelatedMessageSubscriptions - path #1 | -| observe-present-search | data-driven | `searchCorrelatedMessageSubscriptions.variant.spec.ts:305` | variant-5 - searchCorrelatedMessageSubscriptions - path #1 | -| observe-present-search | data-driven | `searchCorrelatedMessageSubscriptions.variant.spec.ts:360` | variant-6 - searchCorrelatedMessageSubscriptions - path #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 | @@ -1908,17 +1908,17 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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 +- **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 | `searchMessageSubscriptions.variant.spec.ts:13` | variant-1 - searchMessageSubscriptions - path #1 | -| observe-present-search | data-driven | `searchMessageSubscriptions.variant.spec.ts:69` | variant-2 - searchMessageSubscriptions - bpmn #1 | -| observe-present-search | data-driven | `searchMessageSubscriptions.variant.spec.ts:121` | variant-3 - searchMessageSubscriptions - bpmn #1 | -| observe-present-search | data-driven | `searchMessageSubscriptions.variant.spec.ts:195` | variant-4 - searchMessageSubscriptions - bpmn #1 | -| observe-present-search | data-driven | `searchMessageSubscriptions.variant.spec.ts:298` | variant-5 - searchMessageSubscriptions - path #1 | -| observe-present-search | data-driven | `searchMessageSubscriptions.variant.spec.ts:352` | variant-6 - searchMessageSubscriptions - path #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 | @@ -2110,20 +2110,20 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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 +- **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 | `searchAgentInstances.variant.spec.ts:13` | variant-1 - searchAgentInstances - bpmn #1 | -| observe-present-search | data-driven | `searchAgentInstances.variant.spec.ts:155` | variant-2 - searchAgentInstances - bpmn #1 | -| observe-present-search | data-driven | `searchAgentInstances.variant.spec.ts:256` | variant-3 - searchAgentInstances - bpmn #1 | -| observe-present-search | data-driven | `searchAgentInstances.variant.spec.ts:329` | variant-4 - searchAgentInstances - bpmn #1 | -| observe-present-search | data-driven | `searchAgentInstances.variant.spec.ts:381` | variant-5 - searchAgentInstances - bpmn #1 | -| observe-present-search | data-driven | `searchAgentInstances.variant.spec.ts:482` | variant-6 - searchAgentInstances - path #1 | -| observe-present-search | data-driven | `searchAgentInstances.variant.spec.ts:546` | variant-7 - searchAgentInstances - path #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 | diff --git a/coverage-analysis/coverage_matrix.csv b/coverage-analysis/coverage_matrix.csv index 74fc315..c72f2c2 100644 --- a/coverage-analysis/coverage_matrix.csv +++ b/coverage-analysis/coverage_matrix.csv @@ -1,109 +1,109 @@ 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,0,0,44,0 -process-instance,delete,74,4,50,0,0,0,0,0,0,0,20,0 -process-instance,search,38,2,17,0,0,0,0,0,0,1,18,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,0,0,0,4,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,0,0,1,6,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,0,0,1,15,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,0,0,1,12,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,0,0,1,12,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,0,0,10,0 -decision-instance,search,20,1,6,0,0,0,0,0,0,1,12,0 -process-definition,get,59,7,38,0,0,0,0,0,0,0,14,0 -process-definition,search,11,1,5,0,0,0,0,0,0,1,4,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,0,0,1,9,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,0,0,1,2,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,0,0,1,18,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,0,0,1,7,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,0,0,1,3,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,0,0,1,2,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,0,0,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,0,0,1,6,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,0,0,1,2,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,0,0,1,5,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,0,0,1,2,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,0,0,1,6,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,0,0,1,11,4 +audit-log,search,22,1,5,0,0,0,0,2,13,1,11,0 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,0,0,1,4,2 +variable,search,14,1,6,0,0,0,0,2,4,1,4,0 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,0,0,1,4,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,0,0,0,0 -batch-operation,update,2,2,0,0,0,0,0,0,0,0,0,0 -batch-operation,delete,1,1,0,0,0,0,0,0,0,0,0,0 -batch-operation,search,10,1,6,0,0,0,0,0,0,1,2,0 -correlated-message-subscription,search,13,1,5,0,0,0,0,0,0,1,6,0 -message-subscriptions,search,13,1,5,0,0,0,0,0,0,1,6,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,0,0,1,3,0 +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,delete,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 index a18cf50..395a7bb 100644 --- a/coverage-analysis/coverage_matrix.md +++ b/coverage-analysis/coverage_matrix.md @@ -12,109 +12,109 @@ Legend: ✓ = at least 1, blank = 0. |--|--|--:|--|--|--|--|--|--|--|--|--|--|--| | process-instance | create | 14 | ✓ | ✓ | | | | | | | | ✓ | | | process-instance | get | 8 | ✓ | ✓ | | | | | | | | | | -| process-instance | update | 148 | ✓ | ✓ | | | | | | | | ✓ | | -| process-instance | delete | 74 | ✓ | ✓ | | | | | | | | ✓ | | -| process-instance | search | 38 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| process-instance | update | 148 | ✓ | ✓ | | | | | | ✓ | | ✓ | | +| process-instance | delete | 74 | ✓ | ✓ | | | | | | ✓ | | ✓ | | +| process-instance | search | 38 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | | job | create | 32 | ✓ | ✓ | | | | | | | ✓ | ✓ | | -| job | get | 67 | ✓ | ✓ | | | | | | | | ✓ | | +| job | get | 67 | ✓ | ✓ | | | | | ✓ | ✓ | | ✓ | | | job | update | 30 | ✓ | ✓ | | | | | | | | ✓ | | -| job | search | 13 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| job | search | 13 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | | tenant | create | 15 | ✓ | ✓ | | | | | | | | | | | tenant | get | 2 | ✓ | ✓ | | | | | | | | | | | tenant | update | 23 | ✓ | ✓ | | | | | | | | | | | tenant | delete | 17 | ✓ | ✓ | | | | | | | | | | -| tenant | search | 57 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| tenant | search | 57 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | | tenant | lifecycle | 6 | ✓ | | | | | | | | ✓ | | | | role | create | 14 | ✓ | ✓ | | | | | | | | | | | role | get | 2 | ✓ | ✓ | | | | | | | | | | | role | update | 20 | ✓ | ✓ | | | | | | | | | | | role | delete | 14 | ✓ | ✓ | | | | | | | | | | -| role | search | 47 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| role | search | 47 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | | role | lifecycle | 5 | ✓ | | | | | | | | ✓ | | | | group | create | 13 | ✓ | ✓ | | | | | | | | | | | group | get | 2 | ✓ | ✓ | | | | | | | | | | | group | update | 17 | ✓ | ✓ | | | | | | | | | | | group | delete | 11 | ✓ | ✓ | | | | | | | | | | -| group | search | 47 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| 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 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| 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 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| 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 | search | 10 | ✓ | ✓ | | | | | ✓ | | ✓ | ✓ | | | cluster-variables | lifecycle | 2 | ✓ | | | | | | | | ✓ | | | | element-instance | create | 19 | ✓ | ✓ | | | | | | | | ✓ | | | element-instance | get | 2 | ✓ | ✓ | | | | | | | | | | -| element-instance | search | 34 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| element-instance | search | 34 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | | agent-instance | create | 22 | ✓ | ✓ | | | | | | | | | | | agent-instance | get | 2 | ✓ | ✓ | | | | | | | | | | | agent-instance | update | 11 | ✓ | ✓ | | | | | | | | | | -| agent-instance | search | 14 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| 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 | 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 | search | 9 | ✓ | ✓ | | | | | ✓ | | ✓ | ✓ | | | global-task-listener | lifecycle | 1 | ✓ | | | | | | | | ✓ | | | -| incident | get | 19 | ✓ | ✓ | | | | | | | | | | +| incident | get | 19 | ✓ | ✓ | | | | | | ✓ | | | | | incident | update | 9 | ✓ | ✓ | | | | | | | | | | -| incident | search | 13 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| incident | search | 13 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | | authorization | create | 10 | ✓ | ✓ | | | | | | | | ✓ | | | authorization | get | 2 | ✓ | ✓ | | | | | | | | | | | authorization | update | 11 | ✓ | ✓ | | | | | | | | ✓ | | | authorization | delete | 2 | ✓ | ✓ | | | | | | | | | | -| authorization | search | 11 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| authorization | search | 11 | ✓ | ✓ | | | | | ✓ | | ✓ | ✓ | | | authorization | lifecycle | 1 | ✓ | | | | | | | | ✓ | | | | resource | create | 13 | | ✓ | | | | | | | | ✓ | | | resource | get | 3 | ✓ | | | | | | | | | | | | resource | delete | 8 | ✓ | ✓ | | | | | | | | | | -| resource | search | 12 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| resource | search | 12 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | | user | create | 15 | ✓ | ✓ | | | | | | | | | | | user | get | 2 | ✓ | ✓ | | | | | | | | | | | user | update | 5 | ✓ | ✓ | | | | | | | | | | | user | delete | 2 | ✓ | ✓ | | | | | | | | | | -| user | search | 9 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| user | search | 9 | ✓ | ✓ | | | | | ✓ | | ✓ | ✓ | | | user | lifecycle | 1 | ✓ | | | | | | | | ✓ | | | | message | create | 30 | ✓ | ✓ | | | | | | | | ✓ | | | decision-definition | create | 11 | ✓ | ✓ | | | | | | | | ✓ | | | decision-definition | get | 4 | ✓ | ✓ | | | | | | | | | | -| decision-definition | search | 13 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| decision-definition | search | 13 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | | audit-log | get | 2 | ✓ | ✓ | | | | | | | | | | -| audit-log | search | 22 | ✓ | ✓ | | | | | | | ✓ | ✓ | ✓ | +| audit-log | search | 22 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | | document | create | 18 | ✓ | ✓ | | | | | | | | ✓ | | | document | get | 1 | ✓ | | | | | | | | | | | | document | delete | 1 | ✓ | | | | | | | | | | | | document | lifecycle | 1 | ✓ | | | | | | | | ✓ | | | | variable | get | 2 | ✓ | ✓ | | | | | | | | | | -| variable | search | 14 | ✓ | ✓ | | | | | | | ✓ | ✓ | ✓ | +| variable | search | 14 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | | setup | create | 15 | ✓ | ✓ | | | | | | | | | | | conditional | create | 15 | ✓ | ✓ | | | | | | | | ✓ | | | decision-requirements | get | 4 | ✓ | ✓ | | | | | | | | | | -| decision-requirements | search | 11 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| 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 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| 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 | ✓ | ✓ | | | | | | | ✓ | ✓ | | +| batch-operation-item | search | 10 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | | system | get | 9 | ✓ | ✓ | | | | | | | | | | | clock | create | 7 | ✓ | ✓ | | | | | | | | | | | clock | delete | 1 | ✓ | | | | | | | | | | | @@ -129,109 +129,109 @@ Legend: ✓ = at least 1, blank = 0. |--|--|--:|--:|--:|--:|--:|--:|--:|--:|--:|--:|--:|--:| | process-instance | create | 14 | 1 | 6 | | | | | | | | 7 | | | process-instance | get | 8 | 4 | 4 | | | | | | | | | | -| process-instance | update | 148 | 6 | 98 | | | | | | | | 44 | | -| process-instance | delete | 74 | 4 | 50 | | | | | | | | 20 | | -| process-instance | search | 38 | 2 | 17 | | | | | | | 1 | 18 | | +| 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 | | +| job | get | 67 | 5 | 58 | | | | | 4 | 6 | | 4 | | | job | update | 30 | 3 | 24 | | | | | | | | 3 | | -| job | search | 13 | 1 | 5 | | | | | | | 1 | 6 | | +| 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 | | | | | | | 1 | 15 | | +| 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 | | | | | | | 1 | 12 | | +| 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 | | | | | | | 1 | 12 | | +| 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 | | | | | | | | 10 | | -| decision-instance | search | 20 | 1 | 6 | | | | | | | 1 | 12 | | -| process-definition | get | 59 | 7 | 38 | | | | | | | | 14 | | -| process-definition | search | 11 | 1 | 5 | | | | | | | 1 | 4 | | +| 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 | | | | | | | 1 | 9 | | +| 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 | | | | | | | 1 | 2 | | +| 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 | | | | | | | 1 | 18 | | +| 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 | | | | | | | 1 | 7 | | +| 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 | | | | | | | 1 | 3 | | +| 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 | | | | | | | 1 | 2 | | +| global-task-listener | search | 9 | 1 | 5 | | | | | 2 | | 1 | 2 | | | global-task-listener | lifecycle | 1 | 1 | | | | | | | | 1 | | | -| incident | get | 19 | 3 | 16 | | | | | | | | | | +| incident | get | 19 | 3 | 16 | | | | | | 1 | | | | | incident | update | 9 | 1 | 8 | | | | | | | | | | -| incident | search | 13 | 1 | 5 | | | | | | | 1 | 6 | | +| 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 | | | | | | | 1 | 2 | | +| 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 | | | | | | | 1 | 5 | | +| 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 | | | | | | | 1 | 2 | | +| 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 | | | | | | | 1 | 6 | | +| decision-definition | search | 13 | 1 | 5 | | | | | 2 | 4 | 1 | 6 | | | audit-log | get | 2 | 1 | 1 | | | | | | | | | | -| audit-log | search | 22 | 1 | 5 | | | | | | | 1 | 11 | 4 | +| audit-log | search | 22 | 1 | 5 | | | | | 2 | 13 | 1 | 11 | | | 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 | | | | | | | 1 | 4 | 2 | +| variable | search | 14 | 1 | 6 | | | | | 2 | 4 | 1 | 4 | | | setup | create | 15 | 1 | 14 | | | | | | | | | | | conditional | create | 15 | 1 | 12 | | | | | | | | 2 | | | decision-requirements | get | 4 | 2 | 2 | | | | | | | | | | -| decision-requirements | search | 11 | 1 | 5 | | | | | | | 1 | 4 | | +| decision-requirements | search | 11 | 1 | 5 | | | | | 2 | 2 | 1 | 4 | | | signal | create | 14 | 1 | 12 | | | | | | | | 1 | | -| batch-operation | get | 1 | 1 | | | | | | | | | | | -| batch-operation | update | 2 | 2 | | | | | | | | | | | -| batch-operation | delete | 1 | 1 | | | | | | | | | | | -| batch-operation | search | 10 | 1 | 6 | | | | | | | 1 | 2 | | -| correlated-message-subscription | search | 13 | 1 | 5 | | | | | | | 1 | 6 | | -| message-subscriptions | search | 13 | 1 | 5 | | | | | | | 1 | 6 | | +| 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 | | | | | | | 1 | 3 | | +| batch-operation-item | search | 10 | 1 | 5 | | | | | 2 | 1 | 1 | 3 | | | system | get | 9 | 2 | 7 | | | | | | | | | | | clock | create | 7 | 1 | 6 | | | | | | | | | | | clock | delete | 1 | 1 | | | | | | | | | | | diff --git a/coverage-analysis/gaps.md b/coverage-analysis/gaps.md index dd93885..b6d0768 100644 --- a/coverage-analysis/gaps.md +++ b/coverage-analysis/gaps.md @@ -179,28 +179,3 @@ Entities that have both `create` and `delete` tests but no test tagged `observe- Search operations that have tests but none labeled `pagination-sort` or `filter`. -- agent-instance (search): no pagination-sort/filter labels -- audit-log (search): no pagination-sort/filter labels -- authorization (search): no pagination-sort/filter labels -- batch-operation (search): no pagination-sort/filter labels -- batch-operation-item (search): no pagination-sort/filter labels -- cluster-variables (search): no pagination-sort/filter labels -- correlated-message-subscription (search): no pagination-sort/filter labels -- decision-definition (search): no pagination-sort/filter labels -- decision-instance (search): no pagination-sort/filter labels -- decision-requirements (search): no pagination-sort/filter labels -- element-instance (search): no pagination-sort/filter labels -- global-task-listener (search): no pagination-sort/filter labels -- group (search): no pagination-sort/filter labels -- incident (search): no pagination-sort/filter labels -- job (search): no pagination-sort/filter labels -- mapping-rule (search): no pagination-sort/filter labels -- message-subscriptions (search): no pagination-sort/filter labels -- process-definition (search): no pagination-sort/filter labels -- process-instance (search): no pagination-sort/filter labels -- resource (search): no pagination-sort/filter labels -- role (search): no pagination-sort/filter labels -- tenant (search): no pagination-sort/filter labels -- user (search): no pagination-sort/filter labels -- user-task (search): no pagination-sort/filter labels -- variable (search): no pagination-sort/filter labels diff --git a/coverage-analysis/tests.csv b/coverage-analysis/tests.csv index 00645f8..12b3fc2 100644 --- a/coverage-analysis/tests.csv +++ b/coverage-analysis/tests.csv @@ -19,19 +19,19 @@ assignUserToGroup.feature.spec.ts,8,feature,group,B. Membership/Association,upda 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,feature-1 - cancelBatchOperation - base (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,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,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,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,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,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,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,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,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,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,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,variant-10 - cancelProcessInstancesBatchOperation - bpmn #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) @@ -75,34 +75,34 @@ createTenantClusterVariable.feature.spec.ts,11,feature,cluster-variables,A. Enti 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,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,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,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,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,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,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,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,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,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,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,variant-10 - deleteDecisionInstancesBatchOperation - drd #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,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,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,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,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,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,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,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,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,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,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,variant-10 - deleteProcessInstancesBatchOperation - bpmn #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) @@ -122,7 +122,7 @@ getAgentInstance.feature.spec.ts,13,feature,agent-instance,P. Agent-Instance (ne 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,feature-1 - getBatchOperation - 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) @@ -136,41 +136,41 @@ getGlobalJobStatistics.feature.spec.ts,12,feature,job,G. Job Lifecycle & Stats,g 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,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,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,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,variant-1 - getJobTimeSeriesStatistics - path #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,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,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,variant-1 - getJobWorkerStatistics - path #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,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,variant-1 - getProcessDefinitionInstanceVersionStatistics - bpmn #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,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,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,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,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,variant-5 - getProcessDefinitionMessageSubscriptionStatistics - bpmn #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,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,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,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,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,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,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,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,variant-8 - getProcessDefinitionStatistics - bpmn #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,feature-1 - getProcessInstanceStatisticsByDefinition - 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) @@ -190,19 +190,19 @@ getVariable.feature.spec.ts,12,feature,variable,J/K/L. Observation-only,get,obse 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,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,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,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,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,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,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,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,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,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,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,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,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,variant-12 - migrateProcessInstancesBatchOperation - 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 @@ -212,289 +212,289 @@ modifyProcessInstance.variant.spec.ts,385,variant,process-instance,D. Process-In 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,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,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,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,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,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,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,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,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,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,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,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,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,variant-12 - modifyProcessInstancesBatchOperation - 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,delete,delete,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,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,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,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,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,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,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,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,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,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,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,variant-10 - resolveIncidentsBatchOperation - bpmn #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,feature-1 - resumeBatchOperation - 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,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,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,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,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,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,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,variant-7 - searchAgentInstances - path #1 +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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,variant-15 - searchAuditLogs - path #1 +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,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,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,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,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,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,variant-2 - searchAuthorizations - path #1 +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,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,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,variant-3 - searchBatchOperationItems - path #1 +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,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,variant-2 - searchBatchOperations - path #1 +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,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,variant-2 - searchClientsForGroup - path #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,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,variant-2 - searchClientsForRole - path #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,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,variant-2 - searchClientsForTenant - path #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,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,variant-2 - searchClusterVariables - path #1 +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,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,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,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,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,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,variant-6 - searchCorrelatedMessageSubscriptions - path #1 +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,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,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,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,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,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,variant-6 - searchDecisionDefinitions - path #1 +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,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,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,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,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,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,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,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,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,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,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,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,variant-12 - searchDecisionInstances - path #1 +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,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,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,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,variant-4 - searchDecisionRequirements - path #1 +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,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,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,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,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,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,variant-6 - searchElementInstanceIncidents - bpmn #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,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,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,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,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,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,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,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,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,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,variant-10 - searchElementInstances - path #1 +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,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,variant-2 - searchGlobalTaskListeners - path #1 +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,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,variant-2 - searchGroupIdsForTenant - path #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,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,variant-2 - searchGroups - path #1 +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,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,variant-2 - searchGroupsForRole - path #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,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,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,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,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,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,variant-6 - searchIncidents - path #1 +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,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,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,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,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,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,variant-6 - searchJobs - path #1 +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,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,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,variant-3 - searchMappingRule - path #1 +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,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,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,variant-3 - searchMappingRulesForGroup - path #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,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,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,variant-3 - searchMappingRulesForRole - path #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,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,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,variant-3 - searchMappingRulesForTenant - path #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,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,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,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,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,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,variant-6 - searchMessageSubscriptions - path #1 +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,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,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,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,variant-4 - searchProcessDefinitions - path #1 +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,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,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,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,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,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,variant-6 - searchProcessInstanceIncidents - bpmn #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,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,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,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,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,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,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,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,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,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,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,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,variant-12 - searchProcessInstances - path #1 +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,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,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,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,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,variant-5 - searchResources - path #1 +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,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,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,variant-3 - searchRoles - path #1 +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,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,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,variant-3 - searchRolesForGroup - path #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,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,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,variant-3 - searchRolesForTenant - path #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,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,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,variant-3 - searchTenants - path #1 +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,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,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,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,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,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,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,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,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,variant-9 - searchUserTasks - path #1 +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,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,variant-2 - searchUsers - path #1 +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,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,variant-2 - searchUsersForGroup - path #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,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,variant-2 - searchUsersForRole - path #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,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,variant-2 - searchUsersForTenant - path #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,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,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,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,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,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,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,feature-1 - suspendBatchOperation - base (1) +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,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,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) From fdeae43938a0685d7a337403dbc110e865b8f571 Mon Sep 17 00:00:00 2001 From: esraagamal6 Date: Tue, 19 May 2026 13:56:47 +0200 Subject: [PATCH 10/15] fix(coverage-analysis): address 3rd round of review comments (PR #278) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - build_coverage.py: move `reset` from delete-regex to update-regex so resetClock (POST /clock/reset, admin state reset) classifies as update, not delete. Eliminates the false positive "clock — has create+delete but no observe-absence" in gaps.md. - build_coverage.py: docstring "Test sources scanned" list now includes generated/camunda-oca/playwright/entities/*.lifecycle.spec.ts (the 10 EntityLifecycle rows the script already scans). - README.md: "three locations" → "five locations" to match the five-row source table below it. - lifecycle_disjoint.md: use the entity-lifecycle terminology (create → present → update → present → delete → absent) for the generator's EntityLifecycle tests, not the edge-lifecycle (establish/revoke) terms. Co-Authored-By: Claude Opus 4.7 (1M context) --- coverage-analysis/README.md | 2 +- coverage-analysis/build_coverage.py | 15 +++++++++------ coverage-analysis/category_breakdown.md | 4 ++-- coverage-analysis/coverage_matrix.csv | 2 +- coverage-analysis/coverage_matrix.md | 4 ++-- coverage-analysis/gaps.md | 2 +- coverage-analysis/lifecycle_disjoint.md | 2 +- coverage-analysis/tests.csv | 2 +- 8 files changed, 18 insertions(+), 15 deletions(-) diff --git a/coverage-analysis/README.md b/coverage-analysis/README.md index a586878..248fd58 100644 --- a/coverage-analysis/README.md +++ b/coverage-analysis/README.md @@ -24,7 +24,7 @@ so the two suites can be diffed directly. Answers the questions in ## Test sources scanned -The generator emits tests into three locations; `build_coverage.py` scans all of them: +The generator emits tests into five locations; `build_coverage.py` scans all of them: | location | emitter | tag in `tests.csv` `source` column | |---|---|---| diff --git a/coverage-analysis/build_coverage.py b/coverage-analysis/build_coverage.py index 91da9a5..c367c8a 100644 --- a/coverage-analysis/build_coverage.py +++ b/coverage-analysis/build_coverage.py @@ -12,10 +12,11 @@ - 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/request-validation/*.spec.ts (negative request-validation, all bad-request) + - 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 @@ -101,8 +102,10 @@ def entity_of_path(path): 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|reset)', re.I)), - ('update', re.compile(r'^(update|assign|complete|migrate|modify|resolve|fail|resume|suspend|patch|put)', 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): diff --git a/coverage-analysis/category_breakdown.md b/coverage-analysis/category_breakdown.md index 50195d9..af9d43f 100644 --- a/coverage-analysis/category_breakdown.md +++ b/coverage-analysis/category_breakdown.md @@ -2036,13 +2036,13 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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, delete=1, negative-create=6 +- **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) | -| delete | happy-path | `resetClock.feature.spec.ts:8` | feature-1 - resetClock - 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) | diff --git a/coverage-analysis/coverage_matrix.csv b/coverage-analysis/coverage_matrix.csv index c72f2c2..647d10c 100644 --- a/coverage-analysis/coverage_matrix.csv +++ b/coverage-analysis/coverage_matrix.csv @@ -106,7 +106,7 @@ 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,delete,1,1,0,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 diff --git a/coverage-analysis/coverage_matrix.md b/coverage-analysis/coverage_matrix.md index 395a7bb..bd78dd7 100644 --- a/coverage-analysis/coverage_matrix.md +++ b/coverage-analysis/coverage_matrix.md @@ -117,7 +117,7 @@ Legend: ✓ = at least 1, blank = 0. | batch-operation-item | search | 10 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | | system | get | 9 | ✓ | ✓ | | | | | | | | | | | clock | create | 7 | ✓ | ✓ | | | | | | | | | | -| clock | delete | 1 | ✓ | | | | | | | | | | | +| clock | update | 1 | ✓ | | | | | | | | | | | | authentication | get | 1 | ✓ | | | | | | | | | | | | license | get | 1 | ✓ | | | | | | | | | | | | status | get | 1 | ✓ | | | | | | | | | | | @@ -234,7 +234,7 @@ Legend: ✓ = at least 1, blank = 0. | batch-operation-item | search | 10 | 1 | 5 | | | | | 2 | 1 | 1 | 3 | | | system | get | 9 | 2 | 7 | | | | | | | | | | | clock | create | 7 | 1 | 6 | | | | | | | | | | -| clock | delete | 1 | 1 | | | | | | | | | | | +| clock | update | 1 | 1 | | | | | | | | | | | | authentication | get | 1 | 1 | | | | | | | | | | | | license | get | 1 | 1 | | | | | | | | | | | | status | get | 1 | 1 | | | | | | | | | | | diff --git a/coverage-analysis/gaps.md b/coverage-analysis/gaps.md index b6d0768..2493a7a 100644 --- a/coverage-analysis/gaps.md +++ b/coverage-analysis/gaps.md @@ -6,7 +6,7 @@ Computed across **1617** generated test declarations in **37** entities. Entities that have both `create` and `delete` tests but no test tagged `observe-absence` (no negative-after-delete check). -- **clock** — has create+delete but no `observe-absence` test +- _(none)_ ## Entities with no unauthorized (401) coverage diff --git a/coverage-analysis/lifecycle_disjoint.md b/coverage-analysis/lifecycle_disjoint.md index ee92679..368fd26 100644 --- a/coverage-analysis/lifecycle_disjoint.md +++ b/coverage-analysis/lifecycle_disjoint.md @@ -14,7 +14,7 @@ upstream tests are the matching slice of category **A. Entity Lifecycle ## The 10 generated tests Each test runs the full lifecycle in **one** `test()` block: -`establish → observe present → revoke → observe absent`. One test per entity +`create → present → update → present → delete → absent`. One test per entity spec; cluster-variables has two namespace variants (global / per-tenant). | spec file | entity slug | diff --git a/coverage-analysis/tests.csv b/coverage-analysis/tests.csv index 12b3fc2..33f10f1 100644 --- a/coverage-analysis/tests.csv +++ b/coverage-analysis/tests.csv @@ -228,7 +228,7 @@ modifyProcessInstancesBatchOperation.variant.spec.ts,946,variant,process-instanc 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,delete,delete,none,POST,/clock/reset,resetClock,happy-path,feature-1 - resetClock - base (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 From 48d9d4d09c2a8c4fbf2c96048a6f93815542935c Mon Sep 17 00:00:00 2001 From: esraagamal6 Date: Tue, 19 May 2026 14:12:18 +0200 Subject: [PATCH 11/15] docs(coverage-analysis): list lifecycle_disjoint.md in README Files table It is manually maintained (not regenerated by build_coverage.py), so the row is flagged accordingly so readers don't expect the script to keep it in sync. Co-Authored-By: Claude Opus 4.7 (1M context) --- coverage-analysis/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/coverage-analysis/README.md b/coverage-analysis/README.md index 248fd58..f49b984 100644 --- a/coverage-analysis/README.md +++ b/coverage-analysis/README.md @@ -21,6 +21,7 @@ so the two suites can be diffed directly. Answers the questions in | `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 From e9e1243f6222df2f8cb9853920eaed85dd208d8d Mon Sep 17 00:00:00 2001 From: esraagamal6 Date: Tue, 19 May 2026 14:18:30 +0200 Subject: [PATCH 12/15] docs(coverage-analysis): drop redundant generate:request-validation step `npm run pipeline` already chains `fetch-spec`, `testsuite:generate`, and `generate:request-validation`. Calling `generate:request-validation` a second time runs the request-validation emitter twice unnecessarily. Co-Authored-By: Claude Opus 4.7 (1M context) --- coverage-analysis/README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/coverage-analysis/README.md b/coverage-analysis/README.md index f49b984..119b2fa 100644 --- a/coverage-analysis/README.md +++ b/coverage-analysis/README.md @@ -42,12 +42,13 @@ The analyser reads from `spec/camunda-oca/bundled/rest-api.bundle.json` and 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 -npm run generate:request-validation # emit request-validation tests +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. From baa7c21c9b4cc3dfdf95345cd294394d582a58d3 Mon Sep 17 00:00:00 2001 From: esraagamal6 Date: Tue, 19 May 2026 14:25:03 +0200 Subject: [PATCH 13/15] fix(coverage-analysis): variant blurb + (none) fallback in gaps.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - coverage_matrix.md no longer claims variants are 'first-match labels from test names'. New blurb names the three label sources (name suffix, body shape, fixed emitter labels) and notes that matrix columns are not mutually exclusive — a multi-label test counts in both columns but only once in 'total'. - gaps.md 'Search ops with no pagination/sort or filter coverage' section now emits '- _(none)_' when no entries match, matching the 'delete-then-observe-absence' section. Previously the empty list was ambiguous. Co-Authored-By: Claude Opus 4.7 (1M context) --- coverage-analysis/build_coverage.py | 18 +++++++++++++++--- coverage-analysis/coverage_matrix.md | 2 +- coverage-analysis/gaps.md | 1 + 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/coverage-analysis/build_coverage.py b/coverage-analysis/build_coverage.py index c367c8a..701b093 100644 --- a/coverage-analysis/build_coverage.py +++ b/coverage-analysis/build_coverage.py @@ -530,9 +530,17 @@ def resolve_op(op_id): 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 first-match labels derived from the generator\'s emitter suffix ' - '(`base`, `negative empty`, `bpmn|dmn|drd|form|path|cycle/...`, `oneOf ...`, `scenario`). ' - 'See `build_coverage.py` for the rule table.\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') @@ -609,12 +617,16 @@ def resolve_op(op_id): 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 ---------- diff --git a/coverage-analysis/coverage_matrix.md b/coverage-analysis/coverage_matrix.md index bd78dd7..588669d 100644 --- a/coverage-analysis/coverage_matrix.md +++ b/coverage-analysis/coverage_matrix.md @@ -2,7 +2,7 @@ Total test declarations: **1617** across **37** entities. -Variants are first-match labels derived from the generator's emitter suffix (`base`, `negative empty`, `bpmn|dmn|drd|form|path|cycle/...`, `oneOf ...`, `scenario`). See `build_coverage.py` for the rule table. +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. diff --git a/coverage-analysis/gaps.md b/coverage-analysis/gaps.md index 2493a7a..66c7a84 100644 --- a/coverage-analysis/gaps.md +++ b/coverage-analysis/gaps.md @@ -179,3 +179,4 @@ Entities that have both `create` and `delete` tests but no test tagged `observe- Search operations that have tests but none labeled `pagination-sort` or `filter`. +- _(none)_ From c8078d7e6963a4b3dc63006912314b3872c681e9 Mon Sep 17 00:00:00 2001 From: esraagamal6 Date: Tue, 19 May 2026 14:32:00 +0200 Subject: [PATCH 14/15] fix(coverage-analysis): preserve 'unlabeled' alongside body-shape extras MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `unlabeled` describes the NAME-classification ('no info derivable from the test name'). Body-shape detection (pagination/filter) is a separate axis, so a dynamic 'variant-N - scenario' test with a filter body is both name-unlabeled AND body-filter — it should carry both labels. Previously the augment logic dropped 'unlabeled' when extras were added, which under-reported dynamic scenarios in the inventory. After: 7 rows carry `unlabeled|filter` (was 1 alone) — these are searchAuditLogs / searchAuditLogs.variant scenarios that were being mis-counted only under `filter`. Co-Authored-By: Claude Opus 4.7 (1M context) --- coverage-analysis/build_coverage.py | 6 +++++- coverage-analysis/category_breakdown.md | 16 ++++++++-------- coverage-analysis/coverage_matrix.csv | 4 ++-- coverage-analysis/coverage_matrix.md | 8 ++++---- coverage-analysis/tests.csv | 12 ++++++------ 5 files changed, 25 insertions(+), 21 deletions(-) diff --git a/coverage-analysis/build_coverage.py b/coverage-analysis/build_coverage.py index 701b093..3a0ad21 100644 --- a/coverage-analysis/build_coverage.py +++ b/coverage-analysis/build_coverage.py @@ -384,9 +384,13 @@ def resolve_op(op_id): 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 = [] if variants == 'unlabeled' else variants.split('|') + 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, diff --git a/coverage-analysis/category_breakdown.md b/coverage-analysis/category_breakdown.md index af9d43f..a1d30a2 100644 --- a/coverage-analysis/category_breakdown.md +++ b/coverage-analysis/category_breakdown.md @@ -1750,25 +1750,25 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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, bad-request=6, pagination-sort=2, filter=13 +- **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 | filter | `searchAuditLogs.variant.spec.ts:13` | variant-1 - scenario | +| 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 | filter | `searchAuditLogs.variant.spec.ts:265` | variant-5 - scenario | -| observe-present-search | filter | `searchAuditLogs.variant.spec.ts:293` | variant-6 - scenario | +| 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 | filter | `searchAuditLogs.variant.spec.ts:697` | variant-13 - scenario | +| 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) | @@ -1785,15 +1785,15 @@ Categories and the entity → category mapping mirror the upstream `c8-orchestra - **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, bad-request=7, pagination-sort=2, filter=4 +- **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 | filter | `searchVariables.variant.spec.ts:64` | variant-2 - scenario | -| observe-present-search | filter | `searchVariables.variant.spec.ts:93` | variant-3 - scenario | +| 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 | diff --git a/coverage-analysis/coverage_matrix.csv b/coverage-analysis/coverage_matrix.csv index 647d10c..58f5415 100644 --- a/coverage-analysis/coverage_matrix.csv +++ b/coverage-analysis/coverage_matrix.csv @@ -84,13 +84,13 @@ 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,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,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 diff --git a/coverage-analysis/coverage_matrix.md b/coverage-analysis/coverage_matrix.md index 588669d..f926a0e 100644 --- a/coverage-analysis/coverage_matrix.md +++ b/coverage-analysis/coverage_matrix.md @@ -95,13 +95,13 @@ Legend: ✓ = at least 1, blank = 0. | decision-definition | get | 4 | ✓ | ✓ | | | | | | | | | | | decision-definition | search | 13 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | | audit-log | get | 2 | ✓ | ✓ | | | | | | | | | | -| audit-log | search | 22 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | +| audit-log | search | 22 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | ✓ | | document | create | 18 | ✓ | ✓ | | | | | | | | ✓ | | | document | get | 1 | ✓ | | | | | | | | | | | | document | delete | 1 | ✓ | | | | | | | | | | | | document | lifecycle | 1 | ✓ | | | | | | | | ✓ | | | | variable | get | 2 | ✓ | ✓ | | | | | | | | | | -| variable | search | 14 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | | +| variable | search | 14 | ✓ | ✓ | | | | | ✓ | ✓ | ✓ | ✓ | ✓ | | setup | create | 15 | ✓ | ✓ | | | | | | | | | | | conditional | create | 15 | ✓ | ✓ | | | | | | | | ✓ | | | decision-requirements | get | 4 | ✓ | ✓ | | | | | | | | | | @@ -212,13 +212,13 @@ Legend: ✓ = at least 1, blank = 0. | 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 | | +| 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 | | +| 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 | | | | | | | | | | diff --git a/coverage-analysis/tests.csv b/coverage-analysis/tests.csv index 33f10f1..c033d32 100644 --- a/coverage-analysis/tests.csv +++ b/coverage-analysis/tests.csv @@ -254,19 +254,19 @@ searchAgentInstances.variant.spec.ts,482,variant,agent-instance,P. Agent-Instanc 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,filter,variant-1 - scenario +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,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,filter,variant-6 - scenario +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,filter,variant-13 - scenario +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) @@ -489,8 +489,8 @@ searchUsersForTenant.variant.spec.ts,88,variant,tenant,B. Membership/Association 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,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,filter,variant-3 - scenario +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 From b9e973d44a8cc21b1e62a9c8b74e338c1537efe7 Mon Sep 17 00:00:00 2001 From: esraagamal6 Date: Tue, 19 May 2026 14:40:21 +0200 Subject: [PATCH 15/15] docs(coverage-analysis): clarify the not-found vs observe-absence semantic split MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The matrix shows not-found=0 for the generator, but this is upstream's taxonomy split, not "generator never asserts 404". Spelled out: - observe-absence = GET after DELETE (entity was created, now gone). Generator has 48 of these. - not-found = GET against a fake/never-existing ID (never created). Generator has 0 of these — this is the actual capability gap. Every entity-lifecycle test ends with expect(status).toBe(404), so the generator IS asserting 404 in 10 places; they're bucketed as observe-absence because they exercise the post-delete path, not the fake-ID path. Upstream's 127 not-found tests are mostly fake-ID tests. Co-Authored-By: Claude Opus 4.7 (1M context) --- coverage-analysis/README.md | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/coverage-analysis/README.md b/coverage-analysis/README.md index 119b2fa..3e77634 100644 --- a/coverage-analysis/README.md +++ b/coverage-analysis/README.md @@ -106,10 +106,25 @@ unique-test count; variant columns are label-occurrences, so a test tagged The buckets where the generator currently emits zero tests: -- **401 unauthorized** (165 in upstream) — needs deployment-mode-aware auth context, see `camunda/camunda#52511`. -- **403 forbidden** (29 in upstream) — needs RBAC ABox + restricted-token test infrastructure. -- **404 not-found** (127 in upstream) — fake-ID variant on path params; computable. -- **409 conflict** (31 in upstream) — needs `duplicatePolicy` ABox slice (designed in 8.8, not yet landed; see #277). +- **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.