Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 0 additions & 7 deletions .changeset/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@
"@objectstack/plugin-email",
"@objectstack/plugin-hono-server",
"@objectstack/mcp",
"@objectstack/plugin-msw",
"@objectstack/plugin-org-scoping",
"@objectstack/plugin-reports",
"@objectstack/plugin-security",
Expand All @@ -52,13 +51,7 @@
"@objectstack/connector-mcp",
"@objectstack/connector-rest",
"@objectstack/connector-slack",
"@objectstack/express",
"@objectstack/fastify",
"@objectstack/hono",
"@objectstack/nestjs",
"@objectstack/nextjs",
"@objectstack/nuxt",
"@objectstack/sveltekit",
"@objectstack/service-analytics",
"@objectstack/service-automation",
"@objectstack/service-cache",
Expand Down
23 changes: 23 additions & 0 deletions .changeset/v11-remove-unused-adapters.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
"@objectstack/client": major
"@objectstack/runtime": patch
---

Remove the unused HTTP framework adapters and the MSW plugin — the open edition ships the **Hono** adapter only.

The `express` / `fastify` / `nextjs` / `nestjs` / `nuxt` / `sveltekit` adapters and
`@objectstack/plugin-msw` had **zero internal consumers** and were not dogfooded —
pure release/maintenance surface (and an untested-integration liability). They are
removed; `@objectstack/hono` (the adapter actually used, via `@objectstack/client`)
is kept.

- Deleted packages: `@objectstack/express`, `@objectstack/fastify`,
`@objectstack/nextjs`, `@objectstack/nestjs`, `@objectstack/nuxt`,
`@objectstack/sveltekit`, `@objectstack/plugin-msw` (fixed group 73 → 66).
- `@objectstack/client`: dropped the `plugin-msw` / `msw` dev usage (MSW test removed).
- `HttpDispatcher` (the dispatch engine) is now used only by the Hono adapter +
the internal dispatcher-plugin, so its misleading `@deprecated → createDispatcherPlugin`
note (createDispatcherPlugin is a kernel plugin, not a drop-in) is corrected.

Anyone needing another framework adapter can build one on the public
`HttpDispatcher` / `createDispatcherPlugin` API or maintain it out-of-tree.
19 changes: 16 additions & 3 deletions content/docs/references/ai/solution-blueprint.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ batch-draft. This is the safety valve for low-specificity input.
## TypeScript Usage

