Skip to main content

Integration SDK Reference

API reference for @radarboard/integration-sdk — descriptors, auth, data sources, and testing utilities.

./types

TimeRange

Time range for dashboard queries. Duplicated to avoid circular dep on

IntegrationCategory

Integration category for grouping in the settings UI.

IntegrationOAuthConfig

OAuth-specific config for providers that need the redirect flow.

IntegrationAuthField

A single credential input field in the integration’s Connection section.

IntegrationAuth

How an integration authenticates with its external API.

IntegrationMcpCredentialBinding

Maps a saved integration credential field to an MCP server auth mechanism.

IntegrationMcpTransportPresetBase

Base type for MCP transport presets.

IntegrationMcpHttpTransportPreset

MCP transport preset for Streamable HTTP servers. Extends: IntegrationMcpTransportPresetBase

IntegrationMcpStdioTransportPreset

MCP transport preset for stdio-based servers (local process). Extends: IntegrationMcpTransportPresetBase

IntegrationMcpTransportPreset

Union of supported MCP transport presets.

IntegrationMcpConnectionConfig

Configuration for connecting an integration to an MCP server.

IntegrationMcpTool

MCP tool definition for an integration.

IntegrationEvent

A notification event produced by a webhook or delta detector. Matches EmitNotificationInput from

WebhookHandler

Inbound webhook handler — lives in each integration’s webhook.ts. The web app’s generic /api/webhooks/[integration] route delegates to this.

DeltaDetector

Delta detector — lives in each integration’s delta.ts. Called from API route handlers after fresh data is fetched. Returns events for items that are new or changed since last call.

CommonRouteParams

Standard query params every integration data route receives. Example:

DataSourceContext

App-level services injected into data-source fetch functions. Avoids circular deps between packages/integrations and apps/app.

DataSourceDescriptor

Declares a fetchable endpoint for an integration.

IntegrationDescriptor

Describes an integration in the registry. Extends: ExtensionMeta Example:

Capability Governance

Radarboard now uses descriptor-level capabilities to map integrations into canonical widgets.
  • capabilities declares which shared product surface the integration can satisfy.
  • action must match a real DataSourceDescriptor.action.
  • requiredIntegrations on widgets remains an availability filter; capability ownership lives in integration and widget descriptors.
  • pnpm check:extensions warns when an integration declares a capability with no canonical widget owner, and when the canonical widget does not list the integration as a provider.

./registry

registerIntegration()

Register an integration descriptor. Call once per integration at app startup. Validates uniqueness, description length, and auto-populates the data source registry.

registerDataSources()

Register data sources for virtual integrations that don’t have a full IntegrationDescriptor (e.g. “shipping” aggregates Linear + GitHub + Vercel).

findDataSource()

Look up a data source by integration ID and action slug.

getIntegration()

Get a registered integration by ID, or undefined if not found.

getAllIntegrations()

Get all registered integration descriptors.

./routes

integrationRoute()

Build an integration data route path. All integration data is served via the unified route handler at /api/integrations/[integration]/[action]. This helper builds the URL so widgets and hooks don’t need to hardcode paths.
Example: integrationRoute(“revenuecat”, “data”) // → “/api/integrations/revenuecat/data”

pluginRoute()

Build a plugin API route path.
Example: pluginRoute(“changelog”, “state”) // → “/api/plugins/changelog/state”

./testing

createMockDataSourceContext()

Create a mock DataSourceContext backed by an in-memory credential Map. Useful for testing integration data-source fetch functions.

TrackedDataSourceContext

Extended DataSourceContext that records calls for test assertions. Extends: DataSourceContext