Files
getpgdata/README.md
T

1.8 KiB

getpgdata

Flask-приложение для доступа к PostgreSQL (managed k8s, internal-only).

Развёртывается на платформе Nubes как Python managed service (структура site/app.py).

Возможности

  • Главная — состояние подключения и список таблиц (не системные схемы)
  • GET /table?schema=public&name=<table> — просмотр содержимого таблицы с пагинацией
  • POST /query — SQL-консоль (read-only, только SELECT)
  • GET /healthz — liveness-проба для k8s

Структура

getpgdata/
├── requirements.txt
└── site/
    ├── app.py
    ├── static/
    │   └── style.css
    └── templates/
        ├── index.html
        ├── table.html
        ├── query.html
        └── error.html

Переменные окружения (jsonEnv)

{
  "DB_HOST": "postgresqlk8s-master.60bdf3e3-5087-41ff-b760-fe6ea544a80e.svc.cluster.local",
  "DB_PORT": "5432",
  "DB_NAME": "postgres",
  "DB_USER": "super",
  "DB_PASS": "<secret>",
  "DB_SSLMODE": "disable",
  "DB_CONNECT_TIMEOUT": "5",
  "QUERY_MAX_ROWS": "200",
  "APP_ENV": "production",
  "FLASK_DEBUG": "false"
}

БД доступна только изнутри k8s (internal .svc.cluster.local), поэтому приложение должно работать внутри кластера Nubes.

Локальный запуск

pip install -r requirements.txt
DB_HOST=<host> DB_USER=<user> DB_PASS=<pass> python site/app.py

Если БД недоступна — приложение стартует и показывает ошибку на странице, а не падает (важно для k8s health-проб и диагностики).