GenMfg Façade API — OpenAPI 1.1.0
<!-- GENERATED by scripts/render-platform-map-api-docs.mjs — do not hand-edit; edit apps/agent-bff/openapi/<spec>.json and re-run. --> Scope: The published reference for GenMfg Façade API. 163 paths — the measured spec-vs-implementation coverage lives in the complete API inventory. Status: rendered 2026-11-09 from the OpenAPI source for GenMfg Façade API — regenerate with node scripts/render-platform-map-api-docs.mjs. See also: the OpenAPI spec index.
Servers
| URL | Notes |
|---|---|
| http://127.0.0.1:3030 | agent-bff |
Paths — 163 paths / 331 operations
| Method | Path | Operation ID | Summary |
|---|---|---|---|
| GET | /v1/genmfg/bindings | genmfgListBindings | List integration bindings for org (connections-store) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/bindings | — | |
| POST | /v1/genmfg/bindings/step-owner | genmfgBindingsStepOwner | Resolve multi-party sticky bindings for step owner org (GEN-H03 Soft Soft≠LIVE) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/bindings/step-owner | — | |
| POST | /v1/genmfg/logistics/lifecycle/plan | genmfgLogisticsLifecyclePlan | Soft Soft≠LIVE normalized logistics lifecycle plan (GEN-F02) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/logistics/lifecycle/plan | — | |
| POST | /v1/genmfg/logistics/lifecycle/assert | genmfgLogisticsLifecycleAssert | Assert Soft Soft≠LIVE adjacent lifecycle transition (GEN-F02) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/logistics/lifecycle/assert | — | |
| POST | /v1/genmfg/prove/dual-pack-dom | genmfgProveDualPackDom | Soft Soft≠LIVE AG vs mining.gold Player/bench DOM assert (GEN-X03) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/prove/dual-pack-dom | — | |
| POST | /v1/genmfg/on-failure/assert | genmfgOnFailureAssert | Soft Soft≠LIVE declarative on_failure subflow (GEN-D06 / FS-02) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/on-failure/assert | — | |
| POST | /v1/genmfg/catalog/workflow-ban/assert | genmfgCatalogWorkflowBanAssert | Soft Soft≠LIVE ban materra-*-workflow paths for catalog scenarios (GEN-D08) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/catalog/workflow-ban/assert | — | |
| POST | /v1/genmfg/s2s/assert | genmfgS2sAssert | Soft Soft≠LIVE SPIFFE/mTLS or dual JWT BFF→bridge→Camel (GEN-A08) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/s2s/assert | — | |
| POST | /v1/genmfg/prove/seed/load | genmfgProveSeedLoad | Soft Soft≠LIVE prove seed load (GEN-P10) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/prove/seed/load | — | |
| POST | /v1/genmfg/prove/seed/unload | genmfgProveSeedUnload | Soft Soft≠LIVE prove seed unload-always (GEN-P10) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/prove/seed/unload | — | |
| GET | /v1/genmfg/prove/seed/{seed_run_id} | genmfgProveSeedGet | Soft Soft≠LIVE prove seed status (GEN-P10) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/prove/seed/{seed_run_id} | — | |
| POST | /v1/genmfg/prove/nightly/assert | genmfgProveNightlyAssert | Soft Soft≠LIVE nightly staging prove unload-always contract (GEN-P10) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/prove/nightly/assert | — | |
| POST | /v1/genmfg/materra/embed/assert | genmfgMaterraEmbedAssert | Soft Soft≠LIVE Materra embed: ban Soft memory scenario fallback (GEN-M08) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/materra/embed/assert | — | |
| POST | /v1/genmfg/entitlements/assert | genmfgEntitlementsAssert | Soft Soft≠LIVE stale entitlement invent_refuse + reason codes (GEN-22) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/entitlements/assert | — | |
| POST | /v1/genmfg/sourcing/readiness/assert | genmfgSourcingReadinessAssert | Soft Soft≠LIVE solver+Kestra+entitlements readiness aggregate (GEN-S05) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/sourcing/readiness/assert | — | |
| POST | /v1/genmfg/journeys/kestra/bind | genmfgJourneysKestraBind | Soft Soft≠LIVE journey YAML → compileKestraScenarioFlowYaml bind (GEN-14a) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/journeys/kestra/bind | — | |
| POST | /v1/genmfg/materra/agri-stamp/assert | genmfgMaterraAgriStampAssert | Soft Soft≠LIVE Materra stamps industry_pack=agriculture + org_id (GEN-M01) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/materra/agri-stamp/assert | — | |
| POST | /v1/genmfg/from-sourcing-award/work-order | genmfgFromSourcingAwardWorkOrder | Soft Soft≠LIVE award→WO copies correlation + fill/route plan refs (GEN-S04) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/from-sourcing-award/work-order | — | |
| POST | /v1/genmfg/hooks/solver-sourcing/assert | genmfgHooksSolverSourcingAssert | Soft Soft≠LIVE solver:/sourcing: hooks → decision-gateway/sourcing-kv (GEN-S03/ES03) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/hooks/solver-sourcing/assert | — | |
| POST | /v1/genmfg/from-multi-fill | genmfgFromMultiFill | Soft Soft≠LIVE multi_fill mango → GenMfg voyage (GEN-ES04) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/from-multi-fill | — | |
| POST | /v1/genmfg/integration-entity/instance-id/assert | genmfgIntegrationEntityInstanceIdAssert | Soft Soft≠LIVE integration_entity metadata.instance_id required (GEN-I04) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/integration-entity/instance-id/assert | — | |
| POST | /v1/genmfg/fleet/pack-hooks/assert | genmfgFleetPackHooksAssert | Soft Soft≠LIVE pack fleet:* hooks over existing Fleet/Usafiri (GEN-F01) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/fleet/pack-hooks/assert | — | |
| POST | /v1/genmfg/authz/mutate/assert | genmfgAuthzMutateAssert | Soft Soft≠LIVE mutate APF + server org + entitlement G2 (GEN-A01) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/authz/mutate/assert | — | |
| POST | /v1/genmfg/authz/rls/assert | genmfgAuthzRlsAssert | Soft Soft≠LIVE RLS on GenMfg list/get/SSE (GEN-A02) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/authz/rls/assert | — | |
| POST | /v1/genmfg/hierarchy/no-access-above/assert | genmfgHierarchyNoAccessAboveAssert | Soft Soft≠LIVE list/hydrate/play no-access-above (GEN-H04) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/hierarchy/no-access-above/assert | — | |
| POST | /v1/genmfg/voyage-engine/assert | genmfgVoyageEngineAssert | Soft Soft≠LIVE shared materra-playbook-voyage engine (GEN-M02) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/voyage-engine/assert | — | |
| POST | /v1/genmfg/voyage-engine/kestra-advance/assert | genmfgVoyageEngineKestraAdvanceAssert | Soft Soft≠LIVE Kestra-only LIVE advance; Mayet ban (GEN-M10) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/voyage-engine/kestra-advance/assert | — | |
| POST | /v1/genmfg/hooks/kestra-registry/assert | genmfgHooksKestraRegistryAssert | Soft Soft≠LIVE Kestra closed-hook task registry (GEN-D01) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/hooks/kestra-registry/assert | — | |
| POST | /v1/genmfg/catalog/journey-map/assert | genmfgCatalogJourneyMapAssert | Soft Soft≠LIVE map S-* catalog → seeded journeys/ (GEN-D05) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/catalog/journey-map/assert | — | |
| POST | /v1/genmfg/secrets/camel/assert | genmfgSecretsCamelAssert | Soft Soft≠LIVE OpenBao + secrets check_access for Camel creds (GEN-A06) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/secrets/camel/assert | — | |
| POST | /v1/genmfg/packs/publish | genmfgPacksPublish | Product Soft Soft≠LIVE pack publish to LOOKUPS (GEN-UI-API-04); prefer declarative deploy-live |
| X-GENMFG-PATH-CLASS | /v1/genmfg/packs/publish | — | |
| POST | /v1/genmfg/studio/author | genmfgStudioAuthor | Authoring Soft Soft≠LIVE Scenario Studio plan via declarative/Materra (GEN-UI-API-07) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/studio/author | — | |
| GET | /v1/genmfg/ops/kv-seed/status | genmfgOpsKvSeedStatus | Ops Soft Soft≠LIVE KV seed status (GEN-UI-API-10); prefer GET /v1/declarative/ops/kv-seed |
| X-GENMFG-PATH-CLASS | /v1/genmfg/ops/kv-seed/status | — | |
| POST | /v1/genmfg/console/product-allowlist/assert | genmfgConsoleProductAllowlistAssert | Prove Soft Soft≠LIVE GEN-UI-API-11 console LIVE invent_refuse until Product allowlist |
| X-GENMFG-PATH-CLASS | /v1/genmfg/console/product-allowlist/assert | — | |
| POST | /v1/genmfg/forms/bind | genmfgFormsBind | Product Soft Soft≠LIVE forms.io bind from pack/step (GEN-UI-API-02) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/forms/bind | — | |
| POST | /v1/genmfg/notify/map | genmfgNotifyMap | Product Soft Soft≠LIVE pack Novu map resolve (GEN-UI-API-03) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/notify/map | — | |
| POST | /v1/genmfg/inbox/hitl | genmfgInboxHitl | Product Soft Soft≠LIVE inbox HITL / quality.fail cards (GEN-UI-API-06) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/inbox/hitl | — | |
| POST | /v1/genmfg/ui-api/path-classes/assert | genmfgUiApiPathClassesAssert | Soft Soft≠LIVE GEN-UI-API-01 path class + UI guide fence (Prove only) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/ui-api/path-classes/assert | — | |
| POST | /v1/genmfg/ui-shell/assert | genmfgUiShellAssert | Soft Soft≠LIVE Universal shell consumes ui-bundle (GEN-U04) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/ui-shell/assert | — | |
| POST | /v1/genmfg/prove/seed/orchestrator/assert | genmfgProveSeedOrchestratorAssert | Soft Soft≠LIVE prove seed thin orchestrator (GEN-P04) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/prove/seed/orchestrator/assert | — | |
| POST | /v1/genmfg/prove/voyage-itqo/assert | genmfgProveVoyageItqoAssert | Soft Soft≠LIVE I→T→Q→O façade voyage contract (GEN-P05) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/prove/voyage-itqo/assert | — | |
| POST | /v1/genmfg/prove/elemental-lifecycle/assert | genmfgProveElementalLifecycleAssert | Soft Soft≠LIVE elemental lifecycle event stream (GEN-ELEM-07) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/prove/elemental-lifecycle/assert | — | |
| POST | /v1/genmfg/elemental/compile/assert | genmfgElementalCompileAssert | Soft Soft≠LIVE elemental lifecycle compile (GEN-ELEM-02) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/elemental/compile/assert | — | |
| POST | /v1/genmfg/elemental/advance-gate/assert | genmfgElementalAdvanceGateAssert | Soft Soft≠LIVE advance_gate control injection (GEN-ELEM-04) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/elemental/advance-gate/assert | — | |
| POST | /v1/genmfg/elemental/pack-policy/assert | genmfgElementalPackPolicyAssert | Soft Soft≠LIVE pack elemental_emit_policy (GEN-ELEM-05) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/elemental/pack-policy/assert | — | |
| POST | /v1/genmfg/ui/elemental-phase/assert | genmfgUiElementalPhaseAssert | Soft Soft≠LIVE UI elemental phase from SSE events (GEN-ELEM-10 Prove) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/ui/elemental-phase/assert | — | |
| POST | /v1/genmfg/voyages/{id}/elemental-phase | genmfgVoyageElementalPhase | Project Player elemental phase from events (GEN-ELEM-10 Product Soft Soft≠LIVE) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/voyages/{id}/elemental-phase | — | |
| POST | /v1/genmfg/elemental/kestra-bind/assert | genmfgElementalKestraBindAssert | Soft Soft≠LIVE elemental lifecycle + Kestra bind annotate (GEN-ELEM-02) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/elemental/kestra-bind/assert | — | |
| POST | /v1/genmfg/prove/federation/assert | genmfgProveFederationAssert | Soft Soft≠LIVE federation dual-node prove (GEN-P08) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/prove/federation/assert | — | |
| POST | /v1/genmfg/prove/shared-kestra-terminal/assert | genmfgProveSharedKestraTerminalAssert | Soft Soft≠LIVE AG-01+MN-03 shared Kestra terminal (GEN-D04) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/prove/shared-kestra-terminal/assert | — | |
| POST | /v1/genmfg/compliance/unlock/assert | genmfgComplianceUnlockAssert | Soft Soft≠LIVE compliance credential unlock for agri LIVE (GEN-M03) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/compliance/unlock/assert | — | |
| POST | /v1/genmfg/resources/prefer/assert | genmfgResourcesPreferAssert | Soft Soft≠LIVE prefer resource APIs over exchange underlay (GEN-N14) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/resources/prefer/assert | — | |
| POST | /v1/genmfg/resources/mirror/assert | genmfgResourcesMirrorAssert | Soft Soft≠LIVE resource mirror Soft Soft≠LIVE Map / LIVE s356 invent_refuse (GEN-R12) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/resources/mirror/assert | — | |
| POST | /v1/genmfg/logistics/lifecycle/full/assert | genmfgLogisticsLifecycleFullAssert | Soft Soft≠LIVE full normalized logistics lifecycle I/O (GEN-F02) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/logistics/lifecycle/full/assert | — | |
| POST | /v1/genmfg/prove/hitl/assert | genmfgProveHitlAssert | Soft Soft≠LIVE HITL multi-persona forms+advance (GEN-P13) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/prove/hitl/assert | — | |
| POST | /v1/genmfg/packs/agri-default/assert | genmfgPacksAgriDefaultAssert | Soft Soft≠LIVE agri pack default → journeys/agriculture/* (GEN-16) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/packs/agri-default/assert | — | |
| POST | /v1/genmfg/quality/attest/assert | genmfgQualityAttestAssert | Soft Soft≠LIVE quality→AaaS attestation compose (GEN-23) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/quality/attest/assert | — | |
| POST | /v1/genmfg/credentials/unlock/assert | genmfgCredentialsUnlockAssert | Soft Soft≠LIVE required_credentials unlock (GEN-24) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/credentials/unlock/assert | — | |
| POST | /v1/genmfg/seal/honesty/assert | genmfgSealHonestyAssert | Soft Soft≠LIVE SEAL honesty Soft≠LIVE fence (GEN-25) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/seal/honesty/assert | — | |
| POST | /v1/genmfg/prove/events/observe/assert | genmfgProveEventsObserveAssert | Soft Soft≠LIVE prove observe via SSE/list only (GEN-P09) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/prove/events/observe/assert | — | |
| POST | /v1/genmfg/criteria/fan-in/assert | genmfgCriteriaFanInAssert | Soft Soft≠LIVE logistics→platform.criteria.v1.* fan-in (GEN-N08) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/criteria/fan-in/assert | — | |
| POST | /v1/genmfg/events/sse-merge/assert | genmfgEventsSseMergeAssert | Soft Soft≠LIVE SSE merge by correlation (GEN-S07) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/events/sse-merge/assert | — | |
| POST | /v1/genmfg/dispatch/camel/assert | genmfgDispatchCamelAssert | Soft Soft≠LIVE Camel fleet dispatch no new bridge (GEN-33) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/dispatch/camel/assert | — | |
| POST | /v1/genmfg/erpnext/recipe/assert | genmfgErpnextRecipeAssert | Soft Soft≠LIVE ERPNext Camel/s367 recipe (GEN-34) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/erpnext/recipe/assert | — | |
| POST | /v1/genmfg/sourcing/multi-fill-fixture/assert | genmfgSourcingMultiFillFixtureAssert | Soft Soft≠LIVE multi_fill fixture reuse (GEN-S10) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/sourcing/multi-fill-fixture/assert | — | |
| POST | /v1/genmfg/secrets/instance/assert | genmfgSecretsInstanceAssert | Soft Soft≠LIVE per-instance OpenBao path (GEN-I07) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/secrets/instance/assert | — | |
| POST | /v1/genmfg/kestra/bindings/assert | genmfgKestraBindingsAssert | Soft Soft≠LIVE Kestra voyage bindings (GEN-I08) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/kestra/bindings/assert | — | |
| POST | /v1/genmfg/multi-org/step-owner/assert | genmfgMultiOrgStepOwnerAssert | Soft Soft≠LIVE multi-org step owner bindings (GEN-I09) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/multi-org/step-owner/assert | — | |
| POST | /v1/genmfg/logistics/geofence-advance/assert | genmfgLogisticsGeofenceAdvanceAssert | Soft Soft≠LIVE geofence enter advances voyage (GEN-F03) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/logistics/geofence-advance/assert | — | |
| POST | /v1/genmfg/logistics/equipment-relocate/assert | genmfgLogisticsEquipmentRelocateAssert | Soft Soft≠LIVE equipment relocate→logistics (GEN-F05) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/logistics/equipment-relocate/assert | — | |
| POST | /v1/genmfg/hierarchy/conglomerate/assert | genmfgHierarchyConglomerateAssert | Soft Soft≠LIVE conglomerate/franchise Soft fixtures (GEN-H08) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/hierarchy/conglomerate/assert | — | |
| POST | /v1/genmfg/hierarchy/chamber-cast/assert | genmfgHierarchyChamberCastAssert | Soft Soft≠LIVE chamber cast metadata (GEN-H09) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/hierarchy/chamber-cast/assert | — | |
| POST | /v1/genmfg/forms/bind/assert | genmfgFormsBindAssert | Soft Soft≠LIVE forms.io pack bind (GEN-U06) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/forms/bind/assert | — | |
| POST | /v1/genmfg/novu/map/assert | genmfgNovuMapAssert | Soft Soft≠LIVE Novu pack map (GEN-U07) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/novu/map/assert | — | |
| POST | /v1/genmfg/prove/openapi-fragments/assert | genmfgProveOpenapiFragmentsAssert | Soft Soft≠LIVE prove OpenAPI fragments link (GEN-P11) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/prove/openapi-fragments/assert | — | |
| POST | /v1/genmfg/prove/mn03/compose/assert | genmfgProveMn03ComposeAssert | Soft Soft≠LIVE MN-03 engine compose (GEN-X01c) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/prove/mn03/compose/assert | — | |
| POST | /v1/genmfg/inbox/hitl/assert | genmfgInboxHitlAssert | Soft Soft≠LIVE inbox HITL/quality cards (GEN-42) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/inbox/hitl/assert | — | |
| POST | /v1/genmfg/kuratibu/transform/assert | genmfgKuratibuTransformAssert | Soft Soft≠LIVE Kuratibu Transform mirror (GEN-43) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/kuratibu/transform/assert | — | |
| POST | /v1/genmfg/openmaint/asset/assert | genmfgOpenmaintAssetAssert | Soft Soft≠LIVE OpenMaint asset steps (GEN-44) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/openmaint/asset/assert | — | |
| POST | /v1/genmfg/materra/j3-default/assert | genmfgMaterraJ3DefaultAssert | Soft Soft≠LIVE J3 export/season agri default (GEN-M04) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/materra/j3-default/assert | — | |
| POST | /v1/genmfg/materra/inbox-agri/assert | genmfgMaterraInboxAgriAssert | Soft Soft≠LIVE Materra inbox agri events (GEN-M05) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/materra/inbox-agri/assert | — | |
| POST | /v1/genmfg/provenance/passport/assert | genmfgProvenancePassportAssert | Soft Soft≠LIVE provenance→quality+seal (GEN-M07) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/provenance/passport/assert | — | |
| POST | /v1/genmfg/index/assert | genmfgIndexAssert | Soft Soft≠LIVE GenMfg docs/UI index (GEN-01) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/index/assert | — | |
| POST | /v1/genmfg/arch/no-bridge-bridge/assert | genmfgArchNoBridgeBridgeAssert | Soft Soft≠LIVE ban bridge→bridge HTTP (GEN-02) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/arch/no-bridge-bridge/assert | — | |
| POST | /v1/genmfg/prove/ag05-event-path | genmfgProveAg05EventPath | Soft Soft≠LIVE AG-05 event-sourced path via API events only (GEN-ES09) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/prove/ag05-event-path | — | |
| POST | /v1/genmfg/packs/admin/assert | genmfgPacksAdminAssert | Soft Soft≠LIVE pack:admin APF + hydrate honesty (GEN-U10) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/packs/admin/assert | — | |
| POST | /v1/genmfg/authz/matrix/assert | genmfgAuthzMatrixAssert | Soft Soft≠LIVE agri 401/403/402/422 authz matrix (GEN-A09) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/authz/matrix/assert | — | |
| POST | /v1/genmfg/sourcing/reentry | genmfgSourcingReentry | Soft Soft≠LIVE Transform labor/parts sourcing re-entry (GEN-S09) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/sourcing/reentry | — | |
| POST | /v1/genmfg/from-standing-order-breach | genmfgFromStandingOrderBreach | Soft Soft≠LIVE standing-order breach → GenMfg Input (GEN-S08) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/from-standing-order-breach | — | |
| POST | /v1/genmfg/criteria-wf/assert | genmfgCriteriaWfAssert | Soft Soft≠LIVE criteria match.fired / sla.breached WF bind (GEN-ES07) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/criteria-wf/assert | — | |
| POST | /v1/genmfg/scenario-paths/assert | genmfgScenarioPathsAssert | Soft Soft≠LIVE scenario paths LG/FS/MX/FM/LB invent_refuse (GEN-X05/X06/X07) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/scenario-paths/assert | — | |
| POST | /v1/genmfg/logistics/exception | genmfgLogisticsException | Raise Soft Soft≠LIVE logistics exception.raised → support invent_refuse (GEN-F04) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/logistics/exception | — | |
| POST | /v1/genmfg/security/layers/assert | genmfgSecurityLayersAssert | Per-engine L1–L12 invent_refuse LIVE if incomplete (GEN-A05 Soft Soft≠LIVE) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/security/layers/assert | — | |
| POST | /v1/genmfg/envelopes/assert | genmfgEnvelopesAssert | Assert Camel/NATS envelope org_id + instance_id (GEN-I05 Soft Soft≠LIVE) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/envelopes/assert | — | |
| POST | /v1/genmfg/webhooks/assert | genmfgWebhooksAssert | Assert webhook HMAC per instance_id Soft Soft≠LIVE (GEN-I06/A07) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/webhooks/assert | — | |
| POST | /v1/genmfg/from-sourcing-award | genmfgFromSourcingAward | Soft Soft≠LIVE sourcing award → GenMfg correlation (GEN-X04 / S-AG-05) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/from-sourcing-award | — | |
| POST | /v1/genmfg/standing-orders/field-dispatch | genmfgStandingOrderFieldDispatch | Standing-order field_dispatch → shipment.create Soft Soft≠LIVE (GEN-F06) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/standing-orders/field-dispatch | — | |
| GET | /v1/genmfg/resolve | genmfgResolveBinding | Resolve instance for service (fail closed ambiguous/missing) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/resolve | — | |
| GET | /v1/genmfg/events/stream | genmfgEventsStream | SSE stream (genmfg + logistics + criteria + sourcing subjects) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/events/stream | — | |
| GET | /v1/exchange/domains | exchangeDomains | List substitutable exchange domains |
| X-GENMFG-PATH-CLASS | /v1/exchange/domains | — | |
| POST | /v1/exchange/normalize | exchangeNormalize | Normalize any domain event to platform.<domain>.v1.event.* |
| X-GENMFG-PATH-CLASS | /v1/exchange/normalize | — | |
| POST | /v1/exchange/denormalize | exchangeDenormalize | Denormalize platform command to adapter subject |
| X-GENMFG-PATH-CLASS | /v1/exchange/denormalize | — | |
| GET | /v1/genmfg/readiness | genmfgReadiness | Aggregate Soft Soft≠LIVE readiness |
| X-GENMFG-PATH-CLASS | /v1/genmfg/readiness | — | |
| POST | /v1/genmfg/live-gates/assert | genmfgLiveGatesAssert | Assert pack Flink Job A / domain normalize LIVE gates (GEN-ES06/W06) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/live-gates/assert | — | |
| GET | /v1/genmfg/catalog/hooks | genmfgCatalogHooks | Closed workflow hook vocabulary |
| X-GENMFG-PATH-CLASS | /v1/genmfg/catalog/hooks | — | |
| GET | /v1/genmfg/catalog/events | genmfgCatalogEvents | Subsystem event catalog |
| X-GENMFG-PATH-CLASS | /v1/genmfg/catalog/events | — | |
| POST | /v1/genmfg/hooks/validate | genmfgHooksValidate | Validate journey/hooks against closed vocabulary (GEN-D02/W10) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/hooks/validate | — | |
| POST | /v1/genmfg/voyages/{id}/seal | genmfgSealVoyage | Seal voyage Soft Soft≠LIVE; invent_refuse incomplete certify_eval_set (GEN-D07) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/voyages/{id}/seal | — | |
| GET | /v1/genmfg/packs | genmfgListPacks | List pack.genmfg.* from SOVEREIGN_LOOKUPS |
| X-GENMFG-PATH-CLASS | /v1/genmfg/packs | — | |
| GET | /v1/genmfg/packs/{industry} | genmfgGetPack | Get industry pack (supports mining.gold) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/packs/{industry} | — | |
| GET | /v1/genmfg/scenarios | genmfgListScenarios | List GenMfg Soft Soft≠LIVE scenario catalog (GEN-X01) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/scenarios | — | |
| GET | /v1/genmfg/scenarios/{id} | genmfgGetScenario | Get scenario by catalog id (S-MN-03) or scenario_key |
| X-GENMFG-PATH-CLASS | /v1/genmfg/scenarios/{id} | — | |
| GET | /v1/genmfg/ui-bundle | genmfgUiBundle | Compose data-driven UI shell from pack |
| X-GENMFG-PATH-CLASS | /v1/genmfg/ui-bundle | — | |
| GET | /v1/genmfg/voyages | genmfgListVoyages | List voyages (empty Soft honesty without listVoyages inject) |
| POST | /v1/genmfg/voyages | genmfgStartVoyage | Start voyage via playPlaybookVoyage |
| X-GENMFG-PATH-CLASS | /v1/genmfg/voyages | — | |
| GET | /v1/genmfg/voyages/{id} | genmfgGetVoyage | Get voyage state |
| X-GENMFG-PATH-CLASS | /v1/genmfg/voyages/{id} | — | |
| POST | /v1/genmfg/voyages/{id}/advance | genmfgAdvanceVoyage | Advance voyage (Kestra only — no Surreal Mayet LIVE) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/voyages/{id}/advance | — | |
| GET | /v1/genmfg/adapters | genmfgListAdapters | List adapter registry entries (GEN-N05 Soft Soft≠LIVE) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/adapters | — | |
| POST | /v1/genmfg/adapters/assert | genmfgAssertAdapters | Assert capabilities / multi_adapter_exchange / substitute (GEN-N09/N13) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/adapters/assert | — | |
| POST | /v1/genmfg/voyages/{id}/invoke | genmfgInvoke | action:invoke via workflow-subject-invoke; requires idempotency_key (GEN-W02/W05) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/voyages/{id}/invoke | — | |
| POST | /v1/genmfg/voyages/{id}/quality | genmfgQuality | Delegate compliance gate evaluate |
| X-GENMFG-PATH-CLASS | /v1/genmfg/voyages/{id}/quality | — | |
| POST | /v1/genmfg/voyages/{id}/optimize | genmfgOptimize | Pack solver → decision-gateway (fail closed) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/voyages/{id}/optimize | — | |
| POST | /v1/genmfg/voyages/{id}/dispatch | genmfgDispatch | Map platform.logistics.v1.command.* (denormalize) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/voyages/{id}/dispatch | — | |
| POST | /v1/genmfg/from-quote/{quoteId} | genmfgFromQuote | Alias sourcing sign-convert |
| X-GENMFG-PATH-CLASS | /v1/genmfg/from-quote/{quoteId} | — | |
| POST | /v1/logistics/normalize | logisticsNormalize | Normalize logistics event → platform.logistics.v1.event.* |
| X-GENMFG-PATH-CLASS | /v1/logistics/normalize | — | |
| POST | /v1/logistics/normalize/publish | logisticsNormalizePublish | LIVE publish normalized logistics (LOGISTICS_NORMALIZE_LIVE=1) |
| X-GENMFG-PATH-CLASS | /v1/logistics/normalize/publish | — | |
| POST | /v1/logistics/denormalize | logisticsDenormalize | Denormalize platform command → fleet.v1.command.* |
| X-GENMFG-PATH-CLASS | /v1/logistics/denormalize | — | |
| POST | /v1/logistics/denormalize/publish | logisticsDenormalizePublish | LIVE publish denormalized command |
| X-GENMFG-PATH-CLASS | /v1/logistics/denormalize/publish | — | |
| GET | /v1/genmfg/domains | genmfgListDomains | List schema-first GenMfg domains |
| X-GENMFG-PATH-CLASS | /v1/genmfg/domains | — | |
| GET | /v1/genmfg/domains/{domain} | genmfgGetDomain | Domain catalog (resources, operations, schema_id) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/domains/{domain} | — | |
| GET | /v1/genmfg/domains/{domain}/resources/{resourceType} | genmfgListResources | List domain resources (mirror) |
| POST | /v1/genmfg/domains/{domain}/resources/{resourceType} | genmfgWriteResource | Create/ensure/upsert domain resource (denorm Soft Soft≠LIVE) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/domains/{domain}/resources/{resourceType} | — | |
| GET | /v1/genmfg/domains/{domain}/resources/{resourceType}/{id} | genmfgGetResource | Get domain resource by id |
| PATCH | /v1/genmfg/domains/{domain}/resources/{resourceType}/{id} | genmfgPatchResource | Patch domain resource |
| X-GENMFG-PATH-CLASS | /v1/genmfg/domains/{domain}/resources/{resourceType}/{id} | — | |
| POST | /v1/genmfg/domains/{domain}/resources/{resourceType}/{id}/actions/{action} | genmfgResourceAction | Domain resource lifecycle action |
| X-GENMFG-PATH-CLASS | /v1/genmfg/domains/{domain}/resources/{resourceType}/{id}/actions/{action} | — | |
| POST | /v1/genmfg/domains/{domain}/events/ingest | genmfgDomainIngest | Ingress normalize + resource projection |
| X-GENMFG-PATH-CLASS | /v1/genmfg/domains/{domain}/events/ingest | — | |
| GET | /v1/genmfg/domains/{domain}/events | genmfgDomainEvents | List recent domain events (Soft Soft≠LIVE peek) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/domains/{domain}/events | — | |
| GET | /v1/genmfg/workspaces/{orgId} | genmfgGetWorkspace | Get org GenMfg workspace config |
| PUT | /v1/genmfg/workspaces/{orgId} | genmfgPutWorkspace | Upsert org GenMfg workspace (pack + domain binds) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/workspaces/{orgId} | — | |
| GET | /v1/genmfg/workspaces/{orgId}/bindings | genmfgListWorkspaceBindings | List workspace domain bindings |
| POST | /v1/genmfg/workspaces/{orgId}/bindings | genmfgUpsertWorkspaceBinding | Upsert sticky domain→instance bind |
| X-GENMFG-PATH-CLASS | /v1/genmfg/workspaces/{orgId}/bindings | — | |
| DELETE | /v1/genmfg/workspaces/{orgId}/bindings/{domain} | genmfgDeleteWorkspaceBinding | Soft-deactivate workspace domain bind |
| X-GENMFG-PATH-CLASS | /v1/genmfg/workspaces/{orgId}/bindings/{domain} | — | |
| POST | /v1/genmfg/voyages/{id}/resources/{domain}/{resourceType} | genmfgVoyageWriteResource | Voyage-scoped resource write |
| X-GENMFG-PATH-CLASS | /v1/genmfg/voyages/{id}/resources/{domain}/{resourceType} | — | |
| POST | /v1/genmfg/voyages/{id}/resources/{domain}/{resourceType}/{resourceId}/actions/{action} | genmfgVoyageResourceAction | Voyage-scoped resource action |
| X-GENMFG-PATH-CLASS | /v1/genmfg/voyages/{id}/resources/{domain}/{resourceType}/{resourceId}/actions/{action} | — | |
| POST | /v1/genmfg/ops/agri-cutover/assert | genmfgv1GenmfgOpsAgricutoverAssert | Soft Soft≠LIVE GEN-50 agri cutover |
| X-GENMFG-PATH-CLASS | /v1/genmfg/ops/agri-cutover/assert | — | |
| POST | /v1/genmfg/ops/cutover-progress/assert | genmfgOpsCutoverProgressAssert | Soft Soft≠LIVE cutover progress desk (TCP green ≠ LIVE) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/ops/cutover-progress/assert | — | |
| POST | /v1/genmfg/ops/live-readiness/assert | genmfgv1GenmfgOpsLivereadinessAssert | Soft Soft≠LIVE LIVE ops readiness inventory (never invents live_gate_met) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/ops/live-readiness/assert | — | |
| POST | /v1/genmfg/ops/kv-seed/assert | genmfgv1GenmfgOpsKvseedAssert | Soft Soft≠LIVE GenMfg KV seed inventory (never invents nats_kv_seeded) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/ops/kv-seed/assert | — | |
| POST | /v1/genmfg/ops/engine-probes/assert | genmfgv1GenmfgOpsEngineprobesAssert | Soft Soft≠LIVE engine TCP/probe honesty (never invents live_gate_met) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/ops/engine-probes/assert | — | |
| POST | /v1/genmfg/ops/stack-preflight/assert | genmfgv1GenmfgOpsStackpreflightAssert | Soft Soft≠LIVE Docker/stack preflight (never invents stack_live) |
| X-GENMFG-PATH-CLASS | /v1/genmfg/ops/stack-preflight/assert | — | |
| POST | /v1/genmfg/console/mfg-bind/assert | genmfgv1GenmfgConsoleMfgbindAssert | Soft Soft≠LIVE GEN-51 console MFG bind |
| X-GENMFG-PATH-CLASS | /v1/genmfg/console/mfg-bind/assert | — | |
| POST | /v1/genmfg/prove/playwright-smoke/assert | genmfgv1GenmfgProvePlaywrightsmokeAssert | Soft Soft≠LIVE GEN-54 playwright soft smoke |
| X-GENMFG-PATH-CLASS | /v1/genmfg/prove/playwright-smoke/assert | — | |
| POST | /v1/genmfg/prove/collections/assert | genmfgv1GenmfgProveCollectionsAssert | Soft Soft≠LIVE GEN-P12 OpenAPI collections |
| X-GENMFG-PATH-CLASS | /v1/genmfg/prove/collections/assert | — | |
| POST | /v1/genmfg/sourcing/offtake-reentry/assert | genmfgv1GenmfgSourcingOfftakereentryAssert | Soft Soft≠LIVE GEN-S12 offtake reentry |
| X-GENMFG-PATH-CLASS | /v1/genmfg/sourcing/offtake-reentry/assert | — | |
| POST | /v1/genmfg/logistics/wms-pallet/assert | genmfgv1GenmfgLogisticsWmspalletAssert | Soft Soft≠LIVE GEN-F07 WMS pallet |
| X-GENMFG-PATH-CLASS | /v1/genmfg/logistics/wms-pallet/assert | — | |
| POST | /v1/genmfg/criteria/job-b-interrupt/assert | genmfgv1GenmfgCriteriaJobbinterruptAssert | Soft Soft≠LIVE GEN-ES10 Job B SLA |
| X-GENMFG-PATH-CLASS | /v1/genmfg/criteria/job-b-interrupt/assert | — | |
| POST | /v1/genmfg/scenarios/hl01/assert | genmfgv1GenmfgScenariosHl01Assert | Soft Soft≠LIVE GEN-X08 HL-01 medical |
| X-GENMFG-PATH-CLASS | /v1/genmfg/scenarios/hl01/assert | — | |
| POST | /v1/genmfg/prove/traceability/assert | genmfgv1GenmfgProveTraceabilityAssert | Soft Soft≠LIVE GEN-X09 traceability |
| X-GENMFG-PATH-CLASS | /v1/genmfg/prove/traceability/assert | — | |
| POST | /v1/genmfg/whatif/overlay/assert | genmfgv1GenmfgWhatifOverlayAssert | Soft Soft≠LIVE GEN-35 what-if |
| X-GENMFG-PATH-CLASS | /v1/genmfg/whatif/overlay/assert | — | |
| POST | /v1/genmfg/standing-orders/wo-spawn/assert | genmfgv1GenmfgStandingordersWospawnAssert | Soft Soft≠LIVE GEN-53 SO WO spawn |
| X-GENMFG-PATH-CLASS | /v1/genmfg/standing-orders/wo-spawn/assert | — | |
| POST | /v1/genmfg/events/ws-multiplexer/assert | genmfgv1GenmfgEventsWsmultiplexerAssert | Soft Soft≠LIVE GEN-45 WS mux |
| X-GENMFG-PATH-CLASS | /v1/genmfg/events/ws-multiplexer/assert | — | |
| POST | /v1/genmfg/bindings/erp-plane/assert | genmfgv1GenmfgBindingsErpplaneAssert | Soft Soft≠LIVE GEN-I11 ERP Plane |
| X-GENMFG-PATH-CLASS | /v1/genmfg/bindings/erp-plane/assert | — | |
| POST | /v1/genmfg/hierarchy/drilldown/assert | genmfgv1GenmfgHierarchyDrilldownAssert | Soft Soft≠LIVE GEN-H10 drilldown |
| X-GENMFG-PATH-CLASS | /v1/genmfg/hierarchy/drilldown/assert | — | |
| POST | /v1/genmfg/bi/superset-embed/assert | genmfgv1GenmfgBiSupersetembedAssert | Soft Soft≠LIVE GEN-A11 Superset |
| X-GENMFG-PATH-CLASS | /v1/genmfg/bi/superset-embed/assert | — | |
| POST | /v1/genmfg/ui/minio-signed/assert | genmfgv1GenmfgUiMiniosignedAssert | Soft Soft≠LIVE GEN-U11 MinIO |
| X-GENMFG-PATH-CLASS | /v1/genmfg/ui/minio-signed/assert | — | |
| POST | /v1/genmfg/ui/composable-facet/assert | genmfgv1GenmfgUiComposablefacetAssert | Soft Soft≠LIVE GEN-U12 facet |
| X-GENMFG-PATH-CLASS | /v1/genmfg/ui/composable-facet/assert | — | |
| POST | /v1/genmfg/studio/author/assert | genmfgv1GenmfgStudioAuthorAssert | Soft Soft≠LIVE GEN-W12 studio author |
| X-GENMFG-PATH-CLASS | /v1/genmfg/studio/author/assert | — | |
| POST | /v1/genmfg/packs/healthcare-fleet/assert | genmfgv1GenmfgPacksHealthcarefleetAssert | Soft Soft≠LIVE GEN-52 healthcare/fleet packs |
| X-GENMFG-PATH-CLASS | /v1/genmfg/packs/healthcare-fleet/assert | — |
Operations
GET /v1/genmfg/bindings
Summary: List integration bindings for org (connections-store)
Operation ID: genmfgListBindings
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| X-Org-Id | header | yes | string | |
| service | query | no | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Bindings list Soft Soft≠LIVE |
X-GENMFG-PATH-CLASS /v1/genmfg/bindings
POST /v1/genmfg/bindings/step-owner
Summary: Resolve multi-party sticky bindings for step owner org (GEN-H03 Soft Soft≠LIVE)
Operation ID: genmfgBindingsStepOwner Responses:
| Status | Meaning |
|---|---|
| 200 | Step-owner binding slice |
| 404 | step_owner_bindings_missing invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/bindings/step-owner
POST /v1/genmfg/logistics/lifecycle/plan
Summary: Soft Soft≠LIVE normalized logistics lifecycle plan (GEN-F02)
Operation ID: genmfgLogisticsLifecyclePlan Responses:
| Status | Meaning |
|---|---|
| 200 | Stage plan invent_refuse_live |
| 400 | org_id_required |
X-GENMFG-PATH-CLASS /v1/genmfg/logistics/lifecycle/plan
POST /v1/genmfg/logistics/lifecycle/assert
Summary: Assert Soft Soft≠LIVE adjacent lifecycle transition (GEN-F02)
Operation ID: genmfgLogisticsLifecycleAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Transition ok Soft Soft≠LIVE |
| 422 | lifecycle_transition_invalid invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/logistics/lifecycle/assert
POST /v1/genmfg/prove/dual-pack-dom
Summary: Soft Soft≠LIVE AG vs mining.gold Player/bench DOM assert (GEN-X03)
Operation ID: genmfgProveDualPackDom Responses:
| Status | Meaning |
|---|---|
| 200 | Soft Soft≠LIVE DOM labels/columns distinct |
| 422 | dual_pack_dom_assert_failed invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/prove/dual-pack-dom
POST /v1/genmfg/on-failure/assert
Summary: Soft Soft≠LIVE declarative on_failure subflow (GEN-D06 / FS-02)
Operation ID: genmfgOnFailureAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Soft Soft≠LIVE on_failure subflow resolved |
| 404 | on_failure_subflow_missing invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/on-failure/assert
POST /v1/genmfg/catalog/workflow-ban/assert
Summary: Soft Soft≠LIVE ban materra-*-workflow paths for catalog scenarios (GEN-D08)
Operation ID: genmfgCatalogWorkflowBanAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Soft Soft≠LIVE catalog journey/Kestra only |
| 422 | materra_workflow_path_forbidden invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/catalog/workflow-ban/assert
POST /v1/genmfg/s2s/assert
Summary: Soft Soft≠LIVE SPIFFE/mTLS or dual JWT BFF→bridge→Camel (GEN-A08)
Operation ID: genmfgS2sAssert Responses:
| Status | Meaning |
|---|---|
| 200 | S2S LIVE gate met or Soft Soft≠LIVE invent_refuse body |
| 503 | genmfg_s2s_spiffe_incomplete invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/s2s/assert
POST /v1/genmfg/prove/seed/load
Summary: Soft Soft≠LIVE prove seed load (GEN-P10)
Operation ID: genmfgProveSeedLoad Responses:
| Status | Meaning |
|---|---|
| 200 | seed_run_id Soft Soft≠LIVE unload_always |
| 404 | prove_fixture_unknown invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/prove/seed/load
POST /v1/genmfg/prove/seed/unload
Summary: Soft Soft≠LIVE prove seed unload-always (GEN-P10)
Operation ID: genmfgProveSeedUnload Responses:
| Status | Meaning |
|---|---|
| 200 | Idempotent Soft Soft≠LIVE unload |
| 400 | seed_run_id_required |
X-GENMFG-PATH-CLASS /v1/genmfg/prove/seed/unload
GET /v1/genmfg/prove/seed/{seed_run_id}
Summary: Soft Soft≠LIVE prove seed status (GEN-P10)
Operation ID: genmfgProveSeedGet
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| seed_run_id | path | yes | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Soft Soft≠LIVE seed run status |
| 404 | seed_run_not_found invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/prove/seed/{seed_run_id}
POST /v1/genmfg/prove/nightly/assert
Summary: Soft Soft≠LIVE nightly staging prove unload-always contract (GEN-P10)
Operation ID: genmfgProveNightlyAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Soft Soft≠LIVE contract (staging invent_refuse or LIVE) |
| 422 | unload_always_required invent_refuse |
| 503 | staging LIVE unbound invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/prove/nightly/assert
POST /v1/genmfg/materra/embed/assert
Summary: Soft Soft≠LIVE Materra embed: ban Soft memory scenario fallback (GEN-M08)
Operation ID: genmfgMaterraEmbedAssert Responses:
| Status | Meaning |
|---|---|
| 200 | KV-bound embed Soft Soft≠LIVE |
| 422 | materra_embed_memory_fallback_deprecated invent_refuse |
| 503 | materra_embed_kv_unbound invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/materra/embed/assert
POST /v1/genmfg/entitlements/assert
Summary: Soft Soft≠LIVE stale entitlement invent_refuse + reason codes (GEN-22)
Operation ID: genmfgEntitlementsAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Fresh Soft Soft≠LIVE |
| 402 | stale/deny/missing invent_refuse with reason_code |
X-GENMFG-PATH-CLASS /v1/genmfg/entitlements/assert
POST /v1/genmfg/sourcing/readiness/assert
Summary: Soft Soft≠LIVE solver+Kestra+entitlements readiness aggregate (GEN-S05)
Operation ID: genmfgSourcingReadinessAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Aggregate LIVE gate met |
| 503 | sourcing_readiness_aggregate_incomplete invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/sourcing/readiness/assert
POST /v1/genmfg/journeys/kestra/bind
Summary: Soft Soft≠LIVE journey YAML → compileKestraScenarioFlowYaml bind (GEN-14a)
Operation ID: genmfgJourneysKestraBind Responses:
| Status | Meaning |
|---|---|
| 200 | Soft Soft≠LIVE compile bind (deploy_live false) |
| 503 | kestra_compile_unbound invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/journeys/kestra/bind
POST /v1/genmfg/materra/agri-stamp/assert
Summary: Soft Soft≠LIVE Materra stamps industry_pack=agriculture + org_id (GEN-M01)
Operation ID: genmfgMaterraAgriStampAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Stamped Soft Soft≠LIVE |
| 422 | non-agri Materra pack invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/materra/agri-stamp/assert
POST /v1/genmfg/from-sourcing-award/work-order
Summary: Soft Soft≠LIVE award→WO copies correlation + fill/route plan refs (GEN-S04)
Operation ID: genmfgFromSourcingAwardWorkOrder Responses:
| Status | Meaning |
|---|---|
| 200 | WO Soft Soft≠LIVE draft |
| 422 | plan refs / correlation invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/from-sourcing-award/work-order
POST /v1/genmfg/hooks/solver-sourcing/assert
Summary: Soft Soft≠LIVE solver:/sourcing: hooks → decision-gateway/sourcing-kv (GEN-S03/ES03)
Operation ID: genmfgHooksSolverSourcingAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Hooks Soft Soft≠LIVE bound |
| 422 | in-BFF OR-Tools / unbound invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/hooks/solver-sourcing/assert
POST /v1/genmfg/from-multi-fill
Summary: Soft Soft≠LIVE multi_fill mango → GenMfg voyage (GEN-ES04)
Operation ID: genmfgFromMultiFill Responses:
| Status | Meaning |
|---|---|
| 200 | Soft Soft≠LIVE voyage map |
| 503 | voyage start invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/from-multi-fill
POST /v1/genmfg/integration-entity/instance-id/assert
Summary: Soft Soft≠LIVE integration_entity metadata.instance_id required (GEN-I04)
Operation ID: genmfgIntegrationEntityInstanceIdAssert Responses:
| Status | Meaning |
|---|---|
| 200 | instance_id stamped Soft Soft≠LIVE |
| 422 | instance_id required invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/integration-entity/instance-id/assert
POST /v1/genmfg/fleet/pack-hooks/assert
Summary: Soft Soft≠LIVE pack fleet:* hooks over existing Fleet/Usafiri (GEN-F01)
Operation ID: genmfgFleetPackHooksAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Pack hooks Soft Soft≠LIVE mapped |
| 422 | bridge rebuild / unknown hook invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/fleet/pack-hooks/assert
POST /v1/genmfg/authz/mutate/assert
Summary: Soft Soft≠LIVE mutate APF + server org + entitlement G2 (GEN-A01)
Operation ID: genmfgAuthzMutateAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Soft Soft≠LIVE mutate gates met |
| 402 | entitlement invent_refuse |
| 403 | APF/org invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/authz/mutate/assert
POST /v1/genmfg/authz/rls/assert
Summary: Soft Soft≠LIVE RLS on GenMfg list/get/SSE (GEN-A02)
Operation ID: genmfgAuthzRlsAssert Responses:
| Status | Meaning |
|---|---|
| 200 | RLS Soft Soft≠LIVE pass |
| 403 | rls_denied invent_refuse |
| 503 | rls_guard_unbound invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/authz/rls/assert
POST /v1/genmfg/hierarchy/no-access-above/assert
Summary: Soft Soft≠LIVE list/hydrate/play no-access-above (GEN-H04)
Operation ID: genmfgHierarchyNoAccessAboveAssert Responses:
| Status | Meaning |
|---|---|
| 200 | leaf Soft Soft≠LIVE ok |
| 403 | no_access_above invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/hierarchy/no-access-above/assert
POST /v1/genmfg/voyage-engine/assert
Summary: Soft Soft≠LIVE shared materra-playbook-voyage engine (GEN-M02)
Operation ID: genmfgVoyageEngineAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Shared engine Soft Soft≠LIVE |
| 422 | parallel engine invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/voyage-engine/assert
POST /v1/genmfg/voyage-engine/kestra-advance/assert
Summary: Soft Soft≠LIVE Kestra-only LIVE advance; Mayet ban (GEN-M10)
Operation ID: genmfgVoyageEngineKestraAdvanceAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Kestra Soft Soft≠LIVE honesty |
| 503 | mayet_live_advance_forbidden invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/voyage-engine/kestra-advance/assert
POST /v1/genmfg/hooks/kestra-registry/assert
Summary: Soft Soft≠LIVE Kestra closed-hook task registry (GEN-D01)
Operation ID: genmfgHooksKestraRegistryAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Registry Soft Soft≠LIVE |
| 422 | hook via missing invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/hooks/kestra-registry/assert
POST /v1/genmfg/catalog/journey-map/assert
Summary: Soft Soft≠LIVE map S-* catalog → seeded journeys/ (GEN-D05)
Operation ID: genmfgCatalogJourneyMapAssert Responses:
| Status | Meaning |
|---|---|
| 200 | S-* Soft Soft≠LIVE mapped |
| 422 | catalog_journey_map_incomplete invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/catalog/journey-map/assert
POST /v1/genmfg/secrets/camel/assert
Summary: Soft Soft≠LIVE OpenBao + secrets check_access for Camel creds (GEN-A06)
Operation ID: genmfgSecretsCamelAssert Responses:
| Status | Meaning |
|---|---|
| 200 | check_access Soft Soft≠LIVE (no secret value) |
| 403 | secrets_access_denied invent_refuse |
| 503 | secrets_check_access_unbound invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/secrets/camel/assert
POST /v1/genmfg/packs/publish
Summary: Product Soft Soft≠LIVE pack publish to LOOKUPS (GEN-UI-API-04); prefer declarative deploy-live
Operation ID: genmfgPacksPublish Responses:
| Status | Meaning |
|---|---|
| 200 | publish plan or Soft Soft≠LIVE put |
| 403 | pack_admin_apf_denied |
| 503 | pack_publish_kv_unbound invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/packs/publish
POST /v1/genmfg/studio/author
Summary: Authoring Soft Soft≠LIVE Scenario Studio plan via declarative/Materra (GEN-UI-API-07)
Operation ID: genmfgStudioAuthor Responses:
| Status | Meaning |
|---|---|
| 200 | author plan Soft Soft≠LIVE |
| 422 | browser_kv_forbidden / studio_api_not_declarative invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/studio/author
GET /v1/genmfg/ops/kv-seed/status
Summary: Ops Soft Soft≠LIVE KV seed status (GEN-UI-API-10); prefer GET /v1/declarative/ops/kv-seed
Operation ID: genmfgOpsKvSeedStatus Responses:
| Status | Meaning |
|---|---|
| 200 | status Soft Soft≠LIVE invent_refuse_live |
X-GENMFG-PATH-CLASS /v1/genmfg/ops/kv-seed/status
POST /v1/genmfg/console/product-allowlist/assert
Summary: Prove Soft Soft≠LIVE GEN-UI-API-11 console LIVE invent_refuse until Product allowlist
Operation ID: genmfgConsoleProductAllowlistAssert Responses:
| Status | Meaning |
|---|---|
| 200 | allowlist Soft Soft≠LIVE ok; console_live false |
| 422 | missing Product paths invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/console/product-allowlist/assert
POST /v1/genmfg/forms/bind
Summary: Product Soft Soft≠LIVE forms.io bind from pack/step (GEN-UI-API-02)
Operation ID: genmfgFormsBind Responses:
| Status | Meaning |
|---|---|
| 200 | bind Soft Soft≠LIVE |
| 400 | form_id_required |
| 422 | forms_engine_rebuild_forbidden invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/forms/bind
POST /v1/genmfg/notify/map
Summary: Product Soft Soft≠LIVE pack Novu map resolve (GEN-UI-API-03)
Operation ID: genmfgNotifyMap Responses:
| Status | Meaning |
|---|---|
| 200 | notify map Soft Soft≠LIVE |
| 400 | novu_template_required |
| 422 | novu_raw_subject_forbidden invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/notify/map
POST /v1/genmfg/inbox/hitl
Summary: Product Soft Soft≠LIVE inbox HITL / quality.fail cards (GEN-UI-API-06)
Operation ID: genmfgInboxHitl Responses:
| Status | Meaning |
|---|---|
| 200 | inbox HITL Soft Soft≠LIVE |
| 422 | inbox_card_kind_unsupported invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/inbox/hitl
POST /v1/genmfg/ui-api/path-classes/assert
Summary: Soft Soft≠LIVE GEN-UI-API-01 path class + UI guide fence (Prove only)
Operation ID: genmfgUiApiPathClassesAssert Responses:
| Status | Meaning |
|---|---|
| 200 | OpenAPI stamps + §0.1 fence Soft Soft≠LIVE |
| 422 | missing stamp / Product assert / doc fence invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/ui-api/path-classes/assert
POST /v1/genmfg/ui-shell/assert
Summary: Soft Soft≠LIVE Universal shell consumes ui-bundle (GEN-U04)
Operation ID: genmfgUiShellAssert Responses:
| Status | Meaning |
|---|---|
| 200 | library + voyage_player Soft Soft≠LIVE |
| 422 | shell incomplete / agri fork invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/ui-shell/assert
POST /v1/genmfg/prove/seed/orchestrator/assert
Summary: Soft Soft≠LIVE prove seed thin orchestrator (GEN-P04)
Operation ID: genmfgProveSeedOrchestratorAssert Responses:
| Status | Meaning |
|---|---|
| 200 | thin orchestrator Soft Soft≠LIVE |
| 422 | second_seeder_forbidden invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/prove/seed/orchestrator/assert
POST /v1/genmfg/prove/voyage-itqo/assert
Summary: Soft Soft≠LIVE I→T→Q→O façade voyage contract (GEN-P05)
Operation ID: genmfgProveVoyageItqoAssert Responses:
| Status | Meaning |
|---|---|
| 200 | I→T→Q→O Soft Soft≠LIVE |
| 422 | incomplete / soft_leak invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/prove/voyage-itqo/assert
POST /v1/genmfg/prove/elemental-lifecycle/assert
Summary: Soft Soft≠LIVE elemental lifecycle event stream (GEN-ELEM-07)
Operation ID: genmfgProveElementalLifecycleAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Elemental lifecycle Soft Soft≠LIVE |
| 422 | incomplete stream / invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/prove/elemental-lifecycle/assert
POST /v1/genmfg/elemental/compile/assert
Summary: Soft Soft≠LIVE elemental lifecycle compile (GEN-ELEM-02)
Operation ID: genmfgElementalCompileAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Lifecycle compile Soft Soft≠LIVE |
| 422 | unknown advance_gate / invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/elemental/compile/assert
POST /v1/genmfg/elemental/advance-gate/assert
Summary: Soft Soft≠LIVE advance_gate control injection (GEN-ELEM-04)
Operation ID: genmfgElementalAdvanceGateAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Gate Soft Soft≠LIVE (DENY/pass/pending) |
| 422 | invent_passed forbidden |
| 503 | LIVE engines down invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/elemental/advance-gate/assert
POST /v1/genmfg/elemental/pack-policy/assert
Summary: Soft Soft≠LIVE pack elemental_emit_policy (GEN-ELEM-05)
Operation ID: genmfgElementalPackPolicyAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Pack policy Soft Soft≠LIVE |
| 422 | policy missing / invalid |
X-GENMFG-PATH-CLASS /v1/genmfg/elemental/pack-policy/assert
POST /v1/genmfg/ui/elemental-phase/assert
Summary: Soft Soft≠LIVE UI elemental phase from SSE events (GEN-ELEM-10 Prove)
Operation ID: genmfgUiElementalPhaseAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Phase chrome Soft Soft≠LIVE |
| 422 | invent / NATS / hardcode invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/ui/elemental-phase/assert
POST /v1/genmfg/voyages/{id}/elemental-phase
Summary: Project Player elemental phase from events (GEN-ELEM-10 Product Soft Soft≠LIVE)
Operation ID: genmfgVoyageElementalPhase
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| id | path | yes | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Phase chrome from events Soft Soft≠LIVE |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/voyages/{id}/elemental-phase
POST /v1/genmfg/elemental/kestra-bind/assert
Summary: Soft Soft≠LIVE elemental lifecycle + Kestra bind annotate (GEN-ELEM-02)
Operation ID: genmfgElementalKestraBindAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Elemental Kestra Soft Soft≠LIVE annotate |
| 422 | compile invent_refuse |
| 503 | kestra compile unbound |
X-GENMFG-PATH-CLASS /v1/genmfg/elemental/kestra-bind/assert
POST /v1/genmfg/prove/federation/assert
Summary: Soft Soft≠LIVE federation dual-node prove (GEN-P08)
Operation ID: genmfgProveFederationAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Soft Soft≠LIVE contract (LIVE invent_refuse) |
| 503 | federation_live_unbound invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/prove/federation/assert
POST /v1/genmfg/prove/shared-kestra-terminal/assert
Summary: Soft Soft≠LIVE AG-01+MN-03 shared Kestra terminal (GEN-D04)
Operation ID: genmfgProveSharedKestraTerminalAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Shared Kestra Soft Soft≠LIVE |
| 422 | industry_bff_fsm_forbidden invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/prove/shared-kestra-terminal/assert
POST /v1/genmfg/compliance/unlock/assert
Summary: Soft Soft≠LIVE compliance credential unlock for agri LIVE (GEN-M03)
Operation ID: genmfgComplianceUnlockAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Unlocked Soft Soft≠LIVE |
| 402 | credentials unlock unmet invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/compliance/unlock/assert
POST /v1/genmfg/resources/prefer/assert
Summary: Soft Soft≠LIVE prefer resource APIs over exchange underlay (GEN-N14)
Operation ID: genmfgResourcesPreferAssert Responses:
| Status | Meaning |
|---|---|
| 200 | resource API Soft Soft≠LIVE / deprecated underlay noted |
| 422 | exchange product caller invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/resources/prefer/assert
POST /v1/genmfg/resources/mirror/assert
Summary: Soft Soft≠LIVE resource mirror Soft Soft≠LIVE Map / LIVE s356 invent_refuse (GEN-R12)
Operation ID: genmfgResourcesMirrorAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Soft Soft≠LIVE mirror honesty; live_gate_met false |
| 422 | invent LIVE mirror forbidden |
X-GENMFG-PATH-CLASS /v1/genmfg/resources/mirror/assert
POST /v1/genmfg/logistics/lifecycle/full/assert
Summary: Soft Soft≠LIVE full normalized logistics lifecycle I/O (GEN-F02)
Operation ID: genmfgLogisticsLifecycleFullAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Full Soft Soft≠LIVE lifecycle plan |
| 422 | lifecycle invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/logistics/lifecycle/full/assert
POST /v1/genmfg/prove/hitl/assert
Summary: Soft Soft≠LIVE HITL multi-persona forms+advance (GEN-P13)
Operation ID: genmfgProveHitlAssert Responses:
| Status | Meaning |
|---|---|
| 200 | HITL Soft Soft≠LIVE compose ok |
| 422 | personas/compose/DEV_SKIP_AUTH invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/prove/hitl/assert
POST /v1/genmfg/packs/agri-default/assert
Summary: Soft Soft≠LIVE agri pack default → journeys/agriculture/* (GEN-16)
Operation ID: genmfgPacksAgriDefaultAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Agri default Soft Soft≠LIVE |
| 422 | non-agri journey invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/packs/agri-default/assert
POST /v1/genmfg/quality/attest/assert
Summary: Soft Soft≠LIVE quality→AaaS attestation compose (GEN-23)
Operation ID: genmfgQualityAttestAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Attest compose Soft Soft≠LIVE |
| 422 | quality/attest invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/quality/attest/assert
POST /v1/genmfg/credentials/unlock/assert
Summary: Soft Soft≠LIVE required_credentials unlock (GEN-24)
Operation ID: genmfgCredentialsUnlockAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Unlock Soft Soft≠LIVE |
| 422 | credentials invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/credentials/unlock/assert
POST /v1/genmfg/seal/honesty/assert
Summary: Soft Soft≠LIVE SEAL honesty Soft≠LIVE fence (GEN-25)
Operation ID: genmfgSealHonestyAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Seal honesty Soft Soft≠LIVE |
| 422 | soft_seal_as_live / incomplete invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/seal/honesty/assert
POST /v1/genmfg/prove/events/observe/assert
Summary: Soft Soft≠LIVE prove observe via SSE/list only (GEN-P09)
Operation ID: genmfgProveEventsObserveAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Observe Soft Soft≠LIVE |
| 422 | NATS-in-harness invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/prove/events/observe/assert
POST /v1/genmfg/criteria/fan-in/assert
Summary: Soft Soft≠LIVE logistics→platform.criteria.v1.* fan-in (GEN-N08)
Operation ID: genmfgCriteriaFanInAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Criteria fan-in Soft Soft≠LIVE |
| 422 | raw adapter / unsupported invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/criteria/fan-in/assert
POST /v1/genmfg/events/sse-merge/assert
Summary: Soft Soft≠LIVE SSE merge by correlation (GEN-S07)
Operation ID: genmfgEventsSseMergeAssert Responses:
| Status | Meaning |
|---|---|
| 200 | SSE merge Soft Soft≠LIVE |
| 422 | raw subjects invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/events/sse-merge/assert
POST /v1/genmfg/dispatch/camel/assert
Summary: Soft Soft≠LIVE Camel fleet dispatch no new bridge (GEN-33)
Operation ID: genmfgDispatchCamelAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Camel dispatch Soft Soft≠LIVE |
| 422 | new bridge invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/dispatch/camel/assert
POST /v1/genmfg/erpnext/recipe/assert
Summary: Soft Soft≠LIVE ERPNext Camel/s367 recipe (GEN-34)
Operation ID: genmfgErpnextRecipeAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ERPNext Soft Soft≠LIVE |
| 422 | direct ERP client invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/erpnext/recipe/assert
POST /v1/genmfg/sourcing/multi-fill-fixture/assert
Summary: Soft Soft≠LIVE multi_fill fixture reuse (GEN-S10)
Operation ID: genmfgSourcingMultiFillFixtureAssert Responses:
| Status | Meaning |
|---|---|
| 200 | multi_fill Soft Soft≠LIVE |
| 422 | fork invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/sourcing/multi-fill-fixture/assert
POST /v1/genmfg/secrets/instance/assert
Summary: Soft Soft≠LIVE per-instance OpenBao path (GEN-I07)
Operation ID: genmfgSecretsInstanceAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Instance secret Soft Soft≠LIVE |
| 422 | secret invent invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/secrets/instance/assert
POST /v1/genmfg/kestra/bindings/assert
Summary: Soft Soft≠LIVE Kestra voyage bindings (GEN-I08)
Operation ID: genmfgKestraBindingsAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Kestra bindings Soft Soft≠LIVE |
| 422 | missing instance_id invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/kestra/bindings/assert
POST /v1/genmfg/multi-org/step-owner/assert
Summary: Soft Soft≠LIVE multi-org step owner bindings (GEN-I09)
Operation ID: genmfgMultiOrgStepOwnerAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Step owner Soft Soft≠LIVE |
| 422 | bindings missing invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/multi-org/step-owner/assert
POST /v1/genmfg/logistics/geofence-advance/assert
Summary: Soft Soft≠LIVE geofence enter advances voyage (GEN-F03)
Operation ID: genmfgLogisticsGeofenceAdvanceAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Geofence advance Soft Soft≠LIVE |
| 422 | raw fleet invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/logistics/geofence-advance/assert
POST /v1/genmfg/logistics/equipment-relocate/assert
Summary: Soft Soft≠LIVE equipment relocate→logistics (GEN-F05)
Operation ID: genmfgLogisticsEquipmentRelocateAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Relocate Soft Soft≠LIVE |
| 400 | asset/org invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/logistics/equipment-relocate/assert
POST /v1/genmfg/hierarchy/conglomerate/assert
Summary: Soft Soft≠LIVE conglomerate/franchise Soft fixtures (GEN-H08)
Operation ID: genmfgHierarchyConglomerateAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/hierarchy/conglomerate/assert
POST /v1/genmfg/hierarchy/chamber-cast/assert
Summary: Soft Soft≠LIVE chamber cast metadata (GEN-H09)
Operation ID: genmfgHierarchyChamberCastAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/hierarchy/chamber-cast/assert
POST /v1/genmfg/forms/bind/assert
Summary: Soft Soft≠LIVE forms.io pack bind (GEN-U06)
Operation ID: genmfgFormsBindAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/forms/bind/assert
POST /v1/genmfg/novu/map/assert
Summary: Soft Soft≠LIVE Novu pack map (GEN-U07)
Operation ID: genmfgNovuMapAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/novu/map/assert
POST /v1/genmfg/prove/openapi-fragments/assert
Summary: Soft Soft≠LIVE prove OpenAPI fragments link (GEN-P11)
Operation ID: genmfgProveOpenapiFragmentsAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/prove/openapi-fragments/assert
POST /v1/genmfg/prove/mn03/compose/assert
Summary: Soft Soft≠LIVE MN-03 engine compose (GEN-X01c)
Operation ID: genmfgProveMn03ComposeAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/prove/mn03/compose/assert
POST /v1/genmfg/inbox/hitl/assert
Summary: Soft Soft≠LIVE inbox HITL/quality cards (GEN-42)
Operation ID: genmfgInboxHitlAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/inbox/hitl/assert
POST /v1/genmfg/kuratibu/transform/assert
Summary: Soft Soft≠LIVE Kuratibu Transform mirror (GEN-43)
Operation ID: genmfgKuratibuTransformAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/kuratibu/transform/assert
POST /v1/genmfg/openmaint/asset/assert
Summary: Soft Soft≠LIVE OpenMaint asset steps (GEN-44)
Operation ID: genmfgOpenmaintAssetAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/openmaint/asset/assert
POST /v1/genmfg/materra/j3-default/assert
Summary: Soft Soft≠LIVE J3 export/season agri default (GEN-M04)
Operation ID: genmfgMaterraJ3DefaultAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/materra/j3-default/assert
POST /v1/genmfg/materra/inbox-agri/assert
Summary: Soft Soft≠LIVE Materra inbox agri events (GEN-M05)
Operation ID: genmfgMaterraInboxAgriAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/materra/inbox-agri/assert
POST /v1/genmfg/provenance/passport/assert
Summary: Soft Soft≠LIVE provenance→quality+seal (GEN-M07)
Operation ID: genmfgProvenancePassportAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/provenance/passport/assert
POST /v1/genmfg/index/assert
Summary: Soft Soft≠LIVE GenMfg docs/UI index (GEN-01)
Operation ID: genmfgIndexAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/index/assert
POST /v1/genmfg/arch/no-bridge-bridge/assert
Summary: Soft Soft≠LIVE ban bridge→bridge HTTP (GEN-02)
Operation ID: genmfgArchNoBridgeBridgeAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/arch/no-bridge-bridge/assert
POST /v1/genmfg/prove/ag05-event-path
Summary: Soft Soft≠LIVE AG-05 event-sourced path via API events only (GEN-ES09)
Operation ID: genmfgProveAg05EventPath Responses:
| Status | Meaning |
|---|---|
| 200 | Soft Soft≠LIVE path complete (invent_refuse_live) |
| 422 | incomplete / jetstream forbidden invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/prove/ag05-event-path
POST /v1/genmfg/packs/admin/assert
Summary: Soft Soft≠LIVE pack:admin APF + hydrate honesty (GEN-U10)
Operation ID: genmfgPacksAdminAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Soft Soft≠LIVE admin/hydrate ok |
| 403 | pack_admin_apf_denied |
| 422 | hydrate_live_leak invent_refuse |
| 503 | pack_publish_kv_unbound invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/packs/admin/assert
POST /v1/genmfg/authz/matrix/assert
Summary: Soft Soft≠LIVE agri 401/403/402/422 authz matrix (GEN-A09)
Operation ID: genmfgAuthzMatrixAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Soft Soft≠LIVE matrix pass (invent_refuse_live) |
| 422 | matrix fixture incomplete invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/authz/matrix/assert
POST /v1/genmfg/sourcing/reentry
Summary: Soft Soft≠LIVE Transform labor/parts sourcing re-entry (GEN-S09)
Operation ID: genmfgSourcingReentry Responses:
| Status | Meaning |
|---|---|
| 200 | Mapped Soft requirement.create (denorm may invent_refuse) |
| 422 | unknown hook / LIVE invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/sourcing/reentry
POST /v1/genmfg/from-standing-order-breach
Summary: Soft Soft≠LIVE standing-order breach → GenMfg Input (GEN-S08)
Operation ID: genmfgFromStandingOrderBreach Responses:
| Status | Meaning |
|---|---|
| 200 | Mapped Soft voyage_start |
| 201 | Voyage started Soft Soft≠LIVE when play=true |
| 422 | input_from / LIVE invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/from-standing-order-breach
POST /v1/genmfg/criteria-wf/assert
Summary: Soft Soft≠LIVE criteria match.fired / sla.breached WF bind (GEN-ES07)
Operation ID: genmfgCriteriaWfAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Binding resolved Soft Soft≠LIVE (optional fire) |
| 404 | criteria_wf_binding_missing |
| 503 | criteria_wf_invoke_unbound invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/criteria-wf/assert
POST /v1/genmfg/scenario-paths/assert
Summary: Soft Soft≠LIVE scenario paths LG/FS/MX/FM/LB invent_refuse (GEN-X05/X06/X07)
Operation ID: genmfgScenarioPathsAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Soft Soft≠LIVE path plan (invent_refuse_live) |
| 400 | org_id_required |
| 404 | scenario_path_unknown |
X-GENMFG-PATH-CLASS /v1/genmfg/scenario-paths/assert
POST /v1/genmfg/logistics/exception
Summary: Raise Soft Soft≠LIVE logistics exception.raised → support invent_refuse (GEN-F04)
Operation ID: genmfgLogisticsException Responses:
| Status | Meaning |
|---|---|
| 200 | Platform exception envelope Soft Soft≠LIVE |
| 400 | org_id_required |
X-GENMFG-PATH-CLASS /v1/genmfg/logistics/exception
POST /v1/genmfg/security/layers/assert
Summary: Per-engine L1–L12 invent_refuse LIVE if incomplete (GEN-A05 Soft Soft≠LIVE)
Operation ID: genmfgSecurityLayersAssert Responses:
| Status | Meaning |
|---|---|
| 200 | layers_live when GENMFG_SECURITY_LIVE + probes |
| 503 | engine_security_layers_incomplete invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/security/layers/assert
POST /v1/genmfg/envelopes/assert
Summary: Assert Camel/NATS envelope org_id + instance_id (GEN-I05 Soft Soft≠LIVE)
Operation ID: genmfgEnvelopesAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Identity ok Soft Soft≠LIVE |
| 422 | envelope_identity_incomplete |
X-GENMFG-PATH-CLASS /v1/genmfg/envelopes/assert
POST /v1/genmfg/webhooks/assert
Summary: Assert webhook HMAC per instance_id Soft Soft≠LIVE (GEN-I06/A07)
Operation ID: genmfgWebhooksAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Verified Soft Soft≠LIVE (inject secret) |
| 401 | webhook_hmac_invalid / signature required |
| 422 | engine_required / engine_hmac_not_required |
| 503 | webhook_hmac_unbound / webhook_secret_unresolved invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/webhooks/assert
POST /v1/genmfg/from-sourcing-award
Summary: Soft Soft≠LIVE sourcing award → GenMfg correlation (GEN-X04 / S-AG-05)
Operation ID: genmfgFromSourcingAward Responses:
| Status | Meaning |
|---|---|
| 200 | Mapped Soft voyage_start |
| 201 | Voyage started Soft Soft≠LIVE when play=true |
| 422 | correlation missing or LIVE OPTIMAL invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/from-sourcing-award
POST /v1/genmfg/standing-orders/field-dispatch
Summary: Standing-order field_dispatch → shipment.create Soft Soft≠LIVE (GEN-F06)
Operation ID: genmfgStandingOrderFieldDispatch Responses:
| Status | Meaning |
|---|---|
| 200 | Platform shipment.create Soft Soft≠LIVE |
| 422 | instance_id / standing_order invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/standing-orders/field-dispatch
GET /v1/genmfg/resolve
Summary: Resolve instance for service (fail closed ambiguous/missing)
Operation ID: genmfgResolveBinding
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| X-Org-Id | header | yes | string | |
| service | query | yes | string | |
| instance_id | query | no | string | |
| org_path | query | no | string | Comma-separated ancestry |
Responses:
| Status | Meaning |
|---|---|
| 200 | Resolved binding |
| 404 | binding_missing |
| 422 | binding_ambiguous |
X-GENMFG-PATH-CLASS /v1/genmfg/resolve
GET /v1/genmfg/events/stream
Summary: SSE stream (genmfg + logistics + criteria + sourcing subjects)
Operation ID: genmfgEventsStream Responses:
| Status | Meaning |
|---|---|
| 200 | text/event-stream |
| 503 | nats_unavailable invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/events/stream
GET /v1/exchange/domains
Summary: List substitutable exchange domains
Operation ID: exchangeDomains Responses:
| Status | Meaning |
|---|---|
| 200 | Domain list |
X-GENMFG-PATH-CLASS /v1/exchange/domains
POST /v1/exchange/normalize
Summary: Normalize any domain event to platform.<domain>.v1.event.*
Operation ID: exchangeNormalize Responses:
| Status | Meaning |
|---|---|
| 200 | Envelope |
| 422 | Fail closed |
X-GENMFG-PATH-CLASS /v1/exchange/normalize
POST /v1/exchange/denormalize
Summary: Denormalize platform command to adapter subject
Operation ID: exchangeDenormalize Responses:
| Status | Meaning |
|---|---|
| 200 | Adapter subject |
| 422 | Fail closed |
X-GENMFG-PATH-CLASS /v1/exchange/denormalize
GET /v1/genmfg/readiness
Summary: Aggregate Soft Soft≠LIVE readiness
Operation ID: genmfgReadiness Responses:
| Status | Meaning |
|---|---|
| 200 | Always invent_refuse_live; flink/criteria/solver/kestra/security/normalize probes; farmos_live=false |
X-GENMFG-PATH-CLASS /v1/genmfg/readiness
POST /v1/genmfg/live-gates/assert
Summary: Assert pack Flink Job A / domain normalize LIVE gates (GEN-ES06/W06)
Operation ID: genmfgLiveGatesAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Gates ok Soft Soft≠LIVE (live_gate_met still false aggregate) |
| 422 | domain_catalog_missing |
| 503 | flink_job_a_required / normalize_path_incomplete invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/live-gates/assert
GET /v1/genmfg/catalog/hooks
Summary: Closed workflow hook vocabulary
Operation ID: genmfgCatalogHooks Responses:
| Status | Meaning |
|---|---|
| 200 | lookup.genmfg.workflow_hooks.v1 |
| 503 | workflow_hooks_missing |
X-GENMFG-PATH-CLASS /v1/genmfg/catalog/hooks
GET /v1/genmfg/catalog/events
Summary: Subsystem event catalog
Operation ID: genmfgCatalogEvents Responses:
| Status | Meaning |
|---|---|
| 200 | lookup.genmfg.subsystem_event_catalog.v1 |
| 503 | event_catalog_missing |
X-GENMFG-PATH-CLASS /v1/genmfg/catalog/events
POST /v1/genmfg/hooks/validate
Summary: Validate journey/hooks against closed vocabulary (GEN-D02/W10)
Operation ID: genmfgHooksValidate Responses:
| Status | Meaning |
|---|---|
| 200 | Hooks ok |
| 422 | unknown_hook / adapter_payload_forbidden |
X-GENMFG-PATH-CLASS /v1/genmfg/hooks/validate
POST /v1/genmfg/voyages/{id}/seal
Summary: Seal voyage Soft Soft≠LIVE; invent_refuse incomplete certify_eval_set (GEN-D07)
Operation ID: genmfgSealVoyage
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| id | path | yes | string |
Request body:
Content type: application/json
| Field | Type | Notes |
|---|---|---|
| industry_pack | string | |
| completed_eval_set | string[] |
Responses:
| Status | Meaning |
|---|---|
| 200 | Sealed Soft Soft≠LIVE |
| 422 | certify_eval_set_incomplete |
X-GENMFG-PATH-CLASS /v1/genmfg/voyages/{id}/seal
GET /v1/genmfg/packs
Summary: List pack.genmfg.* from SOVEREIGN_LOOKUPS
Operation ID: genmfgListPacks Responses:
| Status | Meaning |
|---|---|
| 200 | Pack index |
X-GENMFG-PATH-CLASS /v1/genmfg/packs
GET /v1/genmfg/packs/{industry}
Summary: Get industry pack (supports mining.gold)
Operation ID: genmfgGetPack
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| industry | path | yes | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Pack document |
| 404 | pack_not_found invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/packs/{industry}
GET /v1/genmfg/scenarios
Summary: List GenMfg Soft Soft≠LIVE scenario catalog (GEN-X01)
Operation ID: genmfgListScenarios Responses:
| Status | Meaning |
|---|---|
| 200 | Scenario index |
X-GENMFG-PATH-CLASS /v1/genmfg/scenarios
GET /v1/genmfg/scenarios/{id}
Summary: Get scenario by catalog id (S-MN-03) or scenario_key
Operation ID: genmfgGetScenario
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| id | path | yes | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Scenario document |
| 404 | scenario_not_found invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/scenarios/{id}
GET /v1/genmfg/ui-bundle
Summary: Compose data-driven UI shell from pack
Operation ID: genmfgUiBundle
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| industry | query | no | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | views + shell + integrations |
| 404 | pack_not_found |
X-GENMFG-PATH-CLASS /v1/genmfg/ui-bundle
GET /v1/genmfg/voyages
Summary: List voyages (empty Soft honesty without listVoyages inject)
Operation ID: genmfgListVoyages Responses:
| Status | Meaning |
|---|---|
| 200 | Voyage list |
POST /v1/genmfg/voyages
Summary: Start voyage via playPlaybookVoyage
Operation ID: genmfgStartVoyage Request body:
Content type: application/json
| Field | Type | Notes |
|---|---|---|
| journey_id | string | |
| industry_pack | string | |
| org_id | string | |
| org_path | string[] | |
| integration_bindings | object |
Responses:
| Status | Meaning |
|---|---|
| 201 | Voyage started Soft Soft≠LIVE |
| 400 | Missing journey_id / org_id |
| 503 | Kestra/Camel invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/voyages
GET /v1/genmfg/voyages/{id}
Summary: Get voyage state
Operation ID: genmfgGetVoyage
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| id | path | yes | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Voyage |
| 404 | Not found |
X-GENMFG-PATH-CLASS /v1/genmfg/voyages/{id}
POST /v1/genmfg/voyages/{id}/advance
Summary: Advance voyage (Kestra only — no Surreal Mayet LIVE)
Operation ID: genmfgAdvanceVoyage
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| id | path | yes | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Advanced |
| 503 | invent_refuse when Kestra down |
X-GENMFG-PATH-CLASS /v1/genmfg/voyages/{id}/advance
GET /v1/genmfg/adapters
Summary: List adapter registry entries (GEN-N05 Soft Soft≠LIVE)
Operation ID: genmfgListAdapters
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| service | query | no | string | |
| include_soft | query | no | string enum: 0, 1 |
Responses:
| Status | Meaning |
|---|---|
| 200 | Adapters from lookup.genmfg.adapter_registry.v1 |
| 503 | registry_missing invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/adapters
POST /v1/genmfg/adapters/assert
Summary: Assert capabilities / multi_adapter_exchange / substitute (GEN-N09/N13)
Operation ID: genmfgAssertAdapters Responses:
| Status | Meaning |
|---|---|
| 200 | Asserted Soft Soft≠LIVE |
| 404 | adapter_not_registered |
| 422 | missing_capability |
| 503 | multi_adapter_exchange invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/adapters/assert
POST /v1/genmfg/voyages/{id}/invoke
Summary: action:invoke via workflow-subject-invoke; requires idempotency_key (GEN-W02/W05)
Operation ID: genmfgInvoke
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| id | path | yes | string |
Request body:
Content type: application/json
| Field | Type | Notes |
|---|---|---|
| subject | string | |
| idempotency_key | string | |
| payload | object | |
| require_capability | any | |
| adapter | string | |
| service | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Invoked or Soft Soft≠LIVE deduped |
| 422 | idempotency_key_required / missing_capability |
| 503 | invoke_failed invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/voyages/{id}/invoke
POST /v1/genmfg/voyages/{id}/quality
Summary: Delegate compliance gate evaluate
Operation ID: genmfgQuality
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| id | path | yes | string |
Request body:
Content type: application/json
| Field | Type | Notes |
|---|---|---|
| compliance_gate_id | string | |
| evidence | object |
Responses:
| Status | Meaning |
|---|---|
| 200 | Eval result |
| 400 | gate id required |
| 502 | compliance unavailable invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/voyages/{id}/quality
POST /v1/genmfg/voyages/{id}/optimize
Summary: Pack solver → decision-gateway (fail closed)
Operation ID: genmfgOptimize
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| id | path | yes | string |
Request body:
Content type: application/json
| Field | Type | Notes |
|---|---|---|
| capability_key | string | |
| industry_pack | string | |
| overrides | object |
Responses:
| Status | Meaning |
|---|---|
| 200 | decision-result-v1 wrapped Soft Soft≠LIVE |
| 503 | Never invent OPTIMAL |
X-GENMFG-PATH-CLASS /v1/genmfg/voyages/{id}/optimize
POST /v1/genmfg/voyages/{id}/dispatch
Summary: Map platform.logistics.v1.command.* (denormalize)
Operation ID: genmfgDispatch
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| id | path | yes | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Mapped command |
| 400 | org_id + instance_id required |
X-GENMFG-PATH-CLASS /v1/genmfg/voyages/{id}/dispatch
POST /v1/genmfg/from-quote/{quoteId}
Summary: Alias sourcing sign-convert
Operation ID: genmfgFromQuote
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| quoteId | path | yes | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Work order |
| 502 | Upstream fail |
X-GENMFG-PATH-CLASS /v1/genmfg/from-quote/{quoteId}
POST /v1/logistics/normalize
Summary: Normalize logistics event → platform.logistics.v1.event.*
Operation ID: logisticsNormalize Responses:
| Status | Meaning |
|---|---|
| 200 | Envelope + subject |
| 422 | Fail closed missing org_id/instance_id/correlation_id |
X-GENMFG-PATH-CLASS /v1/logistics/normalize
POST /v1/logistics/normalize/publish
Summary: LIVE publish normalized logistics (LOGISTICS_NORMALIZE_LIVE=1)
Operation ID: logisticsNormalizePublish Responses:
| Status | Meaning |
|---|---|
| 200 | Published |
| 503 | live_gate_unmet invent_refuse |
X-GENMFG-PATH-CLASS /v1/logistics/normalize/publish
POST /v1/logistics/denormalize
Summary: Denormalize platform command → fleet.v1.command.*
Operation ID: logisticsDenormalize Responses:
| Status | Meaning |
|---|---|
| 200 | Adapter subject + payload |
| 422 | Fail closed |
X-GENMFG-PATH-CLASS /v1/logistics/denormalize
POST /v1/logistics/denormalize/publish
Summary: LIVE publish denormalized command
Operation ID: logisticsDenormalizePublish Responses:
| Status | Meaning |
|---|---|
| 200 | Published |
| 503 | live_gate_unmet invent_refuse |
X-GENMFG-PATH-CLASS /v1/logistics/denormalize/publish
GET /v1/genmfg/domains
Summary: List schema-first GenMfg domains
Operation ID: genmfgListDomains Responses:
| Status | Meaning |
|---|---|
| 200 | Domain list Soft Soft≠LIVE |
X-GENMFG-PATH-CLASS /v1/genmfg/domains
GET /v1/genmfg/domains/{domain}
Summary: Domain catalog (resources, operations, schema_id)
Operation ID: genmfgGetDomain
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| domain | path | yes | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Catalog |
| 404 | domain_unknown |
X-GENMFG-PATH-CLASS /v1/genmfg/domains/{domain}
GET /v1/genmfg/domains/{domain}/resources/{resourceType}
Summary: List domain resources (mirror)
Operation ID: genmfgListResources
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| domain | path | yes | string | |
| resourceType | path | yes | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Resource list Soft Soft≠LIVE |
POST /v1/genmfg/domains/{domain}/resources/{resourceType}
Summary: Create/ensure/upsert domain resource (denorm Soft Soft≠LIVE)
Operation ID: genmfgWriteResource
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| domain | path | yes | string | |
| resourceType | path | yes | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Mapped resource |
| 422 | Schema / vendor keys / command |
| 503 | LIVE publish invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/domains/{domain}/resources/{resourceType}
GET /v1/genmfg/domains/{domain}/resources/{resourceType}/{id}
Summary: Get domain resource by id
Operation ID: genmfgGetResource
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| domain | path | yes | string | |
| resourceType | path | yes | string | |
| id | path | yes | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Resource |
| 404 | Not found |
PATCH /v1/genmfg/domains/{domain}/resources/{resourceType}/{id}
Summary: Patch domain resource
Operation ID: genmfgPatchResource
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| domain | path | yes | string | |
| resourceType | path | yes | string | |
| id | path | yes | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Mapped |
| 422 | Fail closed |
X-GENMFG-PATH-CLASS /v1/genmfg/domains/{domain}/resources/{resourceType}/{id}
POST /v1/genmfg/domains/{domain}/resources/{resourceType}/{id}/actions/{action}
Summary: Domain resource lifecycle action
Operation ID: genmfgResourceAction
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| domain | path | yes | string | |
| resourceType | path | yes | string | |
| id | path | yes | string | |
| action | path | yes | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Mapped |
| 422 | action_unknown |
| 503 | LIVE invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/domains/{domain}/resources/{resourceType}/{id}/actions/{action}
POST /v1/genmfg/domains/{domain}/events/ingest
Summary: Ingress normalize + resource projection
Operation ID: genmfgDomainIngest
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| domain | path | yes | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Envelope + resource |
| 503 | LIVE invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/domains/{domain}/events/ingest
GET /v1/genmfg/domains/{domain}/events
Summary: List recent domain events (Soft Soft≠LIVE peek)
Operation ID: genmfgDomainEvents
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| domain | path | yes | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Events Soft Soft≠LIVE |
X-GENMFG-PATH-CLASS /v1/genmfg/domains/{domain}/events
GET /v1/genmfg/workspaces/{orgId}
Summary: Get org GenMfg workspace config
Operation ID: genmfgGetWorkspace
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| orgId | path | yes | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Workspace |
| 404 | Not found |
PUT /v1/genmfg/workspaces/{orgId}
Summary: Upsert org GenMfg workspace (pack + domain binds)
Operation ID: genmfgPutWorkspace
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| orgId | path | yes | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Saved Soft Soft≠LIVE |
| 503 | KV put invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/workspaces/{orgId}
GET /v1/genmfg/workspaces/{orgId}/bindings
Summary: List workspace domain bindings
Operation ID: genmfgListWorkspaceBindings
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| orgId | path | yes | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Bindings |
POST /v1/genmfg/workspaces/{orgId}/bindings
Summary: Upsert sticky domain→instance bind
Operation ID: genmfgUpsertWorkspaceBinding
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| orgId | path | yes | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Binding |
| 422 | domain_unknown |
X-GENMFG-PATH-CLASS /v1/genmfg/workspaces/{orgId}/bindings
DELETE /v1/genmfg/workspaces/{orgId}/bindings/{domain}
Summary: Soft-deactivate workspace domain bind
Operation ID: genmfgDeleteWorkspaceBinding
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| orgId | path | yes | string | |
| domain | path | yes | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Deactivated |
| 404 | Not found |
X-GENMFG-PATH-CLASS /v1/genmfg/workspaces/{orgId}/bindings/{domain}
POST /v1/genmfg/voyages/{id}/resources/{domain}/{resourceType}
Summary: Voyage-scoped resource write
Operation ID: genmfgVoyageWriteResource
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| id | path | yes | string | |
| domain | path | yes | string | |
| resourceType | path | yes | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Mapped |
X-GENMFG-PATH-CLASS /v1/genmfg/voyages/{id}/resources/{domain}/{resourceType}
POST /v1/genmfg/voyages/{id}/resources/{domain}/{resourceType}/{resourceId}/actions/{action}
Summary: Voyage-scoped resource action
Operation ID: genmfgVoyageResourceAction
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| id | path | yes | string | |
| domain | path | yes | string | |
| resourceType | path | yes | string | |
| resourceId | path | yes | string | |
| action | path | yes | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Mapped |
X-GENMFG-PATH-CLASS /v1/genmfg/voyages/{id}/resources/{domain}/{resourceType}/{resourceId}/actions/{action}
POST /v1/genmfg/ops/agri-cutover/assert
Summary: Soft Soft≠LIVE GEN-50 agri cutover
Operation ID: genmfgv1GenmfgOpsAgricutoverAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/ops/agri-cutover/assert
POST /v1/genmfg/ops/cutover-progress/assert
Summary: Soft Soft≠LIVE cutover progress desk (TCP green ≠ LIVE)
Operation ID: genmfgOpsCutoverProgressAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Progress Soft Soft≠LIVE; live_gate_met false |
| 422 | invent LIVE forbidden |
X-GENMFG-PATH-CLASS /v1/genmfg/ops/cutover-progress/assert
POST /v1/genmfg/ops/live-readiness/assert
Summary: Soft Soft≠LIVE LIVE ops readiness inventory (never invents live_gate_met)
Operation ID: genmfgv1GenmfgOpsLivereadinessAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Soft Soft≠LIVE inventory — invent_refuse_live |
| 422 | invent_refuse when LIVE invented |
X-GENMFG-PATH-CLASS /v1/genmfg/ops/live-readiness/assert
POST /v1/genmfg/ops/kv-seed/assert
Summary: Soft Soft≠LIVE GenMfg KV seed inventory (never invents nats_kv_seeded)
Operation ID: genmfgv1GenmfgOpsKvseedAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Soft Soft≠LIVE disk key inventory |
| 422 | invent_refuse when seeded LIVE invented |
X-GENMFG-PATH-CLASS /v1/genmfg/ops/kv-seed/assert
POST /v1/genmfg/ops/engine-probes/assert
Summary: Soft Soft≠LIVE engine TCP/probe honesty (never invents live_gate_met)
Operation ID: genmfgv1GenmfgOpsEngineprobesAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Soft Soft≠LIVE probe desk — DOWN is honest |
| 422 | invent_refuse when LIVE invented or opt-in while DOWN |
X-GENMFG-PATH-CLASS /v1/genmfg/ops/engine-probes/assert
POST /v1/genmfg/ops/stack-preflight/assert
Summary: Soft Soft≠LIVE Docker/stack preflight (never invents stack_live)
Operation ID: genmfgv1GenmfgOpsStackpreflightAssert Responses:
| Status | Meaning |
|---|---|
| 200 | Soft Soft≠LIVE preflight — daemon DOWN is honest |
| 422 | invent_refuse when stack LIVE invented |
X-GENMFG-PATH-CLASS /v1/genmfg/ops/stack-preflight/assert
POST /v1/genmfg/console/mfg-bind/assert
Summary: Soft Soft≠LIVE GEN-51 console MFG bind
Operation ID: genmfgv1GenmfgConsoleMfgbindAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/console/mfg-bind/assert
POST /v1/genmfg/prove/playwright-smoke/assert
Summary: Soft Soft≠LIVE GEN-54 playwright soft smoke
Operation ID: genmfgv1GenmfgProvePlaywrightsmokeAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/prove/playwright-smoke/assert
POST /v1/genmfg/prove/collections/assert
Summary: Soft Soft≠LIVE GEN-P12 OpenAPI collections
Operation ID: genmfgv1GenmfgProveCollectionsAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/prove/collections/assert
POST /v1/genmfg/sourcing/offtake-reentry/assert
Summary: Soft Soft≠LIVE GEN-S12 offtake reentry
Operation ID: genmfgv1GenmfgSourcingOfftakereentryAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/sourcing/offtake-reentry/assert
POST /v1/genmfg/logistics/wms-pallet/assert
Summary: Soft Soft≠LIVE GEN-F07 WMS pallet
Operation ID: genmfgv1GenmfgLogisticsWmspalletAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/logistics/wms-pallet/assert
POST /v1/genmfg/criteria/job-b-interrupt/assert
Summary: Soft Soft≠LIVE GEN-ES10 Job B SLA
Operation ID: genmfgv1GenmfgCriteriaJobbinterruptAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/criteria/job-b-interrupt/assert
POST /v1/genmfg/scenarios/hl01/assert
Summary: Soft Soft≠LIVE GEN-X08 HL-01 medical
Operation ID: genmfgv1GenmfgScenariosHl01Assert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/scenarios/hl01/assert
POST /v1/genmfg/prove/traceability/assert
Summary: Soft Soft≠LIVE GEN-X09 traceability
Operation ID: genmfgv1GenmfgProveTraceabilityAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/prove/traceability/assert
POST /v1/genmfg/whatif/overlay/assert
Summary: Soft Soft≠LIVE GEN-35 what-if
Operation ID: genmfgv1GenmfgWhatifOverlayAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/whatif/overlay/assert
POST /v1/genmfg/standing-orders/wo-spawn/assert
Summary: Soft Soft≠LIVE GEN-53 SO WO spawn
Operation ID: genmfgv1GenmfgStandingordersWospawnAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/standing-orders/wo-spawn/assert
POST /v1/genmfg/events/ws-multiplexer/assert
Summary: Soft Soft≠LIVE GEN-45 WS mux
Operation ID: genmfgv1GenmfgEventsWsmultiplexerAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/events/ws-multiplexer/assert
POST /v1/genmfg/bindings/erp-plane/assert
Summary: Soft Soft≠LIVE GEN-I11 ERP Plane
Operation ID: genmfgv1GenmfgBindingsErpplaneAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/bindings/erp-plane/assert
POST /v1/genmfg/hierarchy/drilldown/assert
Summary: Soft Soft≠LIVE GEN-H10 drilldown
Operation ID: genmfgv1GenmfgHierarchyDrilldownAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/hierarchy/drilldown/assert
POST /v1/genmfg/bi/superset-embed/assert
Summary: Soft Soft≠LIVE GEN-A11 Superset
Operation ID: genmfgv1GenmfgBiSupersetembedAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/bi/superset-embed/assert
POST /v1/genmfg/ui/minio-signed/assert
Summary: Soft Soft≠LIVE GEN-U11 MinIO
Operation ID: genmfgv1GenmfgUiMiniosignedAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/ui/minio-signed/assert
POST /v1/genmfg/ui/composable-facet/assert
Summary: Soft Soft≠LIVE GEN-U12 facet
Operation ID: genmfgv1GenmfgUiComposablefacetAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/ui/composable-facet/assert
POST /v1/genmfg/studio/author/assert
Summary: Soft Soft≠LIVE GEN-W12 studio author
Operation ID: genmfgv1GenmfgStudioAuthorAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/studio/author/assert
POST /v1/genmfg/packs/healthcare-fleet/assert
Summary: Soft Soft≠LIVE GEN-52 healthcare/fleet packs
Operation ID: genmfgv1GenmfgPacksHealthcarefleetAssert Responses:
| Status | Meaning |
|---|---|
| 200 | ok |
| 422 | invent_refuse |
X-GENMFG-PATH-CLASS /v1/genmfg/packs/healthcare-fleet/assert
Full specification — verbatim source of truth
{
"openapi": "3.0.3",
"info": {
"title": "GenMfg Façade API",
"version": "1.1.0",
"description": "GenMfg façade: schema-first domain resources (/domains/{domain}/resources/*), workspace binds, voyages, packs. Soft Soft≠LIVE — invent_refuse_live unless LIVE gates met.",
"x-genmfg-ui-api": {
"mandate": "UI=HTTP+SSE-only",
"path_class_extension": "x-genmfg-path-class",
"classes": [
"Product",
"Authoring",
"Ops",
"Prove",
"Internal"
],
"backlog": "GEN-UI-API-01"
}
},
"servers": [
{
"url": "http://127.0.0.1:3030",
"description": "agent-bff"
}
],
"paths": {
"/v1/genmfg/bindings": {
"get": {
"summary": "List integration bindings for org (connections-store)",
"operationId": "genmfgListBindings",
"parameters": [
{
"name": "X-Org-Id",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "service",
"in": "query",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Bindings list Soft Soft≠LIVE"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/bindings/step-owner": {
"post": {
"summary": "Resolve multi-party sticky bindings for step owner org (GEN-H03 Soft Soft≠LIVE)",
"operationId": "genmfgBindingsStepOwner",
"responses": {
"200": {
"description": "Step-owner binding slice"
},
"404": {
"description": "step_owner_bindings_missing invent_refuse"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/logistics/lifecycle/plan": {
"post": {
"summary": "Soft Soft≠LIVE normalized logistics lifecycle plan (GEN-F02)",
"operationId": "genmfgLogisticsLifecyclePlan",
"responses": {
"200": {
"description": "Stage plan invent_refuse_live"
},
"400": {
"description": "org_id_required"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/logistics/lifecycle/assert": {
"post": {
"summary": "Assert Soft Soft≠LIVE adjacent lifecycle transition (GEN-F02)",
"operationId": "genmfgLogisticsLifecycleAssert",
"responses": {
"200": {
"description": "Transition ok Soft Soft≠LIVE"
},
"422": {
"description": "lifecycle_transition_invalid invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/prove/dual-pack-dom": {
"post": {
"summary": "Soft Soft≠LIVE AG vs mining.gold Player/bench DOM assert (GEN-X03)",
"operationId": "genmfgProveDualPackDom",
"responses": {
"200": {
"description": "Soft Soft≠LIVE DOM labels/columns distinct"
},
"422": {
"description": "dual_pack_dom_assert_failed invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/on-failure/assert": {
"post": {
"summary": "Soft Soft≠LIVE declarative on_failure subflow (GEN-D06 / FS-02)",
"operationId": "genmfgOnFailureAssert",
"responses": {
"200": {
"description": "Soft Soft≠LIVE on_failure subflow resolved"
},
"404": {
"description": "on_failure_subflow_missing invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/catalog/workflow-ban/assert": {
"post": {
"summary": "Soft Soft≠LIVE ban materra-*-workflow paths for catalog scenarios (GEN-D08)",
"operationId": "genmfgCatalogWorkflowBanAssert",
"responses": {
"200": {
"description": "Soft Soft≠LIVE catalog journey/Kestra only"
},
"422": {
"description": "materra_workflow_path_forbidden invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/s2s/assert": {
"post": {
"summary": "Soft Soft≠LIVE SPIFFE/mTLS or dual JWT BFF→bridge→Camel (GEN-A08)",
"operationId": "genmfgS2sAssert",
"responses": {
"200": {
"description": "S2S LIVE gate met or Soft Soft≠LIVE invent_refuse body"
},
"503": {
"description": "genmfg_s2s_spiffe_incomplete invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/prove/seed/load": {
"post": {
"summary": "Soft Soft≠LIVE prove seed load (GEN-P10)",
"operationId": "genmfgProveSeedLoad",
"responses": {
"200": {
"description": "seed_run_id Soft Soft≠LIVE unload_always"
},
"404": {
"description": "prove_fixture_unknown invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/prove/seed/unload": {
"post": {
"summary": "Soft Soft≠LIVE prove seed unload-always (GEN-P10)",
"operationId": "genmfgProveSeedUnload",
"responses": {
"200": {
"description": "Idempotent Soft Soft≠LIVE unload"
},
"400": {
"description": "seed_run_id_required"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/prove/seed/{seed_run_id}": {
"get": {
"summary": "Soft Soft≠LIVE prove seed status (GEN-P10)",
"operationId": "genmfgProveSeedGet",
"parameters": [
{
"name": "seed_run_id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Soft Soft≠LIVE seed run status"
},
"404": {
"description": "seed_run_not_found invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/prove/nightly/assert": {
"post": {
"summary": "Soft Soft≠LIVE nightly staging prove unload-always contract (GEN-P10)",
"operationId": "genmfgProveNightlyAssert",
"responses": {
"200": {
"description": "Soft Soft≠LIVE contract (staging invent_refuse or LIVE)"
},
"422": {
"description": "unload_always_required invent_refuse"
},
"503": {
"description": "staging LIVE unbound invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/materra/embed/assert": {
"post": {
"summary": "Soft Soft≠LIVE Materra embed: ban Soft memory scenario fallback (GEN-M08)",
"operationId": "genmfgMaterraEmbedAssert",
"responses": {
"200": {
"description": "KV-bound embed Soft Soft≠LIVE"
},
"422": {
"description": "materra_embed_memory_fallback_deprecated invent_refuse"
},
"503": {
"description": "materra_embed_kv_unbound invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/entitlements/assert": {
"post": {
"summary": "Soft Soft≠LIVE stale entitlement invent_refuse + reason codes (GEN-22)",
"operationId": "genmfgEntitlementsAssert",
"responses": {
"200": {
"description": "Fresh Soft Soft≠LIVE"
},
"402": {
"description": "stale/deny/missing invent_refuse with reason_code"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/sourcing/readiness/assert": {
"post": {
"summary": "Soft Soft≠LIVE solver+Kestra+entitlements readiness aggregate (GEN-S05)",
"operationId": "genmfgSourcingReadinessAssert",
"responses": {
"200": {
"description": "Aggregate LIVE gate met"
},
"503": {
"description": "sourcing_readiness_aggregate_incomplete invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/journeys/kestra/bind": {
"post": {
"summary": "Soft Soft≠LIVE journey YAML → compileKestraScenarioFlowYaml bind (GEN-14a)",
"operationId": "genmfgJourneysKestraBind",
"responses": {
"200": {
"description": "Soft Soft≠LIVE compile bind (deploy_live false)"
},
"503": {
"description": "kestra_compile_unbound invent_refuse"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/materra/agri-stamp/assert": {
"post": {
"summary": "Soft Soft≠LIVE Materra stamps industry_pack=agriculture + org_id (GEN-M01)",
"operationId": "genmfgMaterraAgriStampAssert",
"responses": {
"200": {
"description": "Stamped Soft Soft≠LIVE"
},
"422": {
"description": "non-agri Materra pack invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/from-sourcing-award/work-order": {
"post": {
"summary": "Soft Soft≠LIVE award→WO copies correlation + fill/route plan refs (GEN-S04)",
"operationId": "genmfgFromSourcingAwardWorkOrder",
"responses": {
"200": {
"description": "WO Soft Soft≠LIVE draft"
},
"422": {
"description": "plan refs / correlation invent_refuse"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/hooks/solver-sourcing/assert": {
"post": {
"summary": "Soft Soft≠LIVE solver:*/sourcing:* hooks → decision-gateway/sourcing-kv (GEN-S03/ES03)",
"operationId": "genmfgHooksSolverSourcingAssert",
"responses": {
"200": {
"description": "Hooks Soft Soft≠LIVE bound"
},
"422": {
"description": "in-BFF OR-Tools / unbound invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/from-multi-fill": {
"post": {
"summary": "Soft Soft≠LIVE multi_fill mango → GenMfg voyage (GEN-ES04)",
"operationId": "genmfgFromMultiFill",
"responses": {
"200": {
"description": "Soft Soft≠LIVE voyage map"
},
"503": {
"description": "voyage start invent_refuse"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/integration-entity/instance-id/assert": {
"post": {
"summary": "Soft Soft≠LIVE integration_entity metadata.instance_id required (GEN-I04)",
"operationId": "genmfgIntegrationEntityInstanceIdAssert",
"responses": {
"200": {
"description": "instance_id stamped Soft Soft≠LIVE"
},
"422": {
"description": "instance_id required invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/fleet/pack-hooks/assert": {
"post": {
"summary": "Soft Soft≠LIVE pack fleet:* hooks over existing Fleet/Usafiri (GEN-F01)",
"operationId": "genmfgFleetPackHooksAssert",
"responses": {
"200": {
"description": "Pack hooks Soft Soft≠LIVE mapped"
},
"422": {
"description": "bridge rebuild / unknown hook invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/authz/mutate/assert": {
"post": {
"summary": "Soft Soft≠LIVE mutate APF + server org + entitlement G2 (GEN-A01)",
"operationId": "genmfgAuthzMutateAssert",
"responses": {
"200": {
"description": "Soft Soft≠LIVE mutate gates met"
},
"402": {
"description": "entitlement invent_refuse"
},
"403": {
"description": "APF/org invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/authz/rls/assert": {
"post": {
"summary": "Soft Soft≠LIVE RLS on GenMfg list/get/SSE (GEN-A02)",
"operationId": "genmfgAuthzRlsAssert",
"responses": {
"200": {
"description": "RLS Soft Soft≠LIVE pass"
},
"403": {
"description": "rls_denied invent_refuse"
},
"503": {
"description": "rls_guard_unbound invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/hierarchy/no-access-above/assert": {
"post": {
"summary": "Soft Soft≠LIVE list/hydrate/play no-access-above (GEN-H04)",
"operationId": "genmfgHierarchyNoAccessAboveAssert",
"responses": {
"200": {
"description": "leaf Soft Soft≠LIVE ok"
},
"403": {
"description": "no_access_above invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/voyage-engine/assert": {
"post": {
"summary": "Soft Soft≠LIVE shared materra-playbook-voyage engine (GEN-M02)",
"operationId": "genmfgVoyageEngineAssert",
"responses": {
"200": {
"description": "Shared engine Soft Soft≠LIVE"
},
"422": {
"description": "parallel engine invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/voyage-engine/kestra-advance/assert": {
"post": {
"summary": "Soft Soft≠LIVE Kestra-only LIVE advance; Mayet ban (GEN-M10)",
"operationId": "genmfgVoyageEngineKestraAdvanceAssert",
"responses": {
"200": {
"description": "Kestra Soft Soft≠LIVE honesty"
},
"503": {
"description": "mayet_live_advance_forbidden invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/hooks/kestra-registry/assert": {
"post": {
"summary": "Soft Soft≠LIVE Kestra closed-hook task registry (GEN-D01)",
"operationId": "genmfgHooksKestraRegistryAssert",
"responses": {
"200": {
"description": "Registry Soft Soft≠LIVE"
},
"422": {
"description": "hook via missing invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/catalog/journey-map/assert": {
"post": {
"summary": "Soft Soft≠LIVE map S-* catalog → seeded journeys/ (GEN-D05)",
"operationId": "genmfgCatalogJourneyMapAssert",
"responses": {
"200": {
"description": "S-* Soft Soft≠LIVE mapped"
},
"422": {
"description": "catalog_journey_map_incomplete invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/secrets/camel/assert": {
"post": {
"summary": "Soft Soft≠LIVE OpenBao + secrets check_access for Camel creds (GEN-A06)",
"operationId": "genmfgSecretsCamelAssert",
"responses": {
"200": {
"description": "check_access Soft Soft≠LIVE (no secret value)"
},
"403": {
"description": "secrets_access_denied invent_refuse"
},
"503": {
"description": "secrets_check_access_unbound invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/packs/publish": {
"post": {
"summary": "Product Soft Soft≠LIVE pack publish to LOOKUPS (GEN-UI-API-04); prefer declarative deploy-live",
"operationId": "genmfgPacksPublish",
"responses": {
"200": {
"description": "publish plan or Soft Soft≠LIVE put"
},
"403": {
"description": "pack_admin_apf_denied"
},
"503": {
"description": "pack_publish_kv_unbound invent_refuse"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/studio/author": {
"post": {
"summary": "Authoring Soft Soft≠LIVE Scenario Studio plan via declarative/Materra (GEN-UI-API-07)",
"operationId": "genmfgStudioAuthor",
"responses": {
"200": {
"description": "author plan Soft Soft≠LIVE"
},
"422": {
"description": "browser_kv_forbidden / studio_api_not_declarative invent_refuse"
}
}
},
"x-genmfg-path-class": "Authoring"
},
"/v1/genmfg/ops/kv-seed/status": {
"get": {
"summary": "Ops Soft Soft≠LIVE KV seed status (GEN-UI-API-10); prefer GET /v1/declarative/ops/kv-seed",
"operationId": "genmfgOpsKvSeedStatus",
"responses": {
"200": {
"description": "status Soft Soft≠LIVE invent_refuse_live"
}
}
},
"x-genmfg-path-class": "Ops"
},
"/v1/genmfg/console/product-allowlist/assert": {
"post": {
"summary": "Prove Soft Soft≠LIVE GEN-UI-API-11 console LIVE invent_refuse until Product allowlist",
"operationId": "genmfgConsoleProductAllowlistAssert",
"responses": {
"200": {
"description": "allowlist Soft Soft≠LIVE ok; console_live false"
},
"422": {
"description": "missing Product paths invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/forms/bind": {
"post": {
"summary": "Product Soft Soft≠LIVE forms.io bind from pack/step (GEN-UI-API-02)",
"operationId": "genmfgFormsBind",
"responses": {
"200": {
"description": "bind Soft Soft≠LIVE"
},
"400": {
"description": "form_id_required"
},
"422": {
"description": "forms_engine_rebuild_forbidden invent_refuse"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/notify/map": {
"post": {
"summary": "Product Soft Soft≠LIVE pack Novu map resolve (GEN-UI-API-03)",
"operationId": "genmfgNotifyMap",
"responses": {
"200": {
"description": "notify map Soft Soft≠LIVE"
},
"400": {
"description": "novu_template_required"
},
"422": {
"description": "novu_raw_subject_forbidden invent_refuse"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/inbox/hitl": {
"post": {
"summary": "Product Soft Soft≠LIVE inbox HITL / quality.fail cards (GEN-UI-API-06)",
"operationId": "genmfgInboxHitl",
"responses": {
"200": {
"description": "inbox HITL Soft Soft≠LIVE"
},
"422": {
"description": "inbox_card_kind_unsupported invent_refuse"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/ui-api/path-classes/assert": {
"post": {
"summary": "Soft Soft≠LIVE GEN-UI-API-01 path class + UI guide fence (Prove only)",
"operationId": "genmfgUiApiPathClassesAssert",
"responses": {
"200": {
"description": "OpenAPI stamps + §0.1 fence Soft Soft≠LIVE"
},
"422": {
"description": "missing stamp / Product assert / doc fence invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/ui-shell/assert": {
"post": {
"summary": "Soft Soft≠LIVE Universal shell consumes ui-bundle (GEN-U04)",
"operationId": "genmfgUiShellAssert",
"responses": {
"200": {
"description": "library + voyage_player Soft Soft≠LIVE"
},
"422": {
"description": "shell incomplete / agri fork invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/prove/seed/orchestrator/assert": {
"post": {
"summary": "Soft Soft≠LIVE prove seed thin orchestrator (GEN-P04)",
"operationId": "genmfgProveSeedOrchestratorAssert",
"responses": {
"200": {
"description": "thin orchestrator Soft Soft≠LIVE"
},
"422": {
"description": "second_seeder_forbidden invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/prove/voyage-itqo/assert": {
"post": {
"summary": "Soft Soft≠LIVE I→T→Q→O façade voyage contract (GEN-P05)",
"operationId": "genmfgProveVoyageItqoAssert",
"responses": {
"200": {
"description": "I→T→Q→O Soft Soft≠LIVE"
},
"422": {
"description": "incomplete / soft_leak invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/prove/elemental-lifecycle/assert": {
"post": {
"summary": "Soft Soft≠LIVE elemental lifecycle event stream (GEN-ELEM-07)",
"operationId": "genmfgProveElementalLifecycleAssert",
"responses": {
"200": {
"description": "Elemental lifecycle Soft Soft≠LIVE"
},
"422": {
"description": "incomplete stream / invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/elemental/compile/assert": {
"post": {
"summary": "Soft Soft≠LIVE elemental lifecycle compile (GEN-ELEM-02)",
"operationId": "genmfgElementalCompileAssert",
"responses": {
"200": {
"description": "Lifecycle compile Soft Soft≠LIVE"
},
"422": {
"description": "unknown advance_gate / invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/elemental/advance-gate/assert": {
"post": {
"summary": "Soft Soft≠LIVE advance_gate control injection (GEN-ELEM-04)",
"operationId": "genmfgElementalAdvanceGateAssert",
"responses": {
"200": {
"description": "Gate Soft Soft≠LIVE (DENY/pass/pending)"
},
"422": {
"description": "invent_passed forbidden"
},
"503": {
"description": "LIVE engines down invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/elemental/pack-policy/assert": {
"post": {
"summary": "Soft Soft≠LIVE pack elemental_emit_policy (GEN-ELEM-05)",
"operationId": "genmfgElementalPackPolicyAssert",
"responses": {
"200": {
"description": "Pack policy Soft Soft≠LIVE"
},
"422": {
"description": "policy missing / invalid"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/ui/elemental-phase/assert": {
"post": {
"summary": "Soft Soft≠LIVE UI elemental phase from SSE events (GEN-ELEM-10 Prove)",
"operationId": "genmfgUiElementalPhaseAssert",
"responses": {
"200": {
"description": "Phase chrome Soft Soft≠LIVE"
},
"422": {
"description": "invent / NATS / hardcode invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/voyages/{id}/elemental-phase": {
"post": {
"summary": "Project Player elemental phase from events (GEN-ELEM-10 Product Soft Soft≠LIVE)",
"operationId": "genmfgVoyageElementalPhase",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Phase chrome from events Soft Soft≠LIVE"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/elemental/kestra-bind/assert": {
"post": {
"summary": "Soft Soft≠LIVE elemental lifecycle + Kestra bind annotate (GEN-ELEM-02)",
"operationId": "genmfgElementalKestraBindAssert",
"responses": {
"200": {
"description": "Elemental Kestra Soft Soft≠LIVE annotate"
},
"422": {
"description": "compile invent_refuse"
},
"503": {
"description": "kestra compile unbound"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/prove/federation/assert": {
"post": {
"summary": "Soft Soft≠LIVE federation dual-node prove (GEN-P08)",
"operationId": "genmfgProveFederationAssert",
"responses": {
"200": {
"description": "Soft Soft≠LIVE contract (LIVE invent_refuse)"
},
"503": {
"description": "federation_live_unbound invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/prove/shared-kestra-terminal/assert": {
"post": {
"summary": "Soft Soft≠LIVE AG-01+MN-03 shared Kestra terminal (GEN-D04)",
"operationId": "genmfgProveSharedKestraTerminalAssert",
"responses": {
"200": {
"description": "Shared Kestra Soft Soft≠LIVE"
},
"422": {
"description": "industry_bff_fsm_forbidden invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/compliance/unlock/assert": {
"post": {
"summary": "Soft Soft≠LIVE compliance credential unlock for agri LIVE (GEN-M03)",
"operationId": "genmfgComplianceUnlockAssert",
"responses": {
"200": {
"description": "Unlocked Soft Soft≠LIVE"
},
"402": {
"description": "credentials unlock unmet invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/resources/prefer/assert": {
"post": {
"summary": "Soft Soft≠LIVE prefer resource APIs over exchange underlay (GEN-N14)",
"operationId": "genmfgResourcesPreferAssert",
"responses": {
"200": {
"description": "resource API Soft Soft≠LIVE / deprecated underlay noted"
},
"422": {
"description": "exchange product caller invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/resources/mirror/assert": {
"post": {
"summary": "Soft Soft≠LIVE resource mirror Soft Soft≠LIVE Map / LIVE s356 invent_refuse (GEN-R12)",
"operationId": "genmfgResourcesMirrorAssert",
"responses": {
"200": {
"description": "Soft Soft≠LIVE mirror honesty; live_gate_met false"
},
"422": {
"description": "invent LIVE mirror forbidden"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/logistics/lifecycle/full/assert": {
"post": {
"summary": "Soft Soft≠LIVE full normalized logistics lifecycle I/O (GEN-F02)",
"operationId": "genmfgLogisticsLifecycleFullAssert",
"responses": {
"200": {
"description": "Full Soft Soft≠LIVE lifecycle plan"
},
"422": {
"description": "lifecycle invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/prove/hitl/assert": {
"post": {
"summary": "Soft Soft≠LIVE HITL multi-persona forms+advance (GEN-P13)",
"operationId": "genmfgProveHitlAssert",
"responses": {
"200": {
"description": "HITL Soft Soft≠LIVE compose ok"
},
"422": {
"description": "personas/compose/DEV_SKIP_AUTH invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/packs/agri-default/assert": {
"post": {
"summary": "Soft Soft≠LIVE agri pack default → journeys/agriculture/* (GEN-16)",
"operationId": "genmfgPacksAgriDefaultAssert",
"responses": {
"200": {
"description": "Agri default Soft Soft≠LIVE"
},
"422": {
"description": "non-agri journey invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/quality/attest/assert": {
"post": {
"summary": "Soft Soft≠LIVE quality→AaaS attestation compose (GEN-23)",
"operationId": "genmfgQualityAttestAssert",
"responses": {
"200": {
"description": "Attest compose Soft Soft≠LIVE"
},
"422": {
"description": "quality/attest invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/credentials/unlock/assert": {
"post": {
"summary": "Soft Soft≠LIVE required_credentials unlock (GEN-24)",
"operationId": "genmfgCredentialsUnlockAssert",
"responses": {
"200": {
"description": "Unlock Soft Soft≠LIVE"
},
"422": {
"description": "credentials invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/seal/honesty/assert": {
"post": {
"summary": "Soft Soft≠LIVE SEAL honesty Soft≠LIVE fence (GEN-25)",
"operationId": "genmfgSealHonestyAssert",
"responses": {
"200": {
"description": "Seal honesty Soft Soft≠LIVE"
},
"422": {
"description": "soft_seal_as_live / incomplete invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/prove/events/observe/assert": {
"post": {
"summary": "Soft Soft≠LIVE prove observe via SSE/list only (GEN-P09)",
"operationId": "genmfgProveEventsObserveAssert",
"responses": {
"200": {
"description": "Observe Soft Soft≠LIVE"
},
"422": {
"description": "NATS-in-harness invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/criteria/fan-in/assert": {
"post": {
"summary": "Soft Soft≠LIVE logistics→platform.criteria.v1.* fan-in (GEN-N08)",
"operationId": "genmfgCriteriaFanInAssert",
"responses": {
"200": {
"description": "Criteria fan-in Soft Soft≠LIVE"
},
"422": {
"description": "raw adapter / unsupported invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/events/sse-merge/assert": {
"post": {
"summary": "Soft Soft≠LIVE SSE merge by correlation (GEN-S07)",
"operationId": "genmfgEventsSseMergeAssert",
"responses": {
"200": {
"description": "SSE merge Soft Soft≠LIVE"
},
"422": {
"description": "raw subjects invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/dispatch/camel/assert": {
"post": {
"summary": "Soft Soft≠LIVE Camel fleet dispatch no new bridge (GEN-33)",
"operationId": "genmfgDispatchCamelAssert",
"responses": {
"200": {
"description": "Camel dispatch Soft Soft≠LIVE"
},
"422": {
"description": "new bridge invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/erpnext/recipe/assert": {
"post": {
"summary": "Soft Soft≠LIVE ERPNext Camel/s367 recipe (GEN-34)",
"operationId": "genmfgErpnextRecipeAssert",
"responses": {
"200": {
"description": "ERPNext Soft Soft≠LIVE"
},
"422": {
"description": "direct ERP client invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/sourcing/multi-fill-fixture/assert": {
"post": {
"summary": "Soft Soft≠LIVE multi_fill fixture reuse (GEN-S10)",
"operationId": "genmfgSourcingMultiFillFixtureAssert",
"responses": {
"200": {
"description": "multi_fill Soft Soft≠LIVE"
},
"422": {
"description": "fork invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/secrets/instance/assert": {
"post": {
"summary": "Soft Soft≠LIVE per-instance OpenBao path (GEN-I07)",
"operationId": "genmfgSecretsInstanceAssert",
"responses": {
"200": {
"description": "Instance secret Soft Soft≠LIVE"
},
"422": {
"description": "secret invent invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/kestra/bindings/assert": {
"post": {
"summary": "Soft Soft≠LIVE Kestra voyage bindings (GEN-I08)",
"operationId": "genmfgKestraBindingsAssert",
"responses": {
"200": {
"description": "Kestra bindings Soft Soft≠LIVE"
},
"422": {
"description": "missing instance_id invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/multi-org/step-owner/assert": {
"post": {
"summary": "Soft Soft≠LIVE multi-org step owner bindings (GEN-I09)",
"operationId": "genmfgMultiOrgStepOwnerAssert",
"responses": {
"200": {
"description": "Step owner Soft Soft≠LIVE"
},
"422": {
"description": "bindings missing invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/logistics/geofence-advance/assert": {
"post": {
"summary": "Soft Soft≠LIVE geofence enter advances voyage (GEN-F03)",
"operationId": "genmfgLogisticsGeofenceAdvanceAssert",
"responses": {
"200": {
"description": "Geofence advance Soft Soft≠LIVE"
},
"422": {
"description": "raw fleet invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/logistics/equipment-relocate/assert": {
"post": {
"summary": "Soft Soft≠LIVE equipment relocate→logistics (GEN-F05)",
"operationId": "genmfgLogisticsEquipmentRelocateAssert",
"responses": {
"200": {
"description": "Relocate Soft Soft≠LIVE"
},
"400": {
"description": "asset/org invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/hierarchy/conglomerate/assert": {
"post": {
"summary": "Soft Soft≠LIVE conglomerate/franchise Soft fixtures (GEN-H08)",
"operationId": "genmfgHierarchyConglomerateAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/hierarchy/chamber-cast/assert": {
"post": {
"summary": "Soft Soft≠LIVE chamber cast metadata (GEN-H09)",
"operationId": "genmfgHierarchyChamberCastAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/forms/bind/assert": {
"post": {
"summary": "Soft Soft≠LIVE forms.io pack bind (GEN-U06)",
"operationId": "genmfgFormsBindAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/novu/map/assert": {
"post": {
"summary": "Soft Soft≠LIVE Novu pack map (GEN-U07)",
"operationId": "genmfgNovuMapAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/prove/openapi-fragments/assert": {
"post": {
"summary": "Soft Soft≠LIVE prove OpenAPI fragments link (GEN-P11)",
"operationId": "genmfgProveOpenapiFragmentsAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/prove/mn03/compose/assert": {
"post": {
"summary": "Soft Soft≠LIVE MN-03 engine compose (GEN-X01c)",
"operationId": "genmfgProveMn03ComposeAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/inbox/hitl/assert": {
"post": {
"summary": "Soft Soft≠LIVE inbox HITL/quality cards (GEN-42)",
"operationId": "genmfgInboxHitlAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/kuratibu/transform/assert": {
"post": {
"summary": "Soft Soft≠LIVE Kuratibu Transform mirror (GEN-43)",
"operationId": "genmfgKuratibuTransformAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/openmaint/asset/assert": {
"post": {
"summary": "Soft Soft≠LIVE OpenMaint asset steps (GEN-44)",
"operationId": "genmfgOpenmaintAssetAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/materra/j3-default/assert": {
"post": {
"summary": "Soft Soft≠LIVE J3 export/season agri default (GEN-M04)",
"operationId": "genmfgMaterraJ3DefaultAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/materra/inbox-agri/assert": {
"post": {
"summary": "Soft Soft≠LIVE Materra inbox agri events (GEN-M05)",
"operationId": "genmfgMaterraInboxAgriAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/provenance/passport/assert": {
"post": {
"summary": "Soft Soft≠LIVE provenance→quality+seal (GEN-M07)",
"operationId": "genmfgProvenancePassportAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/index/assert": {
"post": {
"summary": "Soft Soft≠LIVE GenMfg docs/UI index (GEN-01)",
"operationId": "genmfgIndexAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/arch/no-bridge-bridge/assert": {
"post": {
"summary": "Soft Soft≠LIVE ban bridge→bridge HTTP (GEN-02)",
"operationId": "genmfgArchNoBridgeBridgeAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/prove/ag05-event-path": {
"post": {
"summary": "Soft Soft≠LIVE AG-05 event-sourced path via API events only (GEN-ES09)",
"operationId": "genmfgProveAg05EventPath",
"responses": {
"200": {
"description": "Soft Soft≠LIVE path complete (invent_refuse_live)"
},
"422": {
"description": "incomplete / jetstream forbidden invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/packs/admin/assert": {
"post": {
"summary": "Soft Soft≠LIVE pack:admin APF + hydrate honesty (GEN-U10)",
"operationId": "genmfgPacksAdminAssert",
"responses": {
"200": {
"description": "Soft Soft≠LIVE admin/hydrate ok"
},
"403": {
"description": "pack_admin_apf_denied"
},
"422": {
"description": "hydrate_live_leak invent_refuse"
},
"503": {
"description": "pack_publish_kv_unbound invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/authz/matrix/assert": {
"post": {
"summary": "Soft Soft≠LIVE agri 401/403/402/422 authz matrix (GEN-A09)",
"operationId": "genmfgAuthzMatrixAssert",
"responses": {
"200": {
"description": "Soft Soft≠LIVE matrix pass (invent_refuse_live)"
},
"422": {
"description": "matrix fixture incomplete invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/sourcing/reentry": {
"post": {
"summary": "Soft Soft≠LIVE Transform labor/parts sourcing re-entry (GEN-S09)",
"operationId": "genmfgSourcingReentry",
"responses": {
"200": {
"description": "Mapped Soft requirement.create (denorm may invent_refuse)"
},
"422": {
"description": "unknown hook / LIVE invent_refuse"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/from-standing-order-breach": {
"post": {
"summary": "Soft Soft≠LIVE standing-order breach → GenMfg Input (GEN-S08)",
"operationId": "genmfgFromStandingOrderBreach",
"responses": {
"200": {
"description": "Mapped Soft voyage_start"
},
"201": {
"description": "Voyage started Soft Soft≠LIVE when play=true"
},
"422": {
"description": "input_from / LIVE invent_refuse"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/criteria-wf/assert": {
"post": {
"summary": "Soft Soft≠LIVE criteria match.fired / sla.breached WF bind (GEN-ES07)",
"operationId": "genmfgCriteriaWfAssert",
"responses": {
"200": {
"description": "Binding resolved Soft Soft≠LIVE (optional fire)"
},
"404": {
"description": "criteria_wf_binding_missing"
},
"503": {
"description": "criteria_wf_invoke_unbound invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/scenario-paths/assert": {
"post": {
"summary": "Soft Soft≠LIVE scenario paths LG/FS/MX/FM/LB invent_refuse (GEN-X05/X06/X07)",
"operationId": "genmfgScenarioPathsAssert",
"responses": {
"200": {
"description": "Soft Soft≠LIVE path plan (invent_refuse_live)"
},
"400": {
"description": "org_id_required"
},
"404": {
"description": "scenario_path_unknown"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/logistics/exception": {
"post": {
"summary": "Raise Soft Soft≠LIVE logistics exception.raised → support invent_refuse (GEN-F04)",
"operationId": "genmfgLogisticsException",
"responses": {
"200": {
"description": "Platform exception envelope Soft Soft≠LIVE"
},
"400": {
"description": "org_id_required"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/security/layers/assert": {
"post": {
"summary": "Per-engine L1–L12 invent_refuse LIVE if incomplete (GEN-A05 Soft Soft≠LIVE)",
"operationId": "genmfgSecurityLayersAssert",
"responses": {
"200": {
"description": "layers_live when GENMFG_SECURITY_LIVE + probes"
},
"503": {
"description": "engine_security_layers_incomplete invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/envelopes/assert": {
"post": {
"summary": "Assert Camel/NATS envelope org_id + instance_id (GEN-I05 Soft Soft≠LIVE)",
"operationId": "genmfgEnvelopesAssert",
"responses": {
"200": {
"description": "Identity ok Soft Soft≠LIVE"
},
"422": {
"description": "envelope_identity_incomplete"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/webhooks/assert": {
"post": {
"summary": "Assert webhook HMAC per instance_id Soft Soft≠LIVE (GEN-I06/A07)",
"operationId": "genmfgWebhooksAssert",
"responses": {
"200": {
"description": "Verified Soft Soft≠LIVE (inject secret)"
},
"401": {
"description": "webhook_hmac_invalid / signature required"
},
"422": {
"description": "engine_required / engine_hmac_not_required"
},
"503": {
"description": "webhook_hmac_unbound / webhook_secret_unresolved invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/from-sourcing-award": {
"post": {
"summary": "Soft Soft≠LIVE sourcing award → GenMfg correlation (GEN-X04 / S-AG-05)",
"operationId": "genmfgFromSourcingAward",
"responses": {
"200": {
"description": "Mapped Soft voyage_start"
},
"201": {
"description": "Voyage started Soft Soft≠LIVE when play=true"
},
"422": {
"description": "correlation missing or LIVE OPTIMAL invent_refuse"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/standing-orders/field-dispatch": {
"post": {
"summary": "Standing-order field_dispatch → shipment.create Soft Soft≠LIVE (GEN-F06)",
"operationId": "genmfgStandingOrderFieldDispatch",
"responses": {
"200": {
"description": "Platform shipment.create Soft Soft≠LIVE"
},
"422": {
"description": "instance_id / standing_order invent_refuse"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/resolve": {
"get": {
"summary": "Resolve instance for service (fail closed ambiguous/missing)",
"operationId": "genmfgResolveBinding",
"parameters": [
{
"name": "X-Org-Id",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "service",
"in": "query",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "instance_id",
"in": "query",
"schema": {
"type": "string"
}
},
{
"name": "org_path",
"in": "query",
"schema": {
"type": "string"
},
"description": "Comma-separated ancestry"
}
],
"responses": {
"200": {
"description": "Resolved binding"
},
"404": {
"description": "binding_missing"
},
"422": {
"description": "binding_ambiguous"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/events/stream": {
"get": {
"summary": "SSE stream (genmfg + logistics + criteria + sourcing subjects)",
"operationId": "genmfgEventsStream",
"responses": {
"200": {
"description": "text/event-stream"
},
"503": {
"description": "nats_unavailable invent_refuse"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/exchange/domains": {
"get": {
"summary": "List substitutable exchange domains",
"operationId": "exchangeDomains",
"responses": {
"200": {
"description": "Domain list"
}
}
},
"x-genmfg-path-class": "Internal"
},
"/v1/exchange/normalize": {
"post": {
"summary": "Normalize any domain event to platform.<domain>.v1.event.*",
"operationId": "exchangeNormalize",
"responses": {
"200": {
"description": "Envelope"
},
"422": {
"description": "Fail closed"
}
}
},
"x-genmfg-path-class": "Internal"
},
"/v1/exchange/denormalize": {
"post": {
"summary": "Denormalize platform command to adapter subject",
"operationId": "exchangeDenormalize",
"responses": {
"200": {
"description": "Adapter subject"
},
"422": {
"description": "Fail closed"
}
}
},
"x-genmfg-path-class": "Internal"
},
"/v1/genmfg/readiness": {
"get": {
"summary": "Aggregate Soft Soft≠LIVE readiness",
"operationId": "genmfgReadiness",
"responses": {
"200": {
"description": "Always invent_refuse_live; flink/criteria/solver/kestra/security/normalize probes; farmos_live=false"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/live-gates/assert": {
"post": {
"summary": "Assert pack Flink Job A / domain normalize LIVE gates (GEN-ES06/W06)",
"operationId": "genmfgLiveGatesAssert",
"responses": {
"200": {
"description": "Gates ok Soft Soft≠LIVE (live_gate_met still false aggregate)"
},
"422": {
"description": "domain_catalog_missing"
},
"503": {
"description": "flink_job_a_required / normalize_path_incomplete invent_refuse"
}
}
},
"x-genmfg-path-class": "Ops"
},
"/v1/genmfg/catalog/hooks": {
"get": {
"summary": "Closed workflow hook vocabulary",
"operationId": "genmfgCatalogHooks",
"responses": {
"200": {
"description": "lookup.genmfg.workflow_hooks.v1"
},
"503": {
"description": "workflow_hooks_missing"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/catalog/events": {
"get": {
"summary": "Subsystem event catalog",
"operationId": "genmfgCatalogEvents",
"responses": {
"200": {
"description": "lookup.genmfg.subsystem_event_catalog.v1"
},
"503": {
"description": "event_catalog_missing"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/hooks/validate": {
"post": {
"summary": "Validate journey/hooks against closed vocabulary (GEN-D02/W10)",
"operationId": "genmfgHooksValidate",
"responses": {
"200": {
"description": "Hooks ok"
},
"422": {
"description": "unknown_hook / adapter_payload_forbidden"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/voyages/{id}/seal": {
"post": {
"summary": "Seal voyage Soft Soft≠LIVE; invent_refuse incomplete certify_eval_set (GEN-D07)",
"operationId": "genmfgSealVoyage",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"industry_pack"
],
"properties": {
"industry_pack": {
"type": "string"
},
"completed_eval_set": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
"responses": {
"200": {
"description": "Sealed Soft Soft≠LIVE"
},
"422": {
"description": "certify_eval_set_incomplete"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/packs": {
"get": {
"summary": "List pack.genmfg.* from SOVEREIGN_LOOKUPS",
"operationId": "genmfgListPacks",
"responses": {
"200": {
"description": "Pack index"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/packs/{industry}": {
"get": {
"summary": "Get industry pack (supports mining.gold)",
"operationId": "genmfgGetPack",
"parameters": [
{
"name": "industry",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Pack document"
},
"404": {
"description": "pack_not_found invent_refuse"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/scenarios": {
"get": {
"summary": "List GenMfg Soft Soft≠LIVE scenario catalog (GEN-X01)",
"operationId": "genmfgListScenarios",
"responses": {
"200": {
"description": "Scenario index"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/scenarios/{id}": {
"get": {
"summary": "Get scenario by catalog id (S-MN-03) or scenario_key",
"operationId": "genmfgGetScenario",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Scenario document"
},
"404": {
"description": "scenario_not_found invent_refuse"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/ui-bundle": {
"get": {
"summary": "Compose data-driven UI shell from pack",
"operationId": "genmfgUiBundle",
"parameters": [
{
"name": "industry",
"in": "query",
"schema": {
"type": "string",
"default": "agriculture"
}
}
],
"responses": {
"200": {
"description": "views + shell + integrations"
},
"404": {
"description": "pack_not_found"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/voyages": {
"get": {
"summary": "List voyages (empty Soft honesty without listVoyages inject)",
"operationId": "genmfgListVoyages",
"responses": {
"200": {
"description": "Voyage list"
}
}
},
"post": {
"summary": "Start voyage via playPlaybookVoyage",
"operationId": "genmfgStartVoyage",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"journey_id"
],
"properties": {
"journey_id": {
"type": "string"
},
"industry_pack": {
"type": "string"
},
"org_id": {
"type": "string"
},
"org_path": {
"type": "array",
"items": {
"type": "string"
}
},
"integration_bindings": {
"type": "object"
}
}
}
}
}
},
"responses": {
"201": {
"description": "Voyage started Soft Soft≠LIVE"
},
"400": {
"description": "Missing journey_id / org_id"
},
"503": {
"description": "Kestra/Camel invent_refuse"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/voyages/{id}": {
"get": {
"summary": "Get voyage state",
"operationId": "genmfgGetVoyage",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Voyage"
},
"404": {
"description": "Not found"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/voyages/{id}/advance": {
"post": {
"summary": "Advance voyage (Kestra only — no Surreal Mayet LIVE)",
"operationId": "genmfgAdvanceVoyage",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Advanced"
},
"503": {
"description": "invent_refuse when Kestra down"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/adapters": {
"get": {
"summary": "List adapter registry entries (GEN-N05 Soft Soft≠LIVE)",
"operationId": "genmfgListAdapters",
"parameters": [
{
"name": "service",
"in": "query",
"schema": {
"type": "string"
}
},
{
"name": "include_soft",
"in": "query",
"schema": {
"type": "string",
"enum": [
"0",
"1"
]
}
}
],
"responses": {
"200": {
"description": "Adapters from lookup.genmfg.adapter_registry.v1"
},
"503": {
"description": "registry_missing invent_refuse"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/adapters/assert": {
"post": {
"summary": "Assert capabilities / multi_adapter_exchange / substitute (GEN-N09/N13)",
"operationId": "genmfgAssertAdapters",
"responses": {
"200": {
"description": "Asserted Soft Soft≠LIVE"
},
"404": {
"description": "adapter_not_registered"
},
"422": {
"description": "missing_capability"
},
"503": {
"description": "multi_adapter_exchange invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/voyages/{id}/invoke": {
"post": {
"summary": "action:invoke via workflow-subject-invoke; requires idempotency_key (GEN-W02/W05)",
"operationId": "genmfgInvoke",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"subject",
"idempotency_key"
],
"properties": {
"subject": {
"type": "string"
},
"idempotency_key": {
"type": "string"
},
"payload": {
"type": "object"
},
"require_capability": {
"oneOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"adapter": {
"type": "string"
},
"service": {
"type": "string"
}
}
}
}
}
},
"responses": {
"200": {
"description": "Invoked or Soft Soft≠LIVE deduped"
},
"422": {
"description": "idempotency_key_required / missing_capability"
},
"503": {
"description": "invoke_failed invent_refuse"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/voyages/{id}/quality": {
"post": {
"summary": "Delegate compliance gate evaluate",
"operationId": "genmfgQuality",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"compliance_gate_id"
],
"properties": {
"compliance_gate_id": {
"type": "string"
},
"evidence": {
"type": "object"
}
}
}
}
}
},
"responses": {
"200": {
"description": "Eval result"
},
"400": {
"description": "gate id required"
},
"502": {
"description": "compliance unavailable invent_refuse"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/voyages/{id}/optimize": {
"post": {
"summary": "Pack solver → decision-gateway (fail closed)",
"operationId": "genmfgOptimize",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"capability_key"
],
"properties": {
"capability_key": {
"type": "string"
},
"industry_pack": {
"type": "string"
},
"overrides": {
"type": "object"
}
}
}
}
}
},
"responses": {
"200": {
"description": "decision-result-v1 wrapped Soft Soft≠LIVE"
},
"503": {
"description": "Never invent OPTIMAL"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/voyages/{id}/dispatch": {
"post": {
"summary": "Map platform.logistics.v1.command.* (denormalize)",
"operationId": "genmfgDispatch",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Mapped command"
},
"400": {
"description": "org_id + instance_id required"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/from-quote/{quoteId}": {
"post": {
"summary": "Alias sourcing sign-convert",
"operationId": "genmfgFromQuote",
"parameters": [
{
"name": "quoteId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Work order"
},
"502": {
"description": "Upstream fail"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/logistics/normalize": {
"post": {
"summary": "Normalize logistics event → platform.logistics.v1.event.*",
"operationId": "logisticsNormalize",
"responses": {
"200": {
"description": "Envelope + subject"
},
"422": {
"description": "Fail closed missing org_id/instance_id/correlation_id"
}
}
},
"x-genmfg-path-class": "Internal"
},
"/v1/logistics/normalize/publish": {
"post": {
"summary": "LIVE publish normalized logistics (LOGISTICS_NORMALIZE_LIVE=1)",
"operationId": "logisticsNormalizePublish",
"responses": {
"200": {
"description": "Published"
},
"503": {
"description": "live_gate_unmet invent_refuse"
}
}
},
"x-genmfg-path-class": "Internal"
},
"/v1/logistics/denormalize": {
"post": {
"summary": "Denormalize platform command → fleet.v1.command.*",
"operationId": "logisticsDenormalize",
"responses": {
"200": {
"description": "Adapter subject + payload"
},
"422": {
"description": "Fail closed"
}
}
},
"x-genmfg-path-class": "Internal"
},
"/v1/logistics/denormalize/publish": {
"post": {
"summary": "LIVE publish denormalized command",
"operationId": "logisticsDenormalizePublish",
"responses": {
"200": {
"description": "Published"
},
"503": {
"description": "live_gate_unmet invent_refuse"
}
}
},
"x-genmfg-path-class": "Internal"
},
"/v1/genmfg/domains": {
"get": {
"summary": "List schema-first GenMfg domains",
"operationId": "genmfgListDomains",
"responses": {
"200": {
"description": "Domain list Soft Soft≠LIVE"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/domains/{domain}": {
"get": {
"summary": "Domain catalog (resources, operations, schema_id)",
"operationId": "genmfgGetDomain",
"parameters": [
{
"name": "domain",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Catalog"
},
"404": {
"description": "domain_unknown"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/domains/{domain}/resources/{resourceType}": {
"get": {
"summary": "List domain resources (mirror)",
"operationId": "genmfgListResources",
"parameters": [
{
"name": "domain",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "resourceType",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Resource list Soft Soft≠LIVE"
}
}
},
"post": {
"summary": "Create/ensure/upsert domain resource (denorm Soft Soft≠LIVE)",
"operationId": "genmfgWriteResource",
"parameters": [
{
"name": "domain",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "resourceType",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Mapped resource"
},
"422": {
"description": "Schema / vendor keys / command"
},
"503": {
"description": "LIVE publish invent_refuse"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/domains/{domain}/resources/{resourceType}/{id}": {
"get": {
"summary": "Get domain resource by id",
"operationId": "genmfgGetResource",
"parameters": [
{
"name": "domain",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "resourceType",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Resource"
},
"404": {
"description": "Not found"
}
}
},
"patch": {
"summary": "Patch domain resource",
"operationId": "genmfgPatchResource",
"parameters": [
{
"name": "domain",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "resourceType",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Mapped"
},
"422": {
"description": "Fail closed"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/domains/{domain}/resources/{resourceType}/{id}/actions/{action}": {
"post": {
"summary": "Domain resource lifecycle action",
"operationId": "genmfgResourceAction",
"parameters": [
{
"name": "domain",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "resourceType",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "action",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Mapped"
},
"422": {
"description": "action_unknown"
},
"503": {
"description": "LIVE invent_refuse"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/domains/{domain}/events/ingest": {
"post": {
"summary": "Ingress normalize + resource projection",
"operationId": "genmfgDomainIngest",
"parameters": [
{
"name": "domain",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Envelope + resource"
},
"503": {
"description": "LIVE invent_refuse"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/domains/{domain}/events": {
"get": {
"summary": "List recent domain events (Soft Soft≠LIVE peek)",
"operationId": "genmfgDomainEvents",
"parameters": [
{
"name": "domain",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Events Soft Soft≠LIVE"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/workspaces/{orgId}": {
"get": {
"summary": "Get org GenMfg workspace config",
"operationId": "genmfgGetWorkspace",
"parameters": [
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Workspace"
},
"404": {
"description": "Not found"
}
}
},
"put": {
"summary": "Upsert org GenMfg workspace (pack + domain binds)",
"operationId": "genmfgPutWorkspace",
"parameters": [
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Saved Soft Soft≠LIVE"
},
"503": {
"description": "KV put invent_refuse"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/workspaces/{orgId}/bindings": {
"get": {
"summary": "List workspace domain bindings",
"operationId": "genmfgListWorkspaceBindings",
"parameters": [
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Bindings"
}
}
},
"post": {
"summary": "Upsert sticky domain→instance bind",
"operationId": "genmfgUpsertWorkspaceBinding",
"parameters": [
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Binding"
},
"422": {
"description": "domain_unknown"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/workspaces/{orgId}/bindings/{domain}": {
"delete": {
"summary": "Soft-deactivate workspace domain bind",
"operationId": "genmfgDeleteWorkspaceBinding",
"parameters": [
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "domain",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Deactivated"
},
"404": {
"description": "Not found"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/voyages/{id}/resources/{domain}/{resourceType}": {
"post": {
"summary": "Voyage-scoped resource write",
"operationId": "genmfgVoyageWriteResource",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "domain",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "resourceType",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Mapped"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/voyages/{id}/resources/{domain}/{resourceType}/{resourceId}/actions/{action}": {
"post": {
"summary": "Voyage-scoped resource action",
"operationId": "genmfgVoyageResourceAction",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "domain",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "resourceType",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "resourceId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "action",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Mapped"
}
}
},
"x-genmfg-path-class": "Product"
},
"/v1/genmfg/ops/agri-cutover/assert": {
"post": {
"summary": "Soft Soft≠LIVE GEN-50 agri cutover",
"operationId": "genmfgv1GenmfgOpsAgricutoverAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Ops"
},
"/v1/genmfg/ops/cutover-progress/assert": {
"post": {
"summary": "Soft Soft≠LIVE cutover progress desk (TCP green ≠ LIVE)",
"operationId": "genmfgOpsCutoverProgressAssert",
"responses": {
"200": {
"description": "Progress Soft Soft≠LIVE; live_gate_met false"
},
"422": {
"description": "invent LIVE forbidden"
}
}
},
"x-genmfg-path-class": "Ops"
},
"/v1/genmfg/ops/live-readiness/assert": {
"post": {
"summary": "Soft Soft≠LIVE LIVE ops readiness inventory (never invents live_gate_met)",
"operationId": "genmfgv1GenmfgOpsLivereadinessAssert",
"responses": {
"200": {
"description": "Soft Soft≠LIVE inventory — invent_refuse_live"
},
"422": {
"description": "invent_refuse when LIVE invented"
}
}
},
"x-genmfg-path-class": "Ops"
},
"/v1/genmfg/ops/kv-seed/assert": {
"post": {
"summary": "Soft Soft≠LIVE GenMfg KV seed inventory (never invents nats_kv_seeded)",
"operationId": "genmfgv1GenmfgOpsKvseedAssert",
"responses": {
"200": {
"description": "Soft Soft≠LIVE disk key inventory"
},
"422": {
"description": "invent_refuse when seeded LIVE invented"
}
}
},
"x-genmfg-path-class": "Ops"
},
"/v1/genmfg/ops/engine-probes/assert": {
"post": {
"summary": "Soft Soft≠LIVE engine TCP/probe honesty (never invents live_gate_met)",
"operationId": "genmfgv1GenmfgOpsEngineprobesAssert",
"responses": {
"200": {
"description": "Soft Soft≠LIVE probe desk — DOWN is honest"
},
"422": {
"description": "invent_refuse when LIVE invented or opt-in while DOWN"
}
}
},
"x-genmfg-path-class": "Ops"
},
"/v1/genmfg/ops/stack-preflight/assert": {
"post": {
"summary": "Soft Soft≠LIVE Docker/stack preflight (never invents stack_live)",
"operationId": "genmfgv1GenmfgOpsStackpreflightAssert",
"responses": {
"200": {
"description": "Soft Soft≠LIVE preflight — daemon DOWN is honest"
},
"422": {
"description": "invent_refuse when stack LIVE invented"
}
}
},
"x-genmfg-path-class": "Ops"
},
"/v1/genmfg/console/mfg-bind/assert": {
"post": {
"summary": "Soft Soft≠LIVE GEN-51 console MFG bind",
"operationId": "genmfgv1GenmfgConsoleMfgbindAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/prove/playwright-smoke/assert": {
"post": {
"summary": "Soft Soft≠LIVE GEN-54 playwright soft smoke",
"operationId": "genmfgv1GenmfgProvePlaywrightsmokeAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/prove/collections/assert": {
"post": {
"summary": "Soft Soft≠LIVE GEN-P12 OpenAPI collections",
"operationId": "genmfgv1GenmfgProveCollectionsAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/sourcing/offtake-reentry/assert": {
"post": {
"summary": "Soft Soft≠LIVE GEN-S12 offtake reentry",
"operationId": "genmfgv1GenmfgSourcingOfftakereentryAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/logistics/wms-pallet/assert": {
"post": {
"summary": "Soft Soft≠LIVE GEN-F07 WMS pallet",
"operationId": "genmfgv1GenmfgLogisticsWmspalletAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/criteria/job-b-interrupt/assert": {
"post": {
"summary": "Soft Soft≠LIVE GEN-ES10 Job B SLA",
"operationId": "genmfgv1GenmfgCriteriaJobbinterruptAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/scenarios/hl01/assert": {
"post": {
"summary": "Soft Soft≠LIVE GEN-X08 HL-01 medical",
"operationId": "genmfgv1GenmfgScenariosHl01Assert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/prove/traceability/assert": {
"post": {
"summary": "Soft Soft≠LIVE GEN-X09 traceability",
"operationId": "genmfgv1GenmfgProveTraceabilityAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/whatif/overlay/assert": {
"post": {
"summary": "Soft Soft≠LIVE GEN-35 what-if",
"operationId": "genmfgv1GenmfgWhatifOverlayAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/standing-orders/wo-spawn/assert": {
"post": {
"summary": "Soft Soft≠LIVE GEN-53 SO WO spawn",
"operationId": "genmfgv1GenmfgStandingordersWospawnAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/events/ws-multiplexer/assert": {
"post": {
"summary": "Soft Soft≠LIVE GEN-45 WS mux",
"operationId": "genmfgv1GenmfgEventsWsmultiplexerAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/bindings/erp-plane/assert": {
"post": {
"summary": "Soft Soft≠LIVE GEN-I11 ERP Plane",
"operationId": "genmfgv1GenmfgBindingsErpplaneAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/hierarchy/drilldown/assert": {
"post": {
"summary": "Soft Soft≠LIVE GEN-H10 drilldown",
"operationId": "genmfgv1GenmfgHierarchyDrilldownAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/bi/superset-embed/assert": {
"post": {
"summary": "Soft Soft≠LIVE GEN-A11 Superset",
"operationId": "genmfgv1GenmfgBiSupersetembedAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/ui/minio-signed/assert": {
"post": {
"summary": "Soft Soft≠LIVE GEN-U11 MinIO",
"operationId": "genmfgv1GenmfgUiMiniosignedAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/ui/composable-facet/assert": {
"post": {
"summary": "Soft Soft≠LIVE GEN-U12 facet",
"operationId": "genmfgv1GenmfgUiComposablefacetAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/studio/author/assert": {
"post": {
"summary": "Soft Soft≠LIVE GEN-W12 studio author",
"operationId": "genmfgv1GenmfgStudioAuthorAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
},
"/v1/genmfg/packs/healthcare-fleet/assert": {
"post": {
"summary": "Soft Soft≠LIVE GEN-52 healthcare/fleet packs",
"operationId": "genmfgv1GenmfgPacksHealthcarefleetAssert",
"responses": {
"200": {
"description": "ok"
},
"422": {
"description": "invent_refuse"
}
}
},
"x-genmfg-path-class": "Prove"
}
},
"components": {
"securitySchemes": {
"bearerAuth": {
"type": "http",
"scheme": "bearer",
"bearerFormat": "JWT"
}
},
"parameters": {
"XOrgId": {
"name": "X-Org-Id",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
}
}
},
"security": [
{
"bearerAuth": []
}
]
}