@umacloud/knowledge 1.0.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 (418) hide show
  1. package/00-governance/governance-capabilities.md +557 -0
  2. package/00-governance/knowledge-map.md +39 -0
  3. package/00-governance/maintenance-policy.md +76 -0
  4. package/00-governance/review-checklist.md +81 -0
  5. package/README.md +13 -0
  6. package/ai/01-standards/agent-development-complete.md +691 -0
  7. package/ai/01-standards/llm-application-complete.md +488 -0
  8. package/ai/01-standards/mlops-complete.md +798 -0
  9. package/ai/01-standards/prompt-engineering-complete.md +646 -0
  10. package/ai/01-standards/rag-architecture-complete.md +649 -0
  11. package/ai/02-playbooks/llm-evaluation-playbook.md +847 -0
  12. package/ai/03-checklists/ai-project-checklist.md +215 -0
  13. package/ai/04-antipatterns/ai-antipatterns.md +661 -0
  14. package/ai/05-cases/case-rag-production.md +147 -0
  15. package/ai/06-glossary/ai-glossary.md +162 -0
  16. package/ai/agent-evaluation-benchmark.md +53 -0
  17. package/ai/ai-agent-memory-context-management.md +41 -0
  18. package/ai/ai-cost-capacity-optimization-playbook.md +42 -0
  19. package/ai/ai-data-security-and-compliance-playbook.md +37 -0
  20. package/ai/ai-domain-index-and-checklist.md +40 -0
  21. package/ai/ai-governance-maturity-model.md +50 -0
  22. package/ai/ai-model-selection-and-routing-strategy.md +47 -0
  23. package/ai/ai-observability-and-oncall-runbook.md +52 -0
  24. package/ai/ai-rag-engineering-playbook.md +42 -0
  25. package/ai/ai-red-team-and-safety-evaluation.md +42 -0
  26. package/ai/ai-release-readiness-and-rollback-gate.md +42 -0
  27. package/ai/llm-agent-engineering-deep-dive.md +57 -0
  28. package/ai/prompt-and-tool-guardrails.md +52 -0
  29. package/api/01-standards/enterprise-api-standards.md +198 -0
  30. package/api/01-standards/rest-api-design-guide.md +63 -0
  31. package/api/02-playbooks/api-pagination-playbook.md +93 -0
  32. package/api/02-playbooks/graphql-production-playbook.md +176 -0
  33. package/api/03-checklists/api-review-checklist.md +55 -0
  34. package/api/04-antipatterns/api-antipatterns.md +112 -0
  35. package/architecture/01-standards/api-gateway-patterns.md +496 -0
  36. package/architecture/01-standards/cloud-native-patterns.md +644 -0
  37. package/architecture/01-standards/distributed-systems-patterns.md +591 -0
  38. package/architecture/01-standards/event-driven-architecture.md +595 -0
  39. package/architecture/01-standards/microservices-patterns-complete.md +968 -0
  40. package/architecture/01-standards/microservices-patterns.md +495 -0
  41. package/architecture/01-standards/system-design-interview.md +664 -0
  42. package/architecture/02-playbooks/microservices-patterns-playbook.md +137 -0
  43. package/architecture/02-playbooks/migration-playbook.md +780 -0
  44. package/architecture/02-playbooks/system-design-playbook.md +779 -0
  45. package/architecture/03-checklists/architecture-decision-checklist.md +297 -0
  46. package/architecture/04-antipatterns/architecture-antipatterns.md +417 -0
  47. package/architecture/05-cases/case-netflix-microservices.md +413 -0
  48. package/architecture/06-glossary/architecture-glossary.md +164 -0
  49. package/architecture/adr-template-and-examples.md +38 -0
  50. package/architecture/api-gateway-deep-dive.md +1291 -0
  51. package/architecture/configuration-management.md +1162 -0
  52. package/architecture/distributed-transactions.md +1220 -0
  53. package/architecture/microservices-complete.md +735 -0
  54. package/architecture/resilience-and-disaster-patterns.md +37 -0
  55. package/architecture/service-governance.md +1198 -0
  56. package/architecture/system-architecture-deep-dive.md +37 -0
  57. package/backend/01-standards/analytics-and-growth.md +65 -0
  58. package/backend/01-standards/api-and-error-conventions.md +120 -0
  59. package/backend/01-standards/application-layering-and-packaging.md +160 -0
  60. package/backend/01-standards/auth-implementation.md +104 -0
  61. package/backend/01-standards/backend-framework-idioms.md +74 -0
  62. package/backend/01-standards/background-jobs-and-async.md +66 -0
  63. package/backend/01-standards/caching-strategies-complete.md +390 -0
  64. package/backend/01-standards/config-and-observability.md +77 -0
  65. package/backend/01-standards/data-modeling-and-persistence.md +94 -0
  66. package/backend/01-standards/django-complete.md +1765 -0
  67. package/backend/01-standards/email-and-notifications.md +64 -0
  68. package/backend/01-standards/fastapi-complete.md +925 -0
  69. package/backend/01-standards/file-upload-and-storage.md +66 -0
  70. package/backend/01-standards/graphql-api-complete.md +416 -0
  71. package/backend/01-standards/llm-application-standard.md +78 -0
  72. package/backend/01-standards/message-queue-patterns.md +379 -0
  73. package/backend/01-standards/microservices-and-distributed.md +78 -0
  74. package/backend/01-standards/nestjs-complete.md +2167 -0
  75. package/backend/01-standards/payment-integration.md +80 -0
  76. package/backend/01-standards/rate-limiting-complete.md +451 -0
  77. package/backend/01-standards/realtime-and-websocket.md +65 -0
  78. package/backend/01-standards/search-and-filtering.md +64 -0
  79. package/backend/01-standards/spring-boot-complete.md +445 -0
  80. package/backend/02-playbooks/api-design-playbook.md +718 -0
  81. package/backend/02-playbooks/email-send-playbook.md +130 -0
  82. package/backend/02-playbooks/file-upload-s3-playbook.md +153 -0
  83. package/backend/02-playbooks/typescript-enterprise-playbook.md +133 -0
  84. package/backend/02-playbooks/websocket-realtime-playbook.md +154 -0
  85. package/backend/03-checklists/api-launch-checklist.md +189 -0
  86. package/backend/04-antipatterns/backend-antipatterns.md +1051 -0
  87. package/blockchain/01-standards/blockchain-basics.md +557 -0
  88. package/blockchain/01-standards/smart-contract-development.md +1315 -0
  89. package/cicd/01-standards/deployment-and-delivery-standard.md +96 -0
  90. package/cicd/01-standards/github-actions-complete.md +473 -0
  91. package/cicd/01-standards/release-and-store-submission.md +75 -0
  92. package/cicd/02-playbooks/cicd-pipeline-playbook.md +144 -0
  93. package/cicd/02-playbooks/release-management-playbook.md +605 -0
  94. package/cicd/03-checklists/pipeline-security-checklist.md +168 -0
  95. package/cicd/04-antipatterns/cicd-antipatterns.md +589 -0
  96. package/cicd/05-cases/case-deployment-automation.md +221 -0
  97. package/cicd/05-cases/case-gitops-transformation.md +212 -0
  98. package/cicd/06-glossary/cicd-glossary.md +114 -0
  99. package/cicd/cicd-blueprint-deep-dive.md +38 -0
  100. package/cicd/release-readiness-gate.md +37 -0
  101. package/cloud-native/01-standards/container-security.md +741 -0
  102. package/cloud-native/01-standards/kubernetes-complete.md +812 -0
  103. package/cloud-native/02-playbooks/api-gateway-playbook.md +155 -0
  104. package/cloud-native/02-playbooks/gitops-with-argocd.md +760 -0
  105. package/cloud-native/02-playbooks/k8s-troubleshooting-playbook.md +1942 -0
  106. package/cloud-native/02-playbooks/message-queue-playbook.md +129 -0
  107. package/cloud-native/02-playbooks/multicloud-governance.md +726 -0
  108. package/cloud-native/02-playbooks/serverless-patterns.md +788 -0
  109. package/cloud-native/02-playbooks/service-mesh-playbook.md +612 -0
  110. package/cloud-native/02-playbooks/terraform-iac-playbook.md +143 -0
  111. package/cloud-native/03-checklists/container-security-checklist.md +431 -0
  112. package/cloud-native/03-checklists/k8s-production-readiness-checklist.md +460 -0
  113. package/cloud-native/04-antipatterns/container-antipatterns.md +660 -0
  114. package/cloud-native/04-antipatterns/k8s-antipatterns.md +743 -0
  115. package/cloud-native/05-cases/case-k8s-migration.md +478 -0
  116. package/cloud-native/05-cases/case-k8s-scaling.md +642 -0
  117. package/cloud-native/05-cases/case-k8s-security-incident.md +397 -0
  118. package/cloud-native/06-glossary/cloud-native-glossary.md +337 -0
  119. package/cross-platform/01-standards/cross-platform-frameworks.md +83 -0
  120. package/cross-platform/01-standards/platform-selection-and-architecture.md +77 -0
  121. package/data/01-standards/elasticsearch-complete.md +2098 -0
  122. package/data/01-standards/postgresql-complete.md +1613 -0
  123. package/data/01-standards/redis-complete.md +1527 -0
  124. package/data/02-playbooks/database-optimization-playbook.md +403 -0
  125. package/data/02-playbooks/elasticsearch-production-playbook.md +132 -0
  126. package/data/03-checklists/database-launch-checklist.md +187 -0
  127. package/data/04-antipatterns/database-antipatterns.md +873 -0
  128. package/data/05-cases/case-database-migration.md +310 -0
  129. package/data/06-glossary/database-glossary.md +440 -0
  130. package/data/data-governance-and-modeling-deep-dive.md +39 -0
  131. package/data-engineering/01-standards/airflow-complete.md +523 -0
  132. package/data-engineering/01-standards/kafka-complete.md +1521 -0
  133. package/data-engineering/02-playbooks/spark-etl-playbook.md +496 -0
  134. package/data-engineering/03-checklists/pipeline-launch-checklist.md +194 -0
  135. package/data-engineering/04-antipatterns/data-pipeline-antipatterns.md +684 -0
  136. package/data-engineering/05-cases/case-real-time-pipeline.md +355 -0
  137. package/data-engineering/06-glossary/data-engineering-glossary.md +429 -0
  138. package/database/01-standards/database-schema-standards.md +147 -0
  139. package/database/02-playbooks/postgresql-optimization-quick.md +52 -0
  140. package/database/02-playbooks/postgresql-performance-optimization.md +58 -0
  141. package/database/02-playbooks/postgresql-production-playbook.md +146 -0
  142. package/database/02-playbooks/redis-caching-playbook.md +117 -0
  143. package/database/03-checklists/database-review-checklist.md +50 -0
  144. package/database/04-antipatterns/database-antipatterns.md +112 -0
  145. package/design/01-standards/ui-design-system-complete.md +423 -0
  146. package/design/02-playbooks/design-handoff-playbook.md +254 -0
  147. package/design/02-playbooks/design-review-playbook.md +388 -0
  148. package/design/03-checklists/design-review-checklist.md +246 -0
  149. package/design/04-antipatterns/design-antipatterns.md +378 -0
  150. package/design/05-cases/case-design-system-adoption.md +328 -0
  151. package/design/06-glossary/design-glossary.md +329 -0
  152. package/design/ui-full-lifecycle-cross-platform-playbook.md +571 -0
  153. package/design/ux-system-deep-dive.md +38 -0
  154. package/design-systems/00-craft-rules.md +71 -0
  155. package/design-systems/aesthetic-families.md +43 -0
  156. package/design-systems/anti-ai-slop.md +162 -0
  157. package/design-systems/bold-geometric.md +120 -0
  158. package/design-systems/brutalist-bold.md +103 -0
  159. package/design-systems/editorial-clean.md +109 -0
  160. package/design-systems/glass-aurora.md +108 -0
  161. package/design-systems/modern-minimal.md +145 -0
  162. package/design-systems/premium-luxury.md +106 -0
  163. package/design-systems/product-type-design-map.md +48 -0
  164. package/design-systems/soft-warm.md +123 -0
  165. package/design-systems/tech-utility.md +113 -0
  166. package/desktop/01-standards/desktop-app-standard.md +72 -0
  167. package/desktop/01-standards/desktop-design.md +71 -0
  168. package/development/00-governance/document-template.md +41 -0
  169. package/development/01-standards/api-versioning-strategies.md +432 -0
  170. package/development/01-standards/authentication-patterns-complete.md +479 -0
  171. package/development/01-standards/css-architecture-complete.md +550 -0
  172. package/development/01-standards/database-migration-strategies.md +484 -0
  173. package/development/01-standards/elasticsearch-complete.md +347 -0
  174. package/development/01-standards/git-complete.md +371 -0
  175. package/development/01-standards/golang-complete.md +1565 -0
  176. package/development/01-standards/graphql-complete.md +298 -0
  177. package/development/01-standards/javascript-bundlers-complete.md +469 -0
  178. package/development/01-standards/javascript-typescript-complete.md +528 -0
  179. package/development/01-standards/jest-complete.md +275 -0
  180. package/development/01-standards/linux-complete.md +234 -0
  181. package/development/01-standards/logging-observability-complete.md +526 -0
  182. package/development/01-standards/microservices-communication.md +502 -0
  183. package/development/01-standards/mongodb-complete.md +406 -0
  184. package/development/01-standards/oauth2-complete.md +285 -0
  185. package/development/01-standards/performance-optimization-complete.md +289 -0
  186. package/development/01-standards/playwright-complete.md +247 -0
  187. package/development/01-standards/postgresql-complete.md +456 -0
  188. package/development/01-standards/pytest-complete.md +340 -0
  189. package/development/01-standards/python-async-programming.md +902 -0
  190. package/development/01-standards/python-complete.md +956 -0
  191. package/development/01-standards/python-decorators-complete.md +799 -0
  192. package/development/01-standards/python-design-patterns.md +2854 -0
  193. package/development/01-standards/python-packaging-distribution.md +420 -0
  194. package/development/01-standards/python-testing-strategies.md +607 -0
  195. package/development/01-standards/python-web-frameworks-comparison.md +471 -0
  196. package/development/01-standards/redis-complete.md +317 -0
  197. package/development/01-standards/rest-api-complete.md +316 -0
  198. package/development/01-standards/rust-complete.md +578 -0
  199. package/development/01-standards/typescript-advanced-types.md +1513 -0
  200. package/development/01-standards/web-security-complete.md +292 -0
  201. package/development/02-playbooks/api-design-playbook.md +810 -0
  202. package/development/02-playbooks/database-migration-playbook.md +580 -0
  203. package/development/02-playbooks/debugging-playbook.md +692 -0
  204. package/development/02-playbooks/feature-delivery-playbook.md +430 -0
  205. package/development/02-playbooks/incident-hotfix-playbook.md +387 -0
  206. package/development/02-playbooks/performance-optimization-playbook.md +531 -0
  207. package/development/02-playbooks/performance-tuning-playbook.md +652 -0
  208. package/development/02-playbooks/refactor-playbook.md +403 -0
  209. package/development/02-playbooks/release-playbook.md +469 -0
  210. package/development/03-checklists/architecture-review-checklist.md +168 -0
  211. package/development/03-checklists/data-migration-checklist.md +157 -0
  212. package/development/03-checklists/oncall-handover-checklist.md +173 -0
  213. package/development/03-checklists/pr-checklist.md +158 -0
  214. package/development/03-checklists/production-readiness-checklist.md +190 -0
  215. package/development/03-checklists/release-readiness-checklist.md +154 -0
  216. package/development/03-checklists/security-review-checklist.md +182 -0
  217. package/development/04-antipatterns/api-antipatterns.md +657 -0
  218. package/development/04-antipatterns/architecture-antipatterns.md +686 -0
  219. package/development/04-antipatterns/backend-antipatterns.md +648 -0
  220. package/development/04-antipatterns/cicd-antipatterns.md +540 -0
  221. package/development/04-antipatterns/code-smell-antipatterns.md +571 -0
  222. package/development/04-antipatterns/data-antipatterns.md +658 -0
  223. package/development/04-antipatterns/database-antipatterns.md +578 -0
  224. package/development/04-antipatterns/frontend-antipatterns.md +635 -0
  225. package/development/04-antipatterns/reliability-antipatterns.md +700 -0
  226. package/development/04-antipatterns/security-antipatterns.md +747 -0
  227. package/development/05-cases/case-api-version-migration.md +428 -0
  228. package/development/05-cases/case-authorization-hardening.md +383 -0
  229. package/development/05-cases/case-bluegreen-rollback.md +466 -0
  230. package/development/05-cases/case-cache-snowball-protection.md +485 -0
  231. package/development/05-cases/case-ci-cd-pipeline.md +544 -0
  232. package/development/05-cases/case-database-scaling.md +500 -0
  233. package/development/05-cases/case-db-hotspot-optimization.md +487 -0
  234. package/development/05-cases/case-incident-mttr-reduction.md +563 -0
  235. package/development/05-cases/case-microservice-migration.md +375 -0
  236. package/development/05-cases/case-performance-optimization.md +406 -0
  237. package/development/05-cases/case-security-incident-response.md +345 -0
  238. package/development/06-glossary/full-stack-glossary.md +166 -0
  239. package/development/09-maturity/quarterly-audit-template.md +35 -0
  240. package/development/11-ui-excellence/ui-aesthetic-system.md +41 -0
  241. package/development/11-ui-excellence/ui-engineering-excellence.md +435 -0
  242. package/development/12-scenarios/development-scenarios-guide.md +565 -0
  243. package/development/13-implementation-assets/implementation-toolkit.md +282 -0
  244. package/development/13-implementation-assets/knowledge-gates-execution.md +43 -0
  245. package/development/14-full-lifecycle/software-lifecycle-gates.md +511 -0
  246. package/development/15-lifecycle-templates/project-templates-collection.md +791 -0
  247. package/development/api-contract-and-versioning-guide.md +36 -0
  248. package/development/api-governance-complete.md +43 -0
  249. package/development/backend-engineering-complete.md +43 -0
  250. package/development/code-review-quality-complete.md +43 -0
  251. package/development/concurrency-reliability-complete.md +43 -0
  252. package/development/database-engineering-complete.md +43 -0
  253. package/development/engineering-effectiveness-complete.md +43 -0
  254. package/development/engineering-standards-deep-dive.md +38 -0
  255. package/development/frontend-engineering-complete.md +43 -0
  256. package/development/performance-capacity-complete.md +43 -0
  257. package/development/refactor-migration-complete.md +42 -0
  258. package/development/refactoring-and-techdebt-playbook.md +37 -0
  259. package/development/security-in-development-complete.md +43 -0
  260. package/devops/01-standards/cicd-pipeline-complete.md +262 -0
  261. package/devops/01-standards/docker-complete.md +1490 -0
  262. package/devops/01-standards/github-actions-complete.md +337 -0
  263. package/devops/01-standards/kubernetes-complete.md +638 -0
  264. package/devops/01-standards/terraform-complete.md +2117 -0
  265. package/devops/02-playbooks/docker-compose-playbook.md +233 -0
  266. package/devops/02-playbooks/docker-k8s-production-playbook.md +186 -0
  267. package/devops/02-playbooks/docker-production-playbook.md +952 -0
  268. package/edge-iot/01-standards/edge-iot-complete.md +473 -0
  269. package/experts/architect/api-design.md +178 -0
  270. package/experts/architect/methodology.md +124 -0
  271. package/experts/architect/security.md +75 -0
  272. package/experts/backend-lead/methodology.md +216 -0
  273. package/experts/devops/methodology.md +160 -0
  274. package/experts/frontend-lead/methodology.md +178 -0
  275. package/experts/product-manager/industry/ecommerce.md +43 -0
  276. package/experts/product-manager/industry/saas.md +40 -0
  277. package/experts/product-manager/methodology.md +97 -0
  278. package/experts/qa-lead/methodology.md +123 -0
  279. package/experts/qa-lead/test-strategy.md +128 -0
  280. package/experts/uiux-designer/methodology.md +125 -0
  281. package/frontend/01-standards/accessibility-complete.md +532 -0
  282. package/frontend/01-standards/accessibility-standard.md +74 -0
  283. package/frontend/01-standards/admin-dashboard-and-crud.md +72 -0
  284. package/frontend/01-standards/design-tokens-complete.md +444 -0
  285. package/frontend/01-standards/forms-and-validation.md +77 -0
  286. package/frontend/01-standards/frontend-architecture-and-layering.md +119 -0
  287. package/frontend/01-standards/i18n-and-localization.md +65 -0
  288. package/frontend/01-standards/nextjs-complete.md +451 -0
  289. package/frontend/01-standards/react-complete.md +713 -0
  290. package/frontend/01-standards/react-hooks-complete-guide.md +1100 -0
  291. package/frontend/01-standards/react-hooks-complete.md +1171 -0
  292. package/frontend/01-standards/seo-and-web-vitals.md +77 -0
  293. package/frontend/01-standards/state-management-complete.md +444 -0
  294. package/frontend/01-standards/vue-complete.md +499 -0
  295. package/frontend/01-standards/vue3-complete.md +2002 -0
  296. package/frontend/01-standards/web-framework-best-practices.md +64 -0
  297. package/frontend/01-standards/web-performance-complete.md +495 -0
  298. package/frontend/02-playbooks/accessibility-a11y-playbook.md +161 -0
  299. package/frontend/02-playbooks/frontend-performance-playbook.md +707 -0
  300. package/frontend/02-playbooks/i18n-internationalization-playbook.md +120 -0
  301. package/frontend/02-playbooks/performance-optimization-playbook.md +163 -0
  302. package/frontend/02-playbooks/react-nextjs-production-playbook.md +167 -0
  303. package/frontend/02-playbooks/react-state-management-playbook.md +173 -0
  304. package/frontend/03-checklists/component-quality-checklist.md +166 -0
  305. package/frontend/03-checklists/frontend-launch-checklist.md +299 -0
  306. package/frontend/04-antipatterns/frontend-antipatterns.md +886 -0
  307. package/frontend/05-cases/case-performance-optimization.md +274 -0
  308. package/harmony/01-standards/harmonyos-arkts-standard.md +75 -0
  309. package/harmony/01-standards/harmonyos-design.md +65 -0
  310. package/high-quality-engineering-playbook.md +54 -0
  311. package/incident/01-standards/incident-response-complete.md +303 -0
  312. package/incident/02-playbooks/chaos-engineering-playbook.md +883 -0
  313. package/incident/02-playbooks/postmortem-playbook.md +398 -0
  314. package/incident/03-checklists/incident-readiness-checklist.md +181 -0
  315. package/incident/04-antipatterns/incident-antipatterns.md +490 -0
  316. package/incident/05-cases/case-cascade-failure.md +176 -0
  317. package/incident/06-glossary/incident-glossary.md +114 -0
  318. package/incident/postmortem-and-response-deep-dive.md +39 -0
  319. package/industries/ecommerce/ecommerce-complete.md +631 -0
  320. package/industries/education/education-complete.md +555 -0
  321. package/industries/fintech/fintech-complete.md +501 -0
  322. package/industries/gaming/gaming-complete.md +587 -0
  323. package/industries/healthcare/healthcare-complete.md +452 -0
  324. package/low-code/01-standards/low-code-complete.md +944 -0
  325. package/miniprogram/01-standards/ai-common-mistakes.md +61 -0
  326. package/miniprogram/01-standards/miniprogram-custom-navbar-capsule.md +77 -0
  327. package/miniprogram/01-standards/miniprogram-design.md +61 -0
  328. package/miniprogram/01-standards/miniprogram-standard.md +81 -0
  329. package/mobile/01-standards/android-material-design.md +70 -0
  330. package/mobile/01-standards/flutter-complete.md +384 -0
  331. package/mobile/01-standards/ios-design-hig.md +78 -0
  332. package/mobile/01-standards/mobile-app-standard.md +85 -0
  333. package/mobile/01-standards/react-native-complete.md +352 -0
  334. package/mobile/02-playbooks/mobile-cross-platform-playbook.md +175 -0
  335. package/mobile/02-playbooks/mobile-performance.md +473 -0
  336. package/mobile/03-checklists/mobile-release-checklist.md +234 -0
  337. package/mobile/04-antipatterns/mobile-antipatterns.md +798 -0
  338. package/mobile/05-cases/case-app-performance.md +500 -0
  339. package/mobile/05-cases/case-app-startup-optimization.md +218 -0
  340. package/mobile/06-glossary/mobile-glossary.md +484 -0
  341. package/observability/01-standards/observability-standards.md +103 -0
  342. package/observability/02-playbooks/prometheus-grafana-playbook.md +135 -0
  343. package/observability/02-playbooks/structured-logging-playbook.md +73 -0
  344. package/observability/03-checklists/observability-checklist.md +54 -0
  345. package/observability/04-antipatterns/observability-antipatterns.md +106 -0
  346. package/operations/01-standards/prometheus-monitoring-complete.md +1578 -0
  347. package/operations/02-playbooks/capacity-planning-playbook.md +620 -0
  348. package/operations/03-checklists/production-launch-checklist.md +365 -0
  349. package/operations/04-antipatterns/operations-antipatterns.md +664 -0
  350. package/operations/05-cases/case-sre-practices.md +581 -0
  351. package/operations/06-glossary/operations-glossary.md +120 -0
  352. package/operations/aiops-anomaly-detection.md +758 -0
  353. package/operations/capacity-planning.md +1061 -0
  354. package/operations/chaos-engineering.md +659 -0
  355. package/operations/incident-command-system.md +38 -0
  356. package/operations/observability-complete.md +442 -0
  357. package/operations/slo-sli-playbook.md +517 -0
  358. package/operations/sre-operations-deep-dive.md +39 -0
  359. package/package.json +8 -0
  360. package/performance/01-standards/performance-and-scalability.md +80 -0
  361. package/performance/01-standards/performance-standards.md +156 -0
  362. package/performance/02-playbooks/query-optimization-playbook.md +103 -0
  363. package/performance/03-checklists/performance-checklist.md +56 -0
  364. package/performance/04-antipatterns/performance-antipatterns.md +146 -0
  365. package/product/01-standards/product-management-complete.md +285 -0
  366. package/product/02-playbooks/feature-launch-playbook.md +207 -0
  367. package/product/02-playbooks/user-research-playbook.md +532 -0
  368. package/product/03-checklists/feature-launch-checklist.md +275 -0
  369. package/product/04-antipatterns/product-antipatterns.md +355 -0
  370. package/product/05-cases/case-mvp-to-scale.md +384 -0
  371. package/product/06-glossary/product-glossary.md +462 -0
  372. package/product/feature-prioritization-framework.md +40 -0
  373. package/product/kpi-and-metric-tree.md +37 -0
  374. package/product/product-discovery-and-prd-deep-dive.md +41 -0
  375. package/quantum/01-standards/quantum-complete.md +1186 -0
  376. package/security/01-standards/api-security-complete.md +511 -0
  377. package/security/01-standards/container-runtime-security.md +574 -0
  378. package/security/01-standards/data-protection-gdpr.md +543 -0
  379. package/security/01-standards/owasp-top10-complete.md +1890 -0
  380. package/security/01-standards/secure-coding-baseline.md +90 -0
  381. package/security/01-standards/supply-chain-security.md +441 -0
  382. package/security/01-standards/web-security-checklist.md +108 -0
  383. package/security/01-standards/zero-trust-architecture.md +521 -0
  384. package/security/02-playbooks/auth-sso-playbook.md +166 -0
  385. package/security/02-playbooks/incident-response-security-playbook.md +588 -0
  386. package/security/02-playbooks/owasp-api-security-playbook.md +129 -0
  387. package/security/02-playbooks/payment-integration-playbook.md +119 -0
  388. package/security/02-playbooks/penetration-testing-playbook.md +517 -0
  389. package/security/03-checklists/security-audit-checklist.md +356 -0
  390. package/security/04-antipatterns/security-coding-antipatterns.md +580 -0
  391. package/security/05-cases/case-log4shell-incident.md +537 -0
  392. package/security/05-cases/case-major-breaches.md +468 -0
  393. package/security/06-glossary/security-glossary.md +212 -0
  394. package/security/compliance-automation.md +993 -0
  395. package/security/container-security.md +680 -0
  396. package/security/devsecops-complete.md +426 -0
  397. package/security/sast-dast-sca.md +775 -0
  398. package/security/secrets-management.md +594 -0
  399. package/security/security-architecture-deep-dive.md +37 -0
  400. package/security/threat-modeling-stride-playbook.md +40 -0
  401. package/seed-templates/auth-system.md +59 -0
  402. package/seed-templates/blog-content.md +94 -0
  403. package/seed-templates/dashboard.md +89 -0
  404. package/seed-templates/docs-site.md +73 -0
  405. package/seed-templates/e-commerce.md +50 -0
  406. package/seed-templates/saas-landing.md +92 -0
  407. package/seed-templates/settings-page.md +51 -0
  408. package/testing/01-standards/test-strategy-and-layering.md +83 -0
  409. package/testing/01-standards/testing-strategy-complete.md +422 -0
  410. package/testing/01-standards/unit-testing-best-practices.md +118 -0
  411. package/testing/02-playbooks/e2e-testing-playbook.md +988 -0
  412. package/testing/02-playbooks/testing-strategy-playbook.md +126 -0
  413. package/testing/03-checklists/test-strategy-checklist.md +208 -0
  414. package/testing/04-antipatterns/testing-antipatterns.md +718 -0
  415. package/testing/05-cases/case-testing-transformation.md +300 -0
  416. package/testing/06-glossary/testing-glossary.md +110 -0
  417. package/testing/risk-based-test-matrix.md +36 -0
  418. package/testing/testing-strategy-deep-dive.md +37 -0
