Skip to content

CAT Node #111

Description

@JEJodesty

CAT Node

Implement a CAT Node as the mesh peer edge that runs the Architectural Quantum’s Control-Feedback Loop: consume a content-addressed Order, manufacture an ephemeral Executor via the Factory, execute Function [FaaS] on Structure [PaaS], and return a signed BOM (Invoice + provenance) addressed by bom_cid.

This epic tracks the Node as a REST / HTTP peer client of InfraStructure’s content-store facet — not standing Plant/IaaS ownership. Runtime realization: Factory → Executor → Invoice/BOM (docs/ControlFeedbackLoop.md, docs/COMPONENTS.md, docs/DESIGN.md).

In-repo today (baseline)

Surface Status
Peer-edge Flask API (cats/node/app.py) Shipped
Lifecycle CLI / Make: ensure / start / stop / status (node-up / node-down) Shipped — docs/NodeLifeCycle.md
POST /cat/node/init — Order → Factory → Executor → BOM envelope (bom_cid, bom, bom_ldp_uri, optional bom_solid_uri) Shipped — docs/BOM.md
LDP BOM cache: GET /ldp/boms/, GET /ldp/boms/<bom_cid> (PUT 405; publish via Runtime) Shipped (Phase 2a)
Live integration coverage of the Executor path tests/test_provenance.py only — docs/TEST.md
Design (Light Client) / Implement Node Historical AC via #106, #58 — treat as done for this epic’s core

Acceptance criteria

  • Design CAT Node (Light Client) — #106
  • Implement CAT Node — #58
  • REST API with ≥1 endpoint that processes Orders and returns BOMs with Invoices addressable as bom_cid (POST /cat/node/init)
  • Error-handled endpoints/cat/node/init still returns a catch-all {'error': …} without disciplined HTTP status / validation shape; LDP routes already use 400/404/405. Close when Order-init errors are client-safe (status codes, typed failures) without leaking internals.
  • Order discovery — Order is still supplied out-of-band to /cat/node/init; registry “BOM → invoice.order_cid” consumption remains unimplemented (docs/ControlFeedbackLoop.md note on step 2)

Non-goals (owned elsewhere)

  • Plant / InfraStructure provisioning semantics (Structure as IaC; Node asserts content-store readiness only)
  • BOM registry / cross-CAT reverse lookup (Action Plane / follow-on epics)
  • Second-Plant interop proofs (docs/INTEROP.md)

Refs

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestepicAgile Epic

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions