v0.0.1 · system status
Open APIOpenAPI 3.1Zero token storage

Auth regression

Run multiple validation checks in one request and aggregate them into a suite result.

POST /v1/test/auth-regression Run multiple validation checks in one request and aggregate them into a suite result.

Batch validator. Each check runs through the same logic as /v1/validate/jwt and returns a VerifyResult; the suite is then judged by fail_on_severity. Designed to run in CI alongside fixture tokens that capture known-good and known-bad cases.

Request

body — application/json
Field Type Required Description
checks Check[] yes List of validation checks. Minimum length 1.
fail_on_severity "error" | "warning" | null no Severity threshold for the suite result. "error" (default behaviour when omitted) marks the suite failed if any check has an error finding. "warning" additionally fails on warnings.

Check

checks[i]
Field Type Required Description
token string yes JWT to validate.
policy VerifyPolicy no Inline policy. See VerifyPolicy. Mutually exclusive with issuer_profile_id.
issuer_profile_id string no Registered profile ID. Mutually exclusive with policy.
expected_failure_codes string[] no Codes that must appear in findings[].code for the check to count as expected. Use this for negative fixtures (e.g. an expired token expected to fail with TOKEN_EXPIRED).
Negative fixtures

A check whose findings contains every code listed in expected_failure_codes is treated as passed for suite purposes — the failure was the expected outcome. Use this to assert that misconfigurations stay broken.

Response — 200

body — application/json
Field Type Required Description
suite_status "pass" | "fail" yes "pass" when every check matched expectations and the threshold isn't crossed; "fail" otherwise.
passed integer yes Number of checks that satisfied their expectation (valid, or invalid with the expected codes).
failed integer yes Number of checks that did not.
results VerifyResult[] yes Per-check results in the same shape as /v1/validate/jwt.
fail_on_severity "error" | "warning" | null yes Echo of the request parameter for caller visibility.
request_id string yes Unique ID propagated to the audit log. Useful when correlating CI runs with server-side traces.
200 suite passed — one positive check valid, one negative check failed with the expected code
{
  "suite_status": "pass",
  "passed": 2,
  "failed": 0,
  "fail_on_severity": "error",
  "request_id": "req_01HK92T8QYA7ZMFJXC3",
  "results": [
    {
      "valid": true,
      "statuses": {
        "signature": "pass",
        "issuer": "pass",
        "audience": "pass",
        "algorithm": "pass",
        "time": "pass",
        "required_claims": "pass"
      },
      "findings": [],
      "summary": "Token is valid: signature verified, issuer/audience/time/required-claims all passed.",
      "metadata": {}
    },
    {
      "valid": false,
      "statuses": {
        "signature": "pass",
        "issuer": "pass",
        "audience": "pass",
        "algorithm": "pass",
        "time": "fail",
        "required_claims": "pass"
      },
      "findings": [
        {
          "code": "TOKEN_EXPIRED",
          "severity": "error",
          "message": "Token expired at 2024-12-01T00:00:00Z.",
          "evidence": {
            "exp": 1733011200,
            "now": 1761499200
          }
        }
      ],
      "summary": "Token is NOT valid: token expired.",
      "metadata": {}
    }
  ]
}

Errors

ChannelCodeCause
400MALFORMED_TOKENA check’s token is not parseable.
200, in results[i].findings(validation codes)Same set as /v1/validate/jwt.
422checks empty, or a check has both/neither policy and issuer_profile_id.

Use case — fixture-driven CI

Commit fixture tokens to your repository (positive tokens issued under a stable test key, negative tokens with deliberate misconfigurations). On every CI run, POST them to /v1/test/auth-regression to confirm:

  1. Tokens that should validate still do (catches policy drift, key rotation issues).
  2. Tokens that should fail still fail with the same codes (catches accidental relaxations).

See CI · OIDC guide for a complete CI integration including this endpoint.