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.