For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt, and this page is available as Markdown at /api/index.md.

API do Gera Base

A API usa JSON e sessao por cookie HttpOnly.

URLs Base

Gerador de bancos: https://gera-base.jvbgprojects.com.br
Conversor DDL:     https://ddl.jvbgprojects.com.br
JSON Explorer:     https://json.jvbgprojects.com.br
Admin:             https://admin.jvbgprojects.com.br
Biblioteca SQL:    https://sql.jvbgprojects.com.br

Saude

GET /health
GET /ready

Autenticacao

POST /api/auth/login
Content-Type: application/json
{
  "username": "<usuario>",
  "password": "<senha>"
}

Use o cookie gera_base_session retornado no login nas chamadas seguintes.

Automacoes tambem podem usar token Bearer:

Authorization: Bearer gb_xxx

Crie tokens no painel Admin.

Sessao Atual

GET /api/auth/me

Listar Templates

GET /api/templates

Tambem disponivel em:

GET /api/v1/templates

Para incluir arquivados:

GET /api/templates?include_archived=1

Criar Banco Postgres

POST /api/databases
Content-Type: application/json

Tambem disponivel em POST /api/v1/databases.

{
  "name": "minha_empresa",
  "mode": "create",
  "template": "clientes",
  "use_all_columns": true,
  "postgres": {
    "host": "db.exemplo.com",
    "port": "5432",
    "user": "postgres",
    "password": "<senha_postgres>",
    "admin_database": "postgres",
    "sslmode": "require",
    "connect_timeout": "10"
  }
}

Adicionar Tabelas

Use o mesmo endpoint com mode igual a append.

{
  "name": "minha_empresa",
  "mode": "append",
  "template": "clientes",
  "use_all_columns": true,
  "postgres": {
    "host": "db.exemplo.com",
    "port": "5432",
    "user": "postgres",
    "password": "<senha_postgres>",
    "admin_database": "postgres",
    "sslmode": "require",
    "connect_timeout": "10"
  }
}

Para nao bloquear a chamada enquanto o Postgres executa a criacao, envie async: true:

{
  "name": "minha_empresa",
  "mode": "create",
  "template": "clientes",
  "use_all_columns": true,
  "async": true,
  "postgres": {
    "host": "db.exemplo.com",
    "port": "5432",
    "user": "postgres",
    "password": "<senha_postgres>",
    "admin_database": "postgres",
    "sslmode": "require"
  }
}

Resposta:

{
  "job_id": 42,
  "status": "running",
  "message": "Geracao iniciada em segundo plano."
}

Encaminhar Lote ao n8n

POST /api/n8n/batch
Content-Type: application/json
{
  "webhook_url": "https://automacao.jvbgprojects.com.br/webhook/gera-base-lote",
  "payload": {
    "auth": {
      "username": "n8n_api",
      "password": "<senha_api>"
    },
    "postgres": {
      "host": "db.exemplo.com",
      "user": "postgres",
      "password": "<senha_postgres>"
    },
    "csv": "name;mode;template;use_all_columns\nempresa;append;reforma_tributaria;true"
  }
}

O endpoint requer sessao autenticada e encaminha o webhook pela rede interna quando o dominio corresponde ao n8n de producao.

Para automacoes novas, prefira token Bearer e /api/v1/n8n/batch.

Exportar Templates

GET /api/v1/export/templates
GET /api/v1/export/platform

Rotas administrativas para backup/transferencia. export/platform inclui templates e Biblioteca SQL em um unico pacote.

Validar, Simular e Historico de Templates

POST /api/v1/templates
POST /api/v1/templates/archive
POST /api/v1/templates/restore
POST /api/v1/templates/delete
POST /api/v1/templates/validate
POST /api/v1/templates/simulate
GET /api/v1/templates/history?key=clientes&limit=20
GET /api/v1/templates/diff?key=clientes
POST /api/v1/templates/restore-version

O CRUD de templates exige token Bearer de perfil admin. validate retorna problemas e avisos. simulate retorna o SQL final sem executar no Postgres. O historico permite restaurar versoes anteriores por history_id, e diff compara a versao mais recente com a anterior.

Saude e Backups

GET /api/v1/admin/system
GET /api/v1/admin/summary
GET /api/v1/admin/backups
POST /api/v1/admin/backups
POST /api/v1/admin/mariadb-backups
GET /api/v1/admin/backup-config
POST /api/v1/admin/backup-config
GET /api/v1/admin/jobs
GET /api/v1/admin/metrics

Rotas restritas a administradores para acompanhar dependencias, criar backups locais de templates, gerar backup logico MariaDB, acompanhar jobs e configurar backup automatico.

Importar Templates

POST /api/v1/import/templates
POST /api/v1/admin/import-preview
Content-Type: application/json

/api/v1/import/templates aceita o JSON retornado por /api/v1/export/templates. /api/v1/admin/import-preview mostra o impacto antes de importar.

{
  "kind": "gera_base_templates_export",
  "overwrite": true,
  "templates": {
    "clientes": {
      "label": "Clientes",
      "description": "Cadastro",
      "tables": {
        "{{nome}}_clientes": [["id", "BIGSERIAL PRIMARY KEY"]]
      }
    }
  }
}

Logs Administrativos

GET /api/v1/admin/logs?limit=120&outcome=failure&service=gerador&search=clientes

Filtros opcionais:

  • limit: 1 a 500.
  • outcome: success ou failure.
  • service: auth, gerador, admin, ddl ou query-library.
  • search: busca em resumo, rota, acao e usuario.

Tokens de API

GET /api/v1/admin/tokens
POST /api/v1/admin/tokens
POST /api/v1/admin/tokens/update
POST /api/v1/admin/tokens/delete

Use update para desativar tokens sem apagar historico. Use delete apenas quando a integracao nao utilizar mais o token.

Usuarios Administrativos

GET /api/v1/admin/users
POST /api/v1/admin/users
POST /api/v1/admin/users/update

Use essas rotas apenas com token Bearer de perfil admin.

Biblioteca SQL

GET /api/queries
GET /api/v1/queries?user_id=1
POST /api/queries
POST /api/v1/queries
Content-Type: application/json
{
  "title": "Clientes ativos",
  "description": "Consulta usada em auditorias.",
  "sql": "SELECT * FROM clientes WHERE ativo = true;",
  "dialect": "postgres",
  "category": "Clientes",
  "tags": ["auditoria"],
  "favorite": true
}
POST /api/queries/delete
POST /api/v1/queries/delete
POST /api/v1/queries/convert
Content-Type: application/json
{
  "id": 12
}

Nas rotas versionadas da Biblioteca SQL, informe user_id, owner_user_id ou actor_user_id no corpo quando a operacao pertencer a um usuario.

DDL e JSON Viewer Versionados

POST /api/v1/ddl/convert
POST /api/v1/ddl/templates
POST /api/v1/ddl/templates/json
GET /api/v1/ddl/history?user_id=1&limit=20
POST /api/v1/ddl/history
GET /api/v1/json/views?user_id=1&limit=50
POST /api/v1/json/views
POST /api/v1/json/views/delete

Use /api/v1/ddl/convert para converter DDL sem salvar. Use /api/v1/ddl/templates e /api/v1/ddl/templates/json com token admin para salvar templates no MariaDB.

Padroes

O campo name e normalizado e recebe _db no final quando necessario.

empresa    -> empresa_db
empresa_db -> empresa_db

O placeholder {{nome}} pode aparecer em qualquer posicao em nomes de tabelas, colunas ou definicoes do template.