v0.13.10
Security
Breaking Change
v0.13.10 - OAuth scopes enforced and atomic blueprint writes
OAuth tokens now only see and call the MCP tools their scopes allow, and blueprint field writes are validated in full before anything is changed.
Breaking Changes
This release contains breaking changes. Please review the migration guide below before upgrading.
Security
- MCP tools are filtered by the OAuth token's scopes. A token holding only
entries:readcan no longer list or callentries_delete,domains_delete,subscriptions_checkoutand so on; a tool the token may not use is absent fromtools/listand answersTool not found. Tokens with the broadmcpscope (the default) and non-OAuth API tokens are unaffected. - New optional scopes:
domains:read/write,events:read/write,contexts:read/write,subscriptions:read/write,support:read/write. Search, preview and theme tools require the scopes of what they read.
Changes
blueprints_save,globals_saveand the REST blueprint endpoints validate the entirefieldslist before writing. An unparseablefieldsvalue is an error (it previously deleted every field), an unknowntypeis an error (previously dropped silently), duplicate handles are rejected, anddry_run: truewrites nothing (it previously replaced fields, and for globals created a permanent blueprint).fields: []still means "remove all fields"; omittingfieldsleaves them alone.- REST: a blueprint update whose root fails validation no longer loses its fields; creating a collection with an inline blueprint on a taken handle no longer returns
201with no schema; a failed global create no longer leaves a stray blueprint.
Migration Guide
OAuth clients that requested granular scopes must hold the scope for every tool they call (for example domains:write for domains_save). Re-authorize with the additional scopes, or request the broad mcp scope. Clients using the default mcp scope need no change.