Test Scenario: Acme Corporation holding-group provisioning round-trips correctly under msgpack wire format
Table of Contents
This page documents a test scenario verifying End-to-end verify msgpack wire format and close out the story in Make NATS wire format configurable: JSON/MessagePack, decided once at startup. It is filled in with the target dialog and checklist of steps before testing starts; the QA Validation Runner panel rewrites * Results in place on save.
Before you start
- Set
ORES_NATS_WIRE_FORMAT=msgpack(andORES_SHELL_NATS_WIRE_FORMAT=msgpack) in.env, then bring the environment up fresh under that setting:compass services stop,compass db recreate -y -k,compass services start. Confirmcompass services statusshows every servicerunning(not just the controller) before proceeding – a service still on an un-migrated launcher will silently start injsonmode instead of failing loudly, so a clean start alone doesn't prove the format took effect; step 1 below confirms it did. - The database must be freshly recreated (bootstrap mode, no tenant provisioned yet) – this scenario performs the provisioning itself, it does not assume Acme already exists.
Scenario Info
| Field | Value |
|---|---|
| Verifies task | End-to-end verify msgpack wire format and close out the story |
| Parent story | Make NATS wire format configurable: JSON/MessagePack, decided once at startup |
| Target dialog | N/A – CLI/service-level scenario, no Qt dialog under test |
| Clients | |
| State | PASSED |
Steps
Each step is its own heading — the title should be five to seven
words so it fits on one line in the QA Validation Runner's step list
without wrapping or truncating (e.g. "Edit and save the record", not
a full sentence describing the whole operation). The body below the
title is a bullet-point checklist, not a prose paragraph: give the
tester every piece of context needed to execute that one step without
looking anything up elsewhere — what UI state must already exist,
exactly what to click or type, and exactly what confirms the step
passed. The panel writes each step's PASS/FAIL/PENDING outcome and
notes back as a *** Result child heading directly under it.
Confirm wire format actually took effect
- Tail any service's log (e.g.
build/output/<preset>/publish/log/ores.iam.service.0.log) and check theCommand line argumentsline includes--nats-wire-format msgpack(or theConfigurationline's"format":"msgpack"). If any service still showsjson, the environment did not actually pick upORES_NATS_WIRE_FORMAT– stop here and investigate before proceeding (see theprocess-supervisor-config-passthrough-gapbacklog capture for the known launcher layers this can go wrong in).
Result
| Field | Value |
|---|---|
| Status | PASS |
Bootstrap and provision the Acme Corporation system tenant
- Run
compass shell -f projects/ores.shell/scripts/library/provisioning/how_do_i_provision_the_system_with_acme_corporation_holding_group.ores(compass shellresolves NATS connection and wire-format flags from.envautomatically). - Confirms: the script's
provision systemstep creates thesuper_adminaccount, logs in, and provisions theacme_corporationtenant, printing✓ System provisioned. Tenant 'Acme Corporation' ...with no errors.
Result
| Field | Value |
|---|---|
| Status | PASS |
Confirm the full holding-group orchestration completes
- Continue watching the same script run: after
login tenant_admin@acme_corporation ..., theprovision tenant --source acmestep drives the server-side orchestration (LEI import, per-party dataset-bundle publish for the UK/US/HK entities, staff account creation, staff photo uploads, synthetic market data, CRM topology, cross-entity access). - Confirms: every dispatched step reports
completed, nofailed=/=errorlines appear, and the script ends with✓ Acme Corporation holding group provisioned.followed byScript complete: 6 commands executed.
Result
| Field | Value |
|---|---|
| Status | PASS |
Confirm staff photo uploads succeeded specifically
- Within the same run's output, locate the
*.staff_photos: completed (1)lines (one per entity:acme_group,acme_uk,acme_us,acme_hk). - Confirms: image-batch payloads (the flow this story's investigation
originally started from) round-trip correctly under
msgpack–reflect-cpp'smsgpackwriter packs the raw bytes natively, no base64 involved.
Result
| Field | Value |
|---|---|
| Status | PASS |
Restore json and confirm the regression path still starts
- Set
ORES_NATS_WIRE_FORMAT=jsonandORES_SHELL_NATS_WIRE_FORMAT=jsonback in.env, thencompass services stop,compass db recreate -y -k,compass services start. - Confirms:
compass services statusagain shows every servicerunning(same count as the msgpack run), confirming the fix to the launcher layers didn't regress the defaultjsonpath.
Result
| Field | Value |
|---|---|
| Status | PASS |
Results
| Field | Value |
|---|---|
| Status | PASSED |
| Completed at | 2026-07-31T16:09:07Z |
| Branch | feature/e2e-verify-msgpack-wire-format |
| Commit | 28ef42138 |
| Worktree | solid_dirac |
Notes
First pass failed at "Confirm wire format actually took effect": every
service logged format:json despite .env being set to msgpack.
Root-caused and fixed across five independent launcher layers (see the
parent task's * Plan and the process-supervisor-config-passthrough-gap
backlog capture) before re-running this scenario to a full pass.