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

1.4 KiB

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

  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

cp .env.example .env
npm install
npm run dev

Docker

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