You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(create-objectstack): default scaffold ships the three generic connector executors (#3056) (#3104)
Wire the rest/openapi/mcp connector executors + requires:['automation'] into the blank scaffold so an author can add a declarative connectors: entry and have it materialize at boot with no host code (ADR-0097). Docs + changeset included. Also fixes scaffold-e2e's Docker step to build the scaffolded app's own Dockerfile (examples/docker was removed in 6c28bac without updating the workflow).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: content/docs/automation/flows.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -117,7 +117,7 @@ Each node performs a specific action in the flow.
117
117
|`map`| Sequential multi-instance — run a per-item subflow for each element, one at a time (each may pause); batch approval (ADR-0039) |
118
118
|`connector_action`| Execute an external connector action |
119
119
120
-
`connector_action` dispatches against the runtime **connector registry**, which connector plugins populate. The three **generic executors** — `rest`, `openapi`, and `mcp` — double as provider factories: with them in your app's `plugins:`, a declarative `connectors:` entry that names a `provider` is materialized into a live, dispatchable connector at boot with no plugin code (ADR-0097; the showcase example wires all three). Brand connectors (Slack, …) are installed separately. One security note: a declarative `mcp` instance using a **stdio** transport spawns a local process from metadata and is therefore denied by default — the host opts in with `new ConnectorMcpPlugin({ declarativeStdio: ['<trusted-command>'] })`; `http` transports need no opt-in.
120
+
`connector_action` dispatches against the runtime **connector registry**, which connector plugins populate. The three **generic executors** — `rest`, `openapi`, and `mcp` — double as provider factories: with them in your app's `plugins:`, a declarative `connectors:` entry that names a `provider` is materialized into a live, dispatchable connector at boot with no plugin code (ADR-0097). Scaffolded projects (`npm create objectstack`) ship all three executors by default — paired with the `automation` capability that performs the materialization — and the showcase wires them too. Brand connectors (Slack, …) are installed separately. One security note: a declarative `mcp` instance using a **stdio** transport spawns a local process from metadata and is therefore denied by default — the host opts in with `new ConnectorMcpPlugin({ declarativeStdio: ['<trusted-command>'] })`; `http` transports need no opt-in.
// `automation` runs flows and, per ADR-0097, materializes declarative
118
+
// `connectors:` entries at boot. The three generic executors below register
119
+
// their `rest` / `openapi` / `mcp` provider factories with it.
120
+
requires: ['automation'],
121
+
plugins: [
122
+
newConnectorRestPlugin(),
123
+
newConnectorOpenApiPlugin(),
124
+
newConnectorMcpPlugin(),
125
+
],
114
126
objects: Object.values(objects),
115
127
});
116
128
```
117
129
118
130
The REST API needs no configuration — it is on by default for every object
119
-
with `apiEnabled`.
131
+
with `apiEnabled`. The `plugins:` array ships the three **generic connector
132
+
executors**, so you can integrate an external REST / OpenAPI / MCP service as
133
+
pure metadata: add a `connectors:` entry naming a `provider` and the
134
+
`automation` capability materializes it into a live connector at boot — see
135
+
[Automation → Flows](/docs/automation/flows).
120
136
121
137
**`src/objects/note.object.ts`** is a complete data model — schema, validation,
122
138
API surface, and searchability in one typed definition:
@@ -151,6 +167,7 @@ framework surface you install:
151
167
|`@objectstack/runtime`| The kernel that interprets metadata at runtime. |
152
168
|`@objectstack/driver-memory`| In-memory database driver for development. Swap for SQLite / Postgres / MongoDB in production — [no code changes](/docs/data-modeling/drivers). |
153
169
|`@objectstack/plugin-hono-server`| The HTTP server that mounts the generated REST API. |
170
+
|`@objectstack/connector-rest` · `-openapi` · `-mcp`| The three generic connector executors — register the `rest` / `openapi` / `mcp` provider factories so declarative `connectors:` entries materialize ([ADR-0097](/docs/automation/flows)). |
0 commit comments