7.2 KiB
Repository split map
1. Назначение документа
Этот документ фиксирует целевую карту физического разделения текущего репозитория на:
crank-communitycrank-enterprisecrank-cloud
Документ нужен, чтобы:
- не гадать, что именно куда переносится;
- заранее отделить public Community artifacts от private commercial delivery;
- подготовить создание новых репозиториев как управляемый шаг, а не как спонтанный рефакторинг.
2. Текущее состояние
Разделение уже выполнено на уровне репозиториев:
crank-community— public base;crank-enterprise— private self-hosted delta;crank-cloud— private hosted delta.
Дальнейшая задача не в создании split, а в его дисциплинированном поддержании:
- общее улучшение идет сначала в
crank-community; - затем переносится в
crank-enterpriseиcrank-cloud; - cleanup Community делается только в
crank-community.
3. Целевой результат
3.1. crank-community
Public repository.
В нем должны остаться:
- Community runtime;
- Community UI;
admin-api,mcp-server,ui;crank-core,crank-registry,crank-runtime, schema and mapping crates;- только
REST-ориентированный Community protocol surface; - capability model;
- Community auth model:
- static AI-agent key;
- only
security_level = standard;
deploy/community/*;- optional
Valkeyservice definition для Community deployment; - public CI/CD for Community;
- Community docs, smoke docs и demo flow.
Техническая оговорка:
crank-runtimeв Community должен уметь собираться без premium adapter crates;UnsupportedProtocolи capability model должны оставаться достаточным fallback для disabled protocol families.
В нем не должно остаться:
- private token issuer implementations;
- enterprise auth/governance services;
- cloud control-plane logic;
- private packaging files;
- private operational tooling.
3.2. crank-enterprise
Private repository.
В нем должны жить:
- self-hosted commercial extensions;
GraphQLиgRPC unary, если они окончательно выводятся из Community;- short-lived token service;
- one-time token service;
- enterprise access/governance:
SSO2FA- extended
RBAC audit log
- premium protocol/runtime additions, если они не входят в Community;
- enterprise deployment manifests;
- optional cluster-aware cache integration для self-hosted production;
- private container/release packaging;
- enterprise operator docs.
3.3. crank-cloud
Private repository.
В нем должны жить:
- cloud control plane;
- metering;
- billing;
- hosted tenant management;
- hosted operational tooling;
- managed shared cache layer defaults and cache operations;
- cloud-only delivery manifests;
- cloud release pipeline;
- hosted support/admin tooling.
4. Карта по типам содержимого
4.1. Application code
Остается в crank-community:
- весь текущий Community runtime и UI
- все public extension seams
- все capability checks
REST-only product surface
Как промежуточный этап до физического переноса:
crank-runtimeв общем коде должен иметь feature-gated seams дляGraphQL/gRPC/SOAP/WebSocket;- это позволяет потом перенести premium adapters в private repos без полного форка runtime base.
Уходит в crank-enterprise:
crank-adapter-graphqlcrank-adapter-grpc- private auth/token/governance services
- enterprise-only runtime additions
Уходит в crank-cloud:
- hosted orchestration and control-plane code
- billing/metering integrations
4.2. Deployment manifests
Остается в crank-community:
deploy/community/*
Уходит в crank-enterprise:
- private self-hosted manifests
- private
Helmcharts - enterprise image references
Уходит в crank-cloud:
- hosted deployment manifests
- cloud operational manifests
4.3. CI/CD
Остается в crank-community:
- public Community
CI - public Community
Deploy
Уходит в crank-enterprise:
- private release workflows
- private image publishing
Уходит в crank-cloud:
- hosted release workflows
- control-plane rollout workflows
4.4. Documentation
Остается в crank-community:
- public architecture
- public API/MCP contracts
- Community deployment docs
- Community smoke docs
Уходит в crank-enterprise:
- enterprise operator docs
- enterprise packaging docs
- enterprise support runbooks
Уходит в crank-cloud:
- hosted operations docs
- tenant control-plane docs
- cloud support runbooks
5. Правила переноса
При переносе нужно соблюдать:
- Сначала переносится Community в
crank-communityкак рабочая самостоятельная база. - Потом переносится private self-hosted контур в
crank-enterprise. - Потом переносится hosted/control-plane контур в
crank-cloud. - Public contracts должны остаться в Community и не зависеть от private кодовой базы.
- Private repos не должны требовать обратного копирования логики в Community.
6. Правила поддержки split после разделения
После разделения действуют такие правила:
crank-communityостается базой для общей открытой логики.crank-enterpriseиcrank-cloudне должны независимо переизобретать общий Community код.- Общие исправления и улучшения сначала делаются в
crank-community, затем переносятся в private repositories. - Удаление или ограничение Community functionality делается только в
crank-community. - Private repositories должны хранить только свой product delta, а не полную независимую копию всей эволюции продукта.
7. Практический вывод
Для текущего этапа это означает:
crank-communityнужно дочистить до окончательного public состояния;- затем использовать его как source base для общих улучшений;
- коммерческие возможности продолжать развивать только в
crank-enterpriseиcrank-cloud.