@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.
- package/00-governance/governance-capabilities.md +557 -0
- package/00-governance/knowledge-map.md +39 -0
- package/00-governance/maintenance-policy.md +76 -0
- package/00-governance/review-checklist.md +81 -0
- package/README.md +13 -0
- package/ai/01-standards/agent-development-complete.md +691 -0
- package/ai/01-standards/llm-application-complete.md +488 -0
- package/ai/01-standards/mlops-complete.md +798 -0
- package/ai/01-standards/prompt-engineering-complete.md +646 -0
- package/ai/01-standards/rag-architecture-complete.md +649 -0
- package/ai/02-playbooks/llm-evaluation-playbook.md +847 -0
- package/ai/03-checklists/ai-project-checklist.md +215 -0
- package/ai/04-antipatterns/ai-antipatterns.md +661 -0
- package/ai/05-cases/case-rag-production.md +147 -0
- package/ai/06-glossary/ai-glossary.md +162 -0
- package/ai/agent-evaluation-benchmark.md +53 -0
- package/ai/ai-agent-memory-context-management.md +41 -0
- package/ai/ai-cost-capacity-optimization-playbook.md +42 -0
- package/ai/ai-data-security-and-compliance-playbook.md +37 -0
- package/ai/ai-domain-index-and-checklist.md +40 -0
- package/ai/ai-governance-maturity-model.md +50 -0
- package/ai/ai-model-selection-and-routing-strategy.md +47 -0
- package/ai/ai-observability-and-oncall-runbook.md +52 -0
- package/ai/ai-rag-engineering-playbook.md +42 -0
- package/ai/ai-red-team-and-safety-evaluation.md +42 -0
- package/ai/ai-release-readiness-and-rollback-gate.md +42 -0
- package/ai/llm-agent-engineering-deep-dive.md +57 -0
- package/ai/prompt-and-tool-guardrails.md +52 -0
- package/api/01-standards/enterprise-api-standards.md +198 -0
- package/api/01-standards/rest-api-design-guide.md +63 -0
- package/api/02-playbooks/api-pagination-playbook.md +93 -0
- package/api/02-playbooks/graphql-production-playbook.md +176 -0
- package/api/03-checklists/api-review-checklist.md +55 -0
- package/api/04-antipatterns/api-antipatterns.md +112 -0
- package/architecture/01-standards/api-gateway-patterns.md +496 -0
- package/architecture/01-standards/cloud-native-patterns.md +644 -0
- package/architecture/01-standards/distributed-systems-patterns.md +591 -0
- package/architecture/01-standards/event-driven-architecture.md +595 -0
- package/architecture/01-standards/microservices-patterns-complete.md +968 -0
- package/architecture/01-standards/microservices-patterns.md +495 -0
- package/architecture/01-standards/system-design-interview.md +664 -0
- package/architecture/02-playbooks/microservices-patterns-playbook.md +137 -0
- package/architecture/02-playbooks/migration-playbook.md +780 -0
- package/architecture/02-playbooks/system-design-playbook.md +779 -0
- package/architecture/03-checklists/architecture-decision-checklist.md +297 -0
- package/architecture/04-antipatterns/architecture-antipatterns.md +417 -0
- package/architecture/05-cases/case-netflix-microservices.md +413 -0
- package/architecture/06-glossary/architecture-glossary.md +164 -0
- package/architecture/adr-template-and-examples.md +38 -0
- package/architecture/api-gateway-deep-dive.md +1291 -0
- package/architecture/configuration-management.md +1162 -0
- package/architecture/distributed-transactions.md +1220 -0
- package/architecture/microservices-complete.md +735 -0
- package/architecture/resilience-and-disaster-patterns.md +37 -0
- package/architecture/service-governance.md +1198 -0
- package/architecture/system-architecture-deep-dive.md +37 -0
- package/backend/01-standards/analytics-and-growth.md +65 -0
- package/backend/01-standards/api-and-error-conventions.md +120 -0
- package/backend/01-standards/application-layering-and-packaging.md +160 -0
- package/backend/01-standards/auth-implementation.md +104 -0
- package/backend/01-standards/backend-framework-idioms.md +74 -0
- package/backend/01-standards/background-jobs-and-async.md +66 -0
- package/backend/01-standards/caching-strategies-complete.md +390 -0
- package/backend/01-standards/config-and-observability.md +77 -0
- package/backend/01-standards/data-modeling-and-persistence.md +94 -0
- package/backend/01-standards/django-complete.md +1765 -0
- package/backend/01-standards/email-and-notifications.md +64 -0
- package/backend/01-standards/fastapi-complete.md +925 -0
- package/backend/01-standards/file-upload-and-storage.md +66 -0
- package/backend/01-standards/graphql-api-complete.md +416 -0
- package/backend/01-standards/llm-application-standard.md +78 -0
- package/backend/01-standards/message-queue-patterns.md +379 -0
- package/backend/01-standards/microservices-and-distributed.md +78 -0
- package/backend/01-standards/nestjs-complete.md +2167 -0
- package/backend/01-standards/payment-integration.md +80 -0
- package/backend/01-standards/rate-limiting-complete.md +451 -0
- package/backend/01-standards/realtime-and-websocket.md +65 -0
- package/backend/01-standards/search-and-filtering.md +64 -0
- package/backend/01-standards/spring-boot-complete.md +445 -0
- package/backend/02-playbooks/api-design-playbook.md +718 -0
- package/backend/02-playbooks/email-send-playbook.md +130 -0
- package/backend/02-playbooks/file-upload-s3-playbook.md +153 -0
- package/backend/02-playbooks/typescript-enterprise-playbook.md +133 -0
- package/backend/02-playbooks/websocket-realtime-playbook.md +154 -0
- package/backend/03-checklists/api-launch-checklist.md +189 -0
- package/backend/04-antipatterns/backend-antipatterns.md +1051 -0
- package/blockchain/01-standards/blockchain-basics.md +557 -0
- package/blockchain/01-standards/smart-contract-development.md +1315 -0
- package/cicd/01-standards/deployment-and-delivery-standard.md +96 -0
- package/cicd/01-standards/github-actions-complete.md +473 -0
- package/cicd/01-standards/release-and-store-submission.md +75 -0
- package/cicd/02-playbooks/cicd-pipeline-playbook.md +144 -0
- package/cicd/02-playbooks/release-management-playbook.md +605 -0
- package/cicd/03-checklists/pipeline-security-checklist.md +168 -0
- package/cicd/04-antipatterns/cicd-antipatterns.md +589 -0
- package/cicd/05-cases/case-deployment-automation.md +221 -0
- package/cicd/05-cases/case-gitops-transformation.md +212 -0
- package/cicd/06-glossary/cicd-glossary.md +114 -0
- package/cicd/cicd-blueprint-deep-dive.md +38 -0
- package/cicd/release-readiness-gate.md +37 -0
- package/cloud-native/01-standards/container-security.md +741 -0
- package/cloud-native/01-standards/kubernetes-complete.md +812 -0
- package/cloud-native/02-playbooks/api-gateway-playbook.md +155 -0
- package/cloud-native/02-playbooks/gitops-with-argocd.md +760 -0
- package/cloud-native/02-playbooks/k8s-troubleshooting-playbook.md +1942 -0
- package/cloud-native/02-playbooks/message-queue-playbook.md +129 -0
- package/cloud-native/02-playbooks/multicloud-governance.md +726 -0
- package/cloud-native/02-playbooks/serverless-patterns.md +788 -0
- package/cloud-native/02-playbooks/service-mesh-playbook.md +612 -0
- package/cloud-native/02-playbooks/terraform-iac-playbook.md +143 -0
- package/cloud-native/03-checklists/container-security-checklist.md +431 -0
- package/cloud-native/03-checklists/k8s-production-readiness-checklist.md +460 -0
- package/cloud-native/04-antipatterns/container-antipatterns.md +660 -0
- package/cloud-native/04-antipatterns/k8s-antipatterns.md +743 -0
- package/cloud-native/05-cases/case-k8s-migration.md +478 -0
- package/cloud-native/05-cases/case-k8s-scaling.md +642 -0
- package/cloud-native/05-cases/case-k8s-security-incident.md +397 -0
- package/cloud-native/06-glossary/cloud-native-glossary.md +337 -0
- package/cross-platform/01-standards/cross-platform-frameworks.md +83 -0
- package/cross-platform/01-standards/platform-selection-and-architecture.md +77 -0
- package/data/01-standards/elasticsearch-complete.md +2098 -0
- package/data/01-standards/postgresql-complete.md +1613 -0
- package/data/01-standards/redis-complete.md +1527 -0
- package/data/02-playbooks/database-optimization-playbook.md +403 -0
- package/data/02-playbooks/elasticsearch-production-playbook.md +132 -0
- package/data/03-checklists/database-launch-checklist.md +187 -0
- package/data/04-antipatterns/database-antipatterns.md +873 -0
- package/data/05-cases/case-database-migration.md +310 -0
- package/data/06-glossary/database-glossary.md +440 -0
- package/data/data-governance-and-modeling-deep-dive.md +39 -0
- package/data-engineering/01-standards/airflow-complete.md +523 -0
- package/data-engineering/01-standards/kafka-complete.md +1521 -0
- package/data-engineering/02-playbooks/spark-etl-playbook.md +496 -0
- package/data-engineering/03-checklists/pipeline-launch-checklist.md +194 -0
- package/data-engineering/04-antipatterns/data-pipeline-antipatterns.md +684 -0
- package/data-engineering/05-cases/case-real-time-pipeline.md +355 -0
- package/data-engineering/06-glossary/data-engineering-glossary.md +429 -0
- package/database/01-standards/database-schema-standards.md +147 -0
- package/database/02-playbooks/postgresql-optimization-quick.md +52 -0
- package/database/02-playbooks/postgresql-performance-optimization.md +58 -0
- package/database/02-playbooks/postgresql-production-playbook.md +146 -0
- package/database/02-playbooks/redis-caching-playbook.md +117 -0
- package/database/03-checklists/database-review-checklist.md +50 -0
- package/database/04-antipatterns/database-antipatterns.md +112 -0
- package/design/01-standards/ui-design-system-complete.md +423 -0
- package/design/02-playbooks/design-handoff-playbook.md +254 -0
- package/design/02-playbooks/design-review-playbook.md +388 -0
- package/design/03-checklists/design-review-checklist.md +246 -0
- package/design/04-antipatterns/design-antipatterns.md +378 -0
- package/design/05-cases/case-design-system-adoption.md +328 -0
- package/design/06-glossary/design-glossary.md +329 -0
- package/design/ui-full-lifecycle-cross-platform-playbook.md +571 -0
- package/design/ux-system-deep-dive.md +38 -0
- package/design-systems/00-craft-rules.md +71 -0
- package/design-systems/aesthetic-families.md +43 -0
- package/design-systems/anti-ai-slop.md +162 -0
- package/design-systems/bold-geometric.md +120 -0
- package/design-systems/brutalist-bold.md +103 -0
- package/design-systems/editorial-clean.md +109 -0
- package/design-systems/glass-aurora.md +108 -0
- package/design-systems/modern-minimal.md +145 -0
- package/design-systems/premium-luxury.md +106 -0
- package/design-systems/product-type-design-map.md +48 -0
- package/design-systems/soft-warm.md +123 -0
- package/design-systems/tech-utility.md +113 -0
- package/desktop/01-standards/desktop-app-standard.md +72 -0
- package/desktop/01-standards/desktop-design.md +71 -0
- package/development/00-governance/document-template.md +41 -0
- package/development/01-standards/api-versioning-strategies.md +432 -0
- package/development/01-standards/authentication-patterns-complete.md +479 -0
- package/development/01-standards/css-architecture-complete.md +550 -0
- package/development/01-standards/database-migration-strategies.md +484 -0
- package/development/01-standards/elasticsearch-complete.md +347 -0
- package/development/01-standards/git-complete.md +371 -0
- package/development/01-standards/golang-complete.md +1565 -0
- package/development/01-standards/graphql-complete.md +298 -0
- package/development/01-standards/javascript-bundlers-complete.md +469 -0
- package/development/01-standards/javascript-typescript-complete.md +528 -0
- package/development/01-standards/jest-complete.md +275 -0
- package/development/01-standards/linux-complete.md +234 -0
- package/development/01-standards/logging-observability-complete.md +526 -0
- package/development/01-standards/microservices-communication.md +502 -0
- package/development/01-standards/mongodb-complete.md +406 -0
- package/development/01-standards/oauth2-complete.md +285 -0
- package/development/01-standards/performance-optimization-complete.md +289 -0
- package/development/01-standards/playwright-complete.md +247 -0
- package/development/01-standards/postgresql-complete.md +456 -0
- package/development/01-standards/pytest-complete.md +340 -0
- package/development/01-standards/python-async-programming.md +902 -0
- package/development/01-standards/python-complete.md +956 -0
- package/development/01-standards/python-decorators-complete.md +799 -0
- package/development/01-standards/python-design-patterns.md +2854 -0
- package/development/01-standards/python-packaging-distribution.md +420 -0
- package/development/01-standards/python-testing-strategies.md +607 -0
- package/development/01-standards/python-web-frameworks-comparison.md +471 -0
- package/development/01-standards/redis-complete.md +317 -0
- package/development/01-standards/rest-api-complete.md +316 -0
- package/development/01-standards/rust-complete.md +578 -0
- package/development/01-standards/typescript-advanced-types.md +1513 -0
- package/development/01-standards/web-security-complete.md +292 -0
- package/development/02-playbooks/api-design-playbook.md +810 -0
- package/development/02-playbooks/database-migration-playbook.md +580 -0
- package/development/02-playbooks/debugging-playbook.md +692 -0
- package/development/02-playbooks/feature-delivery-playbook.md +430 -0
- package/development/02-playbooks/incident-hotfix-playbook.md +387 -0
- package/development/02-playbooks/performance-optimization-playbook.md +531 -0
- package/development/02-playbooks/performance-tuning-playbook.md +652 -0
- package/development/02-playbooks/refactor-playbook.md +403 -0
- package/development/02-playbooks/release-playbook.md +469 -0
- package/development/03-checklists/architecture-review-checklist.md +168 -0
- package/development/03-checklists/data-migration-checklist.md +157 -0
- package/development/03-checklists/oncall-handover-checklist.md +173 -0
- package/development/03-checklists/pr-checklist.md +158 -0
- package/development/03-checklists/production-readiness-checklist.md +190 -0
- package/development/03-checklists/release-readiness-checklist.md +154 -0
- package/development/03-checklists/security-review-checklist.md +182 -0
- package/development/04-antipatterns/api-antipatterns.md +657 -0
- package/development/04-antipatterns/architecture-antipatterns.md +686 -0
- package/development/04-antipatterns/backend-antipatterns.md +648 -0
- package/development/04-antipatterns/cicd-antipatterns.md +540 -0
- package/development/04-antipatterns/code-smell-antipatterns.md +571 -0
- package/development/04-antipatterns/data-antipatterns.md +658 -0
- package/development/04-antipatterns/database-antipatterns.md +578 -0
- package/development/04-antipatterns/frontend-antipatterns.md +635 -0
- package/development/04-antipatterns/reliability-antipatterns.md +700 -0
- package/development/04-antipatterns/security-antipatterns.md +747 -0
- package/development/05-cases/case-api-version-migration.md +428 -0
- package/development/05-cases/case-authorization-hardening.md +383 -0
- package/development/05-cases/case-bluegreen-rollback.md +466 -0
- package/development/05-cases/case-cache-snowball-protection.md +485 -0
- package/development/05-cases/case-ci-cd-pipeline.md +544 -0
- package/development/05-cases/case-database-scaling.md +500 -0
- package/development/05-cases/case-db-hotspot-optimization.md +487 -0
- package/development/05-cases/case-incident-mttr-reduction.md +563 -0
- package/development/05-cases/case-microservice-migration.md +375 -0
- package/development/05-cases/case-performance-optimization.md +406 -0
- package/development/05-cases/case-security-incident-response.md +345 -0
- package/development/06-glossary/full-stack-glossary.md +166 -0
- package/development/09-maturity/quarterly-audit-template.md +35 -0
- package/development/11-ui-excellence/ui-aesthetic-system.md +41 -0
- package/development/11-ui-excellence/ui-engineering-excellence.md +435 -0
- package/development/12-scenarios/development-scenarios-guide.md +565 -0
- package/development/13-implementation-assets/implementation-toolkit.md +282 -0
- package/development/13-implementation-assets/knowledge-gates-execution.md +43 -0
- package/development/14-full-lifecycle/software-lifecycle-gates.md +511 -0
- package/development/15-lifecycle-templates/project-templates-collection.md +791 -0
- package/development/api-contract-and-versioning-guide.md +36 -0
- package/development/api-governance-complete.md +43 -0
- package/development/backend-engineering-complete.md +43 -0
- package/development/code-review-quality-complete.md +43 -0
- package/development/concurrency-reliability-complete.md +43 -0
- package/development/database-engineering-complete.md +43 -0
- package/development/engineering-effectiveness-complete.md +43 -0
- package/development/engineering-standards-deep-dive.md +38 -0
- package/development/frontend-engineering-complete.md +43 -0
- package/development/performance-capacity-complete.md +43 -0
- package/development/refactor-migration-complete.md +42 -0
- package/development/refactoring-and-techdebt-playbook.md +37 -0
- package/development/security-in-development-complete.md +43 -0
- package/devops/01-standards/cicd-pipeline-complete.md +262 -0
- package/devops/01-standards/docker-complete.md +1490 -0
- package/devops/01-standards/github-actions-complete.md +337 -0
- package/devops/01-standards/kubernetes-complete.md +638 -0
- package/devops/01-standards/terraform-complete.md +2117 -0
- package/devops/02-playbooks/docker-compose-playbook.md +233 -0
- package/devops/02-playbooks/docker-k8s-production-playbook.md +186 -0
- package/devops/02-playbooks/docker-production-playbook.md +952 -0
- package/edge-iot/01-standards/edge-iot-complete.md +473 -0
- package/experts/architect/api-design.md +178 -0
- package/experts/architect/methodology.md +124 -0
- package/experts/architect/security.md +75 -0
- package/experts/backend-lead/methodology.md +216 -0
- package/experts/devops/methodology.md +160 -0
- package/experts/frontend-lead/methodology.md +178 -0
- package/experts/product-manager/industry/ecommerce.md +43 -0
- package/experts/product-manager/industry/saas.md +40 -0
- package/experts/product-manager/methodology.md +97 -0
- package/experts/qa-lead/methodology.md +123 -0
- package/experts/qa-lead/test-strategy.md +128 -0
- package/experts/uiux-designer/methodology.md +125 -0
- package/frontend/01-standards/accessibility-complete.md +532 -0
- package/frontend/01-standards/accessibility-standard.md +74 -0
- package/frontend/01-standards/admin-dashboard-and-crud.md +72 -0
- package/frontend/01-standards/design-tokens-complete.md +444 -0
- package/frontend/01-standards/forms-and-validation.md +77 -0
- package/frontend/01-standards/frontend-architecture-and-layering.md +119 -0
- package/frontend/01-standards/i18n-and-localization.md +65 -0
- package/frontend/01-standards/nextjs-complete.md +451 -0
- package/frontend/01-standards/react-complete.md +713 -0
- package/frontend/01-standards/react-hooks-complete-guide.md +1100 -0
- package/frontend/01-standards/react-hooks-complete.md +1171 -0
- package/frontend/01-standards/seo-and-web-vitals.md +77 -0
- package/frontend/01-standards/state-management-complete.md +444 -0
- package/frontend/01-standards/vue-complete.md +499 -0
- package/frontend/01-standards/vue3-complete.md +2002 -0
- package/frontend/01-standards/web-framework-best-practices.md +64 -0
- package/frontend/01-standards/web-performance-complete.md +495 -0
- package/frontend/02-playbooks/accessibility-a11y-playbook.md +161 -0
- package/frontend/02-playbooks/frontend-performance-playbook.md +707 -0
- package/frontend/02-playbooks/i18n-internationalization-playbook.md +120 -0
- package/frontend/02-playbooks/performance-optimization-playbook.md +163 -0
- package/frontend/02-playbooks/react-nextjs-production-playbook.md +167 -0
- package/frontend/02-playbooks/react-state-management-playbook.md +173 -0
- package/frontend/03-checklists/component-quality-checklist.md +166 -0
- package/frontend/03-checklists/frontend-launch-checklist.md +299 -0
- package/frontend/04-antipatterns/frontend-antipatterns.md +886 -0
- package/frontend/05-cases/case-performance-optimization.md +274 -0
- package/harmony/01-standards/harmonyos-arkts-standard.md +75 -0
- package/harmony/01-standards/harmonyos-design.md +65 -0
- package/high-quality-engineering-playbook.md +54 -0
- package/incident/01-standards/incident-response-complete.md +303 -0
- package/incident/02-playbooks/chaos-engineering-playbook.md +883 -0
- package/incident/02-playbooks/postmortem-playbook.md +398 -0
- package/incident/03-checklists/incident-readiness-checklist.md +181 -0
- package/incident/04-antipatterns/incident-antipatterns.md +490 -0
- package/incident/05-cases/case-cascade-failure.md +176 -0
- package/incident/06-glossary/incident-glossary.md +114 -0
- package/incident/postmortem-and-response-deep-dive.md +39 -0
- package/industries/ecommerce/ecommerce-complete.md +631 -0
- package/industries/education/education-complete.md +555 -0
- package/industries/fintech/fintech-complete.md +501 -0
- package/industries/gaming/gaming-complete.md +587 -0
- package/industries/healthcare/healthcare-complete.md +452 -0
- package/low-code/01-standards/low-code-complete.md +944 -0
- package/miniprogram/01-standards/ai-common-mistakes.md +61 -0
- package/miniprogram/01-standards/miniprogram-custom-navbar-capsule.md +77 -0
- package/miniprogram/01-standards/miniprogram-design.md +61 -0
- package/miniprogram/01-standards/miniprogram-standard.md +81 -0
- package/mobile/01-standards/android-material-design.md +70 -0
- package/mobile/01-standards/flutter-complete.md +384 -0
- package/mobile/01-standards/ios-design-hig.md +78 -0
- package/mobile/01-standards/mobile-app-standard.md +85 -0
- package/mobile/01-standards/react-native-complete.md +352 -0
- package/mobile/02-playbooks/mobile-cross-platform-playbook.md +175 -0
- package/mobile/02-playbooks/mobile-performance.md +473 -0
- package/mobile/03-checklists/mobile-release-checklist.md +234 -0
- package/mobile/04-antipatterns/mobile-antipatterns.md +798 -0
- package/mobile/05-cases/case-app-performance.md +500 -0
- package/mobile/05-cases/case-app-startup-optimization.md +218 -0
- package/mobile/06-glossary/mobile-glossary.md +484 -0
- package/observability/01-standards/observability-standards.md +103 -0
- package/observability/02-playbooks/prometheus-grafana-playbook.md +135 -0
- package/observability/02-playbooks/structured-logging-playbook.md +73 -0
- package/observability/03-checklists/observability-checklist.md +54 -0
- package/observability/04-antipatterns/observability-antipatterns.md +106 -0
- package/operations/01-standards/prometheus-monitoring-complete.md +1578 -0
- package/operations/02-playbooks/capacity-planning-playbook.md +620 -0
- package/operations/03-checklists/production-launch-checklist.md +365 -0
- package/operations/04-antipatterns/operations-antipatterns.md +664 -0
- package/operations/05-cases/case-sre-practices.md +581 -0
- package/operations/06-glossary/operations-glossary.md +120 -0
- package/operations/aiops-anomaly-detection.md +758 -0
- package/operations/capacity-planning.md +1061 -0
- package/operations/chaos-engineering.md +659 -0
- package/operations/incident-command-system.md +38 -0
- package/operations/observability-complete.md +442 -0
- package/operations/slo-sli-playbook.md +517 -0
- package/operations/sre-operations-deep-dive.md +39 -0
- package/package.json +8 -0
- package/performance/01-standards/performance-and-scalability.md +80 -0
- package/performance/01-standards/performance-standards.md +156 -0
- package/performance/02-playbooks/query-optimization-playbook.md +103 -0
- package/performance/03-checklists/performance-checklist.md +56 -0
- package/performance/04-antipatterns/performance-antipatterns.md +146 -0
- package/product/01-standards/product-management-complete.md +285 -0
- package/product/02-playbooks/feature-launch-playbook.md +207 -0
- package/product/02-playbooks/user-research-playbook.md +532 -0
- package/product/03-checklists/feature-launch-checklist.md +275 -0
- package/product/04-antipatterns/product-antipatterns.md +355 -0
- package/product/05-cases/case-mvp-to-scale.md +384 -0
- package/product/06-glossary/product-glossary.md +462 -0
- package/product/feature-prioritization-framework.md +40 -0
- package/product/kpi-and-metric-tree.md +37 -0
- package/product/product-discovery-and-prd-deep-dive.md +41 -0
- package/quantum/01-standards/quantum-complete.md +1186 -0
- package/security/01-standards/api-security-complete.md +511 -0
- package/security/01-standards/container-runtime-security.md +574 -0
- package/security/01-standards/data-protection-gdpr.md +543 -0
- package/security/01-standards/owasp-top10-complete.md +1890 -0
- package/security/01-standards/secure-coding-baseline.md +90 -0
- package/security/01-standards/supply-chain-security.md +441 -0
- package/security/01-standards/web-security-checklist.md +108 -0
- package/security/01-standards/zero-trust-architecture.md +521 -0
- package/security/02-playbooks/auth-sso-playbook.md +166 -0
- package/security/02-playbooks/incident-response-security-playbook.md +588 -0
- package/security/02-playbooks/owasp-api-security-playbook.md +129 -0
- package/security/02-playbooks/payment-integration-playbook.md +119 -0
- package/security/02-playbooks/penetration-testing-playbook.md +517 -0
- package/security/03-checklists/security-audit-checklist.md +356 -0
- package/security/04-antipatterns/security-coding-antipatterns.md +580 -0
- package/security/05-cases/case-log4shell-incident.md +537 -0
- package/security/05-cases/case-major-breaches.md +468 -0
- package/security/06-glossary/security-glossary.md +212 -0
- package/security/compliance-automation.md +993 -0
- package/security/container-security.md +680 -0
- package/security/devsecops-complete.md +426 -0
- package/security/sast-dast-sca.md +775 -0
- package/security/secrets-management.md +594 -0
- package/security/security-architecture-deep-dive.md +37 -0
- package/security/threat-modeling-stride-playbook.md +40 -0
- package/seed-templates/auth-system.md +59 -0
- package/seed-templates/blog-content.md +94 -0
- package/seed-templates/dashboard.md +89 -0
- package/seed-templates/docs-site.md +73 -0
- package/seed-templates/e-commerce.md +50 -0
- package/seed-templates/saas-landing.md +92 -0
- package/seed-templates/settings-page.md +51 -0
- package/testing/01-standards/test-strategy-and-layering.md +83 -0
- package/testing/01-standards/testing-strategy-complete.md +422 -0
- package/testing/01-standards/unit-testing-best-practices.md +118 -0
- package/testing/02-playbooks/e2e-testing-playbook.md +988 -0
- package/testing/02-playbooks/testing-strategy-playbook.md +126 -0
- package/testing/03-checklists/test-strategy-checklist.md +208 -0
- package/testing/04-antipatterns/testing-antipatterns.md +718 -0
- package/testing/05-cases/case-testing-transformation.md +300 -0
- package/testing/06-glossary/testing-glossary.md +110 -0
- package/testing/risk-based-test-matrix.md +36 -0
- package/testing/testing-strategy-deep-dive.md +37 -0
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: methodology
|
|
3
|
+
title: Architect — System Architecture Methodology
|
|
4
|
+
domain: experts
|
|
5
|
+
category: architect
|
|
6
|
+
difficulty: intermediate
|
|
7
|
+
tags: [architecture, data, decision, design, experts, framework, infrastructure, methodology]
|
|
8
|
+
quality_score: 70
|
|
9
|
+
last_updated: 2026-06-15
|
|
10
|
+
---
|
|
11
|
+
# Architect — System Architecture Methodology
|
|
12
|
+
|
|
13
|
+
## Architecture Decision Framework
|
|
14
|
+
|
|
15
|
+
### Technology Selection
|
|
16
|
+
- Evaluate based on: team expertise, community size, long-term viability, license
|
|
17
|
+
- Document decision rationale in ADR (Architecture Decision Record) format
|
|
18
|
+
- Prefer boring technology for core infrastructure; innovate at edges
|
|
19
|
+
- Prototype risky integrations before committing
|
|
20
|
+
|
|
21
|
+
### Scalability Planning
|
|
22
|
+
- Design for 10x current load; plan for 100x
|
|
23
|
+
- Identify bottlenecks early: database reads, API fanout, file I/O
|
|
24
|
+
- Separate read/write paths when read:write ratio exceeds 10:1
|
|
25
|
+
- Use connection pooling for all database and HTTP client connections
|
|
26
|
+
|
|
27
|
+
## System Design Patterns
|
|
28
|
+
|
|
29
|
+
### Layered Architecture
|
|
30
|
+
```
|
|
31
|
+
┌─────────────────────────┐
|
|
32
|
+
│ Presentation (UI/API) │
|
|
33
|
+
├─────────────────────────┤
|
|
34
|
+
│ Application (Use Cases)│
|
|
35
|
+
├─────────────────────────┤
|
|
36
|
+
│ Domain (Business Logic)│
|
|
37
|
+
├─────────────────────────┤
|
|
38
|
+
│ Infrastructure (DB/IO) │
|
|
39
|
+
└─────────────────────────┘
|
|
40
|
+
```
|
|
41
|
+
- Each layer only depends on the layer below
|
|
42
|
+
- Domain layer has zero external dependencies
|
|
43
|
+
- Infrastructure implements interfaces defined by domain
|
|
44
|
+
|
|
45
|
+
### API Gateway Pattern
|
|
46
|
+
- Single entry point for all client requests
|
|
47
|
+
- Rate limiting, auth, logging at gateway level
|
|
48
|
+
- Request routing to appropriate microservice/handler
|
|
49
|
+
- Response aggregation for composite endpoints
|
|
50
|
+
|
|
51
|
+
### Event-Driven Architecture
|
|
52
|
+
- Use events for cross-domain communication
|
|
53
|
+
- Event store for audit trail and replay capability
|
|
54
|
+
- Idempotent event handlers (at-least-once delivery)
|
|
55
|
+
- Dead letter queue for failed event processing
|
|
56
|
+
|
|
57
|
+
## Data Architecture
|
|
58
|
+
|
|
59
|
+
### Database Selection Matrix
|
|
60
|
+
| Requirement | Relational (PostgreSQL) | Document (MongoDB) | KV (Redis) |
|
|
61
|
+
|---|---|---|---|
|
|
62
|
+
| Complex queries | Best | Poor | N/A |
|
|
63
|
+
| Schema flexibility | Moderate | Best | N/A |
|
|
64
|
+
| Transactions | Best | Limited | Limited |
|
|
65
|
+
| Caching | Moderate | Moderate | Best |
|
|
66
|
+
| Full-text search | Good (w/ extensions) | Good | N/A |
|
|
67
|
+
|
|
68
|
+
### Schema Design Principles
|
|
69
|
+
- Normalize to 3NF by default; denormalize with measurement justification
|
|
70
|
+
- Every table needs: `id` (UUID/ULID), `created_at`, `updated_at`
|
|
71
|
+
- Soft-delete with `deleted_at` for recoverable entities
|
|
72
|
+
- Index foreign keys and frequently queried columns
|
|
73
|
+
- Use enums/check constraints at DB level, not just application
|
|
74
|
+
|
|
75
|
+
### Migration Strategy
|
|
76
|
+
- One migration per logical change (not per table)
|
|
77
|
+
- Migrations must be reversible (up + down)
|
|
78
|
+
- Zero-downtime migrations: add column → backfill → add constraint → remove old
|
|
79
|
+
- Never rename columns in production; add new, migrate, drop old
|
|
80
|
+
|
|
81
|
+
## Infrastructure Patterns
|
|
82
|
+
|
|
83
|
+
### Deployment Architecture
|
|
84
|
+
- Container-first: Dockerfile for every deployable service
|
|
85
|
+
- Environment parity: dev ≈ staging ≈ production
|
|
86
|
+
- Configuration via environment variables (12-factor)
|
|
87
|
+
- Health check endpoints: `/health` (liveness), `/ready` (readiness)
|
|
88
|
+
|
|
89
|
+
### Caching Strategy
|
|
90
|
+
- Cache hierarchy: browser → CDN → application → database
|
|
91
|
+
- Cache invalidation: TTL for reads, explicit invalidation on writes
|
|
92
|
+
- Cache key design: `{entity}:{id}:{version}` for granular invalidation
|
|
93
|
+
- Never cache authenticated/personalized responses at CDN level
|
|
94
|
+
|
|
95
|
+
### Observability
|
|
96
|
+
- Structured logging (JSON) with correlation IDs
|
|
97
|
+
- Metrics: RED method (Rate, Errors, Duration) for services
|
|
98
|
+
- Distributed tracing for cross-service request flows
|
|
99
|
+
- Alert on symptoms (error rate, latency), not causes
|
|
100
|
+
|
|
101
|
+
## Security Architecture
|
|
102
|
+
|
|
103
|
+
### Defense in Depth
|
|
104
|
+
1. Network: firewall rules, VPC isolation, TLS everywhere
|
|
105
|
+
2. Application: input validation, output encoding, CSRF tokens
|
|
106
|
+
3. Data: encryption at rest, field-level encryption for PII
|
|
107
|
+
4. Access: RBAC/ABAC, principle of least privilege
|
|
108
|
+
5. Audit: immutable log of all access and mutations
|
|
109
|
+
|
|
110
|
+
### Auth Architecture
|
|
111
|
+
- Prefer JWT for stateless API auth; sessions for server-rendered
|
|
112
|
+
- Access token: short-lived (15m), refresh token: longer (7d), rotate on use
|
|
113
|
+
- Store refresh tokens in httpOnly secure cookies, not localStorage
|
|
114
|
+
- Permission model: User → Role → Permission (many-to-many)
|
|
115
|
+
|
|
116
|
+
## Architecture Review Checklist
|
|
117
|
+
- [ ] Single responsibility: each service/module does one thing
|
|
118
|
+
- [ ] Failure isolation: one component failure doesn't cascade
|
|
119
|
+
- [ ] Data ownership: each domain owns its data store
|
|
120
|
+
- [ ] API contract: OpenAPI/GraphQL schema defined before implementation
|
|
121
|
+
- [ ] Security: auth, authz, input validation, secrets management
|
|
122
|
+
- [ ] Observability: logging, metrics, tracing, alerting
|
|
123
|
+
- [ ] Scalability: identified bottlenecks and horizontal scaling path
|
|
124
|
+
- [ ] Recovery: backup strategy, disaster recovery, rollback plan
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: security
|
|
3
|
+
title: Architect — Security Checklist (OWASP-based)
|
|
4
|
+
domain: experts
|
|
5
|
+
category: architect
|
|
6
|
+
difficulty: intermediate
|
|
7
|
+
tags: [authentication, authorization, encoding, experts, input, management, output, security]
|
|
8
|
+
quality_score: 70
|
|
9
|
+
last_updated: 2026-06-15
|
|
10
|
+
---
|
|
11
|
+
# Architect — Security Checklist (OWASP-based)
|
|
12
|
+
|
|
13
|
+
## Authentication & Session Management
|
|
14
|
+
|
|
15
|
+
- [ ] Passwords hashed with bcrypt (cost ≥ 12) or Argon2id
|
|
16
|
+
- [ ] JWT access tokens expire in ≤ 15 minutes
|
|
17
|
+
- [ ] Refresh tokens are single-use and stored server-side
|
|
18
|
+
- [ ] Session invalidation on password change
|
|
19
|
+
- [ ] Account lockout after 5 failed attempts (15 min cooldown)
|
|
20
|
+
- [ ] MFA option available for sensitive operations
|
|
21
|
+
- [ ] Logout invalidates all tokens server-side
|
|
22
|
+
|
|
23
|
+
## Input Validation
|
|
24
|
+
|
|
25
|
+
- [ ] ALL user input validated server-side (never trust client)
|
|
26
|
+
- [ ] Parameterized queries / ORM for database operations (no string concatenation)
|
|
27
|
+
- [ ] File uploads: validate type (magic bytes, not extension), limit size, store outside webroot
|
|
28
|
+
- [ ] Reject unexpected fields in request body (allowlist, not blocklist)
|
|
29
|
+
- [ ] Content-Type header checked on all endpoints accepting body
|
|
30
|
+
|
|
31
|
+
## Output Encoding
|
|
32
|
+
|
|
33
|
+
- [ ] HTML output encoded to prevent XSS (`<script>` → `<script>`)
|
|
34
|
+
- [ ] JSON responses use `Content-Type: application/json` (never `text/html`)
|
|
35
|
+
- [ ] User-generated content sanitized before rendering
|
|
36
|
+
- [ ] CSP headers set: `Content-Security-Policy: default-src 'self'`
|
|
37
|
+
|
|
38
|
+
## Authorization
|
|
39
|
+
|
|
40
|
+
- [ ] Every endpoint checks authorization (not just authentication)
|
|
41
|
+
- [ ] IDOR prevention: verify user owns the resource, not just that resource exists
|
|
42
|
+
- [ ] Admin endpoints on separate route group with role check middleware
|
|
43
|
+
- [ ] API keys scoped to minimum necessary permissions
|
|
44
|
+
|
|
45
|
+
## Data Protection
|
|
46
|
+
|
|
47
|
+
- [ ] HTTPS only (HSTS header with max-age ≥ 1 year)
|
|
48
|
+
- [ ] Sensitive data encrypted at rest (AES-256)
|
|
49
|
+
- [ ] PII not logged (mask email, phone in logs)
|
|
50
|
+
- [ ] Database credentials in environment variables, never in code
|
|
51
|
+
- [ ] `.env` in `.gitignore`
|
|
52
|
+
|
|
53
|
+
## Headers
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
Strict-Transport-Security: max-age=31536000; includeSubDomains
|
|
57
|
+
Content-Security-Policy: default-src 'self'; script-src 'self'
|
|
58
|
+
X-Content-Type-Options: nosniff
|
|
59
|
+
X-Frame-Options: DENY
|
|
60
|
+
Referrer-Policy: strict-origin-when-cross-origin
|
|
61
|
+
Permissions-Policy: camera=(), microphone=(), geolocation=()
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Dependency Security
|
|
65
|
+
|
|
66
|
+
- [ ] No known vulnerabilities (`npm audit` / `cargo audit` clean)
|
|
67
|
+
- [ ] Dependencies pinned to exact versions in lock file
|
|
68
|
+
- [ ] Automated dependency update checks (Dependabot / Renovate)
|
|
69
|
+
|
|
70
|
+
## Error Handling
|
|
71
|
+
|
|
72
|
+
- [ ] Internal errors return generic message to client (no stack traces)
|
|
73
|
+
- [ ] Errors logged with context on server (request ID, user ID, timestamp)
|
|
74
|
+
- [ ] 404 for missing resources (don't leak existence via different error codes)
|
|
75
|
+
- [ ] Rate limiting on all public endpoints
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: methodology
|
|
3
|
+
title: Backend Lead — Development Methodology
|
|
4
|
+
domain: experts
|
|
5
|
+
category: backend-lead
|
|
6
|
+
difficulty: intermediate
|
|
7
|
+
tags: [authentication, best, database, experts, implementation, logging, methodology, pattern]
|
|
8
|
+
quality_score: 70
|
|
9
|
+
last_updated: 2026-06-15
|
|
10
|
+
---
|
|
11
|
+
# Backend Lead — Development Methodology
|
|
12
|
+
|
|
13
|
+
## 工程标准库速查(按需查阅对应标准,`backend/01-standards/<id>`)
|
|
14
|
+
|
|
15
|
+
本项目附带商业级工程标准库。**先识别项目用到的方面,再查对应标准照着做**(不确定就检索 knowledge/):
|
|
16
|
+
|
|
17
|
+
- 结构:application-layering-and-packaging(分层/服务层/分包)· backend-framework-idioms(所选框架地道写法)· api-and-error-conventions · data-modeling-and-persistence · config-and-observability
|
|
18
|
+
- 横切:secure-coding-baseline(安全/OWASP)· test-strategy-and-layering · performance-and-scalability · microservices-and-distributed
|
|
19
|
+
- 功能(项目用到才做):auth-implementation · payment-integration · file-upload-and-storage · background-jobs-and-async · email-and-notifications · search-and-filtering · realtime-and-websocket · analytics-and-growth · llm-application-standard(AI/RAG/Agent)
|
|
20
|
+
- 交付:deployment-and-delivery-standard · release-and-store-submission
|
|
21
|
+
- 前端/多端见 frontend/mobile/desktop/miniprogram/harmony/cross-platform 下对应标准(含各端官方设计规范)。
|
|
22
|
+
|
|
23
|
+
## 结构第一:分层 + 分包(动手写代码前先定骨架)
|
|
24
|
+
|
|
25
|
+
商业级后端的第一要务不是功能,而是**结构**。写任何实现前,先按下面定下分层与分包骨架,再填代码。详见标准《应用分层与分包标准》(`backend/01-standards/application-layering-and-packaging`),这里给硬性底线:
|
|
26
|
+
|
|
27
|
+
- **四层 + 依赖向内**:接口层(controller,仅传输) → 应用层(service,编排+事务) → 领域层(entity/VO,业务规则与不变量) → 基础设施层(repository/adapter,持久化与外部)。依赖只能向内,业务核心不依赖框架/DB/HTTP。
|
|
28
|
+
- **服务层规则**:无状态;一个方法=一个用例=一个事务边界;收发 DTO,**绝不返回/接收 ORM entity**;只依赖 repository/gateway 接口(注入),不依赖具体实现。
|
|
29
|
+
- **领域不要贫血**:把"这个对象在什么状态下能做什么"的规则封进 entity 方法(`order.cancel()`),不要散在 service 的 if 里。
|
|
30
|
+
- **校验分层**:边界格式校验放接口层(DTO+schema,失败 422);业务不变量放领域/服务层。
|
|
31
|
+
- **分包优先 package-by-feature**:`modules/<feature>/{interface,application,domain,infrastructure}`,跨 feature 通过服务接口/领域事件通信,不互相调对方 repository/entity。先模块化单体,复杂了再抽服务。
|
|
32
|
+
- **红线**:fat controller、controller 直连 repository/SQL、service 泄露 entity、事务写在 controller/repository、一个类贯穿所有层——出现即不合格。
|
|
33
|
+
|
|
34
|
+
## API Implementation Pattern
|
|
35
|
+
|
|
36
|
+
### Controller/Handler Structure
|
|
37
|
+
Every API endpoint follows:
|
|
38
|
+
1. **Parse** — validate request body/params
|
|
39
|
+
2. **Authorize** — check user has permission
|
|
40
|
+
3. **Execute** — call business logic
|
|
41
|
+
4. **Respond** — format and return result
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
Request → Middleware(auth, rate-limit) → Handler(parse, authorize, execute, respond) → Response
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Input Validation Rules
|
|
48
|
+
- Validate at the API boundary, not in business logic
|
|
49
|
+
- Use schema validation library (Zod, Joi, Pydantic, serde)
|
|
50
|
+
- Return 422 with field-level errors:
|
|
51
|
+
```json
|
|
52
|
+
{
|
|
53
|
+
"error": {
|
|
54
|
+
"code": "VALIDATION_ERROR",
|
|
55
|
+
"details": [
|
|
56
|
+
{ "field": "email", "message": "Must be a valid email address" },
|
|
57
|
+
{ "field": "name", "message": "Must be between 2 and 100 characters" }
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
- Never trust frontend validation alone
|
|
63
|
+
|
|
64
|
+
### Error Handling Pattern
|
|
65
|
+
```
|
|
66
|
+
try {
|
|
67
|
+
// business logic
|
|
68
|
+
} catch (NotFoundError) {
|
|
69
|
+
return 404 with generic message
|
|
70
|
+
} catch (ForbiddenError) {
|
|
71
|
+
return 403
|
|
72
|
+
} catch (ConflictError) {
|
|
73
|
+
return 409 with "resource already exists"
|
|
74
|
+
} catch (ValidationError) {
|
|
75
|
+
return 422 with field details
|
|
76
|
+
} catch (unknown) {
|
|
77
|
+
log error with full context (requestId, userId, stack trace)
|
|
78
|
+
return 500 with "Internal server error" (NO details to client)
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Database Best Practices
|
|
83
|
+
|
|
84
|
+
### Migration Standards
|
|
85
|
+
- Every schema change is a migration file with up + down
|
|
86
|
+
- Never modify a deployed migration — create a new one
|
|
87
|
+
- Migrations run automatically on deploy
|
|
88
|
+
- Test migrations against production-like data volume
|
|
89
|
+
|
|
90
|
+
### Query Patterns
|
|
91
|
+
- Use parameterized queries (NEVER string concatenation)
|
|
92
|
+
- Add indexes for: foreign keys, frequently queried fields, sort columns
|
|
93
|
+
- Pagination: cursor-based for infinite scroll, offset for page numbers
|
|
94
|
+
- N+1 prevention: eager load relationships or use DataLoader pattern
|
|
95
|
+
|
|
96
|
+
### Seed Data
|
|
97
|
+
- `seeds/development.ts` — realistic test data for local dev
|
|
98
|
+
- `seeds/test.ts` — minimal data for automated tests
|
|
99
|
+
- Never seed production directly
|
|
100
|
+
|
|
101
|
+
## Authentication Implementation
|
|
102
|
+
|
|
103
|
+
### JWT Flow
|
|
104
|
+
```
|
|
105
|
+
1. POST /auth/login { email, password }
|
|
106
|
+
→ Verify credentials
|
|
107
|
+
→ Generate access token (15 min, signed)
|
|
108
|
+
→ Generate refresh token (7 days, stored in DB + httpOnly cookie)
|
|
109
|
+
→ Return { accessToken, user }
|
|
110
|
+
|
|
111
|
+
2. Authenticated request:
|
|
112
|
+
→ Client sends: Authorization: Bearer <accessToken>
|
|
113
|
+
→ Middleware verifies signature + expiration
|
|
114
|
+
→ Extracts user from claims
|
|
115
|
+
|
|
116
|
+
3. Token refresh:
|
|
117
|
+
→ POST /auth/refresh (cookie has refresh token)
|
|
118
|
+
→ Verify refresh token exists in DB + not expired
|
|
119
|
+
→ Invalidate old refresh token (single-use)
|
|
120
|
+
→ Issue new access + refresh tokens
|
|
121
|
+
|
|
122
|
+
4. Logout:
|
|
123
|
+
→ POST /auth/logout
|
|
124
|
+
→ Delete refresh token from DB
|
|
125
|
+
→ Clear httpOnly cookie
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Password Rules
|
|
129
|
+
- Hash with bcrypt (cost 12) or Argon2id
|
|
130
|
+
- Minimum 8 characters
|
|
131
|
+
- Check against breached password list (haveibeenpwned API)
|
|
132
|
+
- Never log plaintext passwords
|
|
133
|
+
- Never return password hash in API responses
|
|
134
|
+
|
|
135
|
+
## Logging Standards
|
|
136
|
+
|
|
137
|
+
### What to Log
|
|
138
|
+
| Level | When | Example |
|
|
139
|
+
|---|---|---|
|
|
140
|
+
| ERROR | Operation failed, needs attention | Database connection lost, payment failed |
|
|
141
|
+
| WARN | Degraded but functioning | Cache miss, retry succeeded, rate limit approaching |
|
|
142
|
+
| INFO | Significant events | User signed up, order placed, deploy completed |
|
|
143
|
+
| DEBUG | Development troubleshooting | Query executed, cache hit, request parsed |
|
|
144
|
+
|
|
145
|
+
### Log Format
|
|
146
|
+
```json
|
|
147
|
+
{
|
|
148
|
+
"level": "error",
|
|
149
|
+
"timestamp": "2026-01-15T10:30:00Z",
|
|
150
|
+
"requestId": "req_abc123",
|
|
151
|
+
"userId": "usr_456",
|
|
152
|
+
"message": "Payment processing failed",
|
|
153
|
+
"error": { "code": "STRIPE_DECLINED", "message": "Card declined" },
|
|
154
|
+
"context": { "orderId": "ord_789", "amount": 9900, "currency": "usd" }
|
|
155
|
+
}
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### What NOT to Log
|
|
159
|
+
- Passwords, tokens, API keys
|
|
160
|
+
- Full credit card numbers (last 4 only)
|
|
161
|
+
- Personal health information
|
|
162
|
+
- Full request/response bodies (summarize instead)
|
|
163
|
+
|
|
164
|
+
## Testing Standards
|
|
165
|
+
|
|
166
|
+
### Unit Tests
|
|
167
|
+
- Test business logic functions in isolation
|
|
168
|
+
- Mock external dependencies (database, APIs, email)
|
|
169
|
+
- Naming: `describe('createUser')` → `it('should hash password before saving')`
|
|
170
|
+
- Assert both success path and error paths
|
|
171
|
+
|
|
172
|
+
### Integration Tests
|
|
173
|
+
- Test API endpoints with real database (test instance)
|
|
174
|
+
- Reset database between tests (transaction rollback or truncate)
|
|
175
|
+
- Test auth: verify 401 without token, 403 with wrong role
|
|
176
|
+
- Test validation: verify 422 for each invalid field
|
|
177
|
+
|
|
178
|
+
### Test Coverage Targets
|
|
179
|
+
| Layer | Target |
|
|
180
|
+
|---|---|
|
|
181
|
+
| Business logic | ≥ 90% |
|
|
182
|
+
| API handlers | ≥ 80% |
|
|
183
|
+
| Middleware | ≥ 80% |
|
|
184
|
+
| Utilities | ≥ 95% |
|
|
185
|
+
| Overall | ≥ 80% |
|
|
186
|
+
|
|
187
|
+
## Environment Variables
|
|
188
|
+
|
|
189
|
+
### Naming Convention
|
|
190
|
+
```
|
|
191
|
+
# Database
|
|
192
|
+
DATABASE_URL=postgres://user:pass@host:5432/dbname
|
|
193
|
+
DATABASE_POOL_SIZE=10
|
|
194
|
+
|
|
195
|
+
# Auth
|
|
196
|
+
JWT_SECRET=<random 256-bit key>
|
|
197
|
+
JWT_ACCESS_TTL=900 # 15 minutes in seconds
|
|
198
|
+
JWT_REFRESH_TTL=604800 # 7 days in seconds
|
|
199
|
+
|
|
200
|
+
# External services
|
|
201
|
+
STRIPE_SECRET_KEY=sk_live_...
|
|
202
|
+
SMTP_HOST=smtp.example.com
|
|
203
|
+
SMTP_PORT=587
|
|
204
|
+
|
|
205
|
+
# App
|
|
206
|
+
NODE_ENV=production
|
|
207
|
+
PORT=3001
|
|
208
|
+
CORS_ORIGIN=https://your-frontend.com
|
|
209
|
+
LOG_LEVEL=info
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### Rules
|
|
213
|
+
- NEVER commit `.env` files (add to `.gitignore`)
|
|
214
|
+
- Provide `.env.example` with placeholder values
|
|
215
|
+
- Validate all required env vars on startup (fail fast if missing)
|
|
216
|
+
- Different values per environment (dev/staging/prod)
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: methodology
|
|
3
|
+
title: DevOps — Methodology
|
|
4
|
+
domain: experts
|
|
5
|
+
category: devops
|
|
6
|
+
difficulty: intermediate
|
|
7
|
+
tags: [alerting, design, docker, environment, experts, methodology, monitoring, pipeline]
|
|
8
|
+
quality_score: 70
|
|
9
|
+
last_updated: 2026-06-15
|
|
10
|
+
---
|
|
11
|
+
# DevOps — Methodology
|
|
12
|
+
|
|
13
|
+
## 交付底线(能跑通 ≠ 能交付)
|
|
14
|
+
|
|
15
|
+
详见标准《部署与交付规范》(`cicd/01-standards/deployment-and-delivery-standard`)。硬性底线:
|
|
16
|
+
|
|
17
|
+
- **Dockerfile**:多阶段、固定版本小基础镜像、**非 root**、.dockerignore、HEALTHCHECK;不把密钥/.env 打进镜像。
|
|
18
|
+
- **CI**:lint+类型+单元+集成+安全扫描(依赖审计/镜像扫描)+质量门,任一失败**阻断合并**;制品打不可变版本(git sha),不用 latest 部署。
|
|
19
|
+
- **CD 零停机**:滚动/蓝绿/金丝雀之一;新旧并存期间接口与 DB **向后兼容**;**禁止手改生产**。
|
|
20
|
+
- **迁移**:自动化、幂等、expand-contract、不锁表停服。
|
|
21
|
+
- **环境/密钥**:dev/staging/prod 隔离,同代码不同配置;密钥按环境注入,绝不进仓库/镜像/日志。
|
|
22
|
+
- **回滚 + 观测**:保留上一可用版本可一键回滚;发布后盯错误率/p99;健康探针 + 优雅停机。
|
|
23
|
+
- **随附交付物**:Dockerfile/compose、CI 配置、迁移脚本、.env.example、部署 README。
|
|
24
|
+
|
|
25
|
+
## CI/CD Pipeline Design
|
|
26
|
+
|
|
27
|
+
### Pipeline Stages
|
|
28
|
+
```
|
|
29
|
+
commit → lint → test → build → deploy:staging → smoke-test → deploy:production → monitor
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Stage Details
|
|
33
|
+
|
|
34
|
+
**Lint** (< 1 min)
|
|
35
|
+
- TypeScript: `tsc --noEmit`
|
|
36
|
+
- ESLint: `eslint --max-warnings 0`
|
|
37
|
+
- Prettier: `prettier --check`
|
|
38
|
+
- Fail fast: any lint failure blocks the pipeline
|
|
39
|
+
|
|
40
|
+
**Test** (< 5 min)
|
|
41
|
+
- Unit tests: `jest` / `vitest` / `cargo test`
|
|
42
|
+
- Coverage gate: fail if below threshold (80% for business logic)
|
|
43
|
+
- Parallel execution when possible
|
|
44
|
+
|
|
45
|
+
**Build** (< 3 min)
|
|
46
|
+
- Production build with minification
|
|
47
|
+
- Generate source maps (for error tracking, not served to users)
|
|
48
|
+
- Output bundle size check (fail if > budget)
|
|
49
|
+
|
|
50
|
+
**Deploy: Staging**
|
|
51
|
+
- Automatic on every merged PR to main
|
|
52
|
+
- Same infrastructure as production (just scaled down)
|
|
53
|
+
- Seeded with realistic test data
|
|
54
|
+
|
|
55
|
+
**Smoke Test**
|
|
56
|
+
- Automated: hit key endpoints, verify 200 responses
|
|
57
|
+
- Verify database migration ran successfully
|
|
58
|
+
- Check external service connections (payment, email, etc)
|
|
59
|
+
|
|
60
|
+
**Deploy: Production**
|
|
61
|
+
- Manual approval gate (or auto after staging smoke passes)
|
|
62
|
+
- Rolling deploy (no downtime)
|
|
63
|
+
- Database migrations run before new code deploys
|
|
64
|
+
|
|
65
|
+
**Monitor**
|
|
66
|
+
- Watch error rate for 15 minutes after deploy
|
|
67
|
+
- Auto-rollback if error rate > 1%
|
|
68
|
+
|
|
69
|
+
## Environment Strategy
|
|
70
|
+
|
|
71
|
+
| Environment | Purpose | Data | Access |
|
|
72
|
+
|---|---|---|---|
|
|
73
|
+
| local | Development | Seed data | Developer |
|
|
74
|
+
| staging | Pre-production testing | Anonymized prod copy | Team |
|
|
75
|
+
| production | Live users | Real data | Restricted |
|
|
76
|
+
|
|
77
|
+
### Environment Variables
|
|
78
|
+
- Same variable names across all environments
|
|
79
|
+
- Different VALUES per environment (never different variable names)
|
|
80
|
+
- `.env.example` committed with placeholder values
|
|
81
|
+
- Actual `.env` files NEVER committed
|
|
82
|
+
|
|
83
|
+
## Docker Standards
|
|
84
|
+
|
|
85
|
+
### Dockerfile Best Practices
|
|
86
|
+
```dockerfile
|
|
87
|
+
# Multi-stage build
|
|
88
|
+
FROM node:20-slim AS builder
|
|
89
|
+
WORKDIR /app
|
|
90
|
+
COPY package*.json ./
|
|
91
|
+
RUN npm ci --production=false
|
|
92
|
+
COPY . .
|
|
93
|
+
RUN npm run build
|
|
94
|
+
|
|
95
|
+
FROM node:20-slim
|
|
96
|
+
WORKDIR /app
|
|
97
|
+
COPY --from=builder /app/dist ./dist
|
|
98
|
+
COPY --from=builder /app/node_modules ./node_modules
|
|
99
|
+
EXPOSE 3000
|
|
100
|
+
CMD ["node", "dist/server.js"]
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Rules:
|
|
104
|
+
- Multi-stage builds (separate build/runtime)
|
|
105
|
+
- Pin base image versions (`node:20-slim`, not `node:latest`)
|
|
106
|
+
- `npm ci` not `npm install` (deterministic)
|
|
107
|
+
- Non-root user in production image
|
|
108
|
+
- `.dockerignore` excludes node_modules, .git, .env
|
|
109
|
+
|
|
110
|
+
## Monitoring & Alerting
|
|
111
|
+
|
|
112
|
+
### Four Golden Signals
|
|
113
|
+
| Signal | What to measure | Alert threshold |
|
|
114
|
+
|---|---|---|
|
|
115
|
+
| **Latency** | p95 response time | > 500ms for 5 min |
|
|
116
|
+
| **Traffic** | Requests per second | Drop > 50% from baseline |
|
|
117
|
+
| **Errors** | 5xx error rate | > 1% for 5 min |
|
|
118
|
+
| **Saturation** | CPU/memory usage | > 80% for 10 min |
|
|
119
|
+
|
|
120
|
+
### Health Check Endpoint
|
|
121
|
+
```
|
|
122
|
+
GET /api/health
|
|
123
|
+
→ 200 { "status": "healthy", "version": "1.2.3", "uptime": 86400 }
|
|
124
|
+
→ 503 { "status": "unhealthy", "checks": { "database": "timeout" } }
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Check: database connection, cache connection, external API reachability
|
|
128
|
+
|
|
129
|
+
### Logging in Production
|
|
130
|
+
- Structured JSON logs (not plain text)
|
|
131
|
+
- Include: timestamp, level, requestId, userId, message
|
|
132
|
+
- Never log: passwords, tokens, PII, credit card numbers
|
|
133
|
+
- Log to stdout (let the platform handle aggregation)
|
|
134
|
+
|
|
135
|
+
## Rollback Strategy
|
|
136
|
+
|
|
137
|
+
### Criteria for rollback
|
|
138
|
+
- Error rate > 1% sustained for 5 minutes
|
|
139
|
+
- Any 500 on critical path (checkout, login)
|
|
140
|
+
- Performance regression > 2x baseline latency
|
|
141
|
+
|
|
142
|
+
### Rollback steps
|
|
143
|
+
1. Route traffic to previous version (< 1 min)
|
|
144
|
+
2. Verify previous version is healthy
|
|
145
|
+
3. Investigate root cause on the failed version
|
|
146
|
+
4. Fix → test on staging → re-deploy
|
|
147
|
+
|
|
148
|
+
### Database rollback
|
|
149
|
+
- Every migration has a DOWN migration
|
|
150
|
+
- Test DOWN migration BEFORE deploying UP
|
|
151
|
+
- Never drop columns immediately — deprecate, deploy, then drop in next release
|
|
152
|
+
|
|
153
|
+
## Security in Deployment
|
|
154
|
+
|
|
155
|
+
- [ ] All secrets in environment variables / secret manager (never in code)
|
|
156
|
+
- [ ] HTTPS everywhere (HSTS with 1-year max-age)
|
|
157
|
+
- [ ] Database not publicly accessible (VPC/private network only)
|
|
158
|
+
- [ ] SSH access via bastion/jump server only
|
|
159
|
+
- [ ] Automated dependency vulnerability scanning
|
|
160
|
+
- [ ] Container images scanned for CVEs before deploy
|