Skip to content

Commit 7d92fd0

Browse files
committed
narrow to showcase demo + dogfood proof — template preset waits for the 15.1.0 publish
The scaffold-e2e job installs the generated app from the npm REGISTRY, and ConnectorOpenApiPlugin (and the #3055 declarativeStdio option) only exist in the unpublished 15.1.0 (queued in the Changesets release PR). A template must not reference unpublished APIs — the same failure would hit real 'npm create objectstack' users. Reverted the template files + changeset; once 15.1.0 publishes, the template's ^15.0.0 pins resolve to it and the preset piece lands as a small follow-up. flows.mdx reworded to describe the mechanism without the scaffold claim. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Pbmw3pMqNJfPbkvwh9Fkjs
1 parent 48e8fa3 commit 7d92fd0

5 files changed

Lines changed: 1 addition & 58 deletions

File tree

.changeset/adr-0097-default-preset.md

Lines changed: 0 additions & 15 deletions
This file was deleted.

content/docs/automation/flows.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ Each node performs a specific action in the flow.
117117
| `map` | Sequential multi-instance — run a per-item subflow for each element, one at a time (each may pause); batch approval (ADR-0039) |
118118
| `connector_action` | Execute an external connector action |
119119

120-
`connector_action` dispatches against the runtime **connector registry**, which connector plugins populate. Scaffolded apps ship the three **generic executors**`rest`, `openapi`, and `mcp`in their default `plugins:` (remove any you don't want), so a declarative `connectors:` entry that names a `provider` is materialized into a live, dispatchable connector at boot with no plugin code (ADR-0097). 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; 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.
121121

122122
### Node Structure
123123

packages/create-objectstack/src/templates/blank/README.md

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -26,27 +26,6 @@ curl -b cookies.txt "http://localhost:3000/api/v1/data/<your_object>"
2626
- `objectstack.config.ts` — environment manifest (objects, API, plugins)
2727
- `src/objects/` — object definitions (one file per object)
2828

29-
## Connectors (default providers)
30-
31-
The template ships the three generic connector executors — `rest`, `openapi`,
32-
and `mcp` — in `plugins:`. With them installed, a declarative `connectors:`
33-
entry that names a `provider` becomes a live, dispatchable connector at boot
34-
(pure metadata, no plugin code):
35-
36-
```ts
37-
connectors: [{
38-
name: 'billing',
39-
provider: 'openapi',
40-
providerConfig: { spec: './specs/billing-openapi.json', baseUrl: 'https://billing.example.com' },
41-
auth: { type: 'bearer', credentialRef: 'BILLING_API_TOKEN' }, // env var name — never an inline secret
42-
}]
43-
```
44-
45-
Remove executors you don't want from `plugins:`. Note: a declarative `mcp`
46-
instance over a **stdio** transport spawns a local process from metadata and is
47-
denied by default — opt in with
48-
`new ConnectorMcpPlugin({ declarativeStdio: ['<trusted-command>'] })`.
49-
5029
## Verify your changes
5130

5231
After editing any metadata, run:
Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
import { defineStack } from '@objectstack/spec';
2-
import { ConnectorMcpPlugin } from '@objectstack/connector-mcp';
3-
import { ConnectorOpenApiPlugin } from '@objectstack/connector-openapi';
4-
import { ConnectorRestPlugin } from '@objectstack/connector-rest';
52
import * as objects from './src/objects/index.js';
63

74
export default defineStack({
@@ -19,19 +16,4 @@ export default defineStack({
1916
engines: { protocol: '^15' },
2017
},
2118
objects: Object.values(objects),
22-
23-
// The three GENERIC connector executors (rest / openapi / mcp) ship in the
24-
// default preset (#3056, ADR-0097): with them installed, a declarative
25-
// `connectors:` entry that names a `provider` materializes into a live,
26-
// dispatchable connector at boot — integrations stay pure metadata, no
27-
// plugin code required. Zero-arg = each contributes only its provider
28-
// factory (an unused factory costs nothing at runtime). Remove any you
29-
// don't want; brand connectors (Slack, …) are installed separately.
30-
//
31-
// Security note (#3055): a declarative `mcp` instance with a STDIO
32-
// transport spawns a local process from metadata, so it is denied by
33-
// default — opt in per host with
34-
// `new ConnectorMcpPlugin({ declarativeStdio: ['<trusted-command>'] })`.
35-
// http transports need no opt-in.
36-
plugins: [new ConnectorRestPlugin(), new ConnectorOpenApiPlugin(), new ConnectorMcpPlugin()],
3719
});

packages/create-objectstack/src/templates/blank/package.json

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,6 @@
1212
},
1313
"dependencies": {
1414
"@objectstack/spec": "^15.0.0",
15-
"@objectstack/connector-mcp": "^15.0.0",
16-
"@objectstack/connector-openapi": "^15.0.0",
17-
"@objectstack/connector-rest": "^15.0.0",
1815
"@objectstack/runtime": "^15.0.0",
1916
"@objectstack/driver-memory": "^15.0.0",
2017
"@objectstack/plugin-hono-server": "^15.0.0"

0 commit comments

Comments
 (0)