PR G: portal /transactions page + 12-state machine view #11

Merged
nsatoshi merged 1 commits from devin/1776876388-portal-transactions into main 2026-04-22 17:18:53 +00:00

1 Commits

Author SHA1 Message Date
Devin
0bda0b76f1 PR G: portal /transactions page + 12-state machine view (arch step 8)
Some checks failed
CI / Frontend Lint (pull_request) Failing after 9s
CI / Frontend Type Check (pull_request) Failing after 6s
CI / Frontend Build (pull_request) Failing after 7s
CI / Frontend E2E Tests (pull_request) Failing after 9s
CI / Orchestrator Build (pull_request) Failing after 8s
CI / Contracts Compile (pull_request) Failing after 7s
CI / Contracts Test (pull_request) Failing after 7s
Code Quality / SonarQube Analysis (pull_request) Failing after 22s
Code Quality / Code Quality Checks (pull_request) Failing after 4s
Security Scan / Dependency Vulnerability Scan (pull_request) Failing after 3s
Security Scan / OWASP ZAP Scan (pull_request) Failing after 4s
Adds the first portal page backed by the CurrenciCombo orchestrator
(PR A-F). Renders:

- /transactions           \u2014 list of recent plans with state chip,
                            instrument hint, owner, last-updated.
- /transactions/:planId   \u2014 detail view with three cards:
    1. 12-state machine grid highlighting current + visited states.
    2. Audit trail table: from\u2192to, actor, actor_role (SoD),
       reason, timestamp \u2014 straight from state_transitions.
    3. Signed event stream: id, type, signature, prev_hash, at \u2014
       straight from events (PR D).

Backend wiring (src/services/orchestrator.ts):
  - listPlans()        GET /api/plans
  - getPlanState(id)   GET /api/plans/:id/state
  - getPlanEvents(id)  GET /api/plans/:id/events
  - probeOrchestrator() GET /health

If VITE_ORCHESTRATOR_URL is unset (orchestrator not deployed yet),
every call returns deterministic demo data so the 12-state view and
audit trail still render. Mirrors how proxmox/dbisCore fall back.
Badge on every card shows LIVE / DEGRADED / DEMO.

Also registers the orchestrator in backendCatalog so the existing
BackendStatusBar on the Dashboard picks it up automatically.

PortalLayout gets a new 'Transactions' nav item (GitBranch icon).

Portal code from PR #2 is untouched except for the new route + nav
entry.
2026-04-22 17:18:34 +00:00