API VEGA

Развертывайте, управляйте и опрашивайте облачные ресурсы и взаимодействуйте с API через SQL

Универсальный интерфейс для эпохи агентной эры. Конфигурация как данные. Инфраструктура как контекст.

Документация »

Сообщить об ошибке ·

Предложить новую функцию ·

Руководство разработчика ·

Поставщики BYO

Содержание

О проекте

StackQL — открытый проект на Golang, который позволяет создавать, изменять и запрашивать состояние сервисов и ресурсов через различные локальные и удалённые интерфейсы, используя семантику SQL. Такие интерфейсы канонически включают, но не ограничиваются провайдерами облачных услуг и SaaS (Google, AWS, Azure, Okta, GitHub и т.д.).

Как это работает

StackQL — автономное приложение, которое может работать в клиентском режиме (через exec или shell) или быть доступно через клиент Postgres wire протокола (psycopg2 и т. п.) в режиме сервера (srv).

StackQL парсит SQL-запросы и транспилирует их в API-запросы к провайдеру облачных ресурсов. Вызовы API выполняются, результаты возвращаются пользователю.

Интерфейсы провайдеров StackQL канонически определяются как расширения OpenAPI к спецификациям провайдеров. Эти определения затем используются для генерации SQL-схемы и API-клиента. Источник определений провайдеров хранится в StackQL Registry. Семантика взаимодействий с провайдерами описана в нашей библиотеке any-sdk. Подробнее о нюансах — смотрите локальный AGENTS.md и AGENTS.md у any-sdk.

Диаграмма контекста StackQL

Следующая диаграмма контекста описывает архитектуру StackQL на высоком уровне:

flowchart LR
  subgraph StackQL
    direction BT
    subgraph ProviderDefs
        Registry[Provider Registry Docs]
    end
    subgraph App
        Proc[$ stackql exec\n$ stackql shell\n$ stackql srv]
        style Proc fill:#000,stroke:#000,color:#fff,text-align:left;

        %% ,font-family:'Courier New', Courier, monospace
    end
  end
  User((User)) <--> StackQL <--> Provider[Cloud Provider API]
  ProviderDefs --> App

Более детальная документация по дизайну доступна здесь: here.

MCP сервер

StackQL является MCP сервером — SQL поверх 40+ облачных и SaaS-провайдеров для агентов ИИ. Направляйте любой клиент с поддержкой MCP (Claude, VS Code, Cursor и пр.) к StackQL, и он сможет выполнять запросы к ресурсам облака и создавать их через SQL.

Запуск через stdio:

stackql mcp --mcp.server.type=stdio

MCP StackQL публикуется в Official MCP Registry как io.github.stackql/stackql-mcp и распространяется через npm, PyPI, Docker, GitHub Action и .mcpb-бандлы. Выберите вектор установки и добавьте соответствующий блок в конфиг вашего MCP-клиента:

npm (npx)

{
  "mcpServers": {
    "stackql": {
      "command": "npx",
      "args": ["-y", "@stackql/mcp-server"]
    }
  }
}

PyPI (uvx)

{
  "mcpServers": {
    "stackql": {
      "command": "uvx",
      "args": ["stackql-mcp-server"]
    }
  }
}

Docker

{
  "mcpServers": {
    "stackql": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "stackql/stackql-mcp"]
    }
  }
}

.mcpb бандл

Скачайте бандл для своей платформы с последнего релиза и установите его в вашем MCP-клиенте (один клик в клиентах, поддерживающих .mcpb).

  • stackql-mcp-linux-x64.mcpb

  • stackql-mcp-linux-arm64.mcpb

  • stackql-mcp-windows-x64.mcpb

  • stackql-mcp-darwin-universal.mcpb

GitHub Actions

Подключайте StackQL MCP к агентским CI-воркфлоу. По умолчанию режим read_only — безопасный выбор для CI.

- uses: stackql/setup-stackql-mcp@v1
  with:
    mode: read_only

Для клиентской настройки, аутентификации и режимов сервера смотрите полную документацию по MCP: docs.

Установка

StackQL доступен для Windows, MacOS, Linux, Docker, GitHub Actions и прочего. Ниже приведены инструкции по установке для вашей платформы.

Установка на MacOS

  • Homebrew (amd64 и arm64)

brew install stackql или brew tap stackql/tap && brew install stackql/tap/stackql

  • Установщик PKG для MacOS (amd64 и arm64)

скачайте последний MacOS PKG installer for StackQL

  • запустите установщик и следуйте инструкциям

Установка на Windows

  • MSI Installer

скачайте последний MSI installer for StackQL

  • установщик Chocolatey

установите Chocolatey

  • запустите choco install stackql

  • ZIP-архив

скачайте последний Windows ZIP archive for StackQL

  • распакуйте архив (подпись кода stackql.exe) в выбранную вами директорию

  • добавьте директорию в переменную окружения PATH (необязательно)

Установка на Linux

  • ZIP-архив

скачайте последний Linux ZIP archive for StackQL

или через curl -L https://bit.ly/stackql-zip -O && unzip stackql-zip

  • распакуйте архив (файл stackql) в нужную директорию

  • добавьте директорию в PATH (необязательно)

Получение StackQL из DockerHub

Посмотрите все доступные образы StackQL на DockerHub. Доступны образы, включая stackql, stackql-jupyter-demo и другие. Скачайте последнюю базовую версию StackQL командой:

docker pull stackql/stackql

Нужны выводы, а не инфраструктура? Выполните чистый аудит кросс-облаков для безопасности и FinOps одним образом — см. быструю настройку аудита в разделе Docker audit quickstart.

Использование StackQL с GitHub Actions

Используйте StackQL в ваших workflow GitHub Actions для автоматизации развёртывания облачной инфраструктуры, обеспечения IaC или соблюдения требований по соответствию/безопасности. Доступны следующие GitHub Actions: setup-stackql, stackql-exec и другие

Использование

StackQL можно использовать через интерактивную REPL-оболочку, через команду exec или как сервер через протокол Postgres wire.

ℹ️ StackQL не требует и не устанавливает базу данных.

  • Интерактивная оболочка
# запуск интерактивных запросов stackql
stackql shell --auth="${AUTH}"
  • Выполнение оператора или файла
stackql exec --auth="${AUTH}" -i myscript.iql --iqldata vars.jsonnet --output json

# или

stackql exec --auth="${AUTH}" "SELECT id, status FROM aws.ec2.instances WHERE region = 'us-east-1'"

ℹ️ Опции вывода json, csv, table и text доступны для команды exec через флаг --output

ℹ️ StackQL поддерживает передачу параметров с использованием jsonnet или json, см. [Using Variables]

  • Сервер
# обслуживаем запросы клиентов через Postgres wire protocol (psycopg2 и т. п.)
stackql srv --auth="${AUTH}"

Больше примеров — смотрите в нашем Blog

Участие

Вклад приветствуется. Для получения дополнительной информации о том, как внести вклад, смотрите наше руководство по участию.

Лицензия

Распространяется под MIT License. Подробнее об этом на LICENSE. Лицензии на стороннее ПО, которое мы используем, приведены в директории /docs/licenses.

Контакты

Свяжитесь с нами в Twitter: @stackql, напишите на info@stackql.io или начните общение через discussions.

Благодарности

Forks следующих проектов поддерживают нашу работу:

Мы искренне благодарны за вклад этих проектов.