{"_id":"@databite/server","_rev":"6-875bdcd197f469d2a6af717a783ed51e","name":"@databite/server","dist-tags":{"latest":"4.0.1"},"versions":{"1.0.0":{"name":"@databite/server","version":"1.0.0","keywords":["connector","sdk","integration","api","server","typescript"],"author":{"name":"Databite"},"license":"MIT","_id":"@databite/server@1.0.0","maintainers":[{"name":"david-mungai","email":"david.kinuthia.mungai@gmail.com"}],"homepage":"https://github.com/DatabiteDev/databite#readme","bugs":{"url":"https://github.com/DatabiteDev/databite/issues"},"dist":{"shasum":"3388633029b03ae87698213ed82ccbf75585f27e","tarball":"https://registry.npmjs.org/@databite/server/-/server-1.0.0.tgz","fileCount":9,"integrity":"sha512-JPIW3y/OEde6yGOSRo00mpYQaWpqLt9HFI5CTst+MDYG+XjKYbvkqugBudMlPWIgwX0eAsL4WFPonMr67bJrIA==","signatures":[{"sig":"MEUCIDKH5y29Tx87rpqGKYgoNUgTQrnydhOpRmg8CfWJWo/7AiEAkBGSimMk/wFbqQm7qJEv7M75trjvWF2eAt5r0U4XHjk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":93326},"main":"dist/index.js","_from":"file:databite-server-1.0.0.tgz","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsup","clean":"rimraf dist","type-check":"tsc --noEmit","build:watch":"tsup --watch"},"_npmUser":{"name":"david-mungai","email":"david.kinuthia.mungai@gmail.com"},"_resolved":"C:\\Users\\david\\AppData\\Local\\Temp\\93c8acaf4a84dfb943df1ddf07b71c7e\\databite-server-1.0.0.tgz","_integrity":"sha512-JPIW3y/OEde6yGOSRo00mpYQaWpqLt9HFI5CTst+MDYG+XjKYbvkqugBudMlPWIgwX0eAsL4WFPonMr67bJrIA==","repository":{"url":"git+https://github.com/DatabiteDev/databite.git","type":"git"},"_npmVersion":"11.5.2","description":"Server components for the Databite SDK","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.1.11","express":"^5.1.0","@databite/types":"3.0.0","@databite/engine":"2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.2","eslint":"^8.54.0","rimraf":"^5.0.5","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.8","@types/node":"^20.9.0","@types/express":"^5.0.4","@typescript-eslint/parser":"^6.12.0","@typescript-eslint/eslint-plugin":"^6.12.0"},"peerDependencies":{"typescript":">=4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.0.0_1761571461585_0.5132072413756437","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@databite/server","version":"2.0.0","keywords":["connector","sdk","integration","api","server","typescript"],"author":{"name":"Databite"},"license":"MIT","_id":"@databite/server@2.0.0","maintainers":[{"name":"david-mungai","email":"david.kinuthia.mungai@gmail.com"}],"homepage":"https://github.com/DatabiteDev/databite#readme","bugs":{"url":"https://github.com/DatabiteDev/databite/issues"},"dist":{"shasum":"93bc711f7b3beab1382e0093d3dd840ab25a82f1","tarball":"https://registry.npmjs.org/@databite/server/-/server-2.0.0.tgz","fileCount":9,"integrity":"sha512-1nIo7ZBDGuvur0zHF0emYs362pkMjM1KTRQJcjZjcpwyUxAoTtymIRQw8oLJ8SfLp44ZLW4fpOq4JHnxxQ7Vdw==","signatures":[{"sig":"MEUCIF0Akj/lN/hxMzI8U99hM1K7z9YLs9te+ZRwXDCgcTKJAiEAu/Grb1vFK391766MWVOxxoohZY9yLdTfbCn+CXkhxzo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":153885},"main":"dist/index.js","_from":"file:databite-server-2.0.0.tgz","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsup","clean":"rimraf dist","type-check":"tsc --noEmit","build:watch":"tsup --watch"},"_npmUser":{"name":"david-mungai","email":"david.kinuthia.mungai@gmail.com"},"_resolved":"C:\\Users\\david\\AppData\\Local\\Temp\\b80d93a929a61719044f6f4a8fcdbdc1\\databite-server-2.0.0.tgz","_integrity":"sha512-1nIo7ZBDGuvur0zHF0emYs362pkMjM1KTRQJcjZjcpwyUxAoTtymIRQw8oLJ8SfLp44ZLW4fpOq4JHnxxQ7Vdw==","repository":{"url":"git+https://github.com/DatabiteDev/databite.git","type":"git"},"_npmVersion":"11.5.2","description":"Server components for the Databite SDK","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.1.11","helmet":"^8.1.0","express":"^5.1.0","@databite/types":"4.0.0","@databite/engine":"3.0.0","express-rate-limit":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.2","eslint":"^8.54.0","rimraf":"^5.0.5","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.8","@types/node":"^20.9.0","@types/express":"^5.0.4","@typescript-eslint/parser":"^6.12.0","@typescript-eslint/eslint-plugin":"^6.12.0"},"peerDependencies":{"typescript":">=4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/server_2.0.0_1761897463693_0.3571874047182835","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@databite/server","version":"2.0.1","keywords":["connector","sdk","integration","api","server","typescript"],"author":{"name":"Databite"},"license":"MIT","_id":"@databite/server@2.0.1","maintainers":[{"name":"david-mungai","email":"david.kinuthia.mungai@gmail.com"}],"homepage":"https://github.com/DatabiteDev/databite#readme","bugs":{"url":"https://github.com/DatabiteDev/databite/issues"},"dist":{"shasum":"e7b64e5fe18a317e65427cc7fe86e357d2004982","tarball":"https://registry.npmjs.org/@databite/server/-/server-2.0.1.tgz","fileCount":9,"integrity":"sha512-Lk0s6nGkqi3AmnEgurfnIoajSKddw9m6enfZ74Gv60k1r+L7virl8AR8Cvy3wxgM8PG86cqKUo5trNx3eHQT0g==","signatures":[{"sig":"MEYCIQCa+jJHLG9hDKIkkuF2vj2QLjpSGP8wxBbK+qUk3CQ5vAIhALJ8H9Uxp4ptE2xlN2uVutQERQcxhpbg6tRNUjYZ/PfJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":153885},"main":"dist/index.js","_from":"file:databite-server-2.0.1.tgz","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsup","clean":"rimraf dist","type-check":"tsc --noEmit","build:watch":"tsup --watch"},"_npmUser":{"name":"david-mungai","email":"david.kinuthia.mungai@gmail.com"},"_resolved":"C:\\Users\\david\\AppData\\Local\\Temp\\afe4e08ff4d82f2947f23c66f1eabd95\\databite-server-2.0.1.tgz","_integrity":"sha512-Lk0s6nGkqi3AmnEgurfnIoajSKddw9m6enfZ74Gv60k1r+L7virl8AR8Cvy3wxgM8PG86cqKUo5trNx3eHQT0g==","repository":{"url":"git+https://github.com/DatabiteDev/databite.git","type":"git"},"_npmVersion":"11.5.2","description":"Server components for the Databite SDK","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.1.11","helmet":"^8.1.0","express":"^5.1.0","@databite/types":"5.0.0","@databite/engine":"3.0.1","express-rate-limit":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.2","eslint":"^8.54.0","rimraf":"^5.0.5","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.8","@types/node":"^20.9.0","@types/express":"^5.0.4","@typescript-eslint/parser":"^6.12.0","@typescript-eslint/eslint-plugin":"^6.12.0"},"peerDependencies":{"typescript":">=4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/server_2.0.1_1762150663546_0.09900421327655784","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@databite/server","version":"3.0.0","keywords":["connector","sdk","integration","api","server","typescript"],"author":{"name":"Databite"},"license":"MIT","_id":"@databite/server@3.0.0","maintainers":[{"name":"david-mungai","email":"david.kinuthia.mungai@gmail.com"}],"homepage":"https://github.com/DatabiteDev/databite#readme","bugs":{"url":"https://github.com/DatabiteDev/databite/issues"},"dist":{"shasum":"49e3219b942948d210afa06dcbbf4604bba1db6b","tarball":"https://registry.npmjs.org/@databite/server/-/server-3.0.0.tgz","fileCount":9,"integrity":"sha512-hW+H0vUvwUrYzMELh918BHqT+DFXebHWXBLT0TkcXQMY5PgnKTV53QqYArn7SaOT7u+LnotHJY3qw7gtyCPDcQ==","signatures":[{"sig":"MEYCIQCTraC9mfIZcy06QNgvr9+augkJr3lA4JAur+oFoIKDRgIhAPHsBLMRs+lRVB/UGpInU9tn5HqB8SvXUuo7g6b23V+B","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144908},"main":"dist/index.js","_from":"file:databite-server-3.0.0.tgz","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsup","clean":"rimraf dist","type-check":"tsc --noEmit","build:watch":"tsup --watch"},"_npmUser":{"name":"david-mungai","email":"david.kinuthia.mungai@gmail.com"},"_resolved":"C:\\Users\\david\\AppData\\Local\\Temp\\278aa51510ae783a2a9ebae889b95e83\\databite-server-3.0.0.tgz","_integrity":"sha512-hW+H0vUvwUrYzMELh918BHqT+DFXebHWXBLT0TkcXQMY5PgnKTV53QqYArn7SaOT7u+LnotHJY3qw7gtyCPDcQ==","repository":{"url":"git+https://github.com/DatabiteDev/databite.git","type":"git"},"_npmVersion":"11.5.2","description":"Server components for the Databite SDK","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^4.1.11","helmet":"^8.1.0","express":"^5.1.0","@databite/types":"6.0.0","@databite/engine":"4.0.0","express-rate-limit":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.2","eslint":"^8.54.0","rimraf":"^5.0.5","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.8","@types/node":"^20.9.0","@types/express":"^5.0.4","@typescript-eslint/parser":"^6.12.0","@typescript-eslint/eslint-plugin":"^6.12.0"},"peerDependencies":{"typescript":">=4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/server_3.0.0_1766061380795_0.9602270251290506","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@databite/server","version":"4.0.0","keywords":["connector","sdk","integration","api","server","typescript"],"author":{"name":"Databite"},"license":"MIT","_id":"@databite/server@4.0.0","maintainers":[{"name":"david-mungai","email":"david.kinuthia.mungai@gmail.com"}],"homepage":"https://github.com/DatabiteDev/databite#readme","bugs":{"url":"https://github.com/DatabiteDev/databite/issues"},"dist":{"shasum":"329e5209965afede1006e55d3921eab0f8de7ecf","tarball":"https://registry.npmjs.org/@databite/server/-/server-4.0.0.tgz","fileCount":9,"integrity":"sha512-+Whhv8yXE0nY/RG8zIZcHeZ8ie45RB/MpNYlK1pvmYW4ZEzYYZcdxRyGhJDWmwZ9GAcZTlWGKn6YP0VrgkWN+g==","signatures":[{"sig":"MEUCIQDRZtVMPEYdouZ1Cij3/klNJq42NPYr3X5TZnVbAv+qBAIgXvBNyxKyxMPzxOY2HqfXi9/94QPPws4M4tKKrGBSu0k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":194195},"main":"dist/index.js","_from":"file:databite-server-4.0.0.tgz","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"scripts":{"dev":"tsup --watch","lint":"eslint src/**/*.ts","test":"jest","build":"tsup","clean":"rimraf dist","type-check":"tsc --noEmit","build:watch":"tsup --watch"},"_npmUser":{"name":"david-mungai","email":"david.kinuthia.mungai@gmail.com"},"_resolved":"C:\\Users\\david\\AppData\\Local\\Temp\\4962c56a86d13dd2156b22c9aaf13f82\\databite-server-4.0.0.tgz","_integrity":"sha512-+Whhv8yXE0nY/RG8zIZcHeZ8ie45RB/MpNYlK1pvmYW4ZEzYYZcdxRyGhJDWmwZ9GAcZTlWGKn6YP0VrgkWN+g==","repository":{"url":"git+https://github.com/DatabiteDev/databite.git","type":"git"},"_npmVersion":"11.5.2","description":"Server components for the Databite SDK","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"4.1.12","helmet":"^8.1.0","express":"^5.1.0","@databite/types":"7.0.0","@databite/engine":"5.0.0","express-rate-limit":"^8.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.2","eslint":"^8.54.0","rimraf":"^5.0.5","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.8","@types/node":"^20.9.0","@types/express":"^5.0.4","@typescript-eslint/parser":"^6.12.0","@typescript-eslint/eslint-plugin":"^6.12.0"},"peerDependencies":{"typescript":">=4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/server_4.0.0_1766630830419_0.8023238138636941","host":"s3://npm-registry-packages-npm-production"}},"4.0.1":{"name":"@databite/server","version":"4.0.1","description":"Server components for the Databite SDK","main":"dist/index.js","types":"dist/index.d.ts","keywords":["connector","sdk","integration","api","server","typescript"],"author":{"name":"Databite"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/DatabiteDev/databite.git"},"bugs":{"url":"https://github.com/DatabiteDev/databite/issues"},"homepage":"https://github.com/DatabiteDev/databite#readme","engines":{"node":">=16.0.0"},"devDependencies":{"@types/express":"^5.0.4","@types/jest":"^29.5.8","@types/node":"^20.9.0","@typescript-eslint/eslint-plugin":"^6.12.0","@typescript-eslint/parser":"^6.12.0","eslint":"^8.54.0","jest":"^29.7.0","rimraf":"^5.0.5","ts-jest":"^29.1.1","tsup":"^8.0.2","typescript":"^5.2.2"},"dependencies":{"express":"^5.1.0","express-rate-limit":"^8.2.0","helmet":"^8.1.0","@databite/engine":"5.0.1","@databite/types":"8.0.0","zod":"4.1.12"},"peerDependencies":{"typescript":">=4.5.0"},"publishConfig":{"access":"public"},"scripts":{"build":"tsup","build:watch":"tsup --watch","dev":"tsup --watch","clean":"rimraf dist","test":"jest","lint":"eslint src/**/*.ts","type-check":"tsc --noEmit"},"_id":"@databite/server@4.0.1","_integrity":"sha512-QvXU+XOvg931qYn6dAfsFdhienPW5l2pepEcOeC9lnDpUe5EeGtEUYSSwsJT1vTdLDTKwGdUzJ9ln9S4VoKV3Q==","_resolved":"C:\\Users\\david\\AppData\\Local\\Temp\\85b86f49dd1f029f1c69713b64e30f80\\databite-server-4.0.1.tgz","_from":"file:databite-server-4.0.1.tgz","_nodeVersion":"22.19.0","_npmVersion":"11.5.2","dist":{"integrity":"sha512-QvXU+XOvg931qYn6dAfsFdhienPW5l2pepEcOeC9lnDpUe5EeGtEUYSSwsJT1vTdLDTKwGdUzJ9ln9S4VoKV3Q==","shasum":"cbe1e2a5f66fc15a094de52fa421b0ff9816a5dc","tarball":"https://registry.npmjs.org/@databite/server/-/server-4.0.1.tgz","fileCount":9,"unpackedSize":194195,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIB9IZ02JpY3qV/tptewYtEWQTVWbJQCG6AifRU4Ny+5uAiEA2kgAw8ToR722UrW9ijIJUlxGFi9f3/+cHYdKGDmzb9s="}]},"_npmUser":{"name":"david-mungai","email":"david.kinuthia.mungai@gmail.com"},"directories":{},"maintainers":[{"name":"david-mungai","email":"david.kinuthia.mungai@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/server_4.0.1_1766969205742_0.0047148087551212026"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-27T13:24:21.519Z","modified":"2025-12-29T00:46:46.102Z","1.0.0":"2025-10-27T13:24:21.789Z","2.0.0":"2025-10-31T07:57:43.895Z","2.0.1":"2025-11-03T06:17:43.742Z","3.0.0":"2025-12-18T12:36:20.970Z","4.0.0":"2025-12-25T02:47:10.568Z","4.0.1":"2025-12-29T00:46:45.883Z"},"bugs":{"url":"https://github.com/DatabiteDev/databite/issues"},"author":{"name":"Databite"},"license":"MIT","homepage":"https://github.com/DatabiteDev/databite#readme","keywords":["connector","sdk","integration","api","server","typescript"],"repository":{"type":"git","url":"git+https://github.com/DatabiteDev/databite.git"},"description":"Server components for the Databite SDK","maintainers":[{"name":"david-mungai","email":"david.kinuthia.mungai@gmail.com"}],"readme":"# @databite/server\r\n\r\nExpress server with RESTful API endpoints for managing connectors, integrations, connections, flows, and sync operations. Built with comprehensive security features for self-hosted deployments.\r\n\r\n## 📦 Project Structure\r\n\r\n```\r\nserver/\r\n├── src/\r\n│   ├── server.ts         # Main DatabiteServer class\r\n│   ├── security.ts       # Security middleware and configuration\r\n│   ├── utils.ts          # Utility functions\r\n│   └── index.ts          # Public API exports\r\n├── dist/                 # Compiled JavaScript output\r\n├── package.json\r\n└── README.md\r\n```\r\n\r\n## 🚀 Installation\r\n\r\n```bash\r\nnpm install @databite/server @databite/engine @databite/types\r\n```\r\n\r\n## 🎯 Overview\r\n\r\nThe `@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.\r\n\r\n## 📚 API Reference\r\n\r\n### Core Classes\r\n\r\n#### DatabiteServer\r\n\r\nThe main server class that sets up Express with all the necessary endpoints and security middleware.\r\n\r\n```typescript\r\nclass DatabiteServer {\r\n  constructor(config: ServerConfig)\r\n  addIntegration(integration: Integration<any>): Promise<void>\r\n}\r\n```\r\n\r\n### Configuration\r\n\r\n#### ServerConfig\r\n\r\nConfiguration options for the Databite server.\r\n\r\n```typescript\r\ninterface ServerConfig {\r\n  port: number;\r\n  engineConfig: EngineConfig;\r\n  security?: SecurityConfig;\r\n}\r\n```\r\n\r\n#### SecurityConfig\r\n\r\nOptional security configuration for protecting your server.\r\n\r\n```typescript\r\ninterface SecurityConfig {\r\n  rateLimit?: {\r\n    windowMs?: number;\r\n    max?: number;\r\n    message?: string;\r\n  };\r\n  allowedOrigins?: string[];\r\n  requestSizeLimit?: string;\r\n  enableHelmet?: boolean;\r\n  enableRateLimit?: boolean;\r\n  ipWhitelist?: string[];\r\n  ipBlacklist?: string[];\r\n  requestValidator?: (req: Request) => boolean | Promise<boolean>;\r\n}\r\n```\r\n\r\n## 💡 Usage Example\r\n\r\n```typescript\r\nimport { DatabiteServer } from \"@databite/server\";\r\n\r\nconst server = new DatabiteServer({\r\n  port: 3001,\r\n  engineConfig: {\r\n    connectors: [],\r\n  },\r\n});\r\n\r\n// Add an integration\r\nawait server.addIntegration(integration);\r\n```\r\n\r\n## 🔗 Related Packages\r\n\r\n- [@databite/engine](./packages/engine/) - Data synchronization and execution engine\r\n- [@databite/connectors](./packages/connectors/) - Pre-built connector library\r\n- [@databite/types](./packages/types/) - Shared TypeScript types\r\n- [@databite/build](./packages/build/) - Core connector builder SDK\r\n\r\n## 📄 License\r\n\r\nMIT License - see [LICENSE](../../LICENSE) for details.\r\n","readmeFilename":"README.md"}