A comprehensive TypeScript SDK for building, managing, and executing connectors to third-party APIs. The Databite SDK provides a powerful, type-safe way to create integrations with external services, manage data synchronization, and build robust data pipelines.
The Databite SDK is built as a modular monorepo with the following packages:
databite/
βββ packages/
β βββ ai/ # AI-powered connector generator
β βββ build/ # Core SDK for building connectors
β βββ connect/ # React components for UI integration
β βββ connectors/ # Pre-built connector library
β βββ engine/ # Data synchronization and execution engine
β βββ flow/ # Flow engine for complex workflows
β βββ types/ # Shared TypeScript types
β βββ example-webapp/ # Example Next.js web application
- @databite/build - Core SDK for building connectors with fluent API
- @databite/flow - Flow engine for complex authentication and data workflows
- @databite/types - Shared TypeScript types and interfaces
- @databite/ai - AI-powered connector generator from API documentation
- @databite/connectors - Library of pre-built connectors (Slack, Trello, etc.)
- @databite/engine - Data synchronization and execution engine with scheduling
- @databite/connect - React components for UI integration
# Install core packages
npm install @databite/build @databite/flow @databite/types
# Install additional packages as needed
npm install @databite/connectors @databite/sync @databite/connect
import { createConnector, createFlow } from "@databite/build";
import { createFlow as createFlowBuilder } from "@databite/flow";
// Create a connector
const myConnector = createConnector()
.withIdentity("my-service", "My Service")
.withVersion("1.0.0")
.withAuthor("Your Name")
.withLogo("https://example.com/logo.png")
.withDescription("Connector for My Service")
.withAuthenticationFlow(
createFlowBuilder("authenticate").httpBlock("auth", {
url: "https://api.example.com/auth",
method: "POST",
body: { apiKey: "{{apiKey}}" },
})
)
.withActions({
getData: createAction({
label: "Get Data",
description: "Fetch data from the service",
inputSchema: z.object({ id: z.string() }),
outputSchema: z.object({ data: z.any() }),
handler: async (params, connection) => {
// Your implementation
return { data: { id: params.id } };
},
}),
})
.build();
- Connector - A template/blueprint that defines what properties and configurations are available
- Integration - An instance of a connector where specific values have been filled in for the properties and configs
- Connection - When someone actually uses an integration to connect to a service
- π§ Connector Builder: Fluent API for defining connectors with full TypeScript support
- β‘ Flow Engine: Execute complex authentication and data workflows with automatic type inference
- π Sync Engine: Handle recurring data synchronization with cron/interval scheduling
- π€ AI Generator: Automatically generate connectors from API documentation using AI
- π Context Manager: Manage execution contexts and state across flows
- π¨ React Components: Pre-built UI components for easy integration
- @databite/ai - AI-powered connector generator
- @databite/build - Core connector builder SDK
- @databite/flow - Flow engine for complex workflows
- @databite/types - Shared TypeScript types
- @databite/connectors - Pre-built connector library
- @databite/engine - Data synchronization and execution engine
- @databite/connect - React UI components
- Node.js >= 16.0.0
- TypeScript >= 4.5.0
- npm or yarn
# Clone the repository
git clone https://github.com/DatabiteDev/databite.git
cd databite
# Install dependencies
pnpm install
# Build all packages
pnpm run build:all
# Run tests
pnpm test
databite/
βββ packages/
β βββ ai/ # AI-powered connector generator
β β βββ src/
β β β βββ analyzer.ts # AI documentation analysis
β β β βββ crawler.ts # Web documentation crawler
β β β βββ file-generator.ts # Connector file generation
β β β βββ generator.ts # Main generation orchestrator
β β β βββ cli.ts # Command-line interface
β β βββ README.md
β βββ build/ # Core SDK
β β βββ src/
β β β βββ connector-builder/ # Builder implementation
β β βββ examples/ # Usage examples
β β βββ README.md
β βββ connect/ # React components
β β βββ src/
β β β βββ components/ # UI components
β β β βββ hooks/ # React hooks
β β βββ README.md
β βββ connectors/ # Pre-built connectors
β β βββ src/connectors/ # Connector implementations
β β βββ README.md
β βββ flow/ # Flow engine
β β βββ src/flow-builder/ # Flow builder implementation
β β βββ README.md
β βββ engine/ # Data synchronization and execution engine
β β βββ src/
β β β βββ sync-engine/ # Sync engine implementation
β β β βββ action-executer/ # Action execution logic
β β β βββ rate-limiter/ # Rate limiting functionality
β β β βββ databite-engine/ # Main engine implementation
β β βββ README.md
β βββ types/ # Shared types
β β βββ src/types/ # Type definitions
β β βββ README.md
β βββ example-webapp/ # Example Next.js application
β βββ app/ # Next.js app directory
β βββ components/ # Shared components
β βββ README.md
βββ webapp/ # Example application (legacy)
βββ app/ # Next.js app directory
βββ components/ # Shared components
βββ db/ # Database schema
To document changes for a release:
# Create a changeset describing changes
pnpm changeset
When ready to release:
# When ready to release:
pnpm release
We welcome contributions! Please see our Contributing Guide for details.
This project adheres to a Code of Conduct to ensure a welcoming and inclusive environment for all contributors and community members. We are committed to providing a harassment-free experience for everyone, regardless of background, identity, or experience level.
Please read our Code of Conduct to understand our community guidelines and expectations for participation.
This project is licensed under the MIT License - see the LICENSE file for details.
- π Documentation
- π¬ Discord Community
- π Issue Tracker
- π§ Email Support