Перейти к содержанию

Модули проекта

Quarshell разделён на 20 независимых Go-модулей и отдельные репозитории клиентов, документации, deployment и workspace. Публичные Go API пока нестабильны: версии остаются в 0.x, пока проект отдельно не объявит API стабильным. Таблица описывает назначение репозиториев, но не означает полного OpenShell parity. Текущие пробелы перечислены в разделе совместимости.

Go-модули

Модуль Назначение
quarshell-cli CLI cautem: выбор Gateway, lifecycle sandbox, команды policy, интерактивный terminal, completions, installer и локальный Gateway в релизе.
quarshell-core Общие domain-типы, defaults, схема и примитивы оценки policy, сопоставление host, допуск ресурсов и OpenShell compatibility helpers.
quarshell-policy Ограниченный по размеру разбор и валидация policy, типизированные входы оценки и композиция правил для runtime-компонентов.
quarshell-prover Символьный и solver-backed анализ containment и рисков policy.
quarshell-providers Встроенный каталог provider-профилей и добавление требований provider к эффективной policy.
quarshell-credentials Хранилища credentials и примитивы выдачи/обновления токенов; секреты не попадают в файловую систему sandbox.
quarshell-proto Закреплённые OpenShell protobuf-схемы и generated Go, gRPC, Connect и TypeScript bindings.
quarshell-spi Публичные интерфейсы service-provider для compute, credentials, isolation и расширений.
quarshell-driver Compute Backend SPI и реализации Docker, Podman и экспериментального Kubernetes.
quarshell-driver-vm Lifecycle MicroVM, worker, guest agent, импорт image, сеть, terminal и recovery. Часть OpenShell VM поведения ещё не доведена.
quarshell-driver-mxc Независимая граница для Windows MXC driver. OpenShell функциональность MXC пока не перенесена.
quarshell-gateway Gateway API и RPC server, auth, оркестрация sandbox/workspace, состояние, policy, providers, маршрутизация сервисов и сборка backend.
quarshell-sdk Go-клиент Gateway RPC: типизированные ресурсы, sandbox-операции, streaming, identity и session helpers.
quarshell-proxy Контроль egress из sandbox, CONNECT и прикладное посредничество, подстановка credentials, policy advisor и аудит.
quarshell-runtime Sandbox/guest init, hardening, поддержка secrets, runtime helpers и исходники sandbox images.
quarshell-isolation Host-side Linux изоляция процессов и admission primitives, включая поддержанные пути cgroup/seccomp/Landlock.
quarshell-supervisor Host-side запуск процессов, PTY-сессии, lifecycle-состояние и supervisor reporting.
quarshell-display Интеграция GUI sandbox и защищённые паролем noVNC helpers.
quarshell-slogx Structured logging на log/slog, trace correlation, redaction, live level control и ограниченная сериализация payload.
quarshell-telemetry Независимая граница telemetry-модуля. OpenShell telemetry pipeline там пока не реализован.

Другие репозитории

Репозиторий Назначение
quarshell-python Python SDK для Gateway операций по OpenShell RPC контракту.
quarshell-ui Browser console: OIDC login и управление workspace, sandbox, policy и providers через Gateway.
quarshell-deploy Helm chart и platform packaging для развёртывания.
sandbox.dev Английская и русская документация пользователя, архитектура, compatibility и статус переноса на MkDocs.
quarshell-workspace Checkout модулей, version pins, orchestration задач, integration checks и планы переноса. Исходники продуктовых модулей сюда не входят.

Как проходит запрос

flowchart LR
    cli["CLI cautem"] --> sdk["Go / Python clients"]
    ui["Browser UI"] --> api["Gateway API / OpenShell RPC"]
    sdk --> api
    api --> gw["Gateway orchestration и state"]
    gw --> spi["Compute SPI"]
    spi --> docker["Docker / Podman"]
    spi --> vm["MicroVM"]
    gw --> providers["Providers и credentials"]
    gw --> policy["Core policy и prover"]
    docker --> proxy["Egress proxy"]
    vm --> runtime["Guest runtime и supervisor"]
    proxy --> policy

Направление зависимостей задано намеренно: клиенты вызывают Gateway; Gateway сопоставляет protocol requests с domain-контрактами и зарегистрированными backend; backend использует engine/runtime-интеграции. UI не импортирует внутренние пакеты CLI, а Gateway не импортирует CLI или browser UI.

Состояние реализации

  • Основные container backend — Docker и Podman; возможности Podman зависят от socket и версии host, см. соответствующую справку провайдера.
  • Kubernetes экспериментален и требует проверки на целевом кластере.
  • VM находится в активной работе по OpenShell parity; перед использованием конкретного lifecycle пути проверьте список оставшейся работы.
  • MXC и telemetry — независимые границы модулей, функциональность ещё не перенесена.
  • Публичные Go API нестабильны и версионируются v0.x.y.