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
62 changes: 62 additions & 0 deletions .changeset/connector-template-cluster-removed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---
'@objectstack/spec': major
---

The per-provider connector "template" cluster is removed (#4480, ADR-0049)

`@objectstack/spec/integration` no longer exports the six per-provider
connector schemas and their sub-schema/type/example clusters (~110 exports,
2,672 lines):

- `DatabaseConnectorSchema` (+ `DatabaseProviderSchema`, `DatabasePoolConfigSchema`,
`SslConfigSchema`, `CdcConfigSchema`, `DatabaseTableSchema`, the three
`*ConnectorExample` constants)
- `FileStorageConnectorSchema` (+ bucket/versioning/multipart/filter configs, examples)
- `GitHubConnectorSchema` (+ repository/commit/PR/actions/release/issue configs, examples)
- `MessageQueueConnectorSchema` (+ its queue/topic/consumer configs, examples)
- `SaasConnectorSchema` (+ examples)
- `VercelConnectorSchema` (+ its deployment/domain/env configs, examples)

The six generated reference pages under `docs/references/integration/` go with
them.

**Why removal, not completion.** These files were the losing side of an
architecture decision the same module's live half already records. ADR-0023
rejected hand-modelling each external system's shape inside the spec —
"re-inventing OpenAPI inside this schema" — and ADR-0097's connector protocol
does the opposite: one `ConnectorSchema`, with provider shapes coming from the
provider itself (`connector-openapi` materializes instances from an OpenAPI
document, `connector-mcp` from an MCP server). The templates hardcoded
Postgres/S3/GitHub/RabbitMQ/Vercel shapes into spec files nothing ever read:

- `engine.registerConnector()` validates against `ConnectorSchema` from
`connector.zod.ts` — never the templates
- the `connectors:` stack collection parses `DeclarativeConnectorEntrySchema` —
never the templates
- nothing else in the monorepo, objectui included, imported any of the six

They were also semantically wrong where they overlapped the live platform:
`DatabaseConnectorSchema` modelled "tables to sync", CDC, and `readReplicaConfig`
— a second, independent declaration of read-replica routing (the first,
`datasource.readReplicas`, was removed in #4468), complete with a `weight`
field for a load balancer that does not exist. External-database access is
datasource federation (ADR-0015), which is live and is not a connector.

**Migration.** There is nothing to migrate: these schemas validated no stored
metadata (the `connectors:` collection never used them) and no runtime read
their output. If you imported one as a TypeScript type for your own code,
model your provider config yourself, or — the supported path — declare a
provider-bound connector instance and let connector-openapi / connector-mcp
derive the shape:

```ts
// before (typed against a dead spec export)
import { DatabaseConnector } from '@objectstack/spec/integration';

// after (the live protocol)
import { Connector, DeclarativeConnectorEntry } from '@objectstack/spec/integration';
```

The base protocol — `ConnectorSchema`, `DeclarativeConnectorEntrySchema`, the
ADR-0097 provider contract, connector-descriptor, connector auth — is
unchanged.
17 changes: 8 additions & 9 deletions content/docs/getting-started/quick-reference.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -193,19 +193,18 @@ Environments, marketplace, licensing, and multi-tenancy.
| **[Plugin Security](/docs/references/cloud/plugin-security)** | `plugin-security.zod.ts` | PluginSecurityProtocol, SBOM | Plugin security policies |
| **[Tenant](/docs/references/cloud/tenant)** | `tenant.zod.ts` | Tenant | Multi-tenancy isolation |

## Integration Protocol (7 schemas)
## Integration Protocol (1 schema)

External system connectors and adapters.
External system connectors — one protocol (ADR-0097): a connector entry is
either a catalog descriptor or a provider-bound instance that a generic
executor (connector-openapi / connector-mcp) materializes at boot. The
per-provider schema "templates" (SaaS / database / file-storage /
message-queue / GitHub / Vercel) were removed in #4480: provider shapes come
from the provider itself, not from hand-written spec files.

| Protocol | Source File | Key Schemas | Purpose |
|:---------|:-----------|:------------|:--------|
| **[Connector](/docs/references/integration/connector)** | `connector.zod.ts` | Connector | Generic connector interface |
| **[SaaS Connector](/docs/references/integration/connector)** | `connector/saas.zod.ts` | SaaSConnector | SaaS integrations |
| **[Database Connector](/docs/references/integration/connector)** | `connector/database.zod.ts` | DatabaseConnector | Database adapters |
| **[File Storage](/docs/references/integration/connector)** | `connector/file-storage.zod.ts` | FileStorageConnector | Cloud storage |
| **[Message Queue](/docs/references/integration/message-queue)** | `connector/message-queue.zod.ts` | MessageQueueConnector | Queue integrations |
| **[GitHub](/docs/references/integration/connector)** | `connector/github.zod.ts` | GitHubConnector | GitHub API integration |
| **[Vercel](/docs/references/integration/connector)** | `connector/vercel.zod.ts` | VercelConnector | Vercel deployment |
| **[Connector](/docs/references/integration/connector)** | `connector.zod.ts` | Connector | The connector protocol — auth, sync, webhooks, rate limiting |

## Shared Protocol (5 schemas)

Expand Down
21 changes: 10 additions & 11 deletions content/docs/references/index.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Protocol Reference
description: Complete reference of all 139 ObjectStack protocol specifications
description: Complete reference of all 133 ObjectStack protocol specifications
---

# Protocol Reference
Expand Down Expand Up @@ -30,7 +30,7 @@ These reference pages are **auto-generated** from the Zod source files in `packa
| [QA Protocol](#qa-protocol) | 1 | Test Suites and BDD Scenarios |
| [Studio Protocol](#studio-protocol) | 1 | Studio plugin development |

**Total: 175 Zod schemas** (across 14 protocol modules + 1 root stack schema)
**Total: 169 Zod schemas** (across 14 protocol modules + 1 root stack schema)

---

Expand Down Expand Up @@ -313,19 +313,18 @@ Defines marketplace and multi-tenancy capabilities.
## Integration Protocol

**Location:** `packages/spec/src/integration/`
**Count:** 7 schemas
**Count:** 1 schema

Defines external system connectors and adapters.
Defines external system connectors — one protocol (ADR-0097). A connector
entry is either a catalog descriptor or a provider-bound instance that a
generic executor (connector-openapi / connector-mcp) materializes at boot.
The per-provider "templates" (`connector/saas.zod.ts` and five siblings) were
removed in #4480: they hand-modelled each external system's shape inside the
spec, which ADR-0023 rejected, and nothing ever consumed them.

| File | Schema | Purpose |
| :--- | :--- | :--- |
| `connector.zod.ts` | `ConnectorSchema` | Generic connector interface |
| `connector/saas.zod.ts` | `SaaSConnectorSchema` | SaaS platform connectors (Salesforce, HubSpot, etc.) |
| `connector/database.zod.ts` | `DatabaseConnectorSchema` | Database connection adapters |
| `connector/file-storage.zod.ts` | `FileStorageConnectorSchema` | Cloud storage connectors (S3, Azure Blob, etc.) |
| `connector/message-queue.zod.ts` | `MessageQueueConnectorSchema` | Message queue integrations (RabbitMQ, Kafka, etc.) |
| `connector/github.zod.ts` | `GitHubConnectorSchema` | GitHub API integration |
| `connector/vercel.zod.ts` | `VercelConnectorSchema` | Vercel deployment integration |
| `connector.zod.ts` | `ConnectorSchema` | The connector protocol — auth, sync, webhooks, rate limiting |

**Learn more:** [Integration Protocol Reference](/docs/references/integration)

Expand Down
139 changes: 0 additions & 139 deletions content/docs/references/integration/connector-database.mdx

This file was deleted.

Loading
Loading