@yiaany/ghostapi 0.1.9 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (292) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/CONTRIBUTING.md +132 -119
  3. package/LICENSE +21 -21
  4. package/PROVENANCE.md +13 -0
  5. package/README.md +78 -84
  6. package/SECURITY.md +56 -53
  7. package/dist/actions/gateway.js +320 -72
  8. package/dist/actions/gateway.js.map +1 -1
  9. package/dist/actions/index.d.ts +2 -2
  10. package/dist/actions/index.js +1 -1
  11. package/dist/actions/index.js.map +1 -1
  12. package/dist/agents/agentPrompt.js +7 -5
  13. package/dist/agents/agentPrompt.js.map +1 -1
  14. package/dist/ai/aiClient.js +5 -5
  15. package/dist/ai/aiClient.js.map +1 -1
  16. package/dist/ai/aiGenerator.js +66 -26
  17. package/dist/ai/aiGenerator.js.map +1 -1
  18. package/dist/ai/genericInference.js +151 -36
  19. package/dist/ai/genericInference.js.map +1 -1
  20. package/dist/ai/prompts.js +55 -49
  21. package/dist/ai/prompts.js.map +1 -1
  22. package/dist/approvals/approvalInbox.js +649 -133
  23. package/dist/approvals/approvalInbox.js.map +1 -1
  24. package/dist/approvals/index.d.ts +2 -2
  25. package/dist/approvals/index.js +1 -1
  26. package/dist/approvals/index.js.map +1 -1
  27. package/dist/behavior/behaviorStore.js +34 -14
  28. package/dist/behavior/behaviorStore.js.map +1 -1
  29. package/dist/cache/index.js +14 -5
  30. package/dist/cache/index.js.map +1 -1
  31. package/dist/cli/index.js +226 -93
  32. package/dist/cli/index.js.map +1 -1
  33. package/dist/cli/openUrl.js +17 -3
  34. package/dist/cli/openUrl.js.map +1 -1
  35. package/dist/cli/parser.js +79 -18
  36. package/dist/cli/parser.js.map +1 -1
  37. package/dist/config/dataPaths.js +4 -2
  38. package/dist/config/dataPaths.js.map +1 -1
  39. package/dist/config/localConfig.js +5 -2
  40. package/dist/config/localConfig.js.map +1 -1
  41. package/dist/config/serverConfig.js +11 -5
  42. package/dist/config/serverConfig.js.map +1 -1
  43. package/dist/contracts/contract.js +311 -83
  44. package/dist/contracts/contract.js.map +1 -1
  45. package/dist/contracts/index.d.ts +2 -2
  46. package/dist/contracts/index.js +1 -1
  47. package/dist/contracts/index.js.map +1 -1
  48. package/dist/credentials/credentialBroker.js +391 -79
  49. package/dist/credentials/credentialBroker.js.map +1 -1
  50. package/dist/credentials/index.d.ts +2 -2
  51. package/dist/credentials/index.js +1 -1
  52. package/dist/credentials/index.js.map +1 -1
  53. package/dist/dashboard/app.js +823 -685
  54. package/dist/dashboard/dashboard.js.map +1 -1
  55. package/dist/dashboard/index.html +704 -267
  56. package/dist/dashboard/styles.css +1040 -349
  57. package/dist/egress/capabilities.js +55 -25
  58. package/dist/egress/capabilities.js.map +1 -1
  59. package/dist/egress/linuxBootstrap.js +47 -11
  60. package/dist/egress/linuxBootstrap.js.map +1 -1
  61. package/dist/egress/run.js +170 -31
  62. package/dist/egress/run.js.map +1 -1
  63. package/dist/errors/errorEngine.js +15 -3
  64. package/dist/errors/errorEngine.js.map +1 -1
  65. package/dist/errors/providerErrors.js.map +1 -1
  66. package/dist/evals/evals.js +304 -78
  67. package/dist/evals/evals.js.map +1 -1
  68. package/dist/evals/index.d.ts +2 -2
  69. package/dist/evals/index.js +1 -1
  70. package/dist/evals/index.js.map +1 -1
  71. package/dist/evidence/index.d.ts +2 -2
  72. package/dist/evidence/index.js +1 -1
  73. package/dist/evidence/index.js.map +1 -1
  74. package/dist/evidence/report.d.ts +1 -1
  75. package/dist/evidence/report.js +263 -79
  76. package/dist/evidence/report.js.map +1 -1
  77. package/dist/fault/faultLab.js +24 -9
  78. package/dist/fault/faultLab.js.map +1 -1
  79. package/dist/index.d.ts +42 -42
  80. package/dist/index.js +21 -21
  81. package/dist/index.js.map +1 -1
  82. package/dist/inventory/analysis.d.ts +1 -1
  83. package/dist/inventory/analysis.js +174 -50
  84. package/dist/inventory/analysis.js.map +1 -1
  85. package/dist/inventory/index.d.ts +4 -4
  86. package/dist/inventory/index.js +3 -3
  87. package/dist/inventory/index.js.map +1 -1
  88. package/dist/inventory/inventoryController.js +362 -115
  89. package/dist/inventory/inventoryController.js.map +1 -1
  90. package/dist/inventory/types.js +680 -140
  91. package/dist/inventory/types.js.map +1 -1
  92. package/dist/ledger/actionLedger.js +355 -78
  93. package/dist/ledger/actionLedger.js.map +1 -1
  94. package/dist/ledger/index.d.ts +2 -2
  95. package/dist/ledger/index.js +1 -1
  96. package/dist/ledger/index.js.map +1 -1
  97. package/dist/mcp/server.js +26 -11
  98. package/dist/mcp/server.js.map +1 -1
  99. package/dist/policy/index.d.ts +2 -2
  100. package/dist/policy/index.js +1 -1
  101. package/dist/policy/index.js.map +1 -1
  102. package/dist/policy/policy.js +112 -32
  103. package/dist/policy/policy.js.map +1 -1
  104. package/dist/productTelemetry/index.js +71 -20
  105. package/dist/productTelemetry/index.js.map +1 -1
  106. package/dist/providers/conformance.js +10 -5
  107. package/dist/providers/conformance.js.map +1 -1
  108. package/dist/providers/discord.js +2 -2
  109. package/dist/providers/generic.js +3 -3
  110. package/dist/providers/github.js +2 -2
  111. package/dist/providers/index.d.ts +3 -3
  112. package/dist/providers/index.js +2 -2
  113. package/dist/providers/index.js.map +1 -1
  114. package/dist/providers/openai.js +3 -3
  115. package/dist/providers/packs/resendPack.js +51 -25
  116. package/dist/providers/packs/resendPack.js.map +1 -1
  117. package/dist/providers/packs/stripePack.js +590 -121
  118. package/dist/providers/packs/stripePack.js.map +1 -1
  119. package/dist/providers/registry.js +4 -4
  120. package/dist/providers/registry.js.map +1 -1
  121. package/dist/providers/runtime.js +7 -6
  122. package/dist/providers/runtime.js.map +1 -1
  123. package/dist/providers/stripeWebhook.js +39 -10
  124. package/dist/providers/stripeWebhook.js.map +1 -1
  125. package/dist/providers/twilio.js +2 -2
  126. package/dist/proxy/cacheKey.js +9 -2
  127. package/dist/proxy/cacheKey.js.map +1 -1
  128. package/dist/proxy/providerDetector.js +22 -9
  129. package/dist/proxy/providerDetector.js.map +1 -1
  130. package/dist/proxy/proxyHandler.js +57 -22
  131. package/dist/proxy/proxyHandler.js.map +1 -1
  132. package/dist/proxy/requestNormalizer.js +4 -2
  133. package/dist/proxy/requestNormalizer.js.map +1 -1
  134. package/dist/reliability/costGovernance.js +211 -49
  135. package/dist/reliability/costGovernance.js.map +1 -1
  136. package/dist/reliability/index.d.ts +8 -8
  137. package/dist/reliability/index.js +4 -4
  138. package/dist/reliability/index.js.map +1 -1
  139. package/dist/reliability/reconciliation.js +274 -65
  140. package/dist/reliability/reconciliation.js.map +1 -1
  141. package/dist/reliability/runtimeHealth.js +127 -35
  142. package/dist/reliability/runtimeHealth.js.map +1 -1
  143. package/dist/reliability/slo.js +257 -50
  144. package/dist/reliability/slo.js.map +1 -1
  145. package/dist/report/safetyReport.d.ts +6 -0
  146. package/dist/report/safetyReport.js +56 -12
  147. package/dist/report/safetyReport.js.map +1 -1
  148. package/dist/rules/aiRules.js +5 -5
  149. package/dist/rules/aiRules.js.map +1 -1
  150. package/dist/safety/index.d.ts +2 -2
  151. package/dist/safety/index.js +1 -1
  152. package/dist/safety/index.js.map +1 -1
  153. package/dist/safety/safetyController.js +675 -165
  154. package/dist/safety/safetyController.js.map +1 -1
  155. package/dist/scenarios/scenarioBundle.js +204 -71
  156. package/dist/scenarios/scenarioBundle.js.map +1 -1
  157. package/dist/scenarios/scenarioStore.js +88 -29
  158. package/dist/scenarios/scenarioStore.js.map +1 -1
  159. package/dist/security/headerSanitizer.js +52 -10
  160. package/dist/security/headerSanitizer.js.map +1 -1
  161. package/dist/security/secrets.js +10 -5
  162. package/dist/security/secrets.js.map +1 -1
  163. package/dist/server/accessControl.js +37 -10
  164. package/dist/server/accessControl.js.map +1 -1
  165. package/dist/server/createServer.js +1 -1
  166. package/dist/server/createServer.js.map +1 -1
  167. package/dist/server/eventsStore.js +15 -5
  168. package/dist/server/eventsStore.js.map +1 -1
  169. package/dist/server/routes.js +61 -19
  170. package/dist/server/routes.js.map +1 -1
  171. package/dist/server/sse.js +1 -1
  172. package/dist/server/sse.js.map +1 -1
  173. package/dist/setup/sdkDetector.js +7 -2
  174. package/dist/setup/sdkDetector.js.map +1 -1
  175. package/dist/setup/setupGenerator.js +136 -48
  176. package/dist/setup/setupGenerator.js.map +1 -1
  177. package/dist/state/stateExtractor.js +3 -1
  178. package/dist/state/stateExtractor.js.map +1 -1
  179. package/dist/state/stateResolver.js +10 -7
  180. package/dist/state/stateResolver.js.map +1 -1
  181. package/dist/state/stateStore.js +13 -4
  182. package/dist/state/stateStore.js.map +1 -1
  183. package/dist/storage/fileStore.js +12 -4
  184. package/dist/storage/fileStore.js.map +1 -1
  185. package/dist/teamControl/controlPlane.js +846 -174
  186. package/dist/teamControl/controlPlane.js.map +1 -1
  187. package/dist/teamControl/deployment.js +19 -5
  188. package/dist/teamControl/deployment.js.map +1 -1
  189. package/dist/teamControl/index.d.ts +4 -4
  190. package/dist/teamControl/index.js +2 -2
  191. package/dist/teamControl/index.js.map +1 -1
  192. package/dist/tests/testGenerator.js +15 -7
  193. package/dist/tests/testGenerator.js.map +1 -1
  194. package/dist/trust/index.d.ts +2 -2
  195. package/dist/trust/index.js +1 -1
  196. package/dist/trust/index.js.map +1 -1
  197. package/dist/trust/trustLadder.js +309 -63
  198. package/dist/trust/trustLadder.js.map +1 -1
  199. package/dist/worlds/index.d.ts +2 -2
  200. package/dist/worlds/index.js +1 -1
  201. package/dist/worlds/index.js.map +1 -1
  202. package/dist/worlds/worlds.js +364 -65
  203. package/dist/worlds/worlds.js.map +1 -1
  204. package/docs/assets/dashboard.png +0 -0
  205. package/docs/ci.md +49 -49
  206. package/docs/github-actions.md +84 -84
  207. package/docs/mcp.md +58 -52
  208. package/docs/policy.md +63 -61
  209. package/docs/providers/authoring-packs.md +180 -175
  210. package/docs/providers/stripe-core-pack.md +84 -82
  211. package/docs/releases/README.md +13 -0
  212. package/docs/security/action-gateway-threat-model.md +34 -34
  213. package/docs/security/action-ledger-incident-replay-threat-model.md +42 -42
  214. package/docs/security/approval-inbox-threat-model.md +35 -35
  215. package/docs/security/credential-broker-threat-model.md +52 -52
  216. package/docs/security/egress-threat-model.md +126 -126
  217. package/docs/security/inventory-threat-model.md +104 -104
  218. package/docs/security/kill-switch-budgets-threat-model.md +37 -37
  219. package/docs/security/reliability-threat-model.md +111 -111
  220. package/docs/security/trust-ladder-threat-model.md +33 -33
  221. package/docs/telemetry.md +14 -0
  222. package/docs/usage.md +680 -571
  223. package/examples/README.md +10 -10
  224. package/examples/agent-instructions/README.md +39 -39
  225. package/examples/ci-smoke/README.md +21 -21
  226. package/examples/ci-smoke/ghostapi.policy.yaml +22 -22
  227. package/examples/ci-smoke/package.json +9 -9
  228. package/examples/ci-smoke/production-egress.mjs +4 -2
  229. package/examples/ci-smoke/safe.mjs +21 -17
  230. package/examples/evals/README.md +24 -24
  231. package/examples/evals/retry-after.eval.json +71 -52
  232. package/examples/generic-rest/README.md +27 -27
  233. package/examples/github-fetch/README.md +38 -35
  234. package/examples/openai-streaming/README.md +16 -16
  235. package/examples/openai-streaming/streaming-tool-call.mjs +44 -31
  236. package/examples/policy/ghostapi.policy.yaml +27 -27
  237. package/examples/record-replay/README.md +19 -19
  238. package/examples/record-replay/replay-requests.json +22 -22
  239. package/examples/record-replay/stripe-checkout.har.json +30 -30
  240. package/examples/resend-node/README.md +22 -22
  241. package/examples/stripe-node/README.md +35 -35
  242. package/examples/stripe-node/checkout-flow.mjs +87 -61
  243. package/examples/twilio-node/README.md +21 -21
  244. package/examples/worlds/README.md +19 -19
  245. package/examples/worlds/subscription-recovery.mjs +21 -12
  246. package/package.json +28 -6
  247. package/dist/landing/assets/index-BXR41fAD.css +0 -1
  248. package/dist/landing/assets/index-CxWsopzP.css +0 -1
  249. package/dist/landing/assets/index-D8_ggMRE.js +0 -55
  250. package/dist/landing/assets/index-DZlpyhqd.js +0 -55
  251. package/dist/landing/assets/index-Dk-Xezs3.js +0 -55
  252. package/dist/landing/index.html +0 -15
  253. package/dist/landing/landing.d.ts +0 -3
  254. package/dist/landing/landing.js +0 -12
  255. package/dist/landing/landing.js.map +0 -1
  256. package/docs/commercial/README.md +0 -29
  257. package/docs/commercial/data-inventory.md +0 -36
  258. package/docs/commercial/manual-invoicing.md +0 -44
  259. package/docs/commercial/metrics.md +0 -51
  260. package/docs/commercial/pricing.md +0 -103
  261. package/docs/commercial/privacy-policy-draft.md +0 -41
  262. package/docs/commercial/terms-topics-for-counsel.md +0 -51
  263. package/docs/design-partners/README.md +0 -52
  264. package/docs/design-partners/demo-narratives.md +0 -33
  265. package/docs/design-partners/design-partner-offer.md +0 -39
  266. package/docs/design-partners/discovery-questions.md +0 -28
  267. package/docs/design-partners/feedback-capture-template.md +0 -48
  268. package/docs/design-partners/icp-one-pager.md +0 -43
  269. package/docs/design-partners/onboarding-checklist.md +0 -33
  270. package/docs/design-partners/pilot-success-criteria.md +0 -27
  271. package/docs/design-partners/pricing-interview-script.md +0 -18
  272. package/docs/design-partners/telemetry-plan.md +0 -48
  273. package/docs/development/baseline.md +0 -114
  274. package/docs/development/onboarding-smoke.md +0 -37
  275. package/docs/development/verification-0.1.8.md +0 -25
  276. package/docs/enterprise-product-roadmap-ru.md +0 -1879
  277. package/docs/fundraising/README.md +0 -87
  278. package/docs/fundraising/data-room-checklist.md +0 -72
  279. package/docs/fundraising/demo-script.md +0 -52
  280. package/docs/fundraising/design-partners-50.md +0 -74
  281. package/docs/fundraising/launch-posts.md +0 -37
  282. package/docs/fundraising/metrics-and-evidence.md +0 -30
  283. package/docs/fundraising/roadmap-12-month.md +0 -25
  284. package/docs/fundraising/technical-due-diligence-index.md +0 -37
  285. package/docs/fundraising/yc-application.md +0 -25
  286. package/docs/hosted-pilot.md +0 -111
  287. package/docs/operations/disaster-recovery-runbook.md +0 -81
  288. package/docs/operations/kill-switch-runbook.md +0 -32
  289. package/docs/release-checklist.md +0 -83
  290. package/docs/release-migration-and-rollback.md +0 -63
  291. package/docs/release-readiness.md +0 -39
  292. package/docs/team-control-plane.md +0 -72
