runtime: gate premium protocol adapters by feature
This commit is contained in:
@@ -79,6 +79,7 @@
|
||||
- создание `crank-community`, `crank-enterprise` и `crank-cloud` должно быть отдельным осознанным шагом;
|
||||
- до этого момента в текущем репозитории нужно завершить capability model, extension seams и public contracts;
|
||||
- физическое вынесение private code нельзя начинать раньше, чем эти три целевых repositories созданы и для них определены delivery boundaries.
|
||||
- на текущий момент public repository `crank-community` уже создан; следующий обязательный внешний шаг — создание private repositories `crank-enterprise` и `crank-cloud`.
|
||||
|
||||
## 6. Техническая стратегия разделения
|
||||
|
||||
@@ -109,6 +110,12 @@
|
||||
- cache store abstraction;
|
||||
- feature availability checks.
|
||||
|
||||
Дополнительно для runtime layer:
|
||||
|
||||
- premium protocol adapters должны подключаться как feature-gated seams;
|
||||
- `REST`-база должна собираться без `GraphQL/gRPC/SOAP/WebSocket` crates;
|
||||
- `UnsupportedProtocol` должен оставаться публичным fallback contract для disabled protocol paths.
|
||||
|
||||
Private code должен подключаться как реализация этих контрактов, а не как условные ветки по всему коду Community.
|
||||
|
||||
### 6.3. Server-side enforcement
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
- старые review-файлы не требуются как отдельный источник истины.
|
||||
- canonical Community deployment manifest и env template вынесены в `deploy/community/*`;
|
||||
- public CI/CD delivery path использует именно `deploy/community/*` как source of truth для Community поставки.
|
||||
- `crank-runtime` уже имеет feature seams для premium protocol adapters, так что Community base можно собирать как `REST-only` runtime foundation.
|
||||
|
||||
## 4. Этап 2. Community machine access completion
|
||||
|
||||
@@ -144,6 +145,13 @@
|
||||
- `crank-enterprise`
|
||||
- `crank-cloud`
|
||||
|
||||
Текущий статус:
|
||||
|
||||
- `crank-community` уже создан;
|
||||
- до начала physical split остаются private repositories:
|
||||
- `crank-enterprise`
|
||||
- `crank-cloud`
|
||||
|
||||
Bootstrap templates для этого шага уже должны быть подготовлены заранее в текущем репозитории:
|
||||
|
||||
- `templates/repositories/crank-community/*`
|
||||
|
||||
@@ -119,6 +119,11 @@
|
||||
- запись invocation events;
|
||||
- возврат нормализованного результата.
|
||||
|
||||
Дополнительное правило для split:
|
||||
|
||||
- `crank-runtime` должен собираться как `REST-only` base даже без premium adapter crates;
|
||||
- premium protocol adapters подключаются через feature seams, а не как безусловная зависимость Community runtime.
|
||||
|
||||
### 4.7. Protocol adapters
|
||||
|
||||
- `crank-adapter-rest`
|
||||
@@ -129,6 +134,12 @@
|
||||
|
||||
Каждый adapter знает только свой протокол.
|
||||
|
||||
Для open-core split это означает:
|
||||
|
||||
- `crank-adapter-rest` остается обязательной частью Community runtime;
|
||||
- `crank-adapter-graphql`, `crank-adapter-grpc`, `crank-adapter-websocket`, `crank-adapter-soap`
|
||||
должны подключаться как отделяемые protocol modules.
|
||||
|
||||
### 4.8. `apps/admin-api`
|
||||
|
||||
Должен содержать сервисные группы:
|
||||
|
||||
@@ -50,6 +50,11 @@ Public repository.
|
||||
- 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;
|
||||
@@ -106,6 +111,11 @@ Private repository.
|
||||
- все 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-graphql`
|
||||
@@ -195,6 +205,13 @@ Private repository.
|
||||
3. Зафиксировать отдельные package/release names.
|
||||
4. Подготовить начальные README и baseline workflows для всех трех репозиториев.
|
||||
|
||||
Текущий статус:
|
||||
|
||||
- `crank-community` уже создан;
|
||||
- до старта physical split остаются внешние шаги:
|
||||
- создать `crank-enterprise`
|
||||
- создать `crank-cloud`
|
||||
|
||||
Пока эти четыре пункта не выполнены, physical split не начинается.
|
||||
|
||||
Техническая заготовка для этого шага уже живет в:
|
||||
@@ -207,7 +224,8 @@ Private repository.
|
||||
|
||||
Следующий управленческий шаг после завершения текущего boundary-трека:
|
||||
|
||||
- создать `crank-community`
|
||||
- создать `crank-enterprise`
|
||||
- создать `crank-cloud`
|
||||
- создать `crank-enterprise`
|
||||
- создать `crank-cloud`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user