blockmine 1.24.0 → 1.27.0

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 (476) hide show
  1. package/CHANGELOG.md +76 -1
  2. package/README.en.md +427 -0
  3. package/README.md +40 -0
  4. package/backend/package.json +2 -2
  5. package/backend/prisma/migrations/20260328173000_add_plugin_source_ref/migration.sql +2 -0
  6. package/backend/prisma/migrations/migration_lock.toml +2 -2
  7. package/backend/prisma/schema.prisma +2 -0
  8. package/backend/src/ai/plugin-assistant-system-prompt.md +664 -5
  9. package/backend/src/api/routes/apiKeys.js +8 -0
  10. package/backend/src/api/routes/bots.js +271 -9
  11. package/backend/src/api/routes/eventGraphs.js +151 -1
  12. package/backend/src/api/routes/health.js +38 -0
  13. package/backend/src/api/routes/nodeRegistry.js +63 -0
  14. package/backend/src/api/routes/plugins.js +254 -29
  15. package/backend/src/api/routes/servers.js +14 -2
  16. package/backend/src/container.js +11 -8
  17. package/backend/src/core/BotCommandLoader.js +161 -0
  18. package/backend/src/core/BotConnection.js +125 -0
  19. package/backend/src/core/BotEventHandlers.js +234 -0
  20. package/backend/src/core/BotIPCHandler.js +445 -0
  21. package/backend/src/core/BotManager.js +15 -7
  22. package/backend/src/core/BotProcess.js +169 -140
  23. package/backend/src/core/EventGraphManager.js +7 -3
  24. package/backend/src/core/GraphDebugHandler.js +229 -0
  25. package/backend/src/core/GraphDebugIPC.js +117 -0
  26. package/backend/src/core/GraphExecutionEngine.js +545 -978
  27. package/backend/src/core/GraphTraversal.js +80 -0
  28. package/backend/src/core/GraphValidation.js +73 -0
  29. package/backend/src/core/NodeDefinition.js +138 -0
  30. package/backend/src/core/NodeRegistry.js +153 -141
  31. package/backend/src/core/PluginLoader.js +83 -3
  32. package/backend/src/core/PluginManager.js +346 -35
  33. package/backend/src/core/RewindSignal.js +9 -0
  34. package/backend/src/core/config/ConfigValidator.js +72 -0
  35. package/backend/src/core/config/FeatureFlags.js +52 -0
  36. package/backend/src/core/config/__tests__/ConfigValidator.test.js +232 -0
  37. package/backend/src/core/domain/entities/Bot.js +39 -0
  38. package/backend/src/core/domain/entities/Command.js +41 -0
  39. package/backend/src/core/domain/entities/EventGraph.js +39 -0
  40. package/backend/src/core/domain/entities/Plugin.js +45 -0
  41. package/backend/src/core/domain/entities/User.js +40 -0
  42. package/backend/src/core/domain/services/DependencyResolver.js +168 -0
  43. package/backend/src/core/domain/services/GraphValidator.js +117 -0
  44. package/backend/src/core/domain/services/PermissionChecker.js +34 -0
  45. package/backend/src/core/domain/services/__tests__/DependencyResolver.test.js +126 -0
  46. package/backend/src/core/domain/valueObjects/BotConfig.js +27 -0
  47. package/backend/src/core/domain/valueObjects/DependencyGraph.js +86 -0
  48. package/backend/src/core/domain/valueObjects/PluginManifest.js +36 -0
  49. package/backend/src/core/errors/BaseError.js +29 -0
  50. package/backend/src/core/errors/ErrorHandler.js +81 -0
  51. package/backend/src/core/errors/__tests__/ErrorHandler.test.js +188 -0
  52. package/backend/src/core/errors/index.js +68 -0
  53. package/backend/src/core/infrastructure/BatchingUtility.js +66 -0
  54. package/backend/src/core/infrastructure/CircuitBreaker.js +103 -0
  55. package/backend/src/core/infrastructure/ConnectionPool.js +81 -0
  56. package/backend/src/core/infrastructure/RateLimiter.js +64 -0
  57. package/backend/src/core/infrastructure/__tests__/BatchingUtility.test.js +86 -0
  58. package/backend/src/core/infrastructure/__tests__/CircuitBreaker.test.js +156 -0
  59. package/backend/src/core/infrastructure/__tests__/ConnectionPool.test.js +146 -0
  60. package/backend/src/core/infrastructure/__tests__/RateLimiter.test.js +171 -0
  61. package/backend/src/core/ipc/botApiFactory.js +72 -0
  62. package/backend/src/core/ipc/ipcMessageTypes.js +115 -0
  63. package/backend/src/core/logging/AuditLogger.js +61 -0
  64. package/backend/src/core/logging/StructuredLogger.js +80 -0
  65. package/backend/src/core/logging/__tests__/StructuredLogger.test.js +213 -0
  66. package/backend/src/core/logging/index.js +7 -0
  67. package/backend/src/core/metrics/MetricsCollector.js +104 -0
  68. package/backend/src/core/metrics/__tests__/MetricsCollector.test.js +131 -0
  69. package/backend/src/core/node-registries/actionsNodes.js +191 -0
  70. package/backend/src/core/node-registries/arraysNodes.js +152 -0
  71. package/backend/src/core/node-registries/botNodes.js +48 -0
  72. package/backend/src/core/node-registries/containerNodes.js +141 -0
  73. package/backend/src/core/node-registries/dataNodes.js +284 -0
  74. package/backend/src/core/node-registries/debugNodes.js +23 -0
  75. package/backend/src/core/node-registries/eventsNodes.js +223 -0
  76. package/backend/src/core/node-registries/flowNodes.js +151 -0
  77. package/backend/src/core/node-registries/furnaceNodes.js +123 -0
  78. package/backend/src/core/node-registries/index.js +108 -0
  79. package/backend/src/core/node-registries/inventory.js +102 -106
  80. package/backend/src/core/node-registries/logicNodes.js +54 -0
  81. package/backend/src/core/node-registries/mathNodes.js +38 -0
  82. package/backend/src/core/node-registries/navigationNodes.js +109 -0
  83. package/backend/src/core/node-registries/objectsNodes.js +90 -0
  84. package/backend/src/core/node-registries/stringsNodes.js +165 -0
  85. package/backend/src/core/node-registries/timeNodes.js +105 -0
  86. package/backend/src/core/node-registries/typeNodes.js +22 -0
  87. package/backend/src/core/node-registries/usersNodes.js +126 -0
  88. package/backend/src/core/nodes/arrays/shuffle.js +14 -0
  89. package/backend/src/core/nodes/bot/get_name.js +8 -0
  90. package/backend/src/core/nodes/bot/stop_bot.js +5 -0
  91. package/backend/src/core/nodes/container/open.js +101 -111
  92. package/backend/src/core/nodes/data/store_read.js +26 -0
  93. package/backend/src/core/nodes/data/store_write.js +23 -0
  94. package/backend/src/core/nodes/event/call_event.js +31 -0
  95. package/backend/src/core/nodes/event/custom_event.js +8 -0
  96. package/backend/src/core/nodes/flow/timer.js +35 -0
  97. package/backend/src/core/nodes/inventory/drop.js +73 -65
  98. package/backend/src/core/nodes/inventory/equip.js +54 -45
  99. package/backend/src/core/nodes/inventory/select_slot.js +48 -46
  100. package/backend/src/core/nodes/navigation/follow.js +54 -51
  101. package/backend/src/core/nodes/navigation/go_to.js +41 -53
  102. package/backend/src/core/nodes/navigation/go_to_entity.js +65 -69
  103. package/backend/src/core/nodes/navigation/go_to_player.js +65 -70
  104. package/backend/src/core/nodes/navigation/stop.js +17 -26
  105. package/backend/src/core/nodes/users/add_to_group.js +24 -0
  106. package/backend/src/core/nodes/users/check_permission.js +26 -0
  107. package/backend/src/core/nodes/users/remove_from_group.js +24 -0
  108. package/backend/src/core/services/BotIPCMessageRouter.js +337 -0
  109. package/backend/src/core/services/BotLifecycleService.js +43 -450
  110. package/backend/src/core/services/CacheManager.js +83 -23
  111. package/backend/src/core/services/CrashRestartManager.js +42 -0
  112. package/backend/src/core/services/DebugSessionManager.js +114 -12
  113. package/backend/src/core/services/EventGraphService.js +69 -0
  114. package/backend/src/core/services/MinecraftBotManager.js +9 -1
  115. package/backend/src/core/services/PluginManagementService.js +84 -0
  116. package/backend/src/core/services/TestModeContext.js +65 -0
  117. package/backend/src/core/services/__tests__/CacheManager.test.js +168 -0
  118. package/backend/src/core/services.js +1 -11
  119. package/backend/src/core/validation/InputValidator.js +167 -0
  120. package/backend/src/core/validation/__tests__/InputValidator.test.js +296 -0
  121. package/backend/src/real-time/botApi/index.js +1 -1
  122. package/backend/src/real-time/socketHandler.js +26 -0
  123. package/backend/src/server.js +21 -6
  124. package/frontend/dist/assets/browser-ponyfill-D8y0Ty7C.js +2 -0
  125. package/frontend/dist/assets/index-CFJLS0dk.css +32 -0
  126. package/frontend/dist/assets/index-D91UGNMG.js +11260 -0
  127. package/frontend/dist/flags/en.svg +32 -0
  128. package/frontend/dist/flags/ru.svg +5 -0
  129. package/frontend/dist/index.html +2 -2
  130. package/frontend/dist/locales/en/admin.json +100 -0
  131. package/frontend/dist/locales/en/api-keys.json +58 -0
  132. package/frontend/dist/locales/en/bots.json +113 -0
  133. package/frontend/dist/locales/en/common.json +53 -0
  134. package/frontend/dist/locales/en/configuration.json +22 -0
  135. package/frontend/dist/locales/en/console.json +10 -0
  136. package/frontend/dist/locales/en/dashboard.json +85 -0
  137. package/frontend/dist/locales/en/dialogs.json +70 -0
  138. package/frontend/dist/locales/en/event-graphs.json +50 -0
  139. package/frontend/dist/locales/en/graph-store.json +70 -0
  140. package/frontend/dist/locales/en/login.json +36 -0
  141. package/frontend/dist/locales/en/management.json +192 -0
  142. package/frontend/dist/locales/en/minecraft-viewer.json +27 -0
  143. package/frontend/dist/locales/en/nodes.json +1132 -0
  144. package/frontend/dist/locales/en/permissions.json +50 -0
  145. package/frontend/dist/locales/en/plugin-detail.json +69 -0
  146. package/frontend/dist/locales/en/plugins.json +329 -0
  147. package/frontend/dist/locales/en/proxies.json +81 -0
  148. package/frontend/dist/locales/en/servers.json +39 -0
  149. package/frontend/dist/locales/en/setup.json +19 -0
  150. package/frontend/dist/locales/en/sidebar.json +195 -0
  151. package/frontend/dist/locales/en/tasks.json +62 -0
  152. package/frontend/dist/locales/en/visual-editor.json +418 -0
  153. package/frontend/dist/locales/en/websocket.json +86 -0
  154. package/frontend/dist/locales/ru/admin.json +100 -0
  155. package/frontend/dist/locales/ru/api-keys.json +58 -0
  156. package/frontend/dist/locales/ru/bots.json +113 -0
  157. package/frontend/dist/locales/ru/common.json +49 -0
  158. package/frontend/dist/locales/ru/configuration.json +22 -0
  159. package/frontend/dist/locales/ru/console.json +10 -0
  160. package/frontend/dist/locales/ru/dashboard.json +85 -0
  161. package/frontend/dist/locales/ru/dialogs.json +70 -0
  162. package/frontend/dist/locales/ru/event-graphs.json +50 -0
  163. package/frontend/dist/locales/ru/graph-store.json +70 -0
  164. package/frontend/dist/locales/ru/login.json +36 -0
  165. package/frontend/dist/locales/ru/management.json +192 -0
  166. package/frontend/dist/locales/ru/minecraft-viewer.json +30 -0
  167. package/frontend/dist/locales/ru/nodes.json +1131 -0
  168. package/frontend/dist/locales/ru/permissions.json +50 -0
  169. package/frontend/dist/locales/ru/plugin-detail.json +49 -0
  170. package/frontend/dist/locales/ru/plugins.json +209 -0
  171. package/frontend/dist/locales/ru/proxies.json +81 -0
  172. package/frontend/dist/locales/ru/servers.json +39 -0
  173. package/frontend/dist/locales/ru/setup.json +19 -0
  174. package/frontend/dist/locales/ru/sidebar.json +195 -0
  175. package/frontend/dist/locales/ru/tasks.json +62 -0
  176. package/frontend/dist/locales/ru/visual-editor.json +420 -0
  177. package/frontend/dist/locales/ru/websocket.json +86 -0
  178. package/frontend/dist/monacoeditorwork/css.worker.bundle.js +7 -7
  179. package/frontend/dist/monacoeditorwork/html.worker.bundle.js +7 -7
  180. package/frontend/dist/monacoeditorwork/json.worker.bundle.js +7 -7
  181. package/frontend/dist/monacoeditorwork/ts.worker.bundle.js +3 -3
  182. package/frontend/package.json +6 -0
  183. package/nul +12 -0
  184. package/package.json +3 -3
  185. package/screen/3dviewer.png +0 -0
  186. package/screen/console.png +0 -0
  187. package/screen/dashboard.png +0 -0
  188. package/screen/graph_collabe.png +0 -0
  189. package/screen/graph_live_debug.png +0 -0
  190. package/screen/language_selector.png +0 -0
  191. package/screen/management_command.png +0 -0
  192. package/screen/node_debug_trace.png +0 -0
  193. package/screen/plugin_/320/276/320/261/320/267/320/276/321/200.png +0 -0
  194. package/screen/websocket.png +0 -0
  195. package/screen//320/275/320/260/321/201/321/202/321/200/320/276/320/271/320/272/320/270_/320/276/321/202/320/264/320/265/320/273/321/214/320/275/321/213/321/205_/320/272/320/276/320/274/320/260/320/275/320/264_/320/272/320/260/320/266/320/264/321/203_/320/272/320/276/320/274/320/260/320/275/320/273/320/264/321/203_/320/274/320/276/320/266/320/275/320/276_/320/275/320/260/321/201/321/202/321/200/320/260/320/270/320/262/320/260/321/202/321/214.png +0 -0
  196. package/screen//320/277/320/273/320/260/320/275/320/270/321/200/320/276/320/262/321/211/320/270/320/272_/320/274/320/276/320/266/320/275/320/276_/320/267/320/260/320/264/320/260/320/262/320/260/321/202/321/214_/320/264/320/265/320/271/321/201/321/202/320/262/320/270/321/217_/320/277/320/276_/320/262/321/200/320/265/320/274/320/265/320/275/320/270.png +0 -0
  197. package/.claude/agents/README.md +0 -469
  198. package/.claude/agents/auth-route-debugger.md +0 -118
  199. package/.claude/agents/auth-route-tester.md +0 -93
  200. package/.claude/agents/auto-error-resolver.md +0 -97
  201. package/.claude/agents/build-optimizer.md +0 -236
  202. package/.claude/agents/code-architect.md +0 -34
  203. package/.claude/agents/code-architecture-reviewer.md +0 -83
  204. package/.claude/agents/code-explorer.md +0 -51
  205. package/.claude/agents/code-refactor-master.md +0 -94
  206. package/.claude/agents/code-reviewer.md +0 -46
  207. package/.claude/agents/cost-optimizer.md +0 -134
  208. package/.claude/agents/deployment-orchestrator.md +0 -113
  209. package/.claude/agents/documentation-architect.md +0 -82
  210. package/.claude/agents/frontend-error-fixer.md +0 -77
  211. package/.claude/agents/iac-code-generator.md +0 -71
  212. package/.claude/agents/incident-responder.md +0 -346
  213. package/.claude/agents/infrastructure-architect.md +0 -31
  214. package/.claude/agents/kubernetes-specialist.md +0 -56
  215. package/.claude/agents/migration-planner.md +0 -181
  216. package/.claude/agents/network-architect.md +0 -196
  217. package/.claude/agents/plan-reviewer.md +0 -52
  218. package/.claude/agents/refactor-planner.md +0 -63
  219. package/.claude/agents/security-scanner.md +0 -102
  220. package/.claude/agents/web-research-specialist.md +0 -78
  221. package/.claude/commands/cost-analysis.md +0 -315
  222. package/.claude/commands/dev-docs-update.md +0 -55
  223. package/.claude/commands/dev-docs.md +0 -51
  224. package/.claude/commands/feature-dev.md +0 -125
  225. package/.claude/commands/incident-debug.md +0 -247
  226. package/.claude/commands/infra-plan.md +0 -81
  227. package/.claude/commands/migration-plan.md +0 -478
  228. package/.claude/commands/route-research-for-testing.md +0 -37
  229. package/.claude/commands/security-review.md +0 -66
  230. package/.claude/hooks/CONFIG.md +0 -448
  231. package/.claude/hooks/README.md +0 -163
  232. package/.claude/hooks/SKILL_ACTIVATION_COMPLETE.md +0 -226
  233. package/.claude/hooks/WINDOWS_HOOKS_README.md +0 -151
  234. package/.claude/hooks/add-skill-activation-banners.ts +0 -132
  235. package/.claude/hooks/comprehensive-skill-test.ts +0 -1315
  236. package/.claude/hooks/error-handling-reminder.sh +0 -12
  237. package/.claude/hooks/error-handling-reminder.ts +0 -222
  238. package/.claude/hooks/k8s-manifest-validator.sh +0 -56
  239. package/.claude/hooks/package-lock.json +0 -556
  240. package/.claude/hooks/package.json +0 -16
  241. package/.claude/hooks/post-tool-use-tracker.ps1 +0 -174
  242. package/.claude/hooks/post-tool-use-tracker.sh +0 -183
  243. package/.claude/hooks/security-policy-check.sh +0 -247
  244. package/.claude/hooks/skill-activation-prompt.ps1 +0 -10
  245. package/.claude/hooks/skill-activation-prompt.sh +0 -10
  246. package/.claude/hooks/skill-activation-prompt.ts +0 -141
  247. package/.claude/hooks/stop-build-check-enhanced.sh +0 -130
  248. package/.claude/hooks/terraform-validator.sh +0 -53
  249. package/.claude/hooks/test-input.json +0 -7
  250. package/.claude/hooks/test-skill-activation.ts +0 -427
  251. package/.claude/hooks/trigger-build-resolver.sh +0 -79
  252. package/.claude/hooks/tsc-check.sh +0 -173
  253. package/.claude/hooks/tsconfig.json +0 -19
  254. package/.claude/settings.json +0 -59
  255. package/.claude/settings.local.json +0 -67
  256. package/.claude/skills/README.md +0 -507
  257. package/.claude/skills/api-engineering/SKILL.md +0 -63
  258. package/.claude/skills/api-engineering/resources/api-versioning.md +0 -88
  259. package/.claude/skills/api-engineering/resources/graphql-patterns.md +0 -106
  260. package/.claude/skills/api-engineering/resources/rate-limiting.md +0 -118
  261. package/.claude/skills/api-engineering/resources/rest-api-design.md +0 -105
  262. package/.claude/skills/backend-dev-guidelines/SKILL.md +0 -306
  263. package/.claude/skills/backend-dev-guidelines/resources/architecture-overview.md +0 -451
  264. package/.claude/skills/backend-dev-guidelines/resources/async-and-errors.md +0 -307
  265. package/.claude/skills/backend-dev-guidelines/resources/complete-examples.md +0 -638
  266. package/.claude/skills/backend-dev-guidelines/resources/configuration.md +0 -275
  267. package/.claude/skills/backend-dev-guidelines/resources/database-patterns.md +0 -224
  268. package/.claude/skills/backend-dev-guidelines/resources/middleware-guide.md +0 -213
  269. package/.claude/skills/backend-dev-guidelines/resources/routing-and-controllers.md +0 -756
  270. package/.claude/skills/backend-dev-guidelines/resources/sentry-and-monitoring.md +0 -336
  271. package/.claude/skills/backend-dev-guidelines/resources/services-and-repositories.md +0 -789
  272. package/.claude/skills/backend-dev-guidelines/resources/testing-guide.md +0 -235
  273. package/.claude/skills/backend-dev-guidelines/resources/validation-patterns.md +0 -754
  274. package/.claude/skills/budget-and-cost-management/SKILL.md +0 -850
  275. package/.claude/skills/build-engineering/SKILL.md +0 -431
  276. package/.claude/skills/build-engineering/resources/artifact-repositories.md +0 -72
  277. package/.claude/skills/build-engineering/resources/build-caching.md +0 -96
  278. package/.claude/skills/build-engineering/resources/build-pipelines.md +0 -105
  279. package/.claude/skills/build-engineering/resources/build-security.md +0 -95
  280. package/.claude/skills/build-engineering/resources/build-systems.md +0 -389
  281. package/.claude/skills/build-engineering/resources/compilation-optimization.md +0 -201
  282. package/.claude/skills/build-engineering/resources/dependency-management.md +0 -73
  283. package/.claude/skills/build-engineering/resources/monorepo-builds.md +0 -110
  284. package/.claude/skills/build-engineering/resources/performance-optimization.md +0 -113
  285. package/.claude/skills/build-engineering/resources/reproducible-builds.md +0 -82
  286. package/.claude/skills/cloud-engineering/SKILL.md +0 -675
  287. package/.claude/skills/cloud-engineering/resources/aws-patterns.md +0 -742
  288. package/.claude/skills/cloud-engineering/resources/azure-patterns.md +0 -714
  289. package/.claude/skills/cloud-engineering/resources/cleared-cloud-environments.md +0 -987
  290. package/.claude/skills/cloud-engineering/resources/cloud-cost-optimization.md +0 -757
  291. package/.claude/skills/cloud-engineering/resources/cloud-networking.md +0 -1058
  292. package/.claude/skills/cloud-engineering/resources/cloud-security-tools.md +0 -1530
  293. package/.claude/skills/cloud-engineering/resources/cloud-security.md +0 -990
  294. package/.claude/skills/cloud-engineering/resources/gcp-patterns.md +0 -758
  295. package/.claude/skills/cloud-engineering/resources/migration-strategies.md +0 -820
  296. package/.claude/skills/cloud-engineering/resources/multi-cloud-strategies.md +0 -670
  297. package/.claude/skills/cloud-engineering/resources/oci-patterns.md +0 -1198
  298. package/.claude/skills/cloud-engineering/resources/serverless-patterns.md +0 -795
  299. package/.claude/skills/cloud-engineering/resources/well-architected-frameworks.md +0 -966
  300. package/.claude/skills/cybersecurity/SKILL.md +0 -409
  301. package/.claude/skills/cybersecurity/resources/security-architecture.md +0 -266
  302. package/.claude/skills/database-engineering/SKILL.md +0 -61
  303. package/.claude/skills/database-engineering/resources/backup-and-recovery.md +0 -72
  304. package/.claude/skills/database-engineering/resources/database-replication.md +0 -63
  305. package/.claude/skills/database-engineering/resources/postgresql-fundamentals.md +0 -70
  306. package/.claude/skills/database-engineering/resources/query-optimization.md +0 -68
  307. package/.claude/skills/devsecops/SKILL.md +0 -374
  308. package/.claude/skills/devsecops/resources/ci-cd-security.md +0 -204
  309. package/.claude/skills/devsecops/resources/compliance-automation.md +0 -530
  310. package/.claude/skills/devsecops/resources/compliance-frameworks.md +0 -2322
  311. package/.claude/skills/devsecops/resources/container-security.md +0 -915
  312. package/.claude/skills/devsecops/resources/cspm-integration.md +0 -1440
  313. package/.claude/skills/devsecops/resources/policy-enforcement.md +0 -619
  314. package/.claude/skills/devsecops/resources/secrets-management.md +0 -755
  315. package/.claude/skills/devsecops/resources/security-monitoring.md +0 -146
  316. package/.claude/skills/devsecops/resources/security-scanning.md +0 -887
  317. package/.claude/skills/devsecops/resources/security-testing.md +0 -203
  318. package/.claude/skills/devsecops/resources/supply-chain-security.md +0 -518
  319. package/.claude/skills/devsecops/resources/vulnerability-management.md +0 -481
  320. package/.claude/skills/devsecops/resources/zero-trust-architecture.md +0 -177
  321. package/.claude/skills/documentation-as-code/SKILL.md +0 -323
  322. package/.claude/skills/documentation-as-code/resources/api-documentation.md +0 -90
  323. package/.claude/skills/documentation-as-code/resources/changelog-management.md +0 -79
  324. package/.claude/skills/documentation-as-code/resources/diagram-generation.md +0 -44
  325. package/.claude/skills/documentation-as-code/resources/docs-as-code-workflow.md +0 -99
  326. package/.claude/skills/documentation-as-code/resources/documentation-automation.md +0 -68
  327. package/.claude/skills/documentation-as-code/resources/documentation-sites.md +0 -79
  328. package/.claude/skills/documentation-as-code/resources/markdown-best-practices.md +0 -162
  329. package/.claude/skills/documentation-as-code/resources/openapi-specification.md +0 -77
  330. package/.claude/skills/documentation-as-code/resources/readme-engineering.md +0 -60
  331. package/.claude/skills/documentation-as-code/resources/technical-writing-guide.md +0 -202
  332. package/.claude/skills/engineering-management/SKILL.md +0 -356
  333. package/.claude/skills/engineering-management/resources/career-ladders.md +0 -609
  334. package/.claude/skills/engineering-management/resources/hiring-and-assessment.md +0 -555
  335. package/.claude/skills/engineering-management/resources/one-on-one-guides.md +0 -609
  336. package/.claude/skills/engineering-management/resources/resource-planning.md +0 -557
  337. package/.claude/skills/engineering-management/resources/team-organization-patterns.md +0 -491
  338. package/.claude/skills/engineering-management/resources/technical-interviews.md +0 -474
  339. package/.claude/skills/engineering-operations-management/SKILL.md +0 -817
  340. package/.claude/skills/error-tracking/SKILL.md +0 -379
  341. package/.claude/skills/frontend-design/SKILL.md +0 -42
  342. package/.claude/skills/frontend-dev-guidelines/SKILL.md +0 -403
  343. package/.claude/skills/frontend-dev-guidelines/resources/common-patterns.md +0 -331
  344. package/.claude/skills/frontend-dev-guidelines/resources/complete-examples.md +0 -872
  345. package/.claude/skills/frontend-dev-guidelines/resources/component-patterns.md +0 -502
  346. package/.claude/skills/frontend-dev-guidelines/resources/data-fetching.md +0 -767
  347. package/.claude/skills/frontend-dev-guidelines/resources/file-organization.md +0 -502
  348. package/.claude/skills/frontend-dev-guidelines/resources/loading-and-error-states.md +0 -501
  349. package/.claude/skills/frontend-dev-guidelines/resources/performance.md +0 -406
  350. package/.claude/skills/frontend-dev-guidelines/resources/routing-guide.md +0 -364
  351. package/.claude/skills/frontend-dev-guidelines/resources/styling-guide.md +0 -428
  352. package/.claude/skills/frontend-dev-guidelines/resources/typescript-standards.md +0 -418
  353. package/.claude/skills/general-it-engineering/SKILL.md +0 -393
  354. package/.claude/skills/general-it-engineering/resources/asset-management.md +0 -712
  355. package/.claude/skills/general-it-engineering/resources/automation-orchestration.md +0 -817
  356. package/.claude/skills/general-it-engineering/resources/business-continuity.md +0 -786
  357. package/.claude/skills/general-it-engineering/resources/change-management.md +0 -715
  358. package/.claude/skills/general-it-engineering/resources/enterprise-monitoring.md +0 -729
  359. package/.claude/skills/general-it-engineering/resources/help-desk-operations.md +0 -738
  360. package/.claude/skills/general-it-engineering/resources/incident-service-management.md +0 -834
  361. package/.claude/skills/general-it-engineering/resources/it-governance.md +0 -753
  362. package/.claude/skills/general-it-engineering/resources/itil-framework.md +0 -503
  363. package/.claude/skills/general-it-engineering/resources/service-management.md +0 -669
  364. package/.claude/skills/infrastructure-architecture/SKILL.md +0 -328
  365. package/.claude/skills/infrastructure-architecture/resources/architecture-decision-records.md +0 -505
  366. package/.claude/skills/infrastructure-architecture/resources/architecture-patterns.md +0 -528
  367. package/.claude/skills/infrastructure-architecture/resources/capacity-planning.md +0 -453
  368. package/.claude/skills/infrastructure-architecture/resources/cleared-environment-architecture.md +0 -773
  369. package/.claude/skills/infrastructure-architecture/resources/cost-architecture.md +0 -499
  370. package/.claude/skills/infrastructure-architecture/resources/data-architecture.md +0 -501
  371. package/.claude/skills/infrastructure-architecture/resources/disaster-recovery.md +0 -535
  372. package/.claude/skills/infrastructure-architecture/resources/migration-architecture.md +0 -512
  373. package/.claude/skills/infrastructure-architecture/resources/multi-region-design.md +0 -608
  374. package/.claude/skills/infrastructure-architecture/resources/reference-architectures.md +0 -562
  375. package/.claude/skills/infrastructure-architecture/resources/security-architecture.md +0 -538
  376. package/.claude/skills/infrastructure-architecture/resources/system-design-principles.md +0 -489
  377. package/.claude/skills/infrastructure-architecture/resources/workload-classification.md +0 -1000
  378. package/.claude/skills/infrastructure-strategy/SKILL.md +0 -924
  379. package/.claude/skills/network-engineering/SKILL.md +0 -385
  380. package/.claude/skills/network-engineering/resources/dns-management.md +0 -738
  381. package/.claude/skills/network-engineering/resources/load-balancing.md +0 -820
  382. package/.claude/skills/network-engineering/resources/network-architecture.md +0 -546
  383. package/.claude/skills/network-engineering/resources/network-security.md +0 -921
  384. package/.claude/skills/network-engineering/resources/network-troubleshooting.md +0 -749
  385. package/.claude/skills/network-engineering/resources/routing-switching.md +0 -373
  386. package/.claude/skills/network-engineering/resources/sdn-networking.md +0 -695
  387. package/.claude/skills/network-engineering/resources/service-mesh-networking.md +0 -777
  388. package/.claude/skills/network-engineering/resources/tcp-ip-protocols.md +0 -444
  389. package/.claude/skills/network-engineering/resources/vpn-connectivity.md +0 -672
  390. package/.claude/skills/node-development/SKILL.md +0 -317
  391. package/.claude/skills/observability-engineering/SKILL.md +0 -101
  392. package/.claude/skills/observability-engineering/resources/apm-tools.md +0 -97
  393. package/.claude/skills/observability-engineering/resources/correlation-strategies.md +0 -87
  394. package/.claude/skills/observability-engineering/resources/distributed-tracing.md +0 -98
  395. package/.claude/skills/observability-engineering/resources/logs-aggregation.md +0 -118
  396. package/.claude/skills/observability-engineering/resources/observability-cost-optimization.md +0 -141
  397. package/.claude/skills/observability-engineering/resources/opentelemetry.md +0 -110
  398. package/.claude/skills/platform-engineering/SKILL.md +0 -555
  399. package/.claude/skills/platform-engineering/resources/architecture-overview.md +0 -600
  400. package/.claude/skills/platform-engineering/resources/container-orchestration.md +0 -916
  401. package/.claude/skills/platform-engineering/resources/cost-optimization.md +0 -634
  402. package/.claude/skills/platform-engineering/resources/developer-platforms.md +0 -670
  403. package/.claude/skills/platform-engineering/resources/gitops-automation.md +0 -650
  404. package/.claude/skills/platform-engineering/resources/infrastructure-as-code.md +0 -778
  405. package/.claude/skills/platform-engineering/resources/infrastructure-standards.md +0 -708
  406. package/.claude/skills/platform-engineering/resources/multi-tenancy.md +0 -602
  407. package/.claude/skills/platform-engineering/resources/platform-security.md +0 -711
  408. package/.claude/skills/platform-engineering/resources/resource-management.md +0 -592
  409. package/.claude/skills/platform-engineering/resources/service-mesh.md +0 -628
  410. package/.claude/skills/release-engineering/SKILL.md +0 -393
  411. package/.claude/skills/release-engineering/resources/artifact-management.md +0 -108
  412. package/.claude/skills/release-engineering/resources/build-optimization.md +0 -84
  413. package/.claude/skills/release-engineering/resources/ci-cd-pipelines.md +0 -411
  414. package/.claude/skills/release-engineering/resources/deployment-strategies.md +0 -197
  415. package/.claude/skills/release-engineering/resources/pipeline-security.md +0 -62
  416. package/.claude/skills/release-engineering/resources/progressive-delivery.md +0 -83
  417. package/.claude/skills/release-engineering/resources/release-automation.md +0 -68
  418. package/.claude/skills/release-engineering/resources/release-orchestration.md +0 -77
  419. package/.claude/skills/release-engineering/resources/rollback-strategies.md +0 -66
  420. package/.claude/skills/release-engineering/resources/versioning-strategies.md +0 -59
  421. package/.claude/skills/route-tester/SKILL.md +0 -392
  422. package/.claude/skills/skill-developer/ADVANCED.md +0 -197
  423. package/.claude/skills/skill-developer/HOOK_MECHANISMS.md +0 -306
  424. package/.claude/skills/skill-developer/PATTERNS_LIBRARY.md +0 -152
  425. package/.claude/skills/skill-developer/SKILL.md +0 -430
  426. package/.claude/skills/skill-developer/SKILL_RULES_REFERENCE.md +0 -315
  427. package/.claude/skills/skill-developer/TRIGGER_TYPES.md +0 -305
  428. package/.claude/skills/skill-developer/TROUBLESHOOTING.md +0 -514
  429. package/.claude/skills/skill-rules.json +0 -2989
  430. package/.claude/skills/sre/SKILL.md +0 -464
  431. package/.claude/skills/sre/resources/alerting-best-practices.md +0 -282
  432. package/.claude/skills/sre/resources/capacity-planning.md +0 -226
  433. package/.claude/skills/sre/resources/chaos-engineering.md +0 -193
  434. package/.claude/skills/sre/resources/disaster-recovery.md +0 -232
  435. package/.claude/skills/sre/resources/incident-management.md +0 -436
  436. package/.claude/skills/sre/resources/observability-stack.md +0 -240
  437. package/.claude/skills/sre/resources/on-call-runbooks.md +0 -167
  438. package/.claude/skills/sre/resources/performance-optimization.md +0 -108
  439. package/.claude/skills/sre/resources/reliability-patterns.md +0 -183
  440. package/.claude/skills/sre/resources/slo-sli-sla.md +0 -464
  441. package/.claude/skills/sre/resources/toil-reduction.md +0 -145
  442. package/.claude/skills/systems-engineering/SKILL.md +0 -648
  443. package/.claude/skills/systems-engineering/resources/automation-patterns.md +0 -771
  444. package/.claude/skills/systems-engineering/resources/configuration-management.md +0 -998
  445. package/.claude/skills/systems-engineering/resources/linux-administration.md +0 -672
  446. package/.claude/skills/systems-engineering/resources/networking-fundamentals.md +0 -982
  447. package/.claude/skills/systems-engineering/resources/performance-tuning.md +0 -871
  448. package/.claude/skills/systems-engineering/resources/powershell-scripting.md +0 -482
  449. package/.claude/skills/systems-engineering/resources/security-hardening.md +0 -739
  450. package/.claude/skills/systems-engineering/resources/shell-scripting.md +0 -915
  451. package/.claude/skills/systems-engineering/resources/storage-management.md +0 -628
  452. package/.claude/skills/systems-engineering/resources/system-monitoring.md +0 -787
  453. package/.claude/skills/systems-engineering/resources/troubleshooting-guide.md +0 -753
  454. package/.claude/skills/systems-engineering/resources/windows-administration.md +0 -738
  455. package/.claude/skills/technical-leadership/SKILL.md +0 -728
  456. package/backend/docs/SECRETS_DOCUMENTATION.md +0 -327
  457. package/backend/package-lock.json +0 -6801
  458. package/backend/src/core/node-registries/actions.js +0 -202
  459. package/backend/src/core/node-registries/arrays.js +0 -155
  460. package/backend/src/core/node-registries/bot.js +0 -23
  461. package/backend/src/core/node-registries/container.js +0 -162
  462. package/backend/src/core/node-registries/data.js +0 -290
  463. package/backend/src/core/node-registries/debug.js +0 -26
  464. package/backend/src/core/node-registries/events.js +0 -201
  465. package/backend/src/core/node-registries/flow.js +0 -139
  466. package/backend/src/core/node-registries/furnace.js +0 -143
  467. package/backend/src/core/node-registries/logic.js +0 -62
  468. package/backend/src/core/node-registries/math.js +0 -42
  469. package/backend/src/core/node-registries/navigation.js +0 -111
  470. package/backend/src/core/node-registries/objects.js +0 -98
  471. package/backend/src/core/node-registries/strings.js +0 -187
  472. package/backend/src/core/node-registries/time.js +0 -113
  473. package/backend/src/core/node-registries/type.js +0 -25
  474. package/backend/src/core/node-registries/users.js +0 -79
  475. package/frontend/dist/assets/index-BC-NbKXi.css +0 -32
  476. package/frontend/dist/assets/index-DqJXZMHY.js +0 -11266
