Q3 E2E Scenario Inventory

Purpose

This inventory defines the bounded acceptance scenarios that LTI may execute. It separates the currently observed catalog from the scenario coverage that still needs implementation. Runtime discovery remains authoritative because lists, petitions, and donation forms change more frequently than LTI releases.

Current Acceptance Catalog

The seeded acceptance baseline contains:

The inventory job must read active acceptance segments and forms from the acceptance API. It must not copy supporter records or use production as a runtime fallback. A missing segment or form is a visible inventory failure.

Locale Baseline

The legacy LTI express suite currently contains these locale and currency pairs. They are a compatibility baseline, not proof that a current acceptance form exists:

Locale Currency Stripe compatibility GoCardless compatibility
de-de EUR yes yes
de-at EUR yes yes
de-ch CHF yes no
en-af USD yes no
en-au AUD yes no
en-ca CAD yes no
en-ie EUR yes yes
en-row EUR yes no
en-gb GBP yes yes
en-us USD separate organization identity required no
es-ar USD yes no
es-mx USD yes no
es-us USD separate organization identity required no
fr-fr EUR yes yes
fr-ca CAD yes no
hr EUR yes no
it-it EUR yes yes
hu EUR yes no
nl-nl EUR yes yes
nl-be EUR yes yes
pl PLN yes no
pt-br BRL yes no
pt-pt EUR yes yes
sk EUR yes yes

Runtime discovery must report newly active list codes and locales instead of silently excluding them. Provider tests remain disabled for a locale unless the provider, organization identity, currency, and cleanup contract all match.

Scenario Matrix

Journey Required surfaces Minimum assertion Mutable
CitizenGO signature CitizenGO staging, backend acceptance, MODB development Success/share state and one correlated acceptance signature event yes
HazteOir signature HazteOir staging, backend acceptance, MODB development HazteOir host continuity and one correlated acceptance signature event yes
One-time donation sandbox DonUI, FRAPI acceptance, provider sandbox Amount, currency, OTD, provider, and terminal FRAPI state agree yes
Monthly donation sandbox DonUI, FRAPI acceptance, provider sandbox Amount, currency, MD, provider, and subscription state agree yes
Express donation sandbox DonUI, FRAPI acceptance, telemetry evidence Express request and provider result correlate without retaining a raw DR token yes
Express fallback sandbox DonUI, FRAPI acceptance, telemetry evidence One trace links express failure or fallback to the manual donation outcome yes
Manual recovery sandbox DonUI, FRAPI acceptance Recovery is reported separately from first-attempt success yes
Unsubscribe backend acceptance, Iterable restricted project, MODB development One synthetic profile reaches the expected subscription state yes
PPAE ingestion owner-approved PPAE fixture and WebApp acceptance One run-owned campaign follows the confirmed workflow states pending owner contract
External synchronization owner-approved sandbox integration Correlated side effect, idempotency, and exact cleanup are proven pending owner contract

Bot rejection and successful recovery are diagnostic outcomes. Neither is counted as a first-attempt donation success or failure.

Selection Policy

The first implementation slice selects:

  1. one active CitizenGO list and one active HazteOir list;
  2. one seeded petition for each selected list;
  3. one OTD and one MD form for the selected locale;
  4. one Stripe-compatible locale;
  5. one GoCardless-compatible locale only after its sandbox gate passes.

Selection is deterministic for a given catalog version and records the selected list code, locale, form identifier, scenario version, and source revision. Credentials, raw DR tokens, and personal data are never inventory fields.

Drift and Readiness

Before a scheduled suite starts, LTI must compare the runtime catalog with the last accepted inventory:

Implementation Boundary

The generated Q3 acceptance adapter smoke suite now provides deterministic, read-only coverage for the configured CitizenGO and HazteOir staging frontends, CitizenGO sandbox DonUI, and FRAPI acceptance health route. Matrix generation also inventories current LTI list-language and donation-form configuration and marks unsafe or production form URLs as blocked.

This is not the full runtime catalog required by LTI-FR-037..038: active petition discovery, acceptance API form discovery, provider compatibility, and freshness/drift comparison remain pending. The current legacy express test still constructs production DonUI URLs and remains outside the acceptance suite until the mutable donation and cleanup contracts are approved.