Skip to content

seldb — Go CLI для Selectel DBaaS #1

Description

@dapi

Что это

seldb — Go CLI утилита для управления базами данных в Selectel DBaaS (Managed Databases).

Зачем

Основные пользователи — AI агенты

Утилита разрабатывается в первую очередь для агентного управления инфраструктурой. AI-агенты (Claude Code, Cursor, Copilot Workspace) смогут вызывать seldb через Bash для автоматизации рутинных операций:

  • Создание баз данных для новых staging окружений
  • Управление пользователями и правами доступа
  • Диагностика состояния datastore (disk usage, state)
  • Очистка неиспользуемых ресурсов

Почему не curl/API напрямую

  • Типобезопасность — Go SDK валидирует параметры
  • Удобный вывод — table/json/quiet форматы из коробки
  • Единый интерфейс — не нужно помнить endpoints и структуру запросов
  • Один бинарник — без внешних зависимостей (Python, Node.js)

Почему не Terraform

Terraform отлично подходит для декларативного управления инфраструктурой, но для ad-hoc операций агентов нужен императивный CLI:

# Агент создаёт staging для новой фичи
seldb databases create feature_123_db
seldb grants create --user staging --database feature_123_db

Технологии

  • Go — компилируется в один бинарник
  • selectel/dbaas-go — официальный SDK
  • spf13/cobra — CLI framework

MVP команды

# Datastores
seldb datastores list

# Databases
seldb databases list
seldb databases create NAME
seldb databases delete NAME|ID

# Users
seldb users list
seldb users create NAME --password PASSWORD
seldb users delete NAME|ID

# Grants
seldb grants list
seldb grants create --user USER --database DATABASE
seldb grants delete GRANT_ID

# Status
seldb status

Связанные задачи

  • alfagen/infra#51 — исходная задача

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions