| .. | ||
| data | ||
| docs | ||
| src | ||
| .env.example | ||
| docker-compose.yml | ||
| Dockerfile | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
baas-control-plane
Control plane multi-tenant para orquestrar provedores BaaS (Appwrite, Supabase) com foco em provisioning, schema, secrets, métricas e auditoria.
Visão geral
- Backend Node.js + TypeScript com Fastify
- Multi-tenant com isolamento lógico por tenant
- Providers plugáveis sem lógica de negócio
- Serviços centrais para provisioning, schema, secrets, finops e audit
Arquitetura
/src
/core
/providers
/modules
/lib
main.ts
Detalhes adicionais em docs/architecture.md.
Fluxo multi-tenant
- Criar tenant (
POST /tenants) - Criar projeto para o tenant (
POST /tenants/:id/projects) - Provisionar projeto no provider (
POST /projects/:id/provision) - Sincronizar schema (
POST /projects/:id/schema/sync) - Coletar métricas (
GET /projects/:id/metrics)
Como adicionar um novo provider
- Criar pasta em
src/providers/<provider> - Implementar
client,provisioning,schema,metrics - Registrar no
provider.factory.ts - Adicionar variáveis em
.env.examplee noSecretsService
Como subir localmente
cp .env.example .env
npm install
npm run dev
Docker
docker compose up --build
API mínima
POST /tenantsGET /tenantsPOST /tenants/:id/projectsGET /tenants/:id/projectsPOST /projects/:id/provisionPOST /projects/:id/schema/syncGET /projects/:id/metricsGET /health