Scenario Lab

Companion Sandbox

The local proving ground for live scenario runs. Connect the 20-service Companion Sandbox, import each service's OpenAPI as a sandbox environment, and let the outcome layer poll the sandbox to PROVE the downstream business state was reached.

sandbox offline 0 connectedLocal-only — localhost:8081
Connection
Wire the sandbox
Sandbox base URL

The local Companion Sandbox origin. Control-plane routes (/registry, /health, /scenario-state) live at the root; each service is mounted under http://localhost:8081/{service}.

API key (x-api-key)

The sandbox prints an all-scopes dev key on boot and writes it to sandbox/data/dev-key.txt. Paste that here, or mint a fresh scoped key (the mint call itself needs a key with the identity or * scope).

Request timeout
s

How long each live step waits for the sandbox before aborting. Raise it if runs die mid-step on a cold serverless/Render sandbox (the first call after idle can take 10–30s to spin up). Applies immediately to the connected sandbox environments.

Paste or mint an API key to enable connect.
Live status
Sandbox health
Not checked

Enter a base URL and refresh to probe the sandbox.

Getting started
Bring the sandbox up
Start the Companion Sandbox
  1. $ cd sandbox
  2. $ npm install
  3. $ npm run seed
  4. $ npm run dev
  • cd sandboxthe Companion Sandbox lives in the repo's sandbox/ folder
  • npm installone-time: install the sandbox's own dependencies
  • npm run seedgenerate deterministic ground-truth data for the 20 services
  • npm run devstart Fastify on port 8081 (prints an all-scopes dev key)

Local-only. The sandbox is a proving ground on your own machine. The deployed (Lovable-hosted) Workbench runs in the cloud and cannot reach localhost:8081 — so live sandbox runs work when you run both the Workbench (npm run dev, port 8080) and the sandbox locally.

Services
Service registry
20 services
ServiceBase pathMilestonesStatusLinks
Audit Event
platformTMF688
/audit-event
ConsentPostingCompleted
not connectedmanifest
Billing Account
billingTMF666
/billing-account
AgreementUpdateCompleted
not connectedmanifest
Customer Account
customerTMF629
/customer-account
Promote2CustomerCompletedDUPActivateCompleted
not connectedmanifest
Document & Agreement
agreementTMF651
/document-agreement
DocumentGenerationCompletedAgreementUpdateCompleted
not connectedmanifest
Identity
platformAPI-Key Admin
/identity
not connectedmanifest
Logistics Inventory
logisticsSAP-COLA/GRIP
/logistics-inventory
StockReservedPickCompletedPackCompleted+2
not connectedmanifest
Manufacturing Execution
manufacturing
/manufacturing-execution
ProductionCompleted
not connectedmanifest
Notification
communicationTMF688
/notification
CustomerNotificationSuccess
not connectedmanifest
Order Management
orderTMF622
/order-management
OrderCaptured
not connectedmanifest
Payment
billingTMF676
/payment
PaymentAuthorisedPaymentCaptured
not connectedmanifest
Pricing Rules
pricing
/pricing-rules
PriceCalculated
not connectedmanifest
Procurement
procurement
/procurement
PurchaseOrderApprovedGoodsReceived
not connectedmanifest
Product Catalog (EPC)
catalogTMF620
/product-catalog
EpcDataEnrichmentCompleted
not connectedmanifest
Product Inventory
inventoryTMF637
/product-inventory
ProductInventoryCompletedProductInventoryActivateCompleted
not connectedmanifest
Resource Inventory
inventoryTMF639
/resource-inventory
ResourceInventoryGetDataCompletedResourceInventoryActivateCompleted
not connectedmanifest
Return Authorization
logistics
/return-authorization
ReturnAuthorisedReturnReceivedReturnResolved+3
not connectedmanifest
Service Inventory
inventoryTMF638
/service-inventory
ServiceOrderManagementCallCompletedServiceOrderManagementActivationCompleted
not connectedmanifest
Shipment Tracking
logistics
/shipment-tracking
ShipmentCreatedShipmentDispatchedShipmentDelivered+2
not connectedmanifest
Time Tracking
staffing
/time-tracking
TimeBooked
not connectedmanifest
Work Order
field-service
/work-order
WorkOrderScheduledWorkOrderCompleted
not connectedmanifest
Contracts
Business contracts

What each box expects, in business terms — mirrored from the sandbox. Edit a meaning in the sandbox dashboard (Contracts tab), then Refresh here to mirror it.

After connecting, open the Scenario Builder, point a step's environment at a sandbox service, and run it from the Run Monitor — the outcome column proves the other side reached the expected milestone.