@@ -1,670 +0,0 @@
1
- # Developer Platforms & Self-Service
2
-
3
- Internal developer portals, self-service platforms, service catalogs, and developer experience optimization for platform engineering.
4
-
5
- ## Table of Contents
6
-
7
- - [Overview](#overview)
8
- - [Backstage Platform](#backstage-platform)
9
- - [Service Catalogs](#service-catalogs)
10
- - [Self-Service Workflows](#self-service-workflows)
11
- - [Golden Paths](#golden-paths)
12
- - [Developer Experience](#developer-experience)
13
- - [Platform APIs](#platform-apis)
14
- - [Best Practices](#best-practices)
15
-
16
- ## Overview
17
-
18
- ### Platform Engineering Goals
19
-
20
- ```
21
- Traditional Ops Platform Engineering
22
- ────────────── ────────────────────
23
- Ticket System → Self-Service Portal
24
- Manual Processes → Automated Workflows
25
- Tribal Knowledge → Documentation & Templates
26
- Waiting Days → Minutes to Deploy
27
- ```
28
-
29
- ### Platform Layers
30
-
31
- ```
32
- ┌─────────────────────────────────────┐
33
- │ Developer Portal (UI/CLI) │ ← Self-service interface
34
- ├─────────────────────────────────────┤
35
- │ Service Catalog │ ← Templates & Standards
36
- ├─────────────────────────────────────┤
37
- │ Platform APIs │ ← Automation layer
38
- ├─────────────────────────────────────┤
39
- │ Infrastructure & Services │ ← Kubernetes, Cloud, etc.
40
- └─────────────────────────────────────┘
41
- ```
42
-
43
- ## Backstage Platform
44
-
45
- ### Installation
46
-
47
- ```yaml
48
- # kubernetes/backstage-deployment.yaml
49
- apiVersion: apps/v1
50
- kind: Deployment
51
- metadata:
52
- name: backstage
53
- namespace: platform
54
- spec:
55
- replicas: 2
56
- selector:
57
- matchLabels:
58
- app: backstage
59
- template:
60
- metadata:
61
- labels:
62
- app: backstage
63
- spec:
64
- containers:
65
- - name: backstage
66
- image: backstage:latest
67
- ports:
68
- - containerPort: 7007
69
- env:
70
- - name: POSTGRES_HOST
71
- value: postgres.platform.svc.cluster.local
72
- - name: POSTGRES_PORT
73
- value: "5432"
74
- - name: POSTGRES_USER
75
- valueFrom:
76
- secretKeyRef:
77
- name: backstage-db
78
- key: username
79
- - name: POSTGRES_PASSWORD
80
- valueFrom:
81
- secretKeyRef:
82
- name: backstage-db
83
- key: password
84
- ```
85
-
86
- ### App Configuration
87
-
88
- ```yaml
89
- # app-config.yaml
90
- app:
91
- title: Platform Portal
92
- baseUrl: https://platform.company.com
93
-
94
- organization:
95
- name: ACME Corp
96
-
97
- backend:
98
- baseUrl: https://platform.company.com
99
- listen:
100
- port: 7007
101
- database:
102
- client: pg
103
- connection:
104
- host: ${POSTGRES_HOST}
105
- port: ${POSTGRES_PORT}
106
- user: ${POSTGRES_USER}
107
- password: ${POSTGRES_PASSWORD}
108
-
109
- integrations:
110
- github:
111
- - host: github.com
112
- token: ${GITHUB_TOKEN}
113
-
114
- catalog:
115
- import:
116
- entityFilename: catalog-info.yaml
117
- rules:
118
- - allow: [Component, System, API, Resource, Location]
119
- locations:
120
- # Register all catalog files
121
- - type: url
122
- target: https://github.com/company/platform/blob/main/catalog/*.yaml
123
- rules:
124
- - allow: [Location]
125
-
126
- # Auto-discover services
127
- - type: url
128
- target: https://github.com/company/services/blob/main/*/catalog-info.yaml
129
- rules:
130
- - allow: [Component, API]
131
-
132
- techdocs:
133
- builder: 'local'
134
- generator:
135
- runIn: 'docker'
136
- publisher:
137
- type: 'awsS3'
138
- awsS3:
139
- bucketName: 'company-techdocs'
140
- region: 'us-east-1'
141
- ```
142
-
143
- ## Service Catalogs
144
-
145
- ### Component Definition
146
-
147
- ```yaml
148
- # catalog-info.yaml
149
- apiVersion: backstage.io/v1alpha1
150
- kind: Component
151
- metadata:
152
- name: api-service
153
- description: Customer API microservice
154
- annotations:
155
- github.com/project-slug: company/api-service
156
- backstage.io/techdocs-ref: dir:.
157
- pagerduty.com/integration-key: ${PAGERDUTY_KEY}
158
- tags:
159
- - api
160
- - nodejs
161
- - typescript
162
- - production
163
- links:
164
- - url: https://api.company.com
165
- title: Production API
166
- icon: web
167
- - url: https://grafana.company.com/d/api-service
168
- title: Metrics Dashboard
169
- icon: dashboard
170
- spec:
171
- type: service
172
- lifecycle: production
173
- owner: team-platform
174
- system: customer-platform
175
-
176
- providesApis:
177
- - customer-api
178
-
179
- consumesApis:
180
- - auth-api
181
- - notification-api
182
-
183
- dependsOn:
184
- - resource:postgres-db
185
- - resource:redis-cache
186
- - component:auth-service
187
- ```
188
-
189
- ### API Definition
190
-
191
- ```yaml
192
- apiVersion: backstage.io/v1alpha1
193
- kind: API
194
- metadata:
195
- name: customer-api
196
- description: Customer management REST API
197
- spec:
198
- type: openapi
199
- lifecycle: production
200
- owner: team-platform
201
- system: customer-platform
202
- definition: |
203
- openapi: 3.0.0
204
- info:
205
- title: Customer API
206
- version: 1.0.0
207
- paths:
208
- /customers:
209
- get:
210
- summary: List customers
211
- responses:
212
- '200':
213
- description: Success
214
- ```
215
-
216
- ### Resource Definition
217
-
218
- ```yaml
219
- apiVersion: backstage.io/v1alpha1
220
- kind: Resource
221
- metadata:
222
- name: postgres-db
223
- description: PostgreSQL database for customer data
224
- spec:
225
- type: database
226
- owner: team-platform
227
- system: customer-platform
228
- dependsOn:
229
- - component:postgres-operator
230
- ```
231
-
232
- ### System Definition
233
-
234
- ```yaml
235
- apiVersion: backstage.io/v1alpha1
236
- kind: System
237
- metadata:
238
- name: customer-platform
239
- description: Customer management platform
240
- spec:
241
- owner: team-platform
242
- ```
243
-
244
- ## Self-Service Workflows
245
-
246
- ### Software Templates
247
-
248
- ```yaml
249
- # templates/nodejs-service/template.yaml
250
- apiVersion: scaffolder.backstage.io/v1beta3
251
- kind: Template
252
- metadata:
253
- name: nodejs-service
254
- title: Node.js Service
255
- description: Create a new Node.js microservice
256
- tags:
257
- - nodejs
258
- - typescript
259
- - recommended
260
- spec:
261
- owner: team-platform
262
- type: service
263
-
264
- parameters:
265
- - title: Service Information
266
- required:
267
- - name
268
- - description
269
- properties:
270
- name:
271
- title: Name
272
- type: string
273
- description: Unique name for your service
274
- pattern: '^[a-z0-9-]+$'
275
- description:
276
- title: Description
277
- type: string
278
- description: What does this service do?
279
- owner:
280
- title: Owner
281
- type: string
282
- description: Team that owns this service
283
- ui:field: OwnerPicker
284
- ui:options:
285
- allowedKinds:
286
- - Group
287
-
288
- - title: Repository
289
- required:
290
- - repoUrl
291
- properties:
292
- repoUrl:
293
- title: Repository Location
294
- type: string
295
- ui:field: RepoUrlPicker
296
- ui:options:
297
- allowedHosts:
298
- - github.com
299
-
300
- - title: Infrastructure
301
- properties:
302
- database:
303
- title: Needs Database?
304
- type: boolean
305
- default: false
306
- cache:
307
- title: Needs Redis Cache?
308
- type: boolean
309
- default: false
310
-
311
- steps:
312
- - id: fetch-base
313
- name: Fetch Base Template
314
- action: fetch:template
315
- input:
316
- url: ./skeleton
317
- values:
318
- name: ${{ parameters.name }}
319
- description: ${{ parameters.description }}
320
- owner: ${{ parameters.owner }}
321
- destination: ${{ parameters.repoUrl | parseRepoUrl }}
322
-
323
- - id: create-repo
324
- name: Create GitHub Repository
325
- action: publish:github
326
- input:
327
- allowedHosts: ['github.com']
328
- description: ${{ parameters.description }}
329
- repoUrl: ${{ parameters.repoUrl }}
330
- defaultBranch: main
331
-
332
- - id: create-kubernetes-resources
333
- name: Create Kubernetes Resources
334
- action: kubernetes:create
335
- input:
336
- namespace: ${{ parameters.owner }}
337
- manifest: |
338
- apiVersion: v1
339
- kind: Namespace
340
- metadata:
341
- name: ${{ parameters.name }}
342
- labels:
343
- team: ${{ parameters.owner }}
344
-
345
- - id: create-database
346
- name: Provision Database
347
- if: ${{ parameters.database }}
348
- action: database:provision
349
- input:
350
- type: postgresql
351
- name: ${{ parameters.name }}-db
352
- team: ${{ parameters.owner }}
353
-
354
- - id: register-catalog
355
- name: Register in Service Catalog
356
- action: catalog:register
357
- input:
358
- repoContentsUrl: ${{ steps['create-repo'].output.repoContentsUrl }}
359
- catalogInfoPath: '/catalog-info.yaml'
360
-
361
- output:
362
- links:
363
- - title: Repository
364
- url: ${{ steps['create-repo'].output.remoteUrl }}
365
- - title: Open in Catalog
366
- icon: catalog
367
- entityRef: ${{ steps['register-catalog'].output.entityRef }}
368
- ```
369
-
370
- ### Template Skeleton
371
-
372
- ```
373
- templates/nodejs-service/skeleton/
374
- ├── catalog-info.yaml
375
- ├── package.json
376
- ├── tsconfig.json
377
- ├── src/
378
- │ ├── index.ts
379
- │ ├── app.ts
380
- │ └── routes/
381
- ├── tests/
382
- ├── Dockerfile
383
- ├── k8s/
384
- │ ├── deployment.yaml
385
- │ ├── service.yaml
386
- │ └── ingress.yaml
387
- └── .github/
388
- └── workflows/
389
- └── ci.yaml
390
- ```
391
-
392
- ## Golden Paths
393
-
394
- ### Golden Path Example: New Service
395
-
396
- ```
397
- Step 1: Developer Portal
398
-
399
- Step 2: Choose Template (nodejs-service)
400
-
401
- Step 3: Fill Parameters
402
- - Service name
403
- - Description
404
- - Team owner
405
- - Infrastructure needs
406
-
407
- Step 4: Automated Actions
408
- ✓ Create Git repo
409
- ✓ Generate code from template
410
- ✓ Create namespace
411
- ✓ Provision database
412
- ✓ Setup CI/CD pipeline
413
- ✓ Create monitoring
414
- ✓ Register in catalog
415
-
416
- Step 5: Ready to Code!
417
- - Repo with best practices
418
- - Tests configured
419
- - CI/CD working
420
- - Infrastructure ready
421
- ```
422
-
423
- ### Score Card
424
-
425
- ```yaml
426
- # .backstage/scorecard.yaml
427
- apiVersion: backstage.io/v1alpha1
428
- kind: Scorecard
429
- metadata:
430
- name: production-readiness
431
- spec:
432
- checks:
433
- - name: Has Documentation
434
- description: Service must have README and docs
435
- weight: 10
436
- check:
437
- type: file-exists
438
- files:
439
- - README.md
440
- - docs/
441
-
442
- - name: Has Tests
443
- description: Service must have automated tests
444
- weight: 20
445
- check:
446
- type: coverage
447
- minimum: 80
448
-
449
- - name: Has Monitoring
450
- description: Service exports metrics
451
- weight: 15
452
- check:
453
- type: annotation-exists
454
- annotation: prometheus.io/scrape
455
-
456
- - name: Has Health Checks
457
- description: Service has health endpoints
458
- weight: 15
459
- check:
460
- type: file-contains
461
- file: k8s/deployment.yaml
462
- pattern: livenessProbe
463
-
464
- - name: Has Owner
465
- description: Service has defined owner team
466
- weight: 10
467
- check:
468
- type: field-exists
469
- field: spec.owner
470
-
471
- - name: Security Scan
472
- description: No critical vulnerabilities
473
- weight: 30
474
- check:
475
- type: workflow-status
476
- workflow: security-scan
477
- ```
478
-
479
- ## Platform APIs
480
-
481
- ### Self-Service API
482
-
483
- ```typescript
484
- // platform-api/src/routes/provision.ts
485
- import express from 'express';
486
-
487
- const router = express.Router();
488
-
489
- /**
490
- * POST /api/provision/database
491
- * Provision a new database instance
492
- */
493
- router.post('/database', async (req, res) => {
494
- const { name, type, team, environment } = req.body;
495
-
496
- // Validate request
497
- const schema = z.object({
498
- name: z.string().regex(/^[a-z0-9-]+$/),
499
- type: z.enum(['postgresql', 'mysql', 'mongodb']),
500
- team: z.string(),
501
- environment: z.enum(['dev', 'staging', 'prod'])
502
- });
503
-
504
- const validated = schema.parse(req.body);
505
-
506
- // Create Terraform workspace
507
- const workspace = `${validated.team}-${validated.name}-${validated.environment}`;
508
-
509
- // Apply infrastructure
510
- await terraformService.apply({
511
- workspace,
512
- module: `databases/${validated.type}`,
513
- variables: {
514
- name: validated.name,
515
- team: validated.team,
516
- environment: validated.environment
517
- }
518
- });
519
-
520
- // Get connection details
521
- const outputs = await terraformService.outputs(workspace);
522
-
523
- // Store credentials in Vault
524
- await vaultService.write(
525
- `${validated.team}/${validated.environment}/${validated.name}`,
526
- outputs.credentials
527
- );
528
-
529
- // Create Kubernetes secret
530
- await k8sService.createSecret({
531
- namespace: validated.team,
532
- name: `${validated.name}-db`,
533
- data: outputs.credentials
534
- });
535
-
536
- res.json({
537
- success: true,
538
- database: {
539
- name: validated.name,
540
- endpoint: outputs.endpoint,
541
- secretName: `${validated.name}-db`
542
- }
543
- });
544
- });
545
-
546
- /**
547
- * POST /api/provision/namespace
548
- * Create new namespace with quotas
549
- */
550
- router.post('/namespace', async (req, res) => {
551
- const { name, team, quotas } = req.body;
552
-
553
- await k8sService.applyManifests([
554
- {
555
- apiVersion: 'v1',
556
- kind: 'Namespace',
557
- metadata: {
558
- name,
559
- labels: {
560
- team,
561
- 'managed-by': 'platform'
562
- }
563
- }
564
- },
565
- {
566
- apiVersion: 'v1',
567
- kind: 'ResourceQuota',
568
- metadata: {
569
- name: `${name}-quota`,
570
- namespace: name
571
- },
572
- spec: {
573
- hard: quotas || {
574
- 'requests.cpu': '10',
575
- 'requests.memory': '10Gi',
576
- 'limits.cpu': '20',
577
- 'limits.memory': '20Gi',
578
- 'persistentvolumeclaims': '10'
579
- }
580
- }
581
- }
582
- ]);
583
-
584
- res.json({ success: true, namespace: name });
585
- });
586
-
587
- export default router;
588
- ```
589
-
590
- ## Developer Experience
591
-
592
- ### CLI Tool
593
-
594
- ```typescript
595
- // platform-cli/src/commands/create.ts
596
- import { Command } from 'commander';
597
-
598
- const createCommand = new Command('create');
599
-
600
- createCommand
601
- .command('service <name>')
602
- .description('Create a new service')
603
- .option('-t, --template <template>', 'Service template', 'nodejs-service')
604
- .option('-o, --owner <team>', 'Owning team')
605
- .option('--database', 'Include database')
606
- .action(async (name, options) => {
607
- console.log(`Creating service: ${name}`);
608
-
609
- // Call Backstage API
610
- const response = await fetch('https://platform.company.com/api/scaffolder/v2/tasks', {
611
- method: 'POST',
612
- headers: {
613
- 'Content-Type': 'application/json',
614
- 'Authorization': `Bearer ${getToken()}`
615
- },
616
- body: JSON.stringify({
617
- templateRef: `template:default/${options.template}`,
618
- values: {
619
- name,
620
- owner: options.owner,
621
- database: options.database
622
- }
623
- })
624
- });
625
-
626
- const task = await response.json();
627
- console.log(`Task created: ${task.id}`);
628
- console.log(`View progress: https://platform.company.com/create/tasks/${task.id}`);
629
- });
630
-
631
- export default createCommand;
632
- ```
633
-
634
- ## Best Practices
635
-
636
- ### 1. Golden Paths Over Freedom
637
-
638
- Provide opinionated, well-tested templates rather than infinite customization.
639
-
640
- ### 2. Documentation as Code
641
-
642
- Keep docs alongside code, auto-generate from templates.
643
-
644
- ### 3. Measure Developer Productivity
645
-
646
- ```yaml
647
- # Metrics to track
648
- metrics:
649
- - time_to_first_commit
650
- - time_to_production
651
- - lead_time_for_changes
652
- - deployment_frequency
653
- - change_failure_rate
654
- - mean_time_to_recovery
655
- ```
656
-
657
- ### 4. Progressive Disclosure
658
-
659
- Start simple, reveal complexity as needed. Don't overwhelm with options.
660
-
661
- ### 5. Self-Service with Guardrails
662
-
663
- Automate everything, but enforce standards and security.
664
-
665
- ---
666
-
667
- **Related Resources:**
668
- - [gitops-automation.md](gitops-automation.md) - Automated deployments
669
- - [infrastructure-standards.md](infrastructure-standards.md) - Platform standards
670
- - [service-mesh.md](service-mesh.md) - Service connectivity