Skip to content

Latest commit

Β 

History

History

apps

README.md

Apps β€” the deployables

OpenCrane β€Ί apps

Everything here is a deployable: a thing that ships and runs β€” a server, a single-page app, a worker, a database. Apps are thin. They compose libraries, wire up clients, and manage process lifecycle; the actual product logic lives in libs. The rule is one apps/<name> per deployable, and logic lives in libs β€” if you are writing behaviour worth testing on its own, it belongs in a library, not here.

Map

Deployable What it owns
opencrane The organisation control plane and authenticated REST API.
opencrane-ui The browser workspace for personal assistants, team chats and organisation administration.
conversation-computer The generation-fenced process image used by Agent Sandbox.
memory-gateway The private authenticated boundary in front of Cognee.
artifact-service The artifact promote-and-receipt service.
artifact-preprocessor Outbound-only PDF-to-text worker behind the OpenCrane artifact broker.
artifact-scanner Outbound-only malware scanner for quarantined conversation files.
agent-controller Sole Kubernetes mutator for governed one-shot Jobs.
mcp-executor One-shot OpenCrane companion for OCI-backed MCP server Jobs.
mcp-file-generator Credentialless CSV-producing MCP image for the existing governed OCI execution flow.
skill-authoring Chart-only isolated candidate-skill Job plane with no standing worker.
postgres The durable PostgreSQL deployable.

Vendored third-party infrastructure (Cognee, LiteLLM, and the Kubernetes release composer) lives one level down under apps/_infra β€” see that index for the service map.

   opencrane (control plane) ──serves──► opencrane-ui (SPA)
        β”œβ”€β”€ memory-gateway
 Β· artifact-service Β· artifact-preprocessor Β· artifact-scanner
        β”œβ”€β”€ conversation-computer (Agent Sandbox process image)
        β”œβ”€β”€ agent-controller Β· mcp-executor
        β”œβ”€β”€ skill-authoring
        └── postgres (durable DB)
   apps/_infra/ ── vendored infra + release composer

Dependency rule for this tier

Apps carry type:app / scope:app. An app may compose any library, but it must not import another app β€” deployables never depend on each other's source.

Container publishing

An app that publishes a container owns its complete release descriptor on its NX container target: metadata.release.image is the registry suffix and metadata.release.dockerfile is the build definition. The Docker workflow selects affected container targets from NX, reads those descriptors from their app projects, and fails closed if either field is absent. A container target therefore runs the actual image build; an image smoke check is a distinct app target.

Release compatibility

Pre-1.0 there are no per-app version stamps or upgrade transitions. One current manifest, releases/<version>.json, binds the repository version, the fresh-install database baseline digest, and the PostgreSQL operand image; the full policy lives in docs/agents/versioning.md.

See also