# 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](docs/architecture.md). ## Fluxo multi-tenant 1. Criar tenant (`POST /tenants`) 2. Criar projeto para o tenant (`POST /tenants/:id/projects`) 3. Provisionar projeto no provider (`POST /projects/:id/provision`) 4. Sincronizar schema (`POST /projects/:id/schema/sync`) 5. Coletar métricas (`GET /projects/:id/metrics`) ## Como adicionar um novo provider 1. Criar pasta em `src/providers/` 2. Implementar `client`, `provisioning`, `schema`, `metrics` 3. Registrar no `provider.factory.ts` 4. Adicionar variáveis em `.env.example` e no `SecretsService` ## Como subir localmente ```bash cp .env.example .env npm install npm run dev ``` ### Docker ```bash docker compose up --build ``` ## API mínima - `POST /tenants` - `GET /tenants` - `POST /tenants/:id/projects` - `GET /tenants/:id/projects` - `POST /projects/:id/provision` - `POST /projects/:id/schema/sync` - `GET /projects/:id/metrics` - `GET /health`