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
{{ message }}
Repository navigation
Commit e97885b
Browse filesBrowse the repository at this point in the historyBrowse files
A declarative provider:'mcp' stdio transport spawns a local child process from metadata (a runtime Studio publish reaches materialization), so it is now denied by default; hosts opt in via new ConnectorMcpPlugin({ declarativeStdio: ['cmd'] }) (allowlist) or true. Violations are plain configuration faults (fatal at boot, skipped on reload), never upstream-unavailable. http transports and hand-wired connectors are unaffected. Precondition for default-preset adoption (#3056).
newConnectorMcpPlugin({ declarativeStdio: true }) // full trust
182
+
```
183
+
184
+
A policy violation is a **configuration fault** — plain throw (fatal at boot,
185
+
skipped on reload), never `CONNECTOR_UPSTREAM_UNAVAILABLE`: a security
186
+
rejection must not be retried into existence. `http` transports are unaffected
187
+
(same trust class as the `http` node), and so are **hand-wired** connectors
188
+
(plugin instance options / `createMcpConnector`) — their command lives in host
189
+
code, a different trust anchor than metadata. The allowlist is deliberately
190
+
honest about being a *coarse* boundary (allowlisting `npx` ≈ allowing any
191
+
package it can run); sandboxed execution remains the enterprise tier
192
+
(ADR-0024 §4). This gate is the precondition for shipping `connector-mcp` in
193
+
any default preset (#3056).
194
+
170
195
### Deliberate scope boundaries
171
196
172
197
-**`providerConfig.spec` (openapi)** accepts an inline document, an http(s) URL, **or a package-relative file path** (#3016 follow-up). The connector still owns no filesystem access: the automation service injects a `loadPackageFile` capability into `ConnectorProviderContext` that resolves the ref against the declaring stack/package root (`packageRoot`, CLI default: the `objectstack.config.ts` directory) and **confines reads to that root** — absolute and `..`-escaping paths are rejected. Read/parse failures follow the reconcile policy above: fatal at boot, skipped on reload.
0 commit comments