```typescript
import { BlueprintApp, BlueprintDashboard, BlueprintField, BlueprintNavItem, BlueprintObject, BlueprintSeed, BlueprintView, SolutionBlueprint, SolutionBlueprintStrict } from '@objectstack/spec/ai';
import type { BlueprintApp, BlueprintDashboard, BlueprintField, BlueprintNavItem, BlueprintObject, BlueprintSeed, BlueprintView, SolutionBlueprint, SolutionBlueprintStrict } from '@objectstack/spec/ai';
import { BlueprintApp, BlueprintDashboard, BlueprintField, BlueprintNavItem, BlueprintObject, BlueprintSeed, BlueprintView, BlueprintWidgetCondition, SolutionBlueprint, SolutionBlueprintStrict } from '@objectstack/spec/ai';
import type { BlueprintApp, BlueprintDashboard, BlueprintField, BlueprintNavItem, BlueprintObject, BlueprintSeed, BlueprintView, BlueprintWidgetCondition, SolutionBlueprint, SolutionBlueprintStrict } from '@objectstack/spec/ai';

// Validate data
const result = BlueprintApp.parse(data);
Expand Down Expand Up @@ -78,7 +78,7 @@ const result = BlueprintApp.parse(data);
| :--- | :--- | :--- | :--- |
| **name** | `string` | ✅ | Field machine name (snake_case) |
| **label** | `string` | optional | Human-readable field label |
| **type** | `Enum<'text' \| 'textarea' \| 'email' \| 'url' \| 'phone' \| 'password' \| 'secret' \| 'markdown' \| 'html' \| 'richtext' \| 'number' \| 'currency' \| 'percent' \| 'date' \| 'datetime' \| 'time' \| 'boolean' \| 'toggle' \| 'select' \| 'multiselect' \| 'radio' \| 'checkboxes' \| 'lookup' \| 'master_detail' \| 'tree' \| 'image' \| 'file' \| 'avatar' \| 'video' \| 'audio' \| 'formula' \| 'summary' \| 'autonumber' \| 'composite' \| 'repeater' \| 'record' \| 'location' \| 'address' \| 'code' \| 'json' \| 'color' \| 'rating' \| 'slider' \| 'signature' \| 'qrcode' \| 'progress' \| 'tags' \| 'vector'>` | ✅ | Field data type |
| **type** | `Enum<'text' \| 'textarea' \| 'email' \| 'url' \| 'phone' \| 'password' \| 'secret' \| 'markdown' \| 'html' \| 'richtext' \| 'number' \| 'currency' \| 'percent' \| 'date' \| 'datetime' \| 'time' \| 'boolean' \| 'toggle' \| 'select' \| 'multiselect' \| 'radio' \| 'checkboxes' \| 'lookup' \| 'master_detail' \| 'tree' \| 'user' \| 'image' \| 'file' \| 'avatar' \| 'video' \| 'audio' \| 'formula' \| 'summary' \| 'autonumber' \| 'composite' \| 'repeater' \| 'record' \| 'location' \| 'address' \| 'code' \| 'json' \| 'color' \| 'rating' \| 'slider' \| 'signature' \| 'qrcode' \| 'progress' \| 'tags' \| 'vector'>` | ✅ | Field data type |
| **required** | `boolean` | optional | Whether the field is required |
| **reference** | `string` | optional | Target object name for lookup / master_detail relationship fields |
| **options** | `Object[]` | optional | Choices for select / multiselect / radio fields |
Expand Down Expand Up @@ -140,6 +140,19 @@ const result = BlueprintApp.parse(data);
| **groupBy** | `string` | optional | REQUIRED for kanban views: the select/status field whose options become the board columns (e.g. "stage", "status"). Without it a kanban renders as a plain list. |


---

## BlueprintWidgetCondition

### Properties

| Property | Type | Required | Description |
| :--- | :--- | :--- | :--- |
| **field** | `string` | ✅ | Field on the widget object to filter by (e.g. "stock_quantity", "status") |
| **op** | `Enum<'lt' \| 'lte' \| 'gt' \| 'gte' \| 'eq' \| 'ne'>` | ✅ | Comparison operator |
| **value** | `number \| string \| boolean` | ✅ | Comparison value (e.g. 10, "open") |


---

## SolutionBlueprint
Expand Down
1 change: 1 addition & 0 deletions content/docs/references/api/auth-endpoints.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ const result = AuthEndpoint.parse(data);
| **passkeys** | `boolean` | ✅ | Passkey/WebAuthn support enabled |
| **magicLink** | `boolean` | ✅ | Magic link login enabled |
| **organization** | `boolean` | ✅ | Multi-tenant organization support enabled |
| **ssoEnforced** | `boolean` | optional | SSO-only login enforced: the UI hides the local password form + self-registration (a break-glass "use a password" link remains) |


---
Expand Down
2 changes: 1 addition & 1 deletion content/docs/references/automation/execution.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ const result = Checkpoint.parse(data);
| Property | Type | Required | Description |
| :--- | :--- | :--- | :--- |
| **nodeId** | `string` | ✅ | Node ID that was executed |
| **nodeType** | `string` | ✅ | Node action type (e.g., "decision", "http_request") |
| **nodeType** | `string` | ✅ | Node action type (e.g., "decision", "http") |
| **nodeLabel** | `string` | optional | Human-readable node label |
| **status** | `Enum<'success' \| 'failure' \| 'skipped'>` | ✅ | Step execution result |
| **startedAt** | `string` | ✅ | When the step started |
Expand Down
1 change: 0 additions & 1 deletion content/docs/references/automation/flow.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,6 @@ const result = FlowNode.parse(data);
* `delete_record`
* `get_record`
* `http`
* `http_request`
* `notify`
* `script`
* `screen`
Expand Down
15 changes: 13 additions & 2 deletions content/docs/references/data/object.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ API Operations Enum
## TypeScript Usage

```typescript
import { ApiMethod, Index, ObjectCapabilities, ObjectExternalBinding, ObjectOwnershipEnum, PartitioningConfig, SoftDeleteConfig, TenancyConfig, VersioningConfig } from '@objectstack/spec/data';
import type { ApiMethod, Index, ObjectCapabilities, ObjectExternalBinding, ObjectOwnershipEnum, PartitioningConfig, SoftDeleteConfig, TenancyConfig, VersioningConfig } from '@objectstack/spec/data';
import { ApiMethod, Index, ObjectAccessConfig, ObjectCapabilities, ObjectExternalBinding, ObjectOwnershipEnum, PartitioningConfig, SoftDeleteConfig, TenancyConfig, VersioningConfig } from '@objectstack/spec/data';
import type { ApiMethod, Index, ObjectAccessConfig, ObjectCapabilities, ObjectExternalBinding, ObjectOwnershipEnum, PartitioningConfig, SoftDeleteConfig, TenancyConfig, VersioningConfig } from '@objectstack/spec/data';

