Merge pull request 'docs(guide): customer-journey host_result normalisation (#48)' (#21) from docs/journey-host-result-48 into develop
CD - Develop (guide → bcos.dev) / build-and-deploy (push) Has started running
CD - Develop (guide → bcos.dev) / build-and-deploy (push) Has started running
This commit was merged in pull request #21.
This commit is contained in:
@@ -49,6 +49,7 @@ Request body for analyze: `{transactionId, rawLines, atmId, atmVendor}`. Save PA
|
||||
## Gotchas
|
||||
|
||||
- Timeline is built **in the browser** from `rawLines`; there is no backend "journey" endpoint. Empty rawLines → "No event timeline found".
|
||||
- **`host_result` is normalised** (`hostOutcome()`, #48): approved = `APPROVED`/`SUCCESS`/`SUCCESSFUL`/`COMPLETED`/`OK`; declined = `DECLINED`/`FAIL`/`FAILED`/`TIMEOUT`/`ERROR`/`REVERSED`/`REJECTED`. The journal (sim + real) writes `SUCCESS`/`FAIL`/`TIMEOUT` — the flow now renders *Host Approved / Cash Dispensed* (approved) and *Host Declined* (declined) for those. **Host Declined** shows a **Reason** taken from a `raw_lines` `Reason: …` line, else a friendly label (`Host timeout` / `Transaction failed` / `Declined by host`). A **structured failure-reason field is still a follow-up** (#48) — today the reason is only as good as `raw_lines`.
|
||||
- Adoons button hidden unless `GET /adoons/status` → `{available:true}` (i.e. ai `/actuator/health` reachable from incident).
|
||||
- `analyze-journey` read timeout = 270s in incident; failure → HTTP 503 → UI "Adoons is currently unavailable."
|
||||
- Verdict save is **fire-and-forget** (`.catch(()=>{})`); persistence failures are invisible in the UI — check journal logs for `Error saving Adoons analysis for transaction {id}`.
|
||||
|
||||
@@ -41,6 +41,7 @@ Ops/support view of the Customer Journey drawer (the per-transaction replay in t
|
||||
- **502/CORS on the whole app** — nginx is the CORS authority; the proxy disables app-level CORS. Check the `transactions.bcos.cloud` server block and the shared cors include, not the app.
|
||||
- **All journeys 401** — proxy forwards only `Authorization` + `Content-Type` headers; a stale/expired JWT or a dropped Authorization header breaks every downstream call.
|
||||
- **Cassette config right for one ATM, wrong for another** — it derives from that ATM's *latest* REPLENISHMENT only; a stale or mis-parsed replenishment yields wrong denominations.
|
||||
- **Flow missing Host Approved / Cash Dispensed / Host Declined steps** — the flow normalises `host_result` (`SUCCESS`→approved, `FAIL`/`TIMEOUT`→declined) since #48; before that it only recognised `APPROVED`/`DECLINED`, so sim/real transactions (which use `SUCCESS`/`FAIL`/`TIMEOUT`) rendered no host step. The **note breakdown** still needs `raw_lines` dispense detail — sim transactions with null `raw_lines` show *Cash Dispensed* without denominations (follow-up on #48). A **decline reason** shows only if `raw_lines` has a `Reason:` line or from a friendly host_result label.
|
||||
|
||||
## Escalate to engineering (see [architect] tab) when
|
||||
|
||||
|
||||
Reference in New Issue
Block a user