Painel - Data Studio Modelagem Importacao e Pacote Base
Explicar como o novo módulo de dados do `EcommPanel` foi organizado para servir como base de banco do produto.
Leitura pensada para explicar responsabilidades, ordem de execução e trechos reais do código com foco no fluxo da implementação.
Objetivo
Explicar como o novo módulo de dados do EcommPanel foi organizado para servir como base de banco do produto.
Fluxo principal
- o usuário acessa
/ecommpanel/admin/data; - ajusta a conexão principal, engine, SSH e referências de senha;
- inspeciona a VPS quando a operação for
SSH + PostgreSQL oficial na VPS; - provisiona instalação do PostgreSQL quando necessário, banco, usuário do app e boilerplate inicial do painel;
- modela entidades e campos;
- importa registros em JSON quando precisar;
- gera o pacote base;
- usa esse pacote para implementar e popular a camada real de banco.
O que a UI opera
Conexão e bootstrap
O topo da tela agora cobre:
- perfis de conexão;
- engine e método de provisão;
- host SSH, usuário SSH e dados administrativos do banco;
- teste básico de alcance de host e porta;
- inspeção remota do ambiente;
- instalação automática do PostgreSQL quando necessário;
- criação inicial de banco e usuário do app;
- aplicação do boilerplate de autenticação do painel;
- indicação da conexão principal;
- estado detectado e também estado declarado de bootstrap.
Entidades
Cada entidade guarda:
- slug;
- nome;
- nome de tabela;
- descrição;
- status;
- lista de campos.
Campos
Cada campo guarda:
- nome técnico;
- rótulo;
- tipo;
- descrição;
- obrigatoriedade;
- unicidade;
- índice;
- visibilidade em listagem;
- valor padrão.
Imports
O painel aceita:
- importação de registros para uma entidade específica;
- importação de pacote completo com entidades e cargas.
CSV por tabela
Além das entidades modeladas, o painel agora também consegue operar diretamente a estrutura física do PostgreSQL:
- listar tabelas disponíveis na base conectada;
- ler colunas, tipos e
primary key; - exportar o conteúdo da tabela em CSV;
- importar CSV em modo
appendouupsert.
Isso atende cenários de:
- extração de dados para análise externa;
- carga manual de apoio;
- transição entre planilhas e banco;
- manutenção controlada sem depender de CLI.
O que a API faz
Rota:
/api/ecommpanel/data-studio
Operações:
GET: carrega snapshot e bundle atual;POSTcomsaveEntity: cria ou atualiza entidade;POSTcomdeleteEntity: remove entidade e imports relacionados;POSTcomsaveConnection: cria ou atualiza conexão;POSTcomdeleteConnection: remove conexão;POSTcomprobeConnection: testa alcance básico de rede;POSTcominspectProvisioning: inspeciona a VPS remota via SSH e verifica banco, usuário e boilerplate;POSTcomprovisionConnection: cria banco, usuário do app e tabelas iniciais do painel via SSH;POSTcomupdateBootstrap: atualiza o estado declarado do ambiente;POSTcomimportRows: registra carga em JSON;POSTcomimportBundle: aplica pacote completo;POSTcomgenerateBundle: regenera o material de bootstrap.POSTcomrefreshDatabaseTables: recarrega a estrutura física da base;POSTcomexportTableCsv: gera CSV de uma tabela existente;POSTcomimportTableCsv: aplica um CSV em tabela existente.
O que o bundle entrega
`schema.json`
Representa o modelo de dados operado pelo painel.
`postgres-content-bootstrap.sql`
Entrega a primeira tradução do modelo para PostgreSQL, com:
- tabelas;
- tipos básicos;
- índices;
- unicidade.
`postgres-panel-bootstrap.sql`
Representa o boilerplate oficial do painel em PostgreSQL para:
- usuários;
- sessões;
- reset de senha;
- auditoria.
`mysql-content-bootstrap.sql`
Entrega a tradução inicial das entidades para MySQL/MariaDB.
`mysql-panel-bootstrap.sql`
Mantém o mesmo boilerplate para o caminho de compatibilidade em MySQL/MariaDB.
`seed-imports.json`
Leva os documentos importados para uso como carga inicial.
Limite atual
O módulo ainda não substitui toda a persistência real do produto.
Ele é uma camada de:
- modelagem;
- preparação;
- governança inicial;
- exportação/importação.
Foreign keys, transações críticas, estoque concorrente e constraints finais ainda serão fechados quando o backend dedicado e o banco real entrarem na arquitetura.
O provisionamento automático desta fase foi fechado primeiro no fluxo oficial de:
PostgreSQLviaSSH;- instalação e configuração do serviço na própria VPS;
- criação inicial do ambiente do painel.
MySQL/MariaDB continua disponível apenas como compatibilidade.
Perfis de acesso
O painel separa a operação desta área em quatro níveis:
main_admin: conexão, bootstrap, entidades, registros e pacote;data_manager: entidades, registros e pacote;data_editor: registros;data_viewer: leitura.
Arquivos centrais
src/app/ecommpanel/admin/data/page.tsxsrc/app/api/ecommpanel/data-studio/route.tssrc/features/ecommpanel/components/DataStudioManager.tsxsrc/features/ecommpanel/server/dataStudioStore.tssrc/features/ecommpanel/types/dataStudio.ts