Databite: A set of open-source integration libraries

2 hours ago 1

Databite SDK Hero

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
# 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();
  1. Connector - A template/blueprint that defines what properties and configurations are available
  2. Integration - An instance of a connector where specific values have been filled in for the properties and configs
  3. 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
  • 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.

Read Entire Article