feat(deploy): add engine node intelligence transition
This commit is contained in:
@@ -253,6 +253,65 @@ become `custom` and remain exact; they are never elevated. The artifact does not
|
||||
touch UI, n8n, credentials, agent tokens, workflow graphs, databases or runtime
|
||||
payloads.
|
||||
|
||||
## Engine L2 node-intelligence transition
|
||||
|
||||
The node-intelligence transition is an additive Engine-owned deployment domain.
|
||||
It does not merge Ontology, provider APIs or Ops into the Engine MCP. It pins the
|
||||
reviewed upstream `n8n-mcp` implementation at package `2.33.2`, commit
|
||||
`974a9fb3492fe2c4984ee0549085d531cdc6242a`, and exposes only the safe NDC L2
|
||||
projection through the existing Engine Agent gateway. Upstream management and
|
||||
write tools are not forwarded.
|
||||
|
||||
Production never clones, pulls, installs or builds this dependency. The builder
|
||||
saves the reviewed `linux/amd64` image once, embeds that exact archive in a
|
||||
data-only activation artifact and records both the archive and image-config
|
||||
digests. The runner validates every inner blob, revision label, entrypoint,
|
||||
command and platform before an offline `docker image load`; Compose then uses
|
||||
the fixed tag with `pull_policy: never` and `--pull never`.
|
||||
|
||||
Build a fresh activation/rollback pair:
|
||||
|
||||
```bash
|
||||
node infra/deploy-runner/build-engine-node-intelligence-artifacts.mjs \
|
||||
YYYYMMDD-NNN
|
||||
```
|
||||
|
||||
The activation exact set is:
|
||||
|
||||
- `nodedc-source/server/nodeIntelligence`
|
||||
- `nodedc-source/server/routes/engineAgentGateway.js`
|
||||
- `nodedc-source/services/node-intelligence`
|
||||
|
||||
The runtime adds only `nodedc-node-intelligence` and recreates the existing
|
||||
`nodedc-backend`; n8n, UI, databases, L1, provider services and volumes are not
|
||||
selected. The sidecar has no host port, runs as `11007:11007`, has a read-only
|
||||
root filesystem, drops all capabilities and receives no Engine or provider
|
||||
credential. Its independent MCP bearer is created by the root-owned runner as a
|
||||
read-only file and mounted only into the sidecar and backend. It never appears
|
||||
in an artifact, shared environment file, log or MCP response.
|
||||
|
||||
Acceptance requires the exact image/container/mount/security inventory,
|
||||
immutable backend identity and live authenticated `get_node`, `validate_node`
|
||||
and `validate_workflow` calls. Any apply failure restores source and runtime
|
||||
automatically. The separate rollback artifact first removes only the sidecar
|
||||
without volumes, restores the pinned inactive gateway, and recreates only the
|
||||
verified backend. Loaded images and failed candidate source are retained for
|
||||
audit rather than destructively deleted.
|
||||
|
||||
Stage the reviewed runner under a unique candidate name first:
|
||||
|
||||
```text
|
||||
/volume1/docker/nodedc-deploy/runner-install/candidates/
|
||||
nodedc-deploy.engine-node-intelligence-YYYYMMDD-NNN
|
||||
```
|
||||
|
||||
Do not overwrite the canonical staging candidate while another deploy may be in
|
||||
flight. After the no-lock/no-process gate, promote the exact candidate in a
|
||||
standalone root step, run `verify-install`, then invoke a fresh process for
|
||||
activation `plan` and only then `apply`. The generated plan/apply runbook carries
|
||||
the runner, activation and rollback SHA-256 values and is staged beside the
|
||||
unique runner candidate.
|
||||
|
||||
`module-foundry` is an independent, authenticated application component. Its
|
||||
artifact contains source and compose infrastructure only; its live
|
||||
`/volume1/docker/nodedc-platform/module-foundry/source/.env` is root-owned and
|
||||
|
||||
Reference in New Issue
Block a user