// Validate data
const result = ApiMethod.parse(data);
Expand Down Expand Up @@ -58,6 +58,17 @@ const result = ApiMethod.parse(data);
| **partial** | `string` | optional | Partial index condition (SQL WHERE clause for conditional indexes) |


---

## ObjectAccessConfig

### Properties

| Property | Type | Required | Description |
| :--- | :--- | :--- | :--- |
| **default** | `Enum<'public' \| 'private'>` | ✅ | Default exposure posture: public (covered by wildcard grants) | private (needs explicit grant; exempt from wildcard RLS). |


---

## ObjectCapabilities
Expand Down
1 change: 0 additions & 1 deletion content/docs/references/security/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ This section contains all protocol schemas for the security layer of ObjectStack

<Cards>
<Card href="/docs/references/security/permission" title="Permission" description="Source: packages/spec/src/security/permission.zod.ts" />
<Card href="/docs/references/security/policy" title="Policy" description="Source: packages/spec/src/security/policy.zod.ts" />
<Card href="/docs/references/security/rls" title="Rls" description="Source: packages/spec/src/security/rls.zod.ts" />
<Card href="/docs/references/security/sharing" title="Sharing" description="Source: packages/spec/src/security/sharing.zod.ts" />
<Card href="/docs/references/security/territory" title="Territory" description="Source: packages/spec/src/security/territory.zod.ts" />
Expand Down
1 change: 0 additions & 1 deletion content/docs/references/security/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
"title": "Security Protocol",
"pages": [
"permission",
"policy",
"rls",
"sharing",
"territory"
Expand Down
98 changes: 0 additions & 98 deletions content/docs/references/security/policy.mdx

This file was deleted.

5 changes: 3 additions & 2 deletions content/docs/references/studio/flow-builder.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ within ObjectStack Studio. Covers:

- **Canvas Node**: Position, size, and rendering hints for each node on canvas

- **Canvas Edge**: Visual properties for sequence flows (normal, default, fault)
- **Canvas Edge**: Visual properties for sequence flows (normal, default, fault, back-edge)

- **Flow Builder Config**: Canvas settings, palette, minimap, and toolbar

Expand Down Expand Up @@ -101,7 +101,7 @@ Canvas layout and visual data for a flow edge
| Property | Type | Required | Description |
| :--- | :--- | :--- | :--- |
| **edgeId** | `string` | ✅ | Corresponding FlowEdge.id |
| **style** | `Enum<'solid' \| 'dashed' \| 'dotted' \| 'bold'>` | ✅ | Line style |
| **style** | `Enum<'solid' \| 'dashed' \| 'dotted' \| 'bold' \| 'back'>` | ✅ | Line style |
| **color** | `string` | ✅ | Edge line color |
| **labelPosition** | `number` | ✅ | Position of the condition label along the edge |
| **waypoints** | `Object[]` | optional | Manual waypoints for edge routing |
Expand All @@ -120,6 +120,7 @@ Edge line style
* `dashed`
* `dotted`
* `bold`
* `back`


---
Expand Down
1 change: 0 additions & 1 deletion content/docs/references/studio/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,5 @@ This section contains all protocol schemas for the studio layer of ObjectStack.
<Cards>
<Card href="/docs/references/studio/flow-builder" title="Flow Builder" description="Source: packages/spec/src/studio/flow-builder.zod.ts" />
<Card href="/docs/references/studio/object-designer" title="Object Designer" description="Source: packages/spec/src/studio/object-designer.zod.ts" />
<Card href="/docs/references/studio/page-builder" title="Page Builder" description="Source: packages/spec/src/studio/page-builder.zod.ts" />
<Card href="/docs/references/studio/plugin" title="Plugin" description="Source: packages/spec/src/studio/plugin.zod.ts" />
</Cards>
1 change: 0 additions & 1 deletion content/docs/references/studio/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
"action",
"flow-builder",
"object-designer",
"page-builder",
"plugin"
]
}
Loading