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
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
Listar Templates
Tambem disponivel em:
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
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.