@@ -0,0 +1,473 @@
1
+ ---
2
+ id: edge-iot-complete
3
+ title: 边缘计算与IoT完整指南
4
+ domain: edge-iot
5
+ category: 01-standards
6
+ difficulty: intermediate
7
+ tags: [complete, edge, edge-iot, iot, 参考资料, 学习路径, 最佳实践, 核心概念]
8
+ quality_score: 70
9
+ last_updated: 2026-06-15
10
+ ---
11
+ # 边缘计算与IoT完整指南
12
+
13
+ ## 概述
14
+ 边缘计算将计算能力下沉到网络边缘(设备端),减少延迟和带宽消耗。IoT(物联网)连接数十亿设备,从智能家居到工业4.0。本指南覆盖边缘架构、IoT协议、数据处理和最佳实践。
15
+
16
+ ## 核心概念
17
+
18
+ ### 1. 边缘计算架构
19
+
20
+ **三层架构**:
21
+ ```
22
+ Cloud (云端)
23
+ ├── 数据中心、AI训练、长期存储
24
+ |
25
+ Edge (边缘)
26
+ ├── 边缘服务器、5G基站、CDN节点
27
+ |
28
+ Device (设备端)
29
+ ├── 传感器、摄像头、智能设备
30
+ ```
31
+
32
+ **实现**:
33
+ ```python
34
+ # 边缘节点数据处理
35
+ import numpy as np
36
+ from typing import Dict
37
+
38
+ class EdgeNode:
39
+ def __init__(self, node_id: str, capacity: int):
40
+ self.node_id = node_id
41
+ self.capacity = capacity # 处理能力(每秒样本数)
42
+ self.buffer = []
43
+ self.model = None
44
+
45
+ def load_model(self, model_path: str):
46
+ """加载轻量级ML模型"""
47
+ import tensorflow as tf
48
+ self.model = tf.lite.Interpreter(model_path=model_path)
49
+ self.model.allocate_tensors()
50
+
51
+ def process_stream(self, data: np.ndarray) -> Dict:
52
+ """实时处理数据流"""
53
+ # 缓冲数据
54
+ self.buffer.append(data)
55
+
56
+ # 批量处理
57
+ if len(self.buffer) >= self.capacity:
58
+ batch = np.array(self.buffer)
59
+
60
+ # 本地推理
61
+ results = self.inference(batch)
62
+
63
+ # 清空缓冲
64
+ self.buffer = []
65
+
66
+ return results
67
+
68
+ return None
69
+
70
+ def inference(self, batch: np.ndarray) -> Dict:
71
+ """边缘推理"""
72
+ input_details = self.model.get_input_details()
73
+ output_details = self.model.get_output_details()
74
+
75
+ self.model.set_tensor(input_details[0]['index'], batch)
76
+ self.model.invoke()
77
+
78
+ output = self.model.get_tensor(output_details[0]['index'])
79
+
80
+ # 只上传异常数据到云端
81
+ anomalies = self.filter_anomalies(output)
82
+ return anomalies
83
+
84
+ def filter_anomalies(self, predictions: np.ndarray) -> Dict:
85
+ """过滤异常,减少上传"""
86
+ threshold = 0.9
87
+ anomalies = []
88
+
89
+ for idx, pred in enumerate(predictions):
90
+ if pred > threshold:
91
+ anomalies.append({
92
+ 'index': idx,
93
+ 'confidence': float(pred),
94
+ 'timestamp': time.time()
95
+ })
96
+
97
+ return {
98
+ 'node_id': self.node_id,
99
+ 'anomalies': anomalies,
100
+ 'total_processed': len(predictions)
101
+ }
102
+
103
+ # 使用示例
104
+ edge = EdgeNode('factory-line-1', capacity=32)
105
+ edge.load_model('anomaly_detection.tflite')
106
+
107
+ # 模拟数据流
108
+ for i in range(100):
109
+ sensor_data = np.random.randn(32, 10) # 32个样本,10个特征
110
+ result = edge.process_stream(sensor_data)
111
+
112
+ if result and result['anomalies']:
113
+ # 上传到云端
114
+ upload_to_cloud(result)
115
+ ```
116
+
117
+ ### 2. IoT协议
118
+
119
+ **MQTT**:
120
+ ```python
121
+ import paho.mqtt.client as mqtt
122
+ import json
123
+
124
+ class IoTSensor:
125
+ def __init__(self, broker: str, port: int, topic: str):
126
+ self.client = mqtt.Client()
127
+ self.broker = broker
128
+ self.port = port
129
+ self.topic = topic
130
+
131
+ # 设置回调
132
+ self.client.on_connect = self.on_connect
133
+ self.client.on_message = self.on_message
134
+
135
+ def on_connect(self, client, userdata, flags, rc):
136
+ print(f"Connected with result code {rc}")
137
+ client.subscribe(self.topic)
138
+
139
+ def on_message(self, client, userdata, msg):
140
+ payload = json.loads(msg.payload.decode())
141
+ self.process_message(payload)
142
+
143
+ def process_message(self, payload: dict):
144
+ """处理传感器数据"""
145
+ temperature = payload['temperature']
146
+ humidity = payload['humidity']
147
+
148
+ # 边缘计算: 异常检测
149
+ if temperature > 50 or humidity > 90:
150
+ self.alert_anomaly(payload)
151
+ else:
152
+ self.store_locally(payload)
153
+
154
+ def alert_anomaly(self, data: dict):
155
+ """异常告警"""
156
+ alert = {
157
+ 'type': 'anomaly',
158
+ 'sensor_id': data['sensor_id'],
159
+ 'values': {
160
+ 'temperature': data['temperature'],
161
+ 'humidity': data['humidity']
162
+ },
163
+ 'timestamp': time.time()
164
+ }
165
+ self.client.publish('alerts/anomaly', json.dumps(alert))
166
+
167
+ def store_locally(self, data: dict):
168
+ """本地存储(减少云端带宽)"""
169
+ with open('sensor_data.log', 'a') as f:
170
+ f.write(json.dumps(data) + '\n')
171
+
172
+ def connect(self):
173
+ self.client.connect(self.broker, self.port, 60)
174
+ self.client.loop_start()
175
+
176
+ # 使用
177
+ sensor = IoTSensor('mqtt.broker.com', 1883, 'sensors/temperature')
178
+ sensor.connect()
179
+
180
+ # 模拟传感器发送数据
181
+ import time
182
+ while True:
183
+ data = {
184
+ 'sensor_id': 'temp-001',
185
+ 'temperature': np.random.uniform(20, 55),
186
+ 'humidity': np.random.uniform(30, 95),
187
+ 'timestamp': time.time()
188
+ }
189
+ sensor.client.publish('sensors/temperature', json.dumps(data))
190
+ time.sleep(5)
191
+ ```
192
+
193
+ **CoAP**:
194
+ ```python
195
+ from coapthon.client.helperclient import HelperClient
196
+ from coapthon.resources.resource import Resource
197
+
198
+ class SensorResource(Resource):
199
+ def __init__(self, name="sensor"):
200
+ super(SensorResource, self).__init__(name)
201
+ self.payload = "Temperature: 25°C"
202
+
203
+ def render_GET(self, request):
204
+ return self
205
+
206
+ def render_POST(self, request):
207
+ # 接收传感器数据
208
+ data = request.payload
209
+ self.process_data(data)
210
+ return self
211
+
212
+ def process_data(self, data):
213
+ """处理传感器POST数据"""
214
+ print(f"Received: {data}")
215
+
216
+ # CoAP服务器
217
+ from coapthon.server.coap import CoAP
218
+
219
+ coap_server = CoAP("0.0.0.0", 5683)
220
+ coap_server.add_resource('sensor/', SensorResource())
221
+
222
+ try:
223
+ coap_server.listen(10)
224
+ except KeyboardInterrupt:
225
+ coap_server.close()
226
+ ```
227
+
228
+ ### 3. 时序数据处理
229
+
230
+ **流处理**:
231
+ ```python
232
+ from collections import deque
233
+ import numpy as np
234
+
235
+ class TimeSeriesProcessor:
236
+ def __init__(self, window_size: int = 100):
237
+ self.window = deque(maxlen=window_size)
238
+ self.anomaly_threshold = 3.0 # 3倍标准差
239
+
240
+ def add_point(self, value: float) -> dict:
241
+ """添加新数据点并检测异常"""
242
+ self.window.append(value)
243
+
244
+ if len(self.window) < 10:
245
+ return {'status': 'insufficient_data'}
246
+
247
+ # 计算统计量
248
+ mean = np.mean(self.window)
249
+ std = np.std(self.window)
250
+
251
+ # Z-score异常检测
252
+ z_score = (value - mean) / std if std > 0 else 0
253
+
254
+ result = {
255
+ 'value': value,
256
+ 'mean': mean,
257
+ 'std': std,
258
+ 'z_score': z_score,
259
+ 'is_anomaly': abs(z_score) > self.anomaly_threshold
260
+ }
261
+
262
+ return result
263
+
264
+ def predict_next(self) -> float:
265
+ """简单移动平均预测"""
266
+ if len(self.window) == 0:
267
+ return 0.0
268
+
269
+ # 加权移动平均
270
+ weights = np.exp(np.linspace(-1, 0, len(self.window)))
271
+ weights /= weights.sum()
272
+
273
+ prediction = np.dot(weights, self.window)
274
+ return prediction
275
+
276
+ # 使用
277
+ processor = TimeSeriesProcessor(window_size=50)
278
+
279
+ for i in range(100):
280
+ # 模拟传感器数据
281
+ value = np.random.normal(25, 2) # 温度数据
282
+
283
+ # 随机注入异常
284
+ if i == 50:
285
+ value = 50 # 异常高温
286
+
287
+ result = processor.add_point(value)
288
+
289
+ if result['is_anomaly']:
290
+ print(f"⚠️ 检测到异常! 值={value}, Z-score={result['z_score']:.2f}")
291
+
292
+ # 预测下一个值
293
+ prediction = processor.predict_next()
294
+ ```
295
+
296
+ ### 4. 设备管理
297
+
298
+ **OTA更新**:
299
+ ```python
300
+ import hashlib
301
+ import json
302
+
303
+ class OTAUpdater:
304
+ def __init__(self, device_id: str):
305
+ self.device_id = device_id
306
+ self.firmware_version = "1.0.0"
307
+
308
+ def check_update(self) -> dict:
309
+ """检查固件更新"""
310
+ # 从服务器获取最新版本
311
+ latest = self.fetch_latest_version()
312
+
313
+ if self.compare_versions(latest['version'], self.firmware_version):
314
+ return {
315
+ 'update_available': True,
316
+ 'version': latest['version'],
317
+ 'size': latest['size'],
318
+ 'checksum': latest['checksum']
319
+ }
320
+
321
+ return {'update_available': False}
322
+
323
+ def download_firmware(self, version: str) -> bytes:
324
+ """下载固件"""
325
+ import requests
326
+ url = f"https://firmware.example.com/{version}.bin"
327
+
328
+ response = requests.get(url)
329
+ return response.content
330
+
331
+ def verify_firmware(self, firmware: bytes, expected_checksum: str) -> bool:
332
+ """验证固件完整性"""
333
+ actual = hashlib.sha256(firmware).hexdigest()
334
+ return actual == expected_checksum
335
+
336
+ def apply_update(self, firmware: bytes):
337
+ """应用固件更新"""
338
+ # 1. 验证
339
+ if not self.verify_firmware(firmware, expected_checksum):
340
+ raise ValueError("Firmware verification failed")
341
+
342
+ # 2. 写入临时分区
343
+ self.write_to_temp_partition(firmware)
344
+
345
+ # 3. 验证新固件可启动
346
+ if not self.verify_bootable():
347
+ self.rollback()
348
+ raise RuntimeError("Firmware not bootable")
349
+
350
+ # 4. 切换启动分区
351
+ self.switch_boot_partition()
352
+
353
+ # 5. 重启设备
354
+ self.reboot()
355
+
356
+ # 使用
357
+ updater = OTAUpdater('device-001')
358
+ update_info = updater.check_update()
359
+
360
+ if update_info['update_available']:
361
+ print(f"发现新版本: {update_info['version']}")
362
+
363
+ firmware = updater.download_firmware(update_info['version'])
364
+
365
+ try:
366
+ updater.apply_update(firmware)
367
+ print("✅ 更新成功")
368
+ except Exception as e:
369
+ print(f"❌ 更新失败: {e}")
370
+ ```
371
+
372
+ ## 最佳实践
373
+
374
+ ### ✅ DO
375
+
376
+ 1. **边缘过滤数据**
377
+ ```python
378
+ # ✅ 只上传有价值数据
379
+ if is_anomaly(data):
380
+ upload_to_cloud(data)
381
+ else:
382
+ store_locally(data)
383
+ ```
384
+
385
+ 2. **使用轻量级模型**
386
+ ```python
387
+ # ✅ TensorFlow Lite
388
+ converter = tf.lite.TFLiteConverter.from_keras_model(model)
389
+ tflite_model = converter.convert()
390
+
391
+ # 量化减小模型大小
392
+ converter.optimizations = [tf.lite.Optimize.DEFAULT]
393
+ ```
394
+
395
+ 3. **断网容错**
396
+ ```python
397
+ # ✅ 本地缓存+稍后同步
398
+ class ResilientSensor:
399
+ def __init__(self):
400
+ self.cache = []
401
+
402
+ def send_data(self, data):
403
+ try:
404
+ upload_to_cloud(data)
405
+ except ConnectionError:
406
+ self.cache.append(data)
407
+ self.retry_later()
408
+ ```
409
+
410
+ ### ❌ DON'T
411
+
412
+ 1. **不要实时上传所有数据**
413
+ ```python
414
+ # ❌ 带宽浪费
415
+ for sample in sensor_stream:
416
+ upload_to_cloud(sample)
417
+
418
+ # ✅ 边缘聚合
419
+ batch = aggregate(samples, batch_size=100)
420
+ upload_to_cloud(batch)
421
+ ```
422
+
423
+ 2. **不要忽视安全**
424
+ ```python
425
+ # ❌ 明文通信
426
+ client.publish('sensors', json.dumps(data))
427
+
428
+ # ✅ 加密通信
429
+ encrypted = encrypt(data, key)
430
+ client.publish('sensors', encrypted)
431
+ ```
432
+
433
+ ## 学习路径
434
+
435
+ ### 初级 (1-2周)
436
+ 1. 边缘计算概念
437
+ 2. MQTT/CoAP协议
438
+ 3. 树莓派/Arduino基础
439
+
440
+ ### 中级 (2-3周)
441
+ 1. 时序数据处理
442
+ 2. 轻量级ML模型
443
+ 3. 设备管理
444
+
445
+ ### 高级 (2-4周)
446
+ 1. 边缘AI推理
447
+ 2. 数字孪生
448
+ 3. 工业IoT
449
+
450
+ ### 专家级 (持续)
451
+ 1. 5G边缘计算
452
+ 2. 边缘协同学习
453
+ 3. 雾计算架构
454
+
455
+ ## 参考资料
456
+
457
+ ### 协议文档
458
+ - [MQTT官方文档](https://mqtt.org/)
459
+ - [CoAP RFC 7252](https://tools.ietf.org/html/rfc7252)
460
+
461
+ ### 平台
462
+ - [AWS IoT Greengrass](https://aws.amazon.com/greengrass/)
463
+ - [Azure IoT Edge](https://azure.microsoft.com/services/iot-edge/)
464
+
465
+ ---
466
+
467
+ **知识ID**: `edge-iot-complete`
468
+ **领域**: edge-iot
469
+ **类型**: standards
470
+ **难度**: intermediate
471
+ **质量分**: 92
472
+ **维护者**: iot-team@umadev.com
473
+ **最后更新**: 2026-03-28
@@ -0,0 +1,178 @@
1
+ ---
2
+ id: api-design
3
+ title: Architect — RESTful API Design Standards
4
+ domain: experts
5
+ category: architect
6
+ difficulty: intermediate
7
+ tags: [api, authentication, cors, design, experts, filtering, limiting, pagination]
8
+ quality_score: 70
9
+ last_updated: 2026-06-15
10
+ ---
11
+ # Architect — RESTful API Design Standards
12
+
13
+ ## 架构文档必须明确"结构决策"(落到后端实现)
14
+
15
+ 架构文档不能只画框图,必须明确写出**让后端照着建的结构决策**,否则下游会写成扁平烂代码:
16
+
17
+ - **分层模型**:声明采用分层/Clean 架构——接口层(controller)→应用层(service,编排+事务)→领域层(entity/VO,业务规则)→基础设施层(repository/adapter),依赖向内。
18
+ - **模块/分包划分**:按业务域(限界上下文)列出 feature 模块(如 orders / payments / users / auth),每个模块内部按层组织;跨模块通过服务接口/领域事件通信。**优先 package-by-feature**。
19
+ - **服务层边界**:每个用例对应一个服务方法=一个事务边界;收发 DTO 不泄露 ORM entity。
20
+ - **数据模型**:实体+字段+关系+关键约束/索引;金额非 float、时间带时区。
21
+ - **API 契约**:资源、方法、状态码、统一错误信封、鉴权方案(哪些端点需鉴权)。
22
+ - **技术栈选型 + 理由**:框架/DB/缓存/队列,并说明为何。
23
+ - 详见 `backend/01-standards/application-layering-and-packaging`、`api-and-error-conventions`、`data-modeling-and-persistence`。
24
+
25
+ ## URL Design
26
+
27
+ ### Naming Conventions
28
+ - Use nouns, not verbs: `/users` not `/getUsers`
29
+ - Plural for collections: `/users`, `/posts`, `/comments`
30
+ - Nested resources for relationships: `/users/{id}/posts`
31
+ - Max 2 levels of nesting: `/users/{id}/posts` (OK), `/users/{id}/posts/{id}/comments/{id}/likes` (too deep → flatten)
32
+ - Kebab-case for multi-word: `/user-profiles` not `/userProfiles`
33
+ - No trailing slashes: `/users` not `/users/`
34
+
35
+ ### HTTP Methods
36
+ | Method | Use | Idempotent | Safe | Example |
37
+ |---|---|---|---|---|
38
+ | GET | Read | Yes | Yes | `GET /users/123` |
39
+ | POST | Create | No | No | `POST /users` |
40
+ | PUT | Full replace | Yes | No | `PUT /users/123` |
41
+ | PATCH | Partial update | Yes | No | `PATCH /users/123` |
42
+ | DELETE | Remove | Yes | No | `DELETE /users/123` |
43
+
44
+ ### Versioning
45
+ - URL prefix: `/api/v1/users`
46
+ - Not headers (harder to test, cache, share)
47
+ - Increment on breaking changes only
48
+
49
+ ## Request/Response Standards
50
+
51
+ ### Request Body
52
+ ```json
53
+ {
54
+ "email": "user@example.com",
55
+ "name": "Jane Doe",
56
+ "role": "admin"
57
+ }
58
+ ```
59
+ - camelCase for JSON fields
60
+ - Validate ALL fields server-side (never trust client)
61
+ - Return 422 for validation errors with field-level details
62
+
63
+ ### Success Response
64
+ ```json
65
+ {
66
+ "data": { ... },
67
+ "meta": {
68
+ "requestId": "req_abc123",
69
+ "timestamp": "2026-01-15T10:30:00Z"
70
+ }
71
+ }
72
+ ```
73
+
74
+ ### Error Response
75
+ ```json
76
+ {
77
+ "error": {
78
+ "code": "VALIDATION_ERROR",
79
+ "message": "Invalid input",
80
+ "details": [
81
+ { "field": "email", "message": "Invalid email format" }
82
+ ],
83
+ "requestId": "req_abc123"
84
+ }
85
+ }
86
+ ```
87
+
88
+ ### Status Codes
89
+ | Code | When | Response body |
90
+ |---|---|---|
91
+ | 200 | Success (with data) | `{ "data": ... }` |
92
+ | 201 | Created | `{ "data": newResource }` with `Location` header |
93
+ | 204 | Success (no content) | empty body (DELETE, some PUTs) |
94
+ | 400 | Malformed request | `{ "error": { "code": "BAD_REQUEST" } }` |
95
+ | 401 | Not authenticated | `{ "error": { "code": "UNAUTHORIZED" } }` |
96
+ | 403 | Authenticated but forbidden | `{ "error": { "code": "FORBIDDEN" } }` |
97
+ | 404 | Resource not found | `{ "error": { "code": "NOT_FOUND" } }` |
98
+ | 409 | Conflict (duplicate) | `{ "error": { "code": "CONFLICT" } }` |
99
+ | 422 | Validation error | `{ "error": { "code": "VALIDATION_ERROR", "details": [...] } }` |
100
+ | 429 | Rate limited | `{ "error": { "code": "RATE_LIMITED" } }` + `Retry-After` header |
101
+ | 500 | Server error | `{ "error": { "code": "INTERNAL_ERROR" } }` (no internal details!) |
102
+
103
+ ## Pagination
104
+
105
+ ### Cursor-based (recommended)
106
+ ```
107
+ GET /posts?cursor=abc123&limit=20
108
+ ```
109
+ Response:
110
+ ```json
111
+ {
112
+ "data": [...],
113
+ "pagination": {
114
+ "nextCursor": "def456",
115
+ "hasMore": true,
116
+ "limit": 20
117
+ }
118
+ }
119
+ ```
120
+
121
+ ### Offset-based (simpler but less performant)
122
+ ```
123
+ GET /posts?page=2&limit=20
124
+ ```
125
+ Response:
126
+ ```json
127
+ {
128
+ "data": [...],
129
+ "pagination": {
130
+ "page": 2,
131
+ "limit": 20,
132
+ "total": 156,
133
+ "totalPages": 8
134
+ }
135
+ }
136
+ ```
137
+
138
+ ## Filtering & Sorting
139
+
140
+ ```
141
+ GET /posts?status=published&author=123&sort=-createdAt&fields=id,title
142
+ ```
143
+ - Filter by field: `?status=published`
144
+ - Multiple values: `?status=published,draft`
145
+ - Sort: `?sort=createdAt` (asc), `?sort=-createdAt` (desc)
146
+ - Field selection: `?fields=id,title,author`
147
+
148
+ ## Authentication
149
+
150
+ ### JWT Best Practices
151
+ - Short-lived access tokens (15 min)
152
+ - Long-lived refresh tokens (7 days, stored httpOnly cookie)
153
+ - Rotate refresh tokens on use (one-time use)
154
+ - Include minimal claims: `{ sub, role, iat, exp }`
155
+ - Never store secrets in JWT payload
156
+
157
+ ### Authorization Header
158
+ ```
159
+ Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
160
+ ```
161
+
162
+ ## Rate Limiting
163
+
164
+ - Return `429 Too Many Requests` with `Retry-After` header
165
+ - Common limits:
166
+ - Auth endpoints: 5/min per IP
167
+ - API endpoints: 100/min per user
168
+ - Search: 30/min per user
169
+
170
+ ## CORS
171
+
172
+ ```
173
+ Access-Control-Allow-Origin: https://your-frontend.com
174
+ Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
175
+ Access-Control-Allow-Headers: Content-Type, Authorization
176
+ Access-Control-Max-Age: 86400
177
+ ```
178
+ Never use `*` in production.