Skip to content

Latest commit

 

History

History
104 lines (77 loc) · 2.64 KB

File metadata and controls

104 lines (77 loc) · 2.64 KB

@databite/server

Express server with RESTful API endpoints for managing connectors, integrations, connections, flows, and sync operations. Built with comprehensive security features for self-hosted deployments.

📦 Project Structure

server/
├── src/
│   ├── server.ts         # Main DatabiteServer class
│   ├── security.ts       # Security middleware and configuration
│   ├── utils.ts          # Utility functions
│   └── index.ts          # Public API exports
├── dist/                 # Compiled JavaScript output
├── package.json
└── README.md

🚀 Installation

npm install @databite/server @databite/engine @databite/types

🎯 Overview

The @databite/server package provides a ready-to-use Express server with RESTful API endpoints for connectors, integrations, connections, flows, sync operations, and actions. Includes built-in security features like rate limiting, CORS protection, security headers, IP filtering, input sanitization, request validation, and request size limits.

📚 API Reference

Core Classes

DatabiteServer

The main server class that sets up Express with all the necessary endpoints and security middleware.

class DatabiteServer {
  constructor(config: ServerConfig)
  addIntegration(integration: Integration<any>): Promise<void>
}

Configuration

ServerConfig

Configuration options for the Databite server.

interface ServerConfig {
  port: number;
  engineConfig: EngineConfig;
  security?: SecurityConfig;
}

SecurityConfig

Optional security configuration for protecting your server.

interface SecurityConfig {
  rateLimit?: {
    windowMs?: number;
    max?: number;
    message?: string;
  };
  allowedOrigins?: string[];
  requestSizeLimit?: string;
  enableHelmet?: boolean;
  enableRateLimit?: boolean;
  ipWhitelist?: string[];
  ipBlacklist?: string[];
  requestValidator?: (req: Request) => boolean | Promise<boolean>;
}

💡 Usage Example

import { DatabiteServer } from "@databite/server";

const server = new DatabiteServer({
  port: 3001,
  engineConfig: {
    connectors: [],
  },
});

// Add an integration
await server.addIntegration(integration);

🔗 Related Packages

📄 License

MIT License - see LICENSE for details.