core/baas-control-plane/README.md
2025-12-27 13:49:00 -03:00

56 lines
1.4 KiB
Markdown

# 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/<provider>`
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`