@@ -1,1879 +0,0 @@
1
- # GhostAPI: enterprise-дорожная карта продукта
2
-
3
- **Статус документа:** целевая продуктовая и инженерная спецификация, а не обещание сроков или заявление о доступности функций.
4
- **Дата среза текущего состояния:** 22 августа 2026 года.
5
- **Аудитория:** основатели, product/engineering/security, design partners, enterprise-покупатели, юридическая команда и инвесторы.
6
-
7
- ## 1. Коротко: каким должен стать GhostAPI
8
-
9
- GhostAPI сегодня — локальная среда для безопасной разработки и проверки интеграций AI-агентов. Целевой enterprise-продукт переносит эту ценность на уровень команды и компании:
10
-
11
- - разработчик по-прежнему быстро запускает GhostAPI локально;
12
- - агент не получает прямой доступ к производственным секретам и внешним API без политики и разрешения;
13
- - команда централизованно управляет организациями, проектами, окружениями, политиками и сценариями;
14
- - служба безопасности видит проверяемый аудит, экспортирует события в SIEM и может немедленно остановить опасные действия;
15
- - руководитель получает понятные данные о риске, надежности, использовании и стоимости;
16
- - крупный клиент может выбрать SaaS, выделенный single-tenant или on-premises-вариант;
17
- - все коммерческие и compliance-заявления подтверждаются работающими контролями, тестами и независимыми доказательствами.
18
-
19
- Целевой результат можно сформулировать просто:
20
-
21
- > GhostAPI становится безопасным слоем между AI-агентами, кодом компании и внешними API: он сначала моделирует, затем проверяет, запрашивает нужные разрешения и только после этого допускает строго ограниченное действие.
22
-
23
- ## 2. Как читать приоритеты
24
-
25
- В документе используются три метки.
26
-
27
- | Метка | Значение | Правило выпуска |
28
- | --- | --- | --- |
29
- | **P0: до первого платного enterprise-пилота** | Минимум для одного hosted CI workflow: прием только ограниченного sanitized evidence, просмотр результатов и принятие merge/release-решения без внешних production-действий. | Все применимые критерии P0 подтверждены в пилотном окружении. Scope нельзя расширять устной договоренностью или настройкой в UI. |
30
- | **P1: до Enterprise GA** | Требования общедоступного enterprise-продукта с повторяемым подключением клиентов. | Все критерии P1 должны быть выполнены до объявления General Availability и стандартного SLA. |
31
- | **P2: premium differentiator** | Возможности, которые заметно отличают GhostAPI на зрелом рынке и оправдывают более дорогие тарифы. | Не должны блокировать пилот или GA, если клиенту они явно не обещаны договором. |
32
-
33
- P0 не включает production approvals, provider credentials, workload identity federation, вызовы production API, raw traffic или произвольный executor. Эти возможности относятся к отдельной фазе production execution и имеют собственный gate.
34
-
35
- Единое правило для любой границы выпуска: нельзя выпускать pilot, GA, production execution или on-prem с нерешенными Critical/High findings, которые затрагивают эту границу. Формальное принятие риска не заменяет исправление или удаление уязвимой функции из scope.
36
-
37
- Главное правило приоритета: сначала безопасность, изоляция, надежность и доказуемая польза; затем новые интеграции и сложные коммерческие функции.
38
-
39
- ## 3. Текущая граница и целевое состояние
40
-
41
- ### 3.1. Что есть сейчас
42
-
43
- На дату этого документа репозиторий подтверждает следующие границы:
44
-
45
- - основной Node.js-продукт работает локально, не требует аккаунта и по умолчанию не отправляет данные в hosted-сервис;
46
- - доступны локальные provider-shaped API, dashboard, CLI, MCP, сценарии, evidence, policy-as-code, record/replay, contract diff, evals и синтетические worlds/actions;
47
- - поддерживаемое Linux-ограничение egress основано на loopback-only namespace и не является полноценной песочницей для враждебного кода;
48
- - Windows и macOS поддерживают локальную симуляцию, но не имеют эквивалентной гарантии process egress enforcement;
49
- - локальные approval inbox, credential broker, trust ladder, safety controller и action ledger являются ограниченными библиотечными или локальными механизмами, а не production enterprise-сервисами;
50
- - team control plane хранится в локальном JSON-файле и не имеет hosted endpoint, SSO, SCIM, cloud sync или enterprise dashboard;
51
- - hosted pilot реализован как отдельное Bun/Elysia-приложение: есть PostgreSQL migrations, tenant authorization, auth/session boundary, CI report intake, idempotency, outbox/worker, retention cleanup, audit metadata, health checks и тесты. Он еще не развернут для клиента и не доказан нагрузочными, DR- и операционными испытаниями;
52
- - нет доступного для покупки Team/Enterprise-тарифа, self-service billing, entitlement-системы, SLA или подтвержденного compliance-статуса;
53
- - нет доказанной multi-region-записи, обещанного RPO/RTO, неизменяемого внешнего аудита или production credential execution;
54
- - нет независимо подтвержденного спроса, retention или успешного платного enterprise-пилота в материалах репозитория.
55
-
56
- ### 3.2. К чему нужно прийти
57
-
58
- | Область | Текущая граница | Идеальное enterprise-состояние |
59
- | --- | --- | --- |
60
- | Пользовательская модель | Локальный пользователь и прототип локальной организации. | Организации, группы, проекты, окружения, сервисные аккаунты, workload identities и делегированное администрирование. |
61
- | Аутентификация | Локальный доступ; в hosted-дизайне предусмотрены базовые Google OAuth/email-password. | Enterprise SSO через SAML 2.0 и OIDC, MFA-политики, domain discovery, JIT с ограничениями, SCIM 2.0 и автоматическое отключение доступа. |
62
- | Авторизация | Фиксированная локальная role matrix. | Централизованные RBAC + ABAC, custom roles, resource scopes, separation of duties и объяснимые решения. |
63
- | Политики | Локальный YAML без удаленных include и исполняемых выражений. | Версионируемый policy registry, review/publish workflow, dry-run, impact analysis, signed bundles и единый enforcement для CLI, CI, dashboard и agents. |
64
- | Согласования | Локальный approval inbox только для синтетических действий. | Многоступенчатые, ограниченные по времени approvals с Web/Slack/Teams, separation of duties и привязкой к точному action hash. |
65
- | Секреты | Локальный broker boundary без production executor и без реальной выдачи провайдерских credentials. | Vault/KMS/HSM-backed broker, short-lived credentials, workload identity, no-secret-to-agent и полный audit каждого использования. |
66
- | Hosted control plane | Реализованный, но не развернутый pilot application; production-гарантии еще не доказаны. | HA control plane с доказанной tenant isolation, очередями, миграциями, rate limits, observability, backup/DR и SLO. |
67
- | Data plane | Локальная симуляция на машине разработчика. | Локальные/CI agents и опциональные private runners, которые исполняют политики рядом с workload; control plane не обязан видеть чувствительные payload. |
68
- | Данные | Локальные bounded-файлы; hosted inventory пока проектный. | Классификация данных, региональность, retention policies, export/delete, legal hold, backup lifecycle и проверяемое удаление. |
69
- | Аудит | Локальные hash chains, не внешний immutable compliance store. | Централизованный tamper-evident audit, WORM/immutable export, SIEM streaming, расследование и tenant-scoped evidence. |
70
- | Коммерция | Ручной pilot proposal, без billing и quotas. | Contracts, entitlements, metering, invoices, usage limits, grace periods и прозрачная стоимость без скрытого отключения безопасности. |
71
- | Надежность | Локальные SLO/backup-механизмы и недоказанные hosted-цели. | Опубликованные SLO/SLA, status page, on-call, incident response, регулярные restore/region-failover drills. |
72
- | Deployment | OSS local и проект hosted pilot. | Multi-tenant SaaS, dedicated single-tenant, customer-managed on-prem/private cloud и гибридный режим. |
73
-
74
- ## 4. Продуктовые принципы
75
-
76
- 1. **Local-first остается основой.** Enterprise-функции не должны делать локальную разработку медленной или требовать отправки сырых запросов в облако.
77
- 2. **Безопасность не продается как искусственное ограничение.** Базовое masking, безопасные defaults и локальная симуляция остаются в OSS. Enterprise оплачивает централизованное управление, доказательства, поддержку и deployment guarantees.
78
- 3. **Агенту не выдается долгоживущий секрет.** По возможности агент получает право запросить конкретное действие, а broker выполняет его от имени строго ограниченной workload identity.
79
- 4. **Каждое важное решение объяснимо.** Пользователь должен видеть: какая политика сработала, какие атрибуты использованы, кто согласовал и почему действие разрешено или запрещено.
80
- 5. **Fail closed для границ безопасности.** Неизвестный tenant, неподтвержденная identity, поврежденная policy, просроченное approval или недоступный broker приводят к отказу, а не к обходу.
81
- 6. **Control plane и data plane разделены.** Сбой dashboard не должен автоматически останавливать разрешенную локальную симуляцию; потеря связи не должна открывать доступ к production.
82
- 7. **Claims следуют за evidence.** Нельзя объявлять SOC 2, HIPAA readiness, SLA, data residency или RPO/RTO до реализации, тестирования и юридической проверки соответствующих контролей.
83
- 8. **Минимизация данных по умолчанию.** В hosted pilot передаются только sanitized evidence и нужные metadata. Raw traffic, исходный код, prompts и credentials нельзя разрешить простым toggle, feature flag или tenant-настройкой. Для них нужны отдельные сервисная и сетевая границы, threat model, security review, data inventory, эксплуатационные процедуры и явный договорный scope.
84
-
85
- ## 5. Пользователи и ключевые сценарии
86
-
87
- Пример разработчика описывает узкий CI evidence pilot. Примеры с workload identity, production approvals, credential broker и production actions показывают более позднюю целевую фазу и не входят в P0 или GA core.
88
-
89
- ### 5.1. Разработчик
90
-
91
- **Задача:** безопасно проверить Stripe, GitHub, OpenAI или внутренний API локально и в CI.
92
-
93
- **Пример:**
94
-
95
- > Разработчик запускает `ghostapi run -- npm test`. CLI получает подписанный policy bundle проекта, проверяет его срок и checksum, запускает тесты в поддерживаемом enforcement-режиме и отправляет только sanitized evidence. В dashboard видно, что попыток production egress было 0, обязательные failure scenarios пройдены, а contract diff не содержит breaking changes.
96
-
97
- ### 5.2. Security engineer
98
-
99
- **Задача:** задать общие правила и доказать, что команды их соблюдают.
100
-
101
- **Пример:**
102
-
103
- > Security engineer запрещает любые production-действия из pull request, разрешает read-only GitHub API из staging и требует двух approvals для денежных операций выше 1 000 долларов. Перед публикацией policy система показывает затронутые проекты и результаты dry-run на последних 30 днях evidence.
104
-
105
- ### 5.3. Platform engineer
106
-
107
- **Задача:** централизованно подключить CI, agents и секреты без ручной настройки каждого репозитория.
108
-
109
- **Пример:**
110
-
111
- > Platform engineer устанавливает GitHub App на выбранные репозитории, создает environment `staging`, связывает его с AWS workload identity и публикует policy. CI получает краткоживущий токен через OIDC, не хранит статический GhostAPI secret и автоматически публикует evidence к commit SHA.
112
-
113
- ### 5.4. Approver или владелец бизнес-операции
114
-
115
- **Задача:** понять риск и одобрить только точное действие.
116
-
117
- **Пример:**
118
-
119
- > Финансовый approver видит: «Создать refund на 420 USD для payment intent X, проект Billing, production, причина Customer Support case 1234». Изменение суммы, получателя, проекта или payload делает approval недействительным.
120
-
121
- ### 5.5. Auditor и compliance
122
-
123
- **Задача:** получить доказательства без широкого доступа к продуктовым данным.
124
-
125
- **Пример:**
126
-
127
- > Auditor с ролью `Audit Viewer` экспортирует подписанный отчет за квартал: изменения политик, memberships, approvals, production actions, security incidents и доказательство целостности. Он не может просматривать request bodies или создавать токены.
128
-
129
- ## 6. Целевая enterprise-архитектура
130
-
131
- ```mermaid
132
- flowchart LR
133
- IdP[Enterprise IdP: SAML/OIDC] --> CP[GhostAPI Control Plane]
134
- SCIM[SCIM provider] --> CP
135
- Admin[Admin / Security UI] --> CP
136
- SIEM[Customer SIEM] <-->|events| CP
137
- Billing[Billing / Entitlements] --> CP
138
-
139
- Dev[Developer CLI / MCP] --> Agent[Local GhostAPI Agent]
140
- CI[CI runner] --> Runner[GhostAPI CI Agent]
141
- Private[Private runner / gateway] --> Provider[External or internal APIs]
142
-
143
- CP --> Policy[Policy + Approval Service]
144
- CP --> Metadata[(Tenant metadata DB)]
145
- CP --> Audit[(Tamper-evident audit)]
146
- CP --> Artifacts[(Encrypted evidence store)]
147
- CP --> Queue[Durable queue / outbox]
148
-
149
- Agent -->|signed policy bundles, sanitized evidence| CP
150
- Runner -->|pilot ingest key; later workload identity| CP
151
- Private -->|action request / receipt| CP
152
- Policy --> Vault[Credential Broker]
153
- Vault --> KMS[KMS / HSM / Customer Vault]
154
- Vault --> Provider
155
- ```
156
-
157
- ### 6.1. Control plane
158
-
159
- Control plane отвечает за identities, organizations, projects, environments, policies, approvals, audit, billing entitlements, configuration и fleet management. Он не должен автоматически получать все payload, которые проходят через data plane.
160
-
161
- **P0:**
162
-
163
- - один production region с минимум двумя stateless API instances;
164
- - PostgreSQL как source of truth;
165
- - transactional outbox и idempotent workers;
166
- - tenant id во всех tenant-owned records и запросах;
167
- - schema migrations с forward/backward compatibility и проверенным rollback-планом;
168
- - versioned API, bounded payloads, idempotency keys и rate limits;
169
- - шифрование in transit и at rest;
170
- - отдельные production/staging accounts и secrets;
171
- - административные операции только через аутентифицированные, авторизованные и аудируемые endpoints.
172
-
173
- **P1:**
174
-
175
- - autoscaling с проверенными limits;
176
- - zero-downtime deployments для совместимых изменений;
177
- - region-aware storage и routing;
178
- - отдельные failure domains для API, workers и audit export;
179
- - публичная API stability policy и deprecation window;
180
- - capacity planning по tenant, request type, payload size и storage growth.
181
-
182
- **P2:**
183
-
184
- - active-active reads и, где это действительно нужно, multi-region write strategy;
185
- - dedicated control plane на клиента;
186
- - customer-managed control plane в private cloud;
187
- - cross-region policy distribution с локальным enforcement при временной потере связи.
188
-
189
- ### 6.2. Data plane
190
-
191
- Data plane выполняет локальную симуляцию, enforcement и сбор evidence рядом с кодом клиента. Production action execution добавляется только в отдельной поздней фазе.
192
-
193
- **Требования:**
194
-
195
- - в P0 CI runner использует отдельный scoped ingest key с expiry и revocation; machine/workload identity вводится позже;
196
- - каждый agent имеет tenant, project, environment, version, capability set и last-seen status;
197
- - policy bundles подписаны, имеют version, expiry, issuer и checksum;
198
- - agent не принимает policy от неподтвержденного control plane;
199
- - offline mode использует последнюю действительную policy только в явно разрешенных безопасных сценариях;
200
- - в будущей production-execution boundary потеря связи по умолчанию означает deny;
201
- - сырые payload и secrets не покидают data plane; их обработка требует отдельной изолированной boundary и договора, а не настройки текущего hosted tenant;
202
- - обновления agent подписаны и могут быть поэтапно развернуты или отозваны.
203
-
204
- ### 6.3. Разделение доверия
205
-
206
- Минимально должны существовать отдельные trust boundaries:
207
-
208
- - пользовательский browser;
209
- - public API edge;
210
- - identity service;
211
- - policy/authorization service;
212
- - audit pipeline;
213
- - tenant data storage;
214
- - secret broker;
215
- - local/CI/private agents;
216
- - internal operator plane;
217
- - billing and support tooling.
218
-
219
- Сотрудник поддержки не должен получать production database или secret-vault access только потому, что он может открыть support ticket.
220
-
221
- ## 7. Организации, проекты и окружения
222
-
223
- ### 7.1. Ресурсная модель
224
-
225
- Рекомендуемая иерархия:
226
-
227
- ```text
228
- Customer account
229
- -> Organization
230
- -> Group / Team
231
- -> Project
232
- -> Environment: local | test | staging | production | custom
233
- -> Policies
234
- -> Scenarios
235
- -> Evidence
236
- -> Agents / runners
237
- -> Provider connections
238
- -> Actions / approvals
239
- ```
240
-
241
- - **Customer account** нужен для договора, billing и нескольких организаций одной группы компаний.
242
- - **Organization** является основной tenant boundary.
243
- - **Project** соответствует продукту, сервису или набору репозиториев.
244
- - **Environment** отделяет risk, credentials, policies и approvals.
245
- - **Group/Team** связывается с IdP/SCIM-группами и назначениями ролей.
246
-
247
- ### 7.2. Обязательные правила
248
-
249
- **P0:**
250
-
251
- - каждый tenant-owned объект содержит immutable `organization_id`;
252
- - project нельзя незаметно переместить между organizations;
253
- - production environment создается явно и визуально отличается от non-production;
254
- - одинаковое имя ресурса не используется как security identifier;
255
- - удаление project каскадно обрабатывает policies, keys, agents и evidence по документированному lifecycle;
256
- - все list/search/export endpoints проверяются на cross-tenant leakage;
257
- - ошибки не раскрывают существование ресурса другого tenant.
258
-
259
- **P1:**
260
-
261
- - custom environments и environment classes;
262
- - folders/business units;
263
- - resource tags и ownership metadata;
264
- - templates для новых проектов;
265
- - делегированное администрирование по группе или business unit;
266
- - безопасный transfer между projects внутри одной organization с полным аудитом.
267
-
268
- **P2:**
269
-
270
- - enterprise hierarchy для холдинга с несколькими organizations;
271
- - централизованные guardrails сверху и локальные policies снизу;
272
- - cross-project shared scenarios без смешивания данных;
273
- - merger/divestiture workflows для экспорта или разделения tenant data.
274
-
275
- ### 7.3. Acceptance criteria
276
-
277
- - Пользователь organization A не может получить объект organization B по прямому ID, search, pagination cursor, export, websocket, cache key или background job.
278
- - После смены environment с `staging` на `production` требуется новое authorization decision; старое approval не подходит.
279
- - Удаленный project перестает принимать ingest немедленно, а физическое удаление выполняется в опубликованный срок.
280
- - Tenant ID берется из проверенной identity и server-side resource resolution, а не из доверенного client header.
281
-
282
- ## 8. Identity: SSO, SAML, OIDC и SCIM
283
-
284
- ### 8.1. Базовая модель identity
285
-
286
- GhostAPI должен разделять:
287
-
288
- - human users;
289
- - service accounts;
290
- - CI workload identities;
291
- - local agents/runners;
292
- - support/operator identities;
293
- - break-glass identities.
294
-
295
- Email не является постоянным идентификатором. Внутренняя identity связывается с проверенной парой `issuer + subject`, а для SAML также с устойчивым NameID или утвержденным immutable attribute.
296
-
297
- ### 8.2. Enterprise SSO
298
-
299
- **P0:**
300
-
301
- - OIDC для одного проверенного enterprise IdP на пилотного клиента;
302
- - server-side проверка issuer, audience, signature, nonce, state, expiry и redirect URI;
303
- - запрет доверия к произвольным role/group claims без configured mapping;
304
- - MFA enforcement через IdP policy и запись authentication context в audit;
305
- - recovery-процесс, который не позволяет обойти SSO обычным password reset;
306
- - минимум две customer admin identities до включения enforced SSO;
307
- - session revocation и короткий срок для чувствительных admin sessions.
308
-
309
- **P1:**
310
-
311
- - SAML 2.0 и OIDC как стандартные варианты;
312
- - domain verification и SSO discovery;
313
- - enforced SSO для выбранных domains;
314
- - несколько IdP на organization при обоснованной необходимости;
315
- - signed SAML requests, проверка assertion conditions, audience, recipient, InResponseTo и replay protection;
316
- - IdP certificate rotation без простоя;
317
- - session/device inventory и admin revocation;
318
- - step-up authentication для secret, policy, billing и break-glass операций.
319
-
320
- **P2:**
321
-
322
- - phishing-resistant MFA через WebAuthn/passkeys для GhostAPI-managed break-glass accounts;
323
- - conditional access signal ingestion;
324
- - continuous access evaluation;
325
- - identity risk signals и automatic session quarantine.
326
-
327
- ### 8.3. SCIM 2.0
328
-
329
- **P0:** допускается ручное управление ограниченным числом пилотных пользователей, если это письменно согласовано и есть проверенный offboarding SLA.
330
-
331
- **P1:**
332
-
333
- - SCIM Users и Groups;
334
- - create, update, deactivate и group membership sync;
335
- - idempotent PATCH/PUT;
336
- - bearer token хранится только в secret store и показывается один раз;
337
- - token rotation/revocation;
338
- - deactivate немедленно блокирует новые sessions и revokes активные privileged sessions;
339
- - group mapping preview и dry-run;
340
- - защита от случайного массового удаления: quarantine window и admin alert;
341
- - audit для каждой provisioning-операции.
342
-
343
- **P2:**
344
-
345
- - несколько SCIM directories;
346
- - HRIS-driven lifecycle через IdP;
347
- - automatic access reviews;
348
- - временные group assignments с expiry.
349
-
350
- ### 8.4. Пользовательский пример
351
-
352
- > Компания подключает Okta. Группа `GhostAPI-Developers` получает роль Developer в проектах Payments и Messaging, а `GhostAPI-Security` получает Policy Admin без права выполнять production actions. Когда сотрудника деактивируют в Okta, SCIM закрывает доступ, завершает привилегированные sessions и создает audit event менее чем за согласованный offboarding SLA.
353
-
354
- ### 8.5. Acceptance criteria
355
-
356
- - Нельзя войти с токеном от другого issuer или другого OIDC client.
357
- - Повторно отправленная SAML assertion отклоняется.
358
- - Удаление пользователя из SCIM-группы удаляет соответствующий доступ без ручного вмешательства.
359
- - SSO outage не превращает обычную локальную учетную запись в обход enforced SSO.
360
- - Break-glass login уведомляет security contacts, требует phishing-resistant MFA и создает high-severity audit event.
361
-
362
- ## 9. RBAC, ABAC и separation of duties
363
-
364
- ### 9.1. RBAC
365
-
366
- Начальный набор ролей:
367
-
368
- | Роль | Основное назначение |
369
- | --- | --- |
370
- | Organization Owner | Юридически и технически критичные настройки organization, admins и deletion. |
371
- | Organization Admin | Повседневное администрирование без неограниченного доступа к secrets. |
372
- | Identity Admin | SSO, SCIM, domains и group mappings. |
373
- | Security Admin | Global guardrails, policies, incidents и kill switches. |
374
- | Policy Author | Создание draft policies без права единоличной публикации. |
375
- | Policy Approver | Review/publish policies без скрытого редактирования draft. |
376
- | Project Admin | Управление конкретным project и non-production environments. |
377
- | Developer | Сценарии, local/CI runs и просмотр разрешенного evidence. |
378
- | Production Operator | Запрос и выполнение ограниченных production operations. |
379
- | Approver | Одобрение подходящих action requests. |
380
- | Audit Viewer | Read-only audit/evidence export без секретов и мутаций. |
381
- | Billing Admin | Plan, usage, invoices и purchase data без доступа к payload. |
382
- | Support Collaborator | Ограниченный совместный troubleshooting с явным customer grant. |
383
- | Service Account / Workload | Только machine scopes, без интерактивного login. |
384
-
385
- ### 9.2. ABAC
386
-
387
- ABAC учитывает атрибуты:
388
-
389
- - organization, project, environment и resource tags;
390
- - human/workload identity type;
391
- - role и group;
392
- - action type и risk class;
393
- - provider, endpoint, HTTP method и data classification;
394
- - сумма, валюта, количество объектов или cost estimate;
395
- - branch, repository, commit, CI trust level;
396
- - device/session assurance;
397
- - время, регион и network zone;
398
- - наличие ticket/change request;
399
- - policy version, approval state и trust-ladder level.
400
-
401
- Пример правила простым языком:
402
-
403
- > Разрешить GitHub read operations из staging для CI workload проекта `release-bot`. Запретить write operations из pull requests от forks. Для production release требовать signed commit, protected branch и approval человека из группы Release Managers.
404
-
405
- ### 9.3. Требования
406
-
407
- **P0:**
408
-
409
- - централизованный deny-by-default evaluator;
410
- - фиксированные built-in roles;
411
- - project/environment scopes;
412
- - server-side permission checks на каждом endpoint и worker;
413
- - отсутствие доверия к роли из browser/CLI request;
414
- - separation of duties для публикации policy; разделение ролей для production approvals вводится только в production-execution phase;
415
- - единый authorization test matrix.
416
-
417
- **P1:**
418
-
419
- - custom roles;
420
- - ABAC conditions;
421
- - group-based assignments;
422
- - time-limited access;
423
- - access review reports;
424
- - permission simulator: «почему разрешено/запрещено?»;
425
- - bulk change preview;
426
- - deny rules имеют приоритет над allow;
427
- - versioned authorization model и safe migration.
428
-
429
- **P2:**
430
-
431
- - just-in-time privileged access;
432
- - approval-based temporary elevation;
433
- - relationship-based authorization для сложных enterprise-иерархий;
434
- - customer-managed external authorization adapter при сохранении fail-closed semantics.
435
-
436
- ### 9.4. Acceptance criteria
437
-
438
- - Policy Author не может опубликовать собственную high-risk policy, если включено правило двух лиц.
439
- - Billing Admin не видит request/response bodies и credentials.
440
- - Support Collaborator не получает доступ без tenant-specific grant с expiry.
441
- - Изменение group membership влияет на новые authorization decisions в пределах опубликованного latency SLO.
442
- - UI, API, CLI и background workers принимают одинаковое решение для одинакового principal/resource/action/context.
443
-
444
- ## 10. Policy engine и policy-as-code
445
-
446
- Локальный YAML остается удобным entry point, но enterprise-уровень требует полного жизненного цикла политики.
447
-
448
- ### 10.1. Целевая модель
449
-
450
- ```text
451
- Draft -> Validate -> Test -> Review -> Approve -> Sign -> Publish
452
- -> Distribute -> Enforce -> Observe -> Roll back / Retire
453
- ```
454
-
455
- ### 10.2. Возможности
456
-
457
- **P0:**
458
-
459
- - versioned policy schema;
460
- - immutable published versions;
461
- - schema validation и bounded evaluation;
462
- - no remote code execution, templates или unbounded expressions;
463
- - draft/review/publish workflow;
464
- - policy checksum в evidence;
465
- - signed policy bundles для agents;
466
- - emergency rollback на предыдущую version;
467
- - organization guardrail, который project admin не может ослабить;
468
- - audit каждого изменения и решения;
469
- - локальная команда `explain` с понятной decision trace.
470
-
471
- **P1:**
472
-
473
- - policy registry и reusable templates;
474
- - environment inheritance;
475
- - unit tests рядом с policy;
476
- - dry-run на historical sanitized evidence;
477
- - impact analysis до публикации;
478
- - canary rollout по projects/agents;
479
- - policy linter и migration tooling;
480
- - exceptions с owner, reason, scope, expiry и ticket;
481
- - автоматическое истечение исключений;
482
- - GitOps integration и required review.
483
-
484
- **P2:**
485
-
486
- - visual policy builder, генерирующий проверяемый policy-as-code;
487
- - рекомендации по policy на основе наблюдаемых нарушений без автоматической публикации;
488
- - cross-organization policy packs;
489
- - formally verified critical rule subsets;
490
- - customer-managed signing keys.
491
-
492
- ### 10.3. Acceptance criteria
493
-
494
- - Поврежденный, просроченный или неподписанный bundle не применяется.
495
- - Project policy не может разрешить то, что запрещено organization guardrail.
496
- - Rollback восстанавливает предыдущую policy version без ручного редактирования базы.
497
- - Dry-run показывает число новых allow/deny решений и конкретные затронутые resource classes.
498
- - Decision log не содержит secrets или raw sensitive payload.
499
-
500
- ## 11. Approvals и управление рискованными действиями
501
-
502
- ### 11.1. Основная идея
503
-
504
- Approval должен подтверждать не абстрактное «разрешаю агенту работать», а точное действие:
505
-
506
- - actor/workload;
507
- - organization/project/environment;
508
- - provider и operation;
509
- - canonical payload hash;
510
- - risk summary;
511
- - cost/amount limits;
512
- - policy version;
513
- - expiry;
514
- - approver identity;
515
- - допустимое число выполнений.
516
-
517
- ### 11.2. Требования
518
-
519
- **P0:**
520
-
521
- - не входит в hosted CI evidence pilot;
522
- - pilot может хранить только решение по evidence, например `pass`, `fail` или комментарий к отчету; такое решение не дает права выполнить внешнее действие;
523
- - UI не должен называть review CI-отчета approval для production action.
524
-
525
- **Отдельная фаза production execution, до первого внешнего действия:**
526
-
527
- - web approval inbox;
528
- - exact action hash binding;
529
- - single-use или явно bounded-use approval;
530
- - expiration;
531
- - approve/reject/comment;
532
- - approver повторно проходит authorization в момент решения;
533
- - executor повторно проверяет identity, policy, approval и resource state;
534
- - idempotency и receipt;
535
- - high-risk action нельзя одобрить инициатору при separation of duties;
536
- - emergency kill switch;
537
- - sequential и parallel multi-step approvals;
538
- - policy-based approver routing;
539
- - approval через защищенную authenticated web session;
540
- - delegation с expiry;
541
- - escalation и timeout;
542
- - ticket/change-management linkage;
543
- - bulk approvals только для однородного bounded batch с общим manifest hash;
544
- - mobile-friendly UX.
545
-
546
- **Расширения после доказательства основной boundary:**
547
-
548
- - Slack и Microsoft Teams notifications без bearer approval links;
549
- - risk-adaptive approval depth;
550
- - cryptographic approval signing;
551
- - hardware-key requirement для особо чувствительных действий;
552
- - customer-configurable quorum;
553
- - external approval integration с ServiceNow/Jira/ITSM.
554
-
555
- ### 11.3. Acceptance criteria
556
-
557
- - После изменения payload approval становится недействительным.
558
- - Просроченное approval невозможно выполнить даже при повторе старого API request.
559
- - Двойная доставка queue message не приводит к двойному внешнему действию.
560
- - Approver видит human-readable diff и точные последствия, а не только hash.
561
- - Каждое решение и выполнение связано одним correlation/action ID.
562
-
563
- ## 12. Credential vault, KMS, HSM и workload identity
564
-
565
- ### 12.1. Целевая гарантия
566
-
567
- AI-агент, prompt, browser и обычный разработчик не получают plaintext production secret. Они запрашивают ограниченную capability; credential broker получает или создает краткоживущую credential и выполняет разрешенное действие через trusted executor.
568
-
569
- ### 12.2. Требования
570
-
571
- **P0:**
572
-
573
- - не входит в hosted CI evidence pilot;
574
- - hosted pilot не принимает provider credentials и не выполняет provider actions;
575
- - CI ingest secret — это ключ только для загрузки sanitized report, а не provider credential или право на внешнее действие.
576
-
577
- **Отдельная фаза production execution, до первого внешнего действия:**
578
-
579
- - production secrets хранятся в managed secret store, не в application DB;
580
- - envelope encryption через cloud KMS;
581
- - отдельные keys/secrets для staging и production;
582
- - least-privilege IAM для broker;
583
- - secret values не попадают в logs, traces, queue, audit или support tooling;
584
- - rotation/revocation workflow;
585
- - audit использования credential без записи значения;
586
- - broker выполняет только typed supported actions;
587
- - raw generic HTTP executor с произвольным host запрещен;
588
- - защита от SSRF, DNS rebinding, redirect escape и host confusion;
589
- - workload identity federation для AWS, Azure, GCP, GitHub Actions и основных CI;
590
- - short-lived provider credentials;
591
- - BYOV: интеграция с HashiCorp Vault и cloud secret managers;
592
- - per-tenant encryption context;
593
- - automated rotation status и alerts;
594
- - dual control для key administration;
595
- - key lifecycle, disable, schedule destruction и recovery policy;
596
- - secret scanning на ingest и в support bundles.
597
-
598
- **Premium-расширения:**
599
-
600
- - customer-managed keys (CMK/BYOK);
601
- - external key management/HYOK, где это поддерживается;
602
- - HSM-backed keys для signing и особо чувствительных tenants;
603
- - confidential computing для выбранных broker workloads;
604
- - provider-specific ephemeral credential exchange без хранения долгоживущего секрета GhostAPI.
605
-
606
- ### 12.3. Acceptance criteria
607
-
608
- - Ни один API endpoint не возвращает сохраненный production secret после создания.
609
- - Дамп application DB недостаточен для расшифровки secrets без KMS permissions.
610
- - Agent может выполнить разрешенный typed action, но не может вывести credential через response, error, trace или redirect.
611
- - Revocation блокирует новые executions в пределах опубликованного revocation SLO.
612
- - KMS/Vault outage приводит к безопасному отказу production action и понятному incident signal.
613
-
614
- ## 13. Tenant isolation
615
-
616
- Tenant isolation должна быть доказана на уровне application, database, cache, queue, object storage, logs, metrics, support и operations.
617
-
618
- ### 13.1. P0
619
-
620
- - обязательный tenant context после authentication;
621
- - explicit tenant predicates во всех запросах;
622
- - PostgreSQL RLS как дополнительный слой, а не единственная защита;
623
- - tenant-scoped object storage paths и signed URLs;
624
- - opaque cache keys с tenant namespace;
625
- - queue messages содержат tenant/resource IDs, но не secrets/raw payload;
626
- - worker повторно проверяет tenant ownership;
627
- - rate limits минимум по tenant, principal и endpoint class;
628
- - automated cross-tenant authorization tests;
629
- - separate internal admin authorization;
630
- - production access к tenant data только по documented break-glass process.
631
-
632
- ### 13.2. P1
633
-
634
- - tenant-specific quotas и noisy-neighbor protection;
635
- - per-tenant encryption context;
636
- - isolation tests в каждом release;
637
- - support impersonation запрещен; вместо него controlled support session с customer consent;
638
- - tenant-aware observability без утечки names/payload;
639
- - регулярный pentest multi-tenant boundaries;
640
- - export/delete jobs имеют tenant lock и reconciliation report.
641
-
642
- ### 13.3. P2
643
-
644
- - dedicated database/schema/cluster на premium tenant;
645
- - dedicated encryption keys;
646
- - dedicated compute plane;
647
- - cell-based architecture для ограничения blast radius;
648
- - tenant pinning к выбранной region/cell.
649
-
650
- ### 13.4. Objective gate
651
-
652
- Пилот блокируется при любом подтвержденном cross-tenant read/write, cache poisoning, signed URL leakage или worker confusion. GA требует минимум двух независимых типов проверки: automated isolation suite и external penetration test.
653
-
654
- ## 14. Data residency, retention, export и deletion
655
-
656
- ### 14.1. Классификация данных
657
-
658
- Минимальные классы:
659
-
660
- | Класс | Примеры | Default handling |
661
- | --- | --- | --- |
662
- | Public | Публичная документация, provider schemas. | Обычная защита целостности. |
663
- | Internal | Project names, config metadata. | Tenant access control, encryption. |
664
- | Confidential | Sanitized evidence, user identifiers, audit metadata. | Строгий RBAC, encryption, retention. |
665
- | Restricted | Credentials, raw production payload, PHI, highly sensitive customer data. | Не принимать в основной hosted boundary. Нужны отдельная изолированная boundary, договор и усиленные controls; простого toggle недостаточно. |
666
-
667
- ### 14.2. P0
668
-
669
- - актуальный data inventory;
670
- - documented subprocessors и storage locations;
671
- - один четко заявленный hosting region для пилота;
672
- - tenant-configured retention для evidence в поддерживаемом диапазоне;
673
- - default retention и максимальный срок;
674
- - immediate logical deletion и queued physical deletion;
675
- - удаление из primary, cache, search и derived stores;
676
- - backup expiration отдельно задокументирован;
677
- - export организации в machine-readable формате;
678
- - deletion request имеет receipt, status и completion evidence;
679
- - raw credentials, authorization headers, cookies, card data и source code запрещены на hosted ingest;
680
- - sanitization failures quarantine, а не silently accept.
681
-
682
- ### 14.3. P1
683
-
684
- - выбор региона как минимум US и EU;
685
- - tenant data не покидает выбранный регион, кроме явно описанных global control metadata;
686
- - regional subprocessors и documented transfer mechanism;
687
- - configurable retention по data category;
688
- - legal hold с отдельным permission и audit;
689
- - DSAR workflow для персональных данных;
690
- - self-service export/delete;
691
- - deletion propagation SLO;
692
- - cryptographic erasure там, где применимо;
693
- - backup catalog с датой окончательного исчезновения удаленных данных.
694
-
695
- ### 14.4. P2
696
-
697
- - дополнительные sovereign regions;
698
- - customer-controlled storage bucket;
699
- - zero-retention ingest mode;
700
- - metadata-only control plane;
701
- - field-level residency и customer-managed deletion approvals.
702
-
703
- ### 14.5. Acceptance criteria
704
-
705
- - После tenant deletion API сразу перестает обслуживать tenant credentials.
706
- - Delete job создает проверяемый manifest всех затронутых stores.
707
- - Истекшие данные не доступны через обычный API, export, search, cache или support tools.
708
- - Backup restore не возвращает логически удаленные данные в active service без повторного применения deletion ledger.
709
- - Изменение retention показывает ожидаемый объем и дату удаления до подтверждения.
710
-
711
- ## 15. Audit, evidence и SIEM
712
-
713
- ### 15.1. Что аудировать
714
-
715
- - login, logout, failed login, MFA/SSO events;
716
- - user/group/role changes;
717
- - service account и token lifecycle;
718
- - policy draft/review/publish/rollback;
719
- - approvals и executions;
720
- - credential connection/use/rotation/revocation;
721
- - exports, deletion, retention и legal hold;
722
- - billing/entitlement changes;
723
- - support access и break-glass;
724
- - security configuration и kill switches;
725
- - deployment и administrative operator actions.
726
-
727
- ### 15.2. Формат события
728
-
729
- Каждое событие должно иметь:
730
-
731
- - immutable event ID;
732
- - tenant ID;
733
- - timestamp from trusted clock;
734
- - actor type и stable actor ID;
735
- - source/session/workload ID;
736
- - action;
737
- - resource type/ID;
738
- - result и reason code;
739
- - policy/approval version references;
740
- - request/correlation ID;
741
- - previous/current values в redacted structured form, когда это безопасно;
742
- - integrity metadata.
743
-
744
- ### 15.3. Требования
745
-
746
- **P0:**
747
-
748
- - append-only tenant audit;
749
- - tamper-evident chaining или эквивалентная проверка целостности;
750
- - clock synchronization;
751
- - tenant-scoped read/export;
752
- - redaction и запрет secrets;
753
- - доступ только Audit Viewer и admins с отдельным permission;
754
- - audit events для всех P0 critical operations;
755
- - export в JSON/JSONL;
756
- - alert на audit pipeline failure;
757
- - audit write не теряется при успешной критической mutation: единая transaction/outbox boundary.
758
-
759
- **P1, GA core:**
760
-
761
- - near-real-time SIEM streaming;
762
- - один документированный generic webhook/syslog-compatible delivery contract;
763
- - delivery retries, checkpoints и replay;
764
- - immutable/WORM archive option;
765
- - signed exports;
766
- - search, filters и saved views;
767
- - audit retention до договорного срока;
768
- - tenant-visible delivery health.
769
-
770
- **После GA по подтвержденному спросу:**
771
-
772
- - готовые адаптеры Splunk HEC, Microsoft Sentinel/Event Hub и Datadog;
773
- - customer-owned audit bucket;
774
- - cryptographic transparency log;
775
- - detections и correlation rules для agent-specific threats;
776
- - evidence packages, автоматически сопоставленные controls/frameworks.
777
-
778
- ### 15.4. Acceptance criteria
779
-
780
- - Нельзя изменить или удалить отдельное audit event через product API.
781
- - Повреждение цепочки обнаруживается verifier-ом.
782
- - SIEM outage не теряет события: backlog хранится, а после восстановления доставляется с сохранением event ID.
783
- - Export пользователя A не содержит tenant B.
784
- - Support и internal operator actions видны клиенту в audit, если они затрагивали его tenant.
785
-
786
- ## 16. Compliance: SOC 2, ISO 27001, GDPR и HIPAA
787
-
788
- Этот раздел описывает программу работ, а не юридическую гарантию. Решение о применимости и формулировках принимается с квалифицированным counsel и аудитором.
789
-
790
- ### 16.1. SOC 2
791
-
792
- **P0:**
793
-
794
- - определить system boundary и control owners;
795
- - security policies, access control, change management, incident response, vendor management, backup и risk register;
796
- - evidence collection для ключевых controls;
797
- - background checks и security training по применимому законодательству;
798
- - независимый readiness assessment до обещаний клиенту.
799
-
800
- **P1:**
801
-
802
- - SOC 2 Type I или четко опубликованный путь к нему перед GA, в зависимости от ICP;
803
- - затем SOC 2 Type II с достаточным observation period;
804
- - customer-accessible trust center и controlled report sharing;
805
- - remediation process для exceptions.
806
-
807
- ### 16.2. ISO 27001
808
-
809
- **P1/P2:**
810
-
811
- - ISMS scope;
812
- - risk assessment и Statement of Applicability;
813
- - asset inventory, control ownership и internal audit;
814
- - management review и corrective actions;
815
- - сертификация, только когда она нужна рынку и поддерживается реальными процессами.
816
-
817
- ISO 27001 не следует делать первым вместо базовой инженерной безопасности. Сертификат не компенсирует слабую tenant isolation или отсутствие incident response.
818
-
819
- ### 16.3. GDPR
820
-
821
- **P0 для клиентов из EEA/UK:**
822
-
823
- - определить роли controller/processor;
824
- - DPA;
825
- - subprocessors list и notification process;
826
- - lawful processing instructions;
827
- - data minimization и purpose limitation;
828
- - security measures;
829
- - breach notification workflow;
830
- - data subject request support;
831
- - international transfer mechanism, если применимо;
832
- - deletion и retention commitments;
833
- - privacy contact и records of processing.
834
-
835
- **P1:**
836
-
837
- - регион EU;
838
- - self-service privacy workflows;
839
- - DPIA support для high-risk customer deployments;
840
- - документированная обработка customer instructions.
841
-
842
- ### 16.4. HIPAA
843
-
844
- HIPAA нельзя обещать только потому, что данные зашифрованы.
845
-
846
- **До приема PHI обязательно:**
847
-
848
- - определить, действительно ли GhostAPI будет business associate;
849
- - подписывать BAA только после юридической и технической готовности;
850
- - ограничить PHI-approved deployment modes и subprocessors;
851
- - access controls, unique users, audit controls, integrity, transmission security;
852
- - documented risk analysis и workforce procedures;
853
- - backup, contingency и breach workflows;
854
- - запрет PHI в analytics/support systems, не входящих в HIPAA boundary;
855
- - отдельные retention/deletion правила;
856
- - customer configuration guide.
857
-
858
- **Рекомендация:** не включать HIPAA/PHI в первый paid pilot, если конкретный design partner не делает это обязательным. Сначала доказать обычный enterprise boundary.
859
-
860
- ### 16.5. Compliance acceptance criteria
861
-
862
- - Для каждого заявленного control есть owner, описание, evidence source, frequency и последний результат.
863
- - Marketing не использует «compliant/certified», пока соответствующий статус не подтвержден.
864
- - Security questionnaire отвечает фактическому состоянию production, а не плану.
865
- - Новая функция проходит privacy/security review до попадания в заявленный scope.
866
-
867
- ## 17. Billing, entitlements и usage
868
-
869
- ### 17.1. Коммерческая модель
870
-
871
- Первый enterprise-пилот должен оставаться fixed-scope и manual invoice. Не следует строить сложный self-service billing до подтверждения повторяемой единицы ценности.
872
-
873
- Возможные value metrics после проверки спроса:
874
-
875
- - защищенные repositories/CI workflows;
876
- - активные projects или production environments;
877
- - retained sanitized evidence;
878
- - число managed agents/runners;
879
- - production action executions;
880
- - dedicated deployment/region;
881
- - support/SLA tier.
882
-
883
- Seats могут использоваться как secondary limit, но не должны быть единственной ценностью.
884
-
885
- ### 17.2. P0
886
-
887
- - signed order form/SOW и manual invoice;
888
- - tenant plan записан server-side;
889
- - explicit pilot entitlements без card collection;
890
- - usage counters для договорных limits;
891
- - admin-visible usage;
892
- - alerts до превышения;
893
- - non-payment не удаляет customer data автоматически;
894
- - local OSS продолжает работать независимо от hosted entitlement;
895
- - security features, необходимые для безопасной эксплуатации, не отключаются внезапно.
896
-
897
- ### 17.3. P1
898
-
899
- - entitlement service как server-side source of truth;
900
- - versioned plan catalog;
901
- - Stripe Billing или другой провайдер принимает payment data напрямую;
902
- - invoices, PO, annual contract и manual adjustments;
903
- - usage metering с idempotency и reconciliation;
904
- - grace periods;
905
- - downgrade preview;
906
- - overage policy;
907
- - billing audit;
908
- - finance export;
909
- - отделение billing admin от security admin.
910
-
911
- ### 17.4. P2
912
-
913
- - committed use и volume tiers;
914
- - marketplace procurement AWS/Azure/GCP;
915
- - reseller/channel support;
916
- - showback/chargeback по project/business unit;
917
- - customer-specific contract entitlements;
918
- - prepaid action budgets.
919
-
920
- ### 17.5. Acceptance criteria
921
-
922
- - Повторно доставленное usage event не считается дважды.
923
- - Invoice usage можно сверить с immutable metering ledger.
924
- - Истечение paid plan не открывает запрещенные действия и не удаляет данные.
925
- - Клиент заранее видит последствия downgrade.
926
- - Billing provider data не смешивается с product payload и credentials.
927
-
928
- ## 18. Hosted ingestion и control plane API
929
-
930
- ### 18.1. P0 ingestion
931
-
932
- - CI report intake с idempotency key;
933
- - request body hash и conflict response при повторе ключа с другим body;
934
- - commit report + idempotency record + outbox event в одной transaction;
935
- - plaintext ingest secret возвращается один раз, хранится только digest;
936
- - ingest keys имеют scope, owner, created/last-used, expiry и revocation;
937
- - bounded report size и schema version;
938
- - content validation до persistence;
939
- - queue содержит IDs, а не raw report;
940
- - worker имеет permanent idempotency receipt;
941
- - accepted report не теряется после `202`;
942
- - retry guidance в CLI/CI integration.
943
-
944
- ### 18.2. P1 API platform
945
-
946
- - public versioned REST API и OpenAPI specification;
947
- - SDKs минимум TypeScript и Python;
948
- - stable pagination, filtering и error model;
949
- - service-account OAuth/OIDC workload flow вместо статических keys там, где возможно;
950
- - webhook signing, retry и delivery logs;
951
- - API tokens с granular scopes;
952
- - per-tenant quotas;
953
- - deprecation policy;
954
- - sandbox tenant;
955
- - audit для administrative API;
956
- - bulk export jobs с progress/status.
957
-
958
- ### 18.3. P2
959
-
960
- - event streaming;
961
- - private connectivity/PrivateLink-подобные варианты;
962
- - customer-owned ingestion endpoint;
963
- - federated query над customer storage;
964
- - edge ingestion с regional pinning.
965
-
966
- ## 19. Agents, runners, CLI и MCP
967
-
968
- ### 19.1. Product surfaces
969
-
970
- - local developer CLI;
971
- - MCP server для coding agents;
972
- - CI agent;
973
- - private runner/gateway;
974
- - Kubernetes controller/sidecar, если подтвержден спрос;
975
- - fleet management в control plane.
976
-
977
- ### 19.2. P0
978
-
979
- - CI runner связывается с project через scoped ingest key с expiry и revocation;
980
- - signed binaries/packages;
981
- - version и capability reporting;
982
- - policy bundle verification;
983
- - safe local cache;
984
- - remote revoke;
985
- - bounded logs и support bundle;
986
- - explicit online/offline status;
987
- - automatic retry только для idempotent operations;
988
- - CLI exit codes, JSON output и non-interactive CI mode;
989
- - no automatic upload без configured project и consent;
990
- - documented platform enforcement differences.
991
-
992
- ### 19.3. P1
993
-
994
- - fleet inventory и update rings;
995
- - minimum supported version policy;
996
- - automatic update с controlled rollout и rollback;
997
- - proxy, custom CA и enterprise network support;
998
- - GitHub Actions, GitLab CI, CircleCI, Jenkins и Azure DevOps integrations;
999
- - ephemeral runner enrollment;
1000
- - remote diagnostics с customer-approved redacted bundle;
1001
- - CLI configuration profiles;
1002
- - MCP tool permissions tied to enterprise identity and project context.
1003
-
1004
- ### 19.4. Отдельная production-execution phase
1005
-
1006
- - workload OIDC и machine identity после отдельного identity threat model;
1007
- - эта identity обязательна до первого production action и не является опциональным premium-улучшением.
1008
-
1009
- ### 19.5. P2
1010
-
1011
- - Kubernetes operator;
1012
- - eBPF/OS-specific enforcement, только после отдельного threat model;
1013
- - Windows AppContainer и macOS-supported enforcement equivalents;
1014
- - private edge gateway;
1015
- - agent attestation и hardware-backed device identity;
1016
- - policy-aware IDE extensions.
1017
-
1018
- ### 19.6. Acceptance criteria
1019
-
1020
- - Revoked runner больше не получает новые policies или action grants.
1021
- - Старый agent с критической уязвимостью блокируется server-side по minimum version.
1022
- - CLI ясно различает `simulation available` и `egress enforcement unavailable`.
1023
- - Support bundle проходит redaction и показывает пользователю manifest до upload.
1024
- - MCP tool не получает больше permissions, чем соответствующий user/workload.
1025
-
1026
- ## 20. Observability, SLO, SLA, status и incident response
1027
-
1028
- ### 20.1. Что измерять
1029
-
1030
- - API availability и latency p50/p95/p99;
1031
- - authentication/authorization latency и errors;
1032
- - policy distribution freshness;
1033
- - ingestion acceptance и processing latency;
1034
- - queue depth, age и dead letters;
1035
- - audit delivery lag;
1036
- - approval notification/delivery;
1037
- - credential broker success, latency и revocation lag;
1038
- - database pool, replication, storage и WAL;
1039
- - tenant-specific throttling;
1040
- - agent fleet health;
1041
- - backup success и restore verification;
1042
- - deletion/export job age;
1043
- - billing meter lag.
1044
-
1045
- Metrics и traces не должны содержать secrets, raw payload, email или tenant names без необходимости.
1046
-
1047
- ### 20.2. P0
1048
-
1049
- - internal service dashboards;
1050
- - alerting и primary/secondary on-call;
1051
- - documented severity levels;
1052
- - incident commander, communications и technical lead roles;
1053
- - incident runbooks для auth, cross-tenant risk, secret exposure, queue backlog, DB outage и bad deploy;
1054
- - customer contact list;
1055
- - synthetic checks;
1056
- - tested rollback;
1057
- - pilot SLO, но не обязательно финансовый SLA;
1058
- - post-incident review без обвинений и с tracked actions.
1059
-
1060
- Предлагаемые пилотные SLO, которые должны быть подтверждены нагрузочными тестами:
1061
-
1062
- | Показатель | Пилотная цель |
1063
- | --- | --- |
1064
- | Control plane API availability | 99.9% за месяц, исключая согласованные окна. |
1065
- | Report intake p95 | До 500 мс для заявленного bounded payload при нормальной нагрузке. |
1066
- | Accepted report durability | 0 потерянных report IDs после успешного `202` в тестах отказа. |
1067
- | Critical auth revocation | Применение не дольше 5 минут; цель улучшить до 1 минуты. |
1068
- | Critical incident acknowledgement | До 30 минут для пилотного support window, если договором не указано строже. |
1069
-
1070
- Это целевые значения, а не текущие гарантии.
1071
-
1072
- ### 20.3. P1
1073
-
1074
- - опубликованные SLO и error budgets;
1075
- - contract SLA и service credits;
1076
- - public status page;
1077
- - component-level status;
1078
- - incident subscription;
1079
- - customer communication templates;
1080
- - 24x7 response для Sev-1 на соответствующем плане;
1081
- - quarterly reliability review;
1082
- - chaos/failure drills;
1083
- - capacity headroom policy;
1084
- - blameless RCA delivery window.
1085
-
1086
- ### 20.4. P2
1087
-
1088
- - higher SLA для dedicated deployment;
1089
- - customer-specific telemetry export;
1090
- - private status page;
1091
- - proactive anomaly detection;
1092
- - joint incident exercises;
1093
- - business-process SLO: например, время от action request до безопасного decision.
1094
-
1095
- ### 20.5. Acceptance criteria
1096
-
1097
- - Каждый alert имеет owner, runbook и проверенный routing.
1098
- - Status page не остается зеленой при известном массовом customer impact.
1099
- - Sev-1 exercise проводится до первого production pilot action.
1100
- - SLO считается из customer-visible signals, а не только process uptime.
1101
- - Для exhausted error budget определены ограничения на feature releases.
1102
-
1103
- ## 21. Backup и disaster recovery
1104
-
1105
- ### 21.1. P0
1106
-
1107
- - automated encrypted backups;
1108
- - documented backup scope;
1109
- - restore в изолированное окружение;
1110
- - регулярная проверка checksum/integrity;
1111
- - backup strategy для ключей самого hosted-сервиса; provider credentials в P0 отсутствуют;
1112
- - database PITR, если используется;
1113
- - runbook с владельцами;
1114
- - минимум один production-equivalent restore drill до пилота;
1115
- - измеренные, а не заявленные RPO/RTO;
1116
- - reconciliation accepted reports после восстановления;
1117
- - deletion ledger повторно применяется после restore.
1118
-
1119
- Целевые пилотные ориентиры можно принять только после drills:
1120
-
1121
- - RPO не хуже 15 минут для control-plane metadata;
1122
- - RTO не хуже 4 часов для первого ограниченного пилота;
1123
- - более жесткие цели вводятся только после архитектурного и операционного доказательства.
1124
-
1125
- Не следует обещать RPO менее минуты и RTO менее пяти минут на основании одной только возможности vendor PITR.
1126
-
1127
- Это поэтапные цели. Для узкого paid pilot release gate — выполненный production-equivalent restore drill и фактически измеренные значения не хуже договорных `RPO 15 минут / RTO 4 часа`. Пункт 5 в `docs/hosted-pilot.md` с порогами потери менее 60 секунд и восстановления менее 5 минут означает: такую более жесткую заявку надо отклонять, пока repeated drills ее не докажут. Эти пороги не являются P0-критерием и могут стать целью GA или premium DR tier только после подходящей архитектуры и повторных испытаний.
1128
-
1129
- ### 21.2. P1
1130
-
1131
- - quarterly restore drills;
1132
- - cross-region backup copy согласно residency;
1133
- - dependency failure plan;
1134
- - tested region recovery;
1135
- - customer communication и decision tree;
1136
- - backup retention policy;
1137
- - restore access controls и audit;
1138
- - DR evidence для enterprise review.
1139
-
1140
- ### 21.3. P2
1141
-
1142
- - hot standby/dedicated DR region;
1143
- - customer-selected RPO/RTO tiers;
1144
- - automated failover там, где он безопаснее ручного;
1145
- - isolated tenant restore;
1146
- - customer-observed DR exercise.
1147
-
1148
- ### 21.4. Acceptance criteria
1149
-
1150
- - Restore drill доказывает доступность данных и application-level consistency, а не только запуск database.
1151
- - Accepted-but-not-processed reports reconciled без дублей.
1152
- - Восстановленные credentials остаются revocation-aware.
1153
- - DR не нарушает data residency.
1154
- - Каждый drill оставляет timestamped evidence, фактические RPO/RTO и remediation items.
1155
-
1156
- ## 22. Software supply chain, SBOM, signing и provenance
1157
-
1158
- ### 22.1. P0
1159
-
1160
- - protected branches и required reviews;
1161
- - least-privilege CI permissions;
1162
- - pinned CI actions/dependencies, где это практически возможно;
1163
- - reproducible build steps;
1164
- - production dependency scanning;
1165
- - secret scanning;
1166
- - source and artifact malware checks;
1167
- - SBOM для CLI, hosted images и agents;
1168
- - container image scanning;
1169
- - signed release artifacts/images;
1170
- - build provenance, связанный с commit SHA;
1171
- - release checklist и rollback;
1172
- - запрет публикации с developer laptop без approved pipeline;
1173
- - documented vulnerability intake и disclosure process.
1174
-
1175
- ### 22.2. P1
1176
-
1177
- - SLSA-aligned provenance на выбранном уровне;
1178
- - dependency update policy;
1179
- - license policy;
1180
- - artifact verification в deployment;
1181
- - admission policy для unsigned images;
1182
- - provenance/SBOM доступны enterprise-клиентам;
1183
- - hermetic или максимально изолированные builds;
1184
- - release key rotation и incident plan;
1185
- - tamper-resistant release log.
1186
-
1187
- ### 22.3. P2
1188
-
1189
- - reproducible builds с независимой verification;
1190
- - customer-verifiable transparency log;
1191
- - FIPS-validated cryptographic modules в отдельном deployment tier, если нужен рынку;
1192
- - signed policy/provider packs от партнеров;
1193
- - hardware-backed release signing.
1194
-
1195
- ### 22.4. Acceptance criteria
1196
-
1197
- - Клиент может связать установленный binary/image с source commit и CI build.
1198
- - Deployment отклоняет unsigned или revoked artifact.
1199
- - SBOM генерируется на каждый release и проходит policy check.
1200
- - Critical dependency vulnerability имеет documented triage и remediation SLA.
1201
-
1202
- ## 23. Варианты развертывания
1203
-
1204
- ### 23.1. Multi-tenant SaaS
1205
-
1206
- Основной повторяемый вариант для GA.
1207
-
1208
- **P1:**
1209
-
1210
- - shared control plane с доказанной tenant isolation;
1211
- - regional choices;
1212
- - standard SSO/SCIM/SIEM;
1213
- - published SLO/SLA;
1214
- - автоматизированные upgrades;
1215
- - стандартный DPA и subprocessors list.
1216
-
1217
- ### 23.2. Dedicated single-tenant
1218
-
1219
- **P2 или ранний contractual requirement:**
1220
-
1221
- - выделенный application/data cell;
1222
- - отдельная database и keys;
1223
- - согласованный maintenance window;
1224
- - customer-specific scaling/SLA;
1225
- - отдельный DR plan;
1226
- - централизованное vendor-managed обновление;
1227
- - четкая shared responsibility matrix.
1228
-
1229
- ### 23.3. On-premises/private cloud
1230
-
1231
- Не следует предлагать до появления повторяемой установки и поддержки.
1232
-
1233
- **P2:**
1234
-
1235
- - Kubernetes-based deployment с documented prerequisites;
1236
- - Helm/operator или эквивалент;
1237
- - air-gapped install/upgrade path;
1238
- - offline license/entitlement model;
1239
- - customer-managed database, object storage, KMS и ingress options;
1240
- - backup/restore tooling;
1241
- - diagnostic bundle без скрытого outbound traffic;
1242
- - upgrade compatibility matrix;
1243
- - long-term support releases;
1244
- - security patches отдельно от feature upgrades;
1245
- - shared responsibility model;
1246
- - environment validation tool.
1247
-
1248
- ### 23.4. Гибридный вариант
1249
-
1250
- Control metadata может находиться в SaaS, а execution, raw traffic и credentials остаются в customer network. Это наиболее естественный premium-вариант для GhostAPI.
1251
-
1252
- ### 23.5. Acceptance criteria
1253
-
1254
- - Deployment option имеет threat model, data-flow diagram и responsibility matrix.
1255
- - On-prem install воспроизводится командой, не участвовавшей в разработке.
1256
- - Upgrade и rollback проверены на поддерживаемых версиях.
1257
- - SaaS control plane не может незаметно переключить customer-managed runner на другой provider/region.
1258
-
1259
- ## 24. Enterprise admin UX
1260
-
1261
- Admin UX должен снижать риск ошибки, а не только показывать таблицы.
1262
-
1263
- ### 24.1. P0
1264
-
1265
- - organization/project/environment navigation;
1266
- - members и role assignments;
1267
- - ingest keys;
1268
- - policy versions и review;
1269
- - очередь review для CI evidence без права запускать внешние действия;
1270
- - audit search/export;
1271
- - usage overview;
1272
- - clear production visual treatment;
1273
- - confirmations для destructive actions;
1274
- - no secret re-display;
1275
- - accessibility baseline и keyboard navigation;
1276
- - timezone-aware timestamps;
1277
- - immutable IDs рядом с friendly names.
1278
-
1279
- ### 24.2. P1
1280
-
1281
- - SSO/SCIM setup wizard и validation;
1282
- - group mapping preview;
1283
- - permission simulator;
1284
- - policy impact view;
1285
- - agent fleet health;
1286
- - SIEM/webhook delivery health;
1287
- - retention/deletion center;
1288
- - trust center link;
1289
- - support access grants;
1290
- - bulk actions с preview и rollback там, где возможно;
1291
- - localization-ready UI;
1292
- - WCAG 2.1 AA target.
1293
-
1294
- ### 24.3. P2
1295
-
1296
- - organization graph и attack-path views;
1297
- - executive risk dashboard;
1298
- - custom dashboards;
1299
- - guided compliance evidence;
1300
- - delegated business-unit administration;
1301
- - change plans: показать все последствия до применения.
1302
-
1303
- ### 24.4. Acceptance criteria
1304
-
1305
- - Невозможно перепутать production и staging только из-за одинакового имени.
1306
- - Любая destructive operation показывает scope, последствия и retention behavior.
1307
- - Permission simulator использует тот же evaluator, что production authorization.
1308
- - Sensitive pages требуют recent/step-up authentication.
1309
-
1310
- ## 25. Интеграции
1311
-
1312
- ### 25.1. P0
1313
-
1314
- - GitHub Actions и GitHub App для одного подтвержденного workflow;
1315
- - generic CI через CLI и JSON artifacts;
1316
- - один enterprise IdP через OIDC;
1317
- - JSON/JSONL audit export;
1318
- - один ticket link field для incidents и CI evidence review.
1319
-
1320
- ### 25.2. P1: GA core
1321
-
1322
- - generic SAML/OIDC и SCIM contracts, проверенные минимум с двумя IdP;
1323
- - generic SIEM event destination с retries, checkpoints и replay;
1324
- - webhooks и public API;
1325
- - минимум одна дополнительная CI-система, выбранная по спросу пилотов;
1326
-
1327
- ### 25.3. После GA или по договорному спросу
1328
-
1329
- - GitLab, Azure DevOps, Jenkins и CircleCI adapters сверх обязательного GA-набора;
1330
- - готовые Okta, Microsoft Entra ID и Google Workspace setup flows;
1331
- - Slack и Microsoft Teams;
1332
- - Splunk, Sentinel и Datadog adapters;
1333
- - Jira и ServiceNow;
1334
- - HashiCorp Vault, AWS Secrets Manager, Azure Key Vault и GCP Secret Manager только вместе с отдельной credential boundary;
1335
- - AWS/GCP/Azure workload identity только после identity threat model; для production execution — в его отдельной фазе;
1336
- - Terraform provider, если он нужен для повторяемого onboarding.
1337
-
1338
- ### 25.4. P2
1339
-
1340
- - major PAM systems;
1341
- - enterprise data catalogs;
1342
- - policy repositories;
1343
- - custom provider pack marketplace;
1344
- - private integration SDK;
1345
- - bidirectional ITSM change workflows.
1346
-
1347
- ### 25.5. Интеграционный стандарт
1348
-
1349
- Каждая интеграция должна иметь:
1350
-
1351
- - explicit scopes;
1352
- - least-privilege setup guide;
1353
- - credential rotation/revocation;
1354
- - health status;
1355
- - retry/idempotency semantics;
1356
- - audit events;
1357
- - data categories и residency impact;
1358
- - uninstall cleanup;
1359
- - version compatibility;
1360
- - test environment.
1361
-
1362
- ## 26. Support и customer success
1363
-
1364
- ### 26.1. Первый пилот
1365
-
1366
- **P0:**
1367
-
1368
- - named technical owner;
1369
- - onboarding plan;
1370
- - согласованные success criteria;
1371
- - weekly review;
1372
- - support hours и escalation path;
1373
- - shared issue tracker;
1374
- - incident contacts;
1375
- - closeout report;
1376
- - documented exclusions;
1377
- - no undocumented production access by support.
1378
-
1379
- Пример критериев успешного пилота:
1380
-
1381
- - один реальный CI workflow стабильно работает четыре недели;
1382
- - минимум один release/security decision использует GhostAPI evidence;
1383
- - на поддерживаемом Linux runner тестовая попытка production egress блокируется namespace boundary и приводит к ожидаемому CI fail; Windows/macOS не используются как доказательство egress enforcement;
1384
- - onboarding занимает не более согласованного числа рабочих дней;
1385
- - customer security review не выявляет незакрытый blocker;
1386
- - клиент письменно подтверждает ценность и решение о продолжении или причины отказа.
1387
-
1388
- ### 26.2. GA
1389
-
1390
- **P1:**
1391
-
1392
- - support portal;
1393
- - severity definitions;
1394
- - response targets по plan;
1395
- - 24x7 Sev-1 для enterprise tier;
1396
- - customer success owner для крупных accounts;
1397
- - onboarding templates;
1398
- - quarterly business/security reviews;
1399
- - knowledge base;
1400
- - support access grants с expiry и audit;
1401
- - CSAT и time-to-resolution tracking;
1402
- - product escalation process.
1403
-
1404
- ### 26.3. Premium
1405
-
1406
- **P2:**
1407
-
1408
- - technical account manager;
1409
- - dedicated Slack/Teams channel;
1410
- - architecture reviews;
1411
- - custom incident exercises;
1412
- - migration assistance;
1413
- - premium provider pack development;
1414
- - on-site/regulated-environment support.
1415
-
1416
- ## 27. Legal и procurement readiness
1417
-
1418
- ### 27.1. P0
1419
-
1420
- - legal entity и authority to contract;
1421
- - pilot agreement/SOW;
1422
- - order form или manual invoice terms;
1423
- - privacy policy и terms, соответствующие фактическому сервису;
1424
- - DPA при обработке personal data;
1425
- - subprocessors list;
1426
- - security exhibit;
1427
- - acceptable use policy;
1428
- - IP ownership и OSS notices;
1429
- - confidentiality;
1430
- - limitation of liability, warranty и indemnity, согласованные counsel;
1431
- - incident notification terms;
1432
- - data return/deletion at termination;
1433
- - support scope;
1434
- - explicit statement, что card/payment credentials не обрабатываются GhostAPI.
1435
-
1436
- ### 27.2. P1
1437
-
1438
- - standard MSA, DPA, order form и SLA;
1439
- - security questionnaire package;
1440
- - insurance: cyber, E&O и другие по ICP;
1441
- - W-9/налоговые документы для US procurement;
1442
- - vendor onboarding information;
1443
- - export controls/sanctions review;
1444
- - accessibility statement;
1445
- - data residency addendum;
1446
- - records retention policy;
1447
- - trust center;
1448
- - documented contract deviation approval.
1449
-
1450
- ### 27.3. P2
1451
-
1452
- - marketplace terms;
1453
- - government/regulated addenda;
1454
- - custom BAA после HIPAA readiness;
1455
- - on-prem license and support agreement;
1456
- - source-code escrow только при реальной коммерческой необходимости;
1457
- - advanced audit rights process.
1458
-
1459
- ### 27.4. Acceptance criteria
1460
-
1461
- - Договор не обещает функцию, регион, SLA или compliance status, отсутствующие в production.
1462
- - Security answers имеют владельца и дату последней проверки.
1463
- - Termination workflow проверяет export, access cutoff, retention и deletion.
1464
-
1465
- ## 28. Analytics и privacy
1466
-
1467
- ### 28.1. Принципы
1468
-
1469
- - измерять продуктовую ценность, а не собирать все возможное;
1470
- - не отправлять raw API payload, source code, prompts, credentials или end-user data в product analytics;
1471
- - tenant admins понимают, какие данные собираются;
1472
- - local OSS telemetry остается opt-in и не превращается незаметно в cloud upload;
1473
- - security/audit telemetry отделена от product analytics.
1474
-
1475
- ### 28.2. P0
1476
-
1477
- - event catalog;
1478
- - purpose и retention для каждого события;
1479
- - opaque IDs;
1480
- - no sensitive payload;
1481
- - tenant-level enablement/notice;
1482
- - access controls;
1483
- - deletion workflow;
1484
- - pilot success metrics собираются преимущественно из агрегатов и customer-confirmed outcomes.
1485
-
1486
- ### 28.3. P1
1487
-
1488
- - privacy review для новых events;
1489
- - regional analytics routing;
1490
- - configurable product analytics;
1491
- - data quality monitoring;
1492
- - self-service usage analytics;
1493
- - separation между billing meters и behavioral analytics;
1494
- - documented cookie/browser analytics consent, если применяется.
1495
-
1496
- ### 28.4. P2
1497
-
1498
- - privacy-preserving benchmarks;
1499
- - customer-controlled analytics export;
1500
- - differential privacy или aggregation thresholds для cross-customer insights;
1501
- - no-training default и отдельное explicit opt-in для любых ML use cases.
1502
-
1503
- ### 28.5. Acceptance criteria
1504
-
1505
- - Инженер может перечислить все networked telemetry destinations.
1506
- - Отключение optional analytics не ломает security/audit controls.
1507
- - Удаление tenant распространяется на analytics согласно документированному SLA.
1508
- - Никакие customer data не используются для обучения моделей без отдельного явного соглашения.
1509
-
1510
- ## 29. Testing и security program
1511
-
1512
- ### 29.1. Инженерные тесты P0
1513
-
1514
- - unit, integration и end-to-end tests;
1515
- - authorization matrix tests;
1516
- - cross-tenant negative tests;
1517
- - idempotency и queue redelivery tests;
1518
- - bounded parser/fuzz tests;
1519
- - secret redaction regression;
1520
- - migration tests на production-shaped data;
1521
- - backup restore drill;
1522
- - load/soak tests с реальными p99 payload sizes;
1523
- - failure injection: process death после commit, queue outage и DB interruption;
1524
- - signed artifact verification;
1525
- - browser security headers и CSRF/session tests;
1526
- - deletion/export reconciliation;
1527
- - manual threat-model review.
1528
-
1529
- KMS outage, broker SSRF/redirect/DNS и duplicate external action tests обязательны в отдельной production-execution фазе, но не входят в CI evidence P0.
1530
-
1531
- ### 29.2. Security program P0
1532
-
1533
- - security owner;
1534
- - asset/data inventory;
1535
- - threat models;
1536
- - secure SDLC checklist;
1537
- - vulnerability management;
1538
- - dependency and secret scanning;
1539
- - access reviews;
1540
- - incident response plan;
1541
- - security contact и disclosure policy;
1542
- - vendor risk review;
1543
- - logging/monitoring;
1544
- - reviewed production deployment changes;
1545
- - least-privilege cloud IAM;
1546
- - separate production access и break-glass.
1547
-
1548
- ### 29.3. P1
1549
-
1550
- - external penetration test до GA и после крупных boundary changes;
1551
- - annual pentest;
1552
- - continuous vulnerability scanning;
1553
- - bug bounty или managed disclosure после стабилизации;
1554
- - quarterly access reviews;
1555
- - security training и phishing exercises;
1556
- - tabletop incident exercises;
1557
- - security architecture review для high-risk features;
1558
- - code owners для sensitive modules;
1559
- - remediation SLA по severity;
1560
- - independent compliance readiness/audit.
1561
-
1562
- ### 29.4. P2
1563
-
1564
- - red-team exercises для agent prompt/action abuse;
1565
- - adversarial testing provider packs;
1566
- - formal methods для critical policy/action invariants;
1567
- - customer-participating purple-team exercises;
1568
- - continuous control monitoring;
1569
- - isolated security research environment.
1570
-
1571
- ### 29.5. Security acceptance criteria
1572
-
1573
- - Для каждой release boundary действует одно правило из раздела 2: затрагивающие ее Critical/High findings должны быть исправлены либо функция удалена из scope.
1574
- - Все P0 threat scenarios имеют regression tests или documented manual control.
1575
- - Production access review завершен до onboarding.
1576
- - Secrets scan и dependency scan блокируют release по утвержденной severity policy.
1577
- - Critical/High findings внешнего pentest закрыты до GA; для более низких severity действует documented remediation policy.
1578
-
1579
- ## 30. Фазы поставки
1580
-
1581
- Фазы задаются evidence gates, а не красивыми датами. Оценки времени появляются только после команды, design partners и capacity plan.
1582
-
1583
- ### Фаза 0. Подтвердить ценность и заморозить pilot boundary
1584
-
1585
- **Цель:** не строить широкую enterprise-платформу без покупателя и конкретного workflow.
1586
-
1587
- **Результаты:**
1588
-
1589
- - 3-5 design partners с документированными workflows;
1590
- - минимум один buyer подтверждает budget и procurement path;
1591
- - выбран один pilot workflow, например shared CI evidence;
1592
- - data-flow и threat model;
1593
- - явно исключены production credentials/actions, raw traffic и workload federation;
1594
- - pilot success criteria и exit criteria;
1595
- - cost model и staffing plan.
1596
-
1597
- **Gate 0:** нужна реальная положительная проверка: подписанный pilot intent/SOW, конкретный LOI с выбранным CI workflow и buyer или оплаченный pilot decision. Интервью, интерес к demo и документированный отказ не открывают gate. Без положительного сигнала не строить billing, broad SSO matrix, marketplace или production action gateway.
1598
-
1599
- ### Фаза 1. P0 foundation для первого платного enterprise-пилота
1600
-
1601
- **Цель:** безопасно обслужить одного-двух клиентов с ограниченным scope и ручной операционной поддержкой.
1602
-
1603
- **Обязательный объем:**
1604
-
1605
- - deployed hosted control plane;
1606
- - organizations/projects/environments;
1607
- - OIDC SSO для pilot IdP;
1608
- - built-in RBAC и tenant isolation;
1609
- - scoped ingest keys с expiry и revocation;
1610
- - immutable policy versions и signed bundles;
1611
- - sanitized report ingestion;
1612
- - audit/export;
1613
- - retention/delete/export basics;
1614
- - observability/on-call/runbooks;
1615
- - backup/restore drill;
1616
- - manual invoice и explicit entitlements;
1617
- - legal/privacy/security pilot package;
1618
- - signed artifacts, SBOM и vulnerability process;
1619
- - named support и closeout process.
1620
-
1621
- **Не включать по умолчанию:**
1622
-
1623
- - arbitrary production action execution;
1624
- - PHI;
1625
- - full SCIM;
1626
- - multi-region writes;
1627
- - self-service billing;
1628
- - on-prem;
1629
- - custom policy language с исполняемым кодом.
1630
-
1631
- Также исключены production approvals, provider credential storage/execution, workload identity federation, raw traffic ingest и любые внешние side effects.
1632
-
1633
- ### Фаза 2. Повторяемость после первого пилота
1634
-
1635
- **Цель:** доказать, что onboarding и value повторяются у нескольких клиентов.
1636
-
1637
- **Результаты:**
1638
-
1639
- - минимум 3 платных или эквивалентно committed customers в одном ICP;
1640
- - standard onboarding;
1641
- - SAML/OIDC matrix;
1642
- - SCIM;
1643
- - custom roles/ABAC baseline;
1644
- - generic SIEM delivery и одна дополнительная CI integration по подтвержденному спросу;
1645
- - entitlement service;
1646
- - measured unit economics;
1647
- - region strategy;
1648
- - external pentest;
1649
- - SOC 2 readiness.
1650
-
1651
- **Gate 2:** минимум два клиента независимо достигают одинакового measurable outcome, а support load и gross margin имеют приемлемую траекторию.
1652
-
1653
- ### Фаза 3. Enterprise GA
1654
-
1655
- **Цель:** продукт можно продавать по стандартному процессу без founder-operated исключений.
1656
-
1657
- **Результаты:**
1658
-
1659
- - все P1 controls, относящиеся к GA core; demand-driven adapters и production execution сюда не входят;
1660
- - published SLO/SLA/status;
1661
- - standard contracts/DPA/security package;
1662
- - SOC 2 milestone, выбранный по требованиям рынка;
1663
- - US/EU residency, если ICP требует;
1664
- - self-service admin для identity, retention, SIEM и agents;
1665
- - tested DR;
1666
- - stable public API и deprecation policy;
1667
- - 24x7 Sev-1 process;
1668
- - external pentest closure;
1669
- - repeatable billing and entitlement reconciliation.
1670
-
1671
- ### Фаза 4. Отдельная production-execution boundary
1672
-
1673
- **Цель:** после успешного evidence-продукта безопасно добавить строго ограниченные внешние действия. Эта фаза не открывается toggle-ом в существующем tenant: нужны отдельные сервисная и сетевая границы, threat model, security review, operations и договор.
1674
-
1675
- **Результаты:**
1676
-
1677
- - production credential broker с ephemeral identity;
1678
- - workload identity federation и short-lived provider credentials;
1679
- - advanced approvals;
1680
- - trust ladder от simulation к bounded autonomy;
1681
- - attack-path analytics;
1682
- - cross-provider synthetic worlds;
1683
- - policy recommendations и formal verification для critical controls;
1684
- - production action observability, reconciliation и kill switches.
1685
-
1686
- ### Фаза 5. Premium deployment и интеграции
1687
-
1688
- **Цель:** добавлять дорогие варианты только при подтвержденном спросе.
1689
-
1690
- **Результаты:** dedicated/hybrid/on-prem, CMK/HYOK/HSM, готовые SIEM/ITSM/chat adapters, advanced attestation, regulated tiers и customer-specific DR.
1691
-
1692
- ## 31. Объективные release gates
1693
-
1694
- ### 31.1. Gate: первый платный enterprise-пилот
1695
-
1696
- Все пункты обязательны для фиксированной границы hosted CI evidence pilot. Production actions, provider credentials, workload federation и raw traffic в эту границу не входят и не могут быть добавлены исключением:
1697
-
1698
- - подписан SOW с одним workflow, сроком, ценой, support boundary и success criteria;
1699
- - hosted pilot environment развернуто через reviewed production pipeline;
1700
- - tenant isolation suite проходит без cross-tenant findings;
1701
- - OIDC SSO и offboarding проверены с IdP клиента;
1702
- - P0 RBAC проверен на UI, API и workers;
1703
- - ingestion idempotency/failure tests доказывают отсутствие потери accepted reports;
1704
- - report payload bounded и sanitized; запрещенные данные reject/quarantine;
1705
- - audit покрывает все critical mutations;
1706
- - backup restore drill выполнен, фактические RPO/RTO записаны;
1707
- - on-call и incident exercise проведены;
1708
- - единое правило Critical/High из раздела 2 выполнено для pilot boundary;
1709
- - data inventory, DPA/subprocessors и deletion terms reviewed;
1710
- - signed artifacts и SBOM доступны;
1711
- - usage и entitlements сверяются вручную;
1712
- - клиент получил architecture/data-flow/security overview;
1713
- - marketing не называет пилот GA или certified service.
1714
-
1715
- ### 31.2. Gate: Enterprise GA
1716
-
1717
- - минимум 3 успешно завершенных enterprise deployments в выбранном ICP;
1718
- - минимум 2 клиента подтверждают повторяемый measurable value;
1719
- - onboarding median укладывается в целевой срок без founder-only действий;
1720
- - все P1 identity: SAML/OIDC, SCIM, session controls;
1721
- - RBAC/ABAC/custom roles и access reviews;
1722
- - US/EU residency, если заявляется;
1723
- - SIEM streaming и delivery replay;
1724
- - public status, SLO и SLA работают минимум один внутренний observation period;
1725
- - quarterly restore/DR drill пройден;
1726
- - Critical/High findings external pentest закрыты;
1727
- - SOC 2/ISO status сформулирован точно и подтвержден;
1728
- - billing/entitlement/usage reconciliation доказан;
1729
- - support и 24x7 Sev-1 process проверены;
1730
- - documented API compatibility/deprecation policy;
1731
- - capacity test показывает минимум 2x ожидаемого GA peak с допустимым headroom;
1732
- - unit economics и support cost не делают каждый новый tenant ручным проектом.
1733
-
1734
- ### 31.3. Gate: production action execution
1735
-
1736
- Этот gate отдельный и строже hosted evidence pilot:
1737
-
1738
- - typed provider-specific executor;
1739
- - broker никогда не возвращает secret агенту;
1740
- - exact action hash approval;
1741
- - idempotency и ambiguous outcome reconciliation;
1742
- - provider receipt и verification;
1743
- - kill switches по organization/project/environment/provider/action;
1744
- - budgets и rate limits;
1745
- - deny-by-default egress;
1746
- - SSRF/redirect/DNS protections;
1747
- - workload identity и short-lived credentials;
1748
- - external pentest/red-team этой boundary;
1749
- - game-day с credential revoke, provider timeout и duplicate execution;
1750
- - договор явно описывает ответственность и ограничения.
1751
-
1752
- ### 31.4. Gate: on-prem GA
1753
-
1754
- - чистая установка независимой командой;
1755
- - upgrade N-1 -> N и rollback tested;
1756
- - air-gap procedure;
1757
- - support bundle и health checks;
1758
- - compatibility matrix;
1759
- - backup/restore;
1760
- - license behavior не ломает безопасные функции при временной потере связи;
1761
- - security patches доставляются отдельно;
1762
- - shared responsibility matrix;
1763
- - reproducible customer documentation.
1764
-
1765
- ## 32. Сводка Must-have, GA и Premium
1766
-
1767
- | Область | До первого платного пилота | Enterprise GA | Premium differentiator |
1768
- | --- | --- | --- | --- |
1769
- | Identity | Один OIDC IdP, enforced SSO, safe recovery. | SAML + OIDC, SCIM, domain discovery, session controls. | Conditional access, continuous evaluation, advanced MFA. |
1770
- | Tenancy | Org/project/environment, strict isolation. | Hierarchy, groups, templates, regional tenancy. | Dedicated cells, holding-company model. |
1771
- | Authorization | Built-in RBAC, scopes, separation of duties. | Custom roles, ABAC, access reviews. | JIT privilege, relationship-based auth. |
1772
- | Policy | Versioned, signed, reviewed, rollback. | Dry-run, impact, templates, canary, GitOps. | Visual builder, formal critical rules, recommendations. |
1773
- | Approvals | Не входят: только review CI evidence без права на внешнее действие. | Не входят в GA core evidence-продукта. | Отдельная production-execution phase: exact hash, expiry, single-use, затем quorum/hardware signing. |
1774
- | Credentials | Provider credentials запрещены; ingest key дает только право загрузить sanitized report. | Не входят в GA core evidence-продукта. | Отдельная production-execution phase: KMS-backed broker, workload federation, short-lived credentials, затем CMK/HYOK/HSM. |
1775
- | Data | Inventory, one region, retention/export/delete. | US/EU, legal hold, DSAR, deletion SLO. | Sovereign/zero-retention/customer storage. |
1776
- | Audit | Tamper-evident audit и JSON export. | Generic SIEM streaming с replay, WORM, signed export. | Vendor-specific adapters, transparency log и advanced detections. |
1777
- | Reliability | Internal SLO, on-call, restore drill. | Public SLO/SLA/status, 24x7 Sev-1, DR cadence. | Higher dedicated SLA и customer drills. |
1778
- | Billing | Manual invoice, pilot entitlements, counters. | Entitlement service, invoicing, usage reconciliation. | Marketplaces, committed use, chargeback. |
1779
- | Deployment | Limited SaaS pilot. | Multi-tenant SaaS с region choice. | Dedicated, hybrid, on-prem/air-gap. |
1780
- | Compliance | Policies, DPA, readiness evidence. | SOC 2 milestone, GDPR operations, trust center. | ISO 27001, HIPAA tier, regulated addenda. |
1781
- | Supply chain | SBOM, signing, scans, provenance. | Verified deployment, SLSA-aligned controls. | Hardware signing, reproducible verification. |
1782
- | Support | Named owner, agreed hours, closeout. | Portal, 24x7 Sev-1, customer success. | TAM, joint exercises, custom engineering. |
1783
-
1784
- ## 33. Метрики продукта и бизнеса
1785
-
1786
- ### 33.1. Ценность
1787
-
1788
- - доля protected workflows, где evidence реально участвует в merge/release decision;
1789
- - число предотвращенных production egress/credential incidents с проверяемым контекстом;
1790
- - число integration defects, найденных до merge;
1791
- - время onboarding до первого успешного protected run;
1792
- - weekly active protected workflows, а не просто logins;
1793
- - доля обязательных scenarios, стабильно выполняемых в CI;
1794
- - customer-confirmed outcomes.
1795
-
1796
- ### 33.2. Безопасность
1797
-
1798
- - cross-tenant incidents: цель 0;
1799
- - secret exposure incidents: цель 0;
1800
- - time to revoke identity/credential;
1801
- - policy decision error rate;
1802
- - open vulnerabilities по severity/age;
1803
- - access review completion;
1804
- - audit/SIEM delivery lag;
1805
- - percentage signed/verified agents.
1806
-
1807
- ### 33.3. Надежность
1808
-
1809
- - SLO attainment;
1810
- - error budget burn;
1811
- - accepted report loss: цель 0;
1812
- - queue oldest age;
1813
- - restore success rate;
1814
- - measured RPO/RTO;
1815
- - change failure rate;
1816
- - mean time to detect/acknowledge/restore.
1817
-
1818
- ### 33.4. Коммерция
1819
-
1820
- - pilot-to-paid conversion;
1821
- - time through security/procurement review;
1822
- - gross retention и expansion;
1823
- - support hours per tenant;
1824
- - infrastructure cost per protected workflow/report/action;
1825
- - gross margin;
1826
- - доля custom work, которая становится повторяемым продуктом.
1827
-
1828
- ## 34. Главные зависимости и правильный порядок
1829
-
1830
- 1. Сначала подтвердить один платный workflow.
1831
- 2. Затем развернуть минимальный hosted control plane и доказать tenant isolation.
1832
- 3. Затем identity, RBAC, audit, data lifecycle и operational readiness.
1833
- 4. После этого принимать только sanitized enterprise evidence.
1834
- 5. Потом сделать onboarding повторяемым, добавить SCIM и generic SIEM delivery; named integrations — только по спросу.
1835
- 6. Только после доказанной повторяемости объявлять GA и стандартный SLA.
1836
- 7. Production actions добавлять как отдельный security product boundary.
1837
- 8. On-prem, HSM, regulated tiers и multi-region строить только при подтвержденной выручке или contractual requirement.
1838
-
1839
- Неправильный порядок:
1840
-
1841
- - сначала красивый enterprise dashboard, а потом tenant isolation;
1842
- - сначала десятки provider logos, а потом fidelity и tests;
1843
- - сначала self-service billing, а потом повторяемая willingness to pay;
1844
- - сначала «SOC 2 compliant» в marketing, а потом controls;
1845
- - сначала arbitrary production executor, а потом credential/approval threat model;
1846
- - сначала on-prem для одного prospect, а потом поддерживаемая release engineering.
1847
-
1848
- ## 35. Definition of Done для enterprise-функции
1849
-
1850
- Enterprise-функция считается готовой не после merge, а когда выполнено все применимое:
1851
-
1852
- - пользовательский сценарий и owner определены;
1853
- - threat model обновлен;
1854
- - data categories, retention и residency определены;
1855
- - authorization matrix описана;
1856
- - audit events определены;
1857
- - API/UI/CLI имеют одинаковую semantics;
1858
- - negative и cross-tenant tests добавлены;
1859
- - migration и rollback проверены;
1860
- - observability, alerts и runbook готовы;
1861
- - support и customer-facing docs готовы;
1862
- - billing/entitlement impact определен;
1863
- - legal/privacy/compliance review выполнен, если нужен;
1864
- - capacity и failure behavior проверены;
1865
- - release artifact подписан и присутствует в SBOM/provenance;
1866
- - acceptance criteria выполнены в production-like environment;
1867
- - marketing wording соответствует реальной guarantee level.
1868
-
1869
- ## 36. Итоговая рекомендация
1870
-
1871
- Максимальный enterprise GhostAPI должен быть не просто облачной версией локального mock server. Его сильнейшая возможная позиция выглядит так:
1872
-
1873
- 1. **Безопасная локальная разработка и CI evidence** создают простой вход в продукт.
1874
- 2. **Enterprise control plane** дает организациям identity, policies, audit, retention и fleet management.
1875
- 3. **Credential broker + approvals + typed actions** создают безопасный путь от симуляции к ограниченному production execution.
1876
- 4. **Trust ladder и measurable evidence** позволяют постепенно увеличивать автономность агента, а не выдавать ему полный доступ сразу.
1877
- 5. **Гибридное развертывание** оставляет чувствительные данные и credentials у клиента, сохраняя централизованное управление.
1878
-
1879
- Первый платный пилот должен быть значительно уже этой максимальной картины: один клиент, один измеримый workflow, sanitized hosted evidence, строгая tenant boundary, SSO, RBAC, audit, retention, backup и ручная коммерческая поддержка. Enterprise GA начинается только тогда, когда этот результат повторяется, операционные гарантии измерены, а customer onboarding больше не зависит от неформальных действий основателя.