Sobre o projeto

pgAdmin 4 é uma plataforma de gerenciamento e desenvolvimento para o banco de dados PostgreSQL, descrita como uma reescrita da ferramenta anterior pgAdmin3. É implementada como uma aplicação web: Python (Flask) no lado do servidor, com ReactJS, HTML5 e CSS para a interface do usuário no lado do cliente. Opções de implantação: pode rodar em um servidor web e ser acessada através de um navegador, ou rodar de forma autônoma em uma estação de trabalho via um aplicativo de runtime baseado em Electron localizado no subdiretório runtime/, que bifurca um processo de servidor Python e exibe a interface. Pré-requisitos listados no README: Node.js 20 ou posterior, yarn (habilitado via Corepack), Python 3.9 ou posterior, e um servidor PostgreSQL. Fluxo de compilação: bibliotecas JavaScript de terceiros, além do JS, CSS e imagens do próprio projeto, são compiladas em um pacote. Em sistemas *nix, isso é feito com make install-node e make bundle; no Windows, yarn install e yarn run bundle dentro do diretório web. Configuração do ambiente Python: criar e ativar um ambiente virtual, atualizar o pip, garantir que o diretório bin/ do PostgreSQL esteja no PATH para que o pg_config seja encontrado para construir o psycopg3, então instalar requirements.txt (e web/regression/requirements.txt para testes de regressão). Um arquivo de configuração local (web/config_local.py) pode substituir configurações de config.py, incluindo diretório de dados, endereço e porta do servidor, modo servidor vs desktop, URI do banco de dados de configuração, configurações SMTP, níveis de log e caminhos SQLite. A configuração inicial do banco de dados de configuração é interativa no modo servidor e não interativa no modo desktop, executada via web/setup.py ou iniciando web/pgAdmin4.py. A documentação pode ser construída com Sphinx (make docs). O runtime pode ser construído executando yarn install no diretório runtime e copiando dev_config.json.in para dev_config.json com caminhos ajustados. Os alvos de empacotamento incluem um tarball de código-fonte (make src), uma roda PIP (make pip), um AppBundle macOS e um instalador Windows, com instruções específicas da plataforma em pkg/mac e pkg/win32. Migrações de banco de dados para o banco de dados de configuração SQLite são criadas com Flask-Migrate (flask db revision), editando a função de upgrade e incrementando SCHEMA_VERSION em web/pgadmin/model/__init__.py. As opções de suporte estão listadas em pgadmin.org/support; problemas de segurança devem ser relatados ao endereço de e-mail de segurança. O desenvolvimento acontece no GitHub sob pgadmin-org/pgadmin4, com contribuições como pull requests contra o branch master e discussão na lista de e-mails pgadmin-hackers.