Pastura oracle — executable Hurl probes
Generated from ../ORACLE_SPEC.md. Six files, one per probe group, run per generated app by ../../../runner/conformance_cr.cjs (one file per group = one graded conformance unit, matching the AX2 per-file convention). Each file is self-contained: it seeds its own uid-namespaced fixtures (`` is injected per run so parallel/repeated runs never collide on the unique name/email constraints), so no shared seed step is required across a reset DB.
| File | Probes (ORACLE_SPEC) | Group |
|---|---|---|
g1_auth_roles.hurl | P1-P5 | Auth & roles |
g2_validation_404.hurl | P6-P10 (P10 error-shape folded into P6) | Validation & 404 |
g3_rule_rest.hurl | P11-P14 | R1 rest (load-bearing) |
g4_rule_capacity.hurl | P15-P17 | R2 capacity (load-bearing) |
g5_rule_overlap.hurl | P18-P19 | R3 overlap (load-bearing) |
g6_computed_reads.hurl | P20-P24 | Computed reads |
Strict vs tolerant (pre-registered, ORACLE_SPEC header)
- STRICT (assert exact value): the three rule error codes (
rule_rest/rule_capacity/rule_overlap), the other error codes (unauthenticated/forbidden/not_found/validation), the budget arithmetic (grazingDaysLeft == 120,== null), and role gating (403). - TOLERANT: creates and reads use
HTTP *+status >= 200 status < 300, so 200-vs-201 and framework/route casing/field order/extra fields do not fail a probe. Only the contract points above are strict.
Headline number
conformance_cr.cjs reports overall pass/6 AND the business-rule sub-score = pass over {g3,g4,g5} / 3, which is the load-bearing conformance figure per PREREGISTRATION section 6.
Note on HTTP *
Requires Hurl >= 4.x (the version at /c/Program Files/Hurl/hurl.exe used by AX2 supports it). If a probe cannot capture an id because a create returned an envelope shape, that is a real conformance miss (the DOMAIN_SPEC returns the entity at the top level), not an oracle bug.