@xdev-asia/xdev-knowledge-mcp 1.0.36

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 (1531) hide show
  1. package/README.md +137 -0
  2. package/content/blog/ai/ai-trong-y-te-healthcare.md +1364 -0
  3. package/content/blog/ai/gemma-4-mo-hinh-ai-mo-manh-nhat-google-agentic-edge.md +401 -0
  4. package/content/blog/ai/ollama-mlx-apple-silicon-chay-ai-local-nhanh-hon-3x.md +406 -0
  5. package/content/blog/database/ma-hoa-du-lieu-healthcare.md +518 -0
  6. package/content/blog/devops/cai-dat-harbor-tren-ubuntu-24-04.md +168 -0
  7. package/content/blog/devops/cai-dat-kvm-tren-ubuntu-24-04.md +159 -0
  8. package/content/blog/devops/cai-dat-kvm-tren-ubuntu-quan-ly-vm-qua-cockpit-web-ui.md +915 -0
  9. package/content/blog/devops/circuit-breaker-pattern-trong-spring-boot-huong-dan-chi-tiet-tu-a-z.md +1259 -0
  10. package/content/blog/devops/huong-dan-toan-dien-ve-backup-va-restore-postgresql.md +446 -0
  11. package/content/blog/devops/huong-dan-upgrade-postgresql-17-6-len-18-1-chuan-production.md +482 -0
  12. package/content/blog/devops/xay-dung-postgresql-high-availability-cluster-voi-ansible.md +105 -0
  13. package/content/blog/linux/cai-dat-openvpn-tren-ubuntu-2404.md +43 -0
  14. package/content/blog/programming/claude-code-source-code-bi-mat-buddy-ultraplan.md +970 -0
  15. package/content/blog/programming/xay-dung-ai-agent-platform-voi-xclaw-huong-dan-thuc-chien.md +1032 -0
  16. package/content/blog/security/thiet-ke-kien-truc-phan-quyen-du-lieu-theo-cap-hanh-chinh.md +399 -0
  17. package/content/metadata/authors/duy-tran.md +23 -0
  18. package/content/metadata/categories/architecture.md +20 -0
  19. package/content/metadata/categories/backend.md +23 -0
  20. package/content/metadata/categories/database-course.md +23 -0
  21. package/content/metadata/categories/database.md +23 -0
  22. package/content/metadata/categories/devops.md +23 -0
  23. package/content/metadata/categories/kubernetes.md +23 -0
  24. package/content/metadata/categories/linux.md +23 -0
  25. package/content/metadata/categories/security.md +23 -0
  26. package/content/metadata/categories/spring-boot.md +23 -0
  27. package/content/metadata/categories/web-server.md +23 -0
  28. package/content/metadata/tags/adobe.md +13 -0
  29. package/content/metadata/tags/aes-256.md +13 -0
  30. package/content/metadata/tags/ai-agents.md +13 -0
  31. package/content/metadata/tags/ai-coding.md +13 -0
  32. package/content/metadata/tags/ai.md +13 -0
  33. package/content/metadata/tags/aks.md +13 -0
  34. package/content/metadata/tags/ansible.md +13 -0
  35. package/content/metadata/tags/anthropic.md +13 -0
  36. package/content/metadata/tags/apigateway.md +13 -0
  37. package/content/metadata/tags/argocd.md +13 -0
  38. package/content/metadata/tags/audit-logging.md +13 -0
  39. package/content/metadata/tags/authorization.md +13 -0
  40. package/content/metadata/tags/automated-failover.md +13 -0
  41. package/content/metadata/tags/backend.md +13 -0
  42. package/content/metadata/tags/backup-recovery.md +13 -0
  43. package/content/metadata/tags/backup.md +13 -0
  44. package/content/metadata/tags/best-practices.md +13 -0
  45. package/content/metadata/tags/bun.md +13 -0
  46. package/content/metadata/tags/caching.md +13 -0
  47. package/content/metadata/tags/canarydeployment.md +13 -0
  48. package/content/metadata/tags/careerdevelopment.md +13 -0
  49. package/content/metadata/tags/cdn.md +13 -0
  50. package/content/metadata/tags/chinh-sua-anh.md +13 -0
  51. package/content/metadata/tags/chrome-extension.md +13 -0
  52. package/content/metadata/tags/cicd.md +13 -0
  53. package/content/metadata/tags/circuit-breaker.md +13 -0
  54. package/content/metadata/tags/cka.md +13 -0
  55. package/content/metadata/tags/ckad.md +13 -0
  56. package/content/metadata/tags/claude-code.md +13 -0
  57. package/content/metadata/tags/cloud-native.md +13 -0
  58. package/content/metadata/tags/cloudcomputing.md +13 -0
  59. package/content/metadata/tags/cluster-management.md +13 -0
  60. package/content/metadata/tags/cockpit.md +13 -0
  61. package/content/metadata/tags/container-orchestration.md +13 -0
  62. package/content/metadata/tags/container.md +13 -0
  63. package/content/metadata/tags/database-administration.md +13 -0
  64. package/content/metadata/tags/database-clustering.md +13 -0
  65. package/content/metadata/tags/database-migration.md +13 -0
  66. package/content/metadata/tags/database.md +13 -0
  67. package/content/metadata/tags/datamanagement.md +13 -0
  68. package/content/metadata/tags/design-pattern.md +13 -0
  69. package/content/metadata/tags/developer-tools.md +13 -0
  70. package/content/metadata/tags/devops.md +13 -0
  71. package/content/metadata/tags/disaster-recovery.md +13 -0
  72. package/content/metadata/tags/distributed-systems.md +13 -0
  73. package/content/metadata/tags/docker-registry.md +13 -0
  74. package/content/metadata/tags/docker.md +13 -0
  75. package/content/metadata/tags/easy-rsa.md +13 -0
  76. package/content/metadata/tags/eks.md +13 -0
  77. package/content/metadata/tags/encryption.md +13 -0
  78. package/content/metadata/tags/enterprise-architecture.md +13 -0
  79. package/content/metadata/tags/enterprise.md +13 -0
  80. package/content/metadata/tags/etcd.md +13 -0
  81. package/content/metadata/tags/failover.md +13 -0
  82. package/content/metadata/tags/fault-tolerance.md +13 -0
  83. package/content/metadata/tags/generative-fill.md +13 -0
  84. package/content/metadata/tags/gitops.md +13 -0
  85. package/content/metadata/tags/gke.md +13 -0
  86. package/content/metadata/tags/grafana.md +13 -0
  87. package/content/metadata/tags/hands-on.md +13 -0
  88. package/content/metadata/tags/handson.md +13 -0
  89. package/content/metadata/tags/harbor.md +13 -0
  90. package/content/metadata/tags/healthcare.md +13 -0
  91. package/content/metadata/tags/helm.md +13 -0
  92. package/content/metadata/tags/high-availability.md +13 -0
  93. package/content/metadata/tags/highavailability.md +13 -0
  94. package/content/metadata/tags/hipaa.md +13 -0
  95. package/content/metadata/tags/homelab.md +13 -0
  96. package/content/metadata/tags/hono.md +13 -0
  97. package/content/metadata/tags/http2.md +13 -0
  98. package/content/metadata/tags/https.md +13 -0
  99. package/content/metadata/tags/hypervisor.md +13 -0
  100. package/content/metadata/tags/iam.md +10 -0
  101. package/content/metadata/tags/infrastructure-as-code.md +13 -0
  102. package/content/metadata/tags/infrastructure.md +13 -0
  103. package/content/metadata/tags/ingress.md +13 -0
  104. package/content/metadata/tags/istio.md +13 -0
  105. package/content/metadata/tags/java.md +13 -0
  106. package/content/metadata/tags/javascript.md +13 -0
  107. package/content/metadata/tags/k8s.md +13 -0
  108. package/content/metadata/tags/keycloak.md +10 -0
  109. package/content/metadata/tags/kimchi.md +13 -0
  110. package/content/metadata/tags/kubernetes.md +13 -0
  111. package/content/metadata/tags/kvm.md +13 -0
  112. package/content/metadata/tags/ldap.md +10 -0
  113. package/content/metadata/tags/libvirt.md +13 -0
  114. package/content/metadata/tags/linux.md +13 -0
  115. package/content/metadata/tags/loadbalancer.md +13 -0
  116. package/content/metadata/tags/mcp.md +13 -0
  117. package/content/metadata/tags/mfa.md +10 -0
  118. package/content/metadata/tags/microservices.md +13 -0
  119. package/content/metadata/tags/mien-phi.md +13 -0
  120. package/content/metadata/tags/mongodb.md +13 -0
  121. package/content/metadata/tags/monitoring.md +13 -0
  122. package/content/metadata/tags/monorepo.md +13 -0
  123. package/content/metadata/tags/multi-tenant.md +13 -0
  124. package/content/metadata/tags/networking.md +13 -0
  125. package/content/metadata/tags/nginx.md +13 -0
  126. package/content/metadata/tags/oauth2.md +10 -0
  127. package/content/metadata/tags/oidc.md +10 -0
  128. package/content/metadata/tags/open-source.md +13 -0
  129. package/content/metadata/tags/openvpn.md +13 -0
  130. package/content/metadata/tags/passkeys.md +10 -0
  131. package/content/metadata/tags/patroni.md +13 -0
  132. package/content/metadata/tags/performance.md +13 -0
  133. package/content/metadata/tags/pg-upgrade.md +13 -0
  134. package/content/metadata/tags/phi.md +13 -0
  135. package/content/metadata/tags/photoshop-web.md +13 -0
  136. package/content/metadata/tags/photoshop.md +13 -0
  137. package/content/metadata/tags/pii.md +13 -0
  138. package/content/metadata/tags/postgresql-18.md +13 -0
  139. package/content/metadata/tags/postgresql-high-availability-voi-patroni-etcd-course.md +13 -0
  140. package/content/metadata/tags/postgresql.md +13 -0
  141. package/content/metadata/tags/production-deployment.md +13 -0
  142. package/content/metadata/tags/production.md +13 -0
  143. package/content/metadata/tags/prometheus.md +13 -0
  144. package/content/metadata/tags/qemu.md +13 -0
  145. package/content/metadata/tags/rag.md +13 -0
  146. package/content/metadata/tags/ratelimiting.md +13 -0
  147. package/content/metadata/tags/rbac.md +13 -0
  148. package/content/metadata/tags/react.md +13 -0
  149. package/content/metadata/tags/realworld.md +13 -0
  150. package/content/metadata/tags/replication.md +13 -0
  151. package/content/metadata/tags/resilience4j.md +13 -0
  152. package/content/metadata/tags/rest-api.md +13 -0
  153. package/content/metadata/tags/reverseproxy.md +13 -0
  154. package/content/metadata/tags/rls.md +13 -0
  155. package/content/metadata/tags/roeadwarrior.md +13 -0
  156. package/content/metadata/tags/runtime.md +13 -0
  157. package/content/metadata/tags/saml.md +10 -0
  158. package/content/metadata/tags/security.md +13 -0
  159. package/content/metadata/tags/self-hosted.md +13 -0
  160. package/content/metadata/tags/server.md +13 -0
  161. package/content/metadata/tags/spring-boot.md +13 -0
  162. package/content/metadata/tags/sre.md +13 -0
  163. package/content/metadata/tags/ssl.md +13 -0
  164. package/content/metadata/tags/sso.md +10 -0
  165. package/content/metadata/tags/statefulset.md +13 -0
  166. package/content/metadata/tags/storage.md +13 -0
  167. package/content/metadata/tags/streaming-replication.md +13 -0
  168. package/content/metadata/tags/system-administration.md +13 -0
  169. package/content/metadata/tags/system-design.md +13 -0
  170. package/content/metadata/tags/systemadmin.md +13 -0
  171. package/content/metadata/tags/systemadministration.md +13 -0
  172. package/content/metadata/tags/thiet-ke-do-hoa.md +13 -0
  173. package/content/metadata/tags/tutorial.md +13 -0
  174. package/content/metadata/tags/typescript.md +13 -0
  175. package/content/metadata/tags/ubuntu-2404.md +13 -0
  176. package/content/metadata/tags/ubuntu.md +13 -0
  177. package/content/metadata/tags/virtual-machines.md +13 -0
  178. package/content/metadata/tags/virtualization.md +13 -0
  179. package/content/metadata/tags/vpn-server.md +13 -0
  180. package/content/metadata/tags/web-ui.md +13 -0
  181. package/content/metadata/tags/webserver.md +13 -0
  182. package/content/metadata/tags/workflow.md +13 -0
  183. package/content/pages/chinh-sach-quyen-rieng-tu.md +31 -0
  184. package/content/pages/dieu-khoan-su-dung.md +26 -0
  185. package/content/pages/gioi-thieu.md +23 -0
  186. package/content/pages/privacy-policy.md +100 -0
  187. package/content/pages/your-privacy-choices.md +53 -0
  188. package/content/series/ai/ai-llm-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-ai-deep-learning/lessons/02-bai-1-tong-quan-ai-ml-dl-va-llm.md +274 -0
  189. package/content/series/ai/ai-llm-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-ai-deep-learning/lessons/03-bai-2-toan-hoc-cho-ai.md +552 -0
  190. package/content/series/ai/ai-llm-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-ai-deep-learning/lessons/04-bai-3-neural-networks-co-ban.md +557 -0
  191. package/content/series/ai/ai-llm-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-ai-deep-learning/lessons/05-bai-4-deep-learning-overview.md +471 -0
  192. package/content/series/ai/ai-llm-tu-co-ban-den-nang-cao/chapters/02-phan-2-kien-truc-transformer/lessons/06-bai-5-attention-mechanism.md +262 -0
  193. package/content/series/ai/ai-llm-tu-co-ban-den-nang-cao/chapters/02-phan-2-kien-truc-transformer/lessons/07-bai-6-kien-truc-transformer.md +360 -0
  194. package/content/series/ai/ai-llm-tu-co-ban-den-nang-cao/chapters/02-phan-2-kien-truc-transformer/lessons/08-bai-7-bert-va-encoder-only-models.md +328 -0
  195. package/content/series/ai/ai-llm-tu-co-ban-den-nang-cao/chapters/02-phan-2-kien-truc-transformer/lessons/09-bai-8-gpt-va-decoder-only-models.md +358 -0
  196. package/content/series/ai/ai-llm-tu-co-ban-den-nang-cao/chapters/02-phan-2-kien-truc-transformer/lessons/10-bai-9-tokenization.md +506 -0
  197. package/content/series/ai/ai-llm-tu-co-ban-den-nang-cao/chapters/03-phan-3-training-fine-tuning/lessons/11-bai-10-pre-training-llms.md +283 -0
  198. package/content/series/ai/ai-llm-tu-co-ban-den-nang-cao/chapters/03-phan-3-training-fine-tuning/lessons/12-bai-11-supervised-fine-tuning.md +469 -0
  199. package/content/series/ai/ai-llm-tu-co-ban-den-nang-cao/chapters/03-phan-3-training-fine-tuning/lessons/13-bai-12-peft-lora-qlora.md +420 -0
  200. package/content/series/ai/ai-llm-tu-co-ban-den-nang-cao/chapters/03-phan-3-training-fine-tuning/lessons/14-bai-13-rlhf-va-alignment.md +419 -0
  201. package/content/series/ai/ai-llm-tu-co-ban-den-nang-cao/chapters/04-phan-4-prompting-rag/lessons/15-bai-14-prompt-engineering.md +334 -0
  202. package/content/series/ai/ai-llm-tu-co-ban-den-nang-cao/chapters/04-phan-4-prompting-rag/lessons/16-bai-15-advanced-prompting.md +352 -0
  203. package/content/series/ai/ai-llm-tu-co-ban-den-nang-cao/chapters/04-phan-4-prompting-rag/lessons/17-bai-16-rag-retrieval-augmented-generation.md +428 -0
  204. package/content/series/ai/ai-llm-tu-co-ban-den-nang-cao/chapters/04-phan-4-prompting-rag/lessons/18-bai-17-vector-databases.md +471 -0
  205. package/content/series/ai/ai-llm-tu-co-ban-den-nang-cao/chapters/05-phan-5-ai-applications/lessons/19-bai-18-ai-agents.md +455 -0
  206. package/content/series/ai/ai-llm-tu-co-ban-den-nang-cao/chapters/05-phan-5-ai-applications/lessons/20-bai-19-llm-apis.md +441 -0
  207. package/content/series/ai/ai-llm-tu-co-ban-den-nang-cao/chapters/06-phan-6-production-nang-cao/lessons/21-bai-20-deploying-llms-va-evaluation.md +456 -0
  208. package/content/series/ai/ai-llm-tu-co-ban-den-nang-cao/chapters/06-phan-6-production-nang-cao/lessons/22-bai-21-ollama-apple-silicon.md +1254 -0
  209. package/content/series/ai/ai-llm-tu-co-ban-den-nang-cao/index.md +376 -0
  210. package/content/series/ai/ai-thuc-chien-fashion-print-on-demand/chapters/01-phan-1-kien-truc-ai-system/lessons/01-bai-1-tong-quan-fashion-ai-platform-tach-lop-ai.md +292 -0
  211. package/content/series/ai/ai-thuc-chien-fashion-print-on-demand/chapters/01-phan-1-kien-truc-ai-system/lessons/02-bai-2-kien-truc-ai-system-microservices-model-pipeline.md +403 -0
  212. package/content/series/ai/ai-thuc-chien-fashion-print-on-demand/chapters/01-phan-1-kien-truc-ai-system/lessons/03-bai-3-ai-tech-stack-diffusion-vision-llm-mlops.md +427 -0
  213. package/content/series/ai/ai-thuc-chien-fashion-print-on-demand/chapters/02-phan-2-ai-design-generation-engine/lessons/04-bai-4-text-to-design-fine-tune-stable-diffusion.md +435 -0
  214. package/content/series/ai/ai-thuc-chien-fashion-print-on-demand/chapters/02-phan-2-ai-design-generation-engine/lessons/05-bai-5-image-reference-analysis-clip-style-transfer.md +349 -0
  215. package/content/series/ai/ai-thuc-chien-fashion-print-on-demand/chapters/02-phan-2-ai-design-generation-engine/lessons/06-bai-6-multi-modal-generation-text-image.md +260 -0
  216. package/content/series/ai/ai-thuc-chien-fashion-print-on-demand/chapters/02-phan-2-ai-design-generation-engine/lessons/07-bai-7-prompt-engineering-cho-fashion.md +269 -0
  217. package/content/series/ai/ai-thuc-chien-fashion-print-on-demand/chapters/03-phan-3-ai-design-optimization-editing/lessons/08-bai-8-print-ready-ai-layout-rules-safe-margins.md +322 -0
  218. package/content/series/ai/ai-thuc-chien-fashion-print-on-demand/chapters/03-phan-3-ai-design-optimization-editing/lessons/09-bai-9-auto-scaling-design-resize-theo-size-form.md +242 -0
  219. package/content/series/ai/ai-thuc-chien-fashion-print-on-demand/chapters/03-phan-3-ai-design-optimization-editing/lessons/10-bai-10-ai-editing-assistant-natural-language.md +319 -0
  220. package/content/series/ai/ai-thuc-chien-fashion-print-on-demand/chapters/03-phan-3-ai-design-optimization-editing/lessons/11-bai-11-ai-typography-generate-text-font-placement.md +285 -0
  221. package/content/series/ai/ai-thuc-chien-fashion-print-on-demand/chapters/04-phan-4-ai-personalization-recommendation/lessons/12-bai-12-style-analysis-engine-phan-tich-gu-tham-my.md +257 -0
  222. package/content/series/ai/ai-thuc-chien-fashion-print-on-demand/chapters/04-phan-4-ai-personalization-recommendation/lessons/13-bai-13-behavioral-learning-hoc-hanh-vi-preference.md +303 -0
  223. package/content/series/ai/ai-thuc-chien-fashion-print-on-demand/chapters/04-phan-4-ai-personalization-recommendation/lessons/14-bai-14-ai-recommendation-system-goi-y-design.md +258 -0
  224. package/content/series/ai/ai-thuc-chien-fashion-print-on-demand/chapters/04-phan-4-ai-personalization-recommendation/lessons/15-bai-15-ai-size-recommendation-body-measurement.md +264 -0
  225. package/content/series/ai/ai-thuc-chien-fashion-print-on-demand/chapters/05-phan-5-virtual-try-on-computer-vision/lessons/16-bai-16-body-estimation-du-doan-body-shape.md +317 -0
  226. package/content/series/ai/ai-thuc-chien-fashion-print-on-demand/chapters/05-phan-5-virtual-try-on-computer-vision/lessons/17-bai-17-3d-avatar-generation-tao-avatar.md +339 -0
  227. package/content/series/ai/ai-thuc-chien-fashion-print-on-demand/chapters/05-phan-5-virtual-try-on-computer-vision/lessons/18-bai-18-garment-rendering-render-ao-len-avatar.md +325 -0
  228. package/content/series/ai/ai-thuc-chien-fashion-print-on-demand/chapters/05-phan-5-virtual-try-on-computer-vision/lessons/19-bai-19-real-time-virtual-try-on-360-rotation.md +371 -0
  229. package/content/series/ai/ai-thuc-chien-fashion-print-on-demand/chapters/06-phan-6-ai-cho-production-pipeline/lessons/20-bai-20-print-file-optimization-rgb-cmyk-dpi.md +364 -0
  230. package/content/series/ai/ai-thuc-chien-fashion-print-on-demand/chapters/06-phan-6-ai-cho-production-pipeline/lessons/21-bai-21-ai-auto-tagging-gan-tag-phan-loai.md +363 -0
  231. package/content/series/ai/ai-thuc-chien-fashion-print-on-demand/chapters/06-phan-6-ai-cho-production-pipeline/lessons/22-bai-22-ai-product-generation-title-description-mockup.md +327 -0
  232. package/content/series/ai/ai-thuc-chien-fashion-print-on-demand/chapters/06-phan-6-ai-cho-production-pipeline/lessons/23-bai-23-trending-detection-xu-huong-content-moderation.md +402 -0
  233. package/content/series/ai/ai-thuc-chien-fashion-print-on-demand/chapters/06-phan-6-ai-cho-production-pipeline/lessons/24-bai-24-production-deployment-mlops-pipeline-scaling.md +574 -0
  234. package/content/series/ai/ai-thuc-chien-fashion-print-on-demand/index.md +482 -0
  235. package/content/series/ai/ai-trong-y-te-healthcare/chapters/01-phan-1-nen-tang-ai-y-te-medical-data/lessons/02-bai-1-ai-y-te-tong-quan.md +388 -0
  236. package/content/series/ai/ai-trong-y-te-healthcare/chapters/01-phan-1-nen-tang-ai-y-te-medical-data/lessons/03-bai-2-du-lieu-y-te-dicom-fhir.md +576 -0
  237. package/content/series/ai/ai-trong-y-te-healthcare/chapters/01-phan-1-nen-tang-ai-y-te-medical-data/lessons/04-bai-3-medical-image-processing.md +534 -0
  238. package/content/series/ai/ai-trong-y-te-healthcare/chapters/02-phan-2-medical-imaging-ai-computer-vision-cho-y-te/lessons/05-bai-4-cnn-medical-classification.md +614 -0
  239. package/content/series/ai/ai-trong-y-te-healthcare/chapters/02-phan-2-medical-imaging-ai-computer-vision-cho-y-te/lessons/06-bai-5-unet-segmentation.md +525 -0
  240. package/content/series/ai/ai-trong-y-te-healthcare/chapters/02-phan-2-medical-imaging-ai-computer-vision-cho-y-te/lessons/07-bai-6-detection-pathology.md +627 -0
  241. package/content/series/ai/ai-trong-y-te-healthcare/chapters/03-phan-3-clinical-nlp-genomics-ai/lessons/08-bai-7-clinical-nlp.md +223 -0
  242. package/content/series/ai/ai-trong-y-te-healthcare/chapters/03-phan-3-clinical-nlp-genomics-ai/lessons/09-bai-8-medical-qa-chatbot.md +318 -0
  243. package/content/series/ai/ai-trong-y-te-healthcare/chapters/03-phan-3-clinical-nlp-genomics-ai/lessons/10-bai-9-drug-discovery-gnn.md +300 -0
  244. package/content/series/ai/ai-trong-y-te-healthcare/chapters/03-phan-3-clinical-nlp-genomics-ai/lessons/11-bai-10-genomics-protein.md +302 -0
  245. package/content/series/ai/ai-trong-y-te-healthcare/chapters/04-phan-4-production-compliance/lessons/12-bai-11-federated-learning-y-te.md +291 -0
  246. package/content/series/ai/ai-trong-y-te-healthcare/chapters/04-phan-4-production-compliance/lessons/13-bai-12-xai-y-te.md +276 -0
  247. package/content/series/ai/ai-trong-y-te-healthcare/chapters/04-phan-4-production-compliance/lessons/14-bai-13-fda-regulatory.md +267 -0
  248. package/content/series/ai/ai-trong-y-te-healthcare/chapters/04-phan-4-production-compliance/lessons/15-bai-14-deploy-medical-ai.md +332 -0
  249. package/content/series/ai/ai-trong-y-te-healthcare/chapters/04-phan-4-production-compliance/lessons/16-bai-15-capstone-medical-ai.md +435 -0
  250. package/content/series/ai/ai-trong-y-te-healthcare/index.md +208 -0
  251. package/content/series/ai/build-ai-agents/chapters/01-phan-1-nen-tang-agent/lessons/02-bai-1-agent-la-gi.md +365 -0
  252. package/content/series/ai/build-ai-agents/chapters/01-phan-1-nen-tang-agent/lessons/03-bai-2-llm-apis-masterclass.md +271 -0
  253. package/content/series/ai/build-ai-agents/chapters/01-phan-1-nen-tang-agent/lessons/04-bai-3-prompt-engineering-cho-agent.md +164 -0
  254. package/content/series/ai/build-ai-agents/chapters/02-phan-2-function-calling-tool-use/lessons/05-bai-4-function-calling.md +161 -0
  255. package/content/series/ai/build-ai-agents/chapters/02-phan-2-function-calling-tool-use/lessons/06-bai-5-xay-dung-custom-tools.md +124 -0
  256. package/content/series/ai/build-ai-agents/chapters/02-phan-2-function-calling-tool-use/lessons/07-bai-6-the-agent-loop.md +117 -0
  257. package/content/series/ai/build-ai-agents/chapters/03-phan-3-rag-memory/lessons/08-bai-7-rag-cho-agent.md +82 -0
  258. package/content/series/ai/build-ai-agents/chapters/03-phan-3-rag-memory/lessons/09-bai-8-agent-memory.md +76 -0
  259. package/content/series/ai/build-ai-agents/chapters/04-phan-4-agentic-frameworks/lessons/10-bai-9-langchain-langgraph.md +73 -0
  260. package/content/series/ai/build-ai-agents/chapters/04-phan-4-agentic-frameworks/lessons/11-bai-10-crewai.md +73 -0
  261. package/content/series/ai/build-ai-agents/chapters/04-phan-4-agentic-frameworks/lessons/12-bai-11-advanced-patterns.md +73 -0
  262. package/content/series/ai/build-ai-agents/chapters/05-phan-5-mcp-a2a-multi-agent/lessons/13-bai-12-mcp.md +68 -0
  263. package/content/series/ai/build-ai-agents/chapters/05-phan-5-mcp-a2a-multi-agent/lessons/14-bai-13-a2a-protocol.md +65 -0
  264. package/content/series/ai/build-ai-agents/chapters/05-phan-5-mcp-a2a-multi-agent/lessons/15-bai-14-multi-agent-orchestration.md +76 -0
  265. package/content/series/ai/build-ai-agents/chapters/06-phan-6-production/lessons/16-bai-15-guardrails-safety.md +74 -0
  266. package/content/series/ai/build-ai-agents/chapters/06-phan-6-production/lessons/17-bai-16-observability-evaluation.md +74 -0
  267. package/content/series/ai/build-ai-agents/chapters/06-phan-6-production/lessons/18-bai-17-deploy-agent-production.md +85 -0
  268. package/content/series/ai/build-ai-agents/chapters/06-phan-6-production/lessons/19-bai-18-capstone-project.md +129 -0
  269. package/content/series/ai/build-ai-agents/index.md +372 -0
  270. package/content/series/ai/computer-vision-deep-learning/chapters/01-phan-1-nen-tang-cv/lessons/02-bai-1-computer-vision-la-gi.md +450 -0
  271. package/content/series/ai/computer-vision-deep-learning/chapters/01-phan-1-nen-tang-cv/lessons/03-bai-2-cnn-deep-dive.md +514 -0
  272. package/content/series/ai/computer-vision-deep-learning/chapters/01-phan-1-nen-tang-cv/lessons/04-bai-3-transfer-learning.md +427 -0
  273. package/content/series/ai/computer-vision-deep-learning/chapters/02-phan-2-object-detection/lessons/05-bai-4-yolo-object-detection.md +374 -0
  274. package/content/series/ai/computer-vision-deep-learning/chapters/02-phan-2-object-detection/lessons/06-bai-5-train-yolo-custom.md +440 -0
  275. package/content/series/ai/computer-vision-deep-learning/chapters/02-phan-2-object-detection/lessons/07-bai-6-realtime-detection.md +359 -0
  276. package/content/series/ai/computer-vision-deep-learning/chapters/03-phan-3-segmentation-modern-cv/lessons/08-bai-7-image-segmentation.md +310 -0
  277. package/content/series/ai/computer-vision-deep-learning/chapters/03-phan-3-segmentation-modern-cv/lessons/09-bai-8-sam-segment-anything.md +373 -0
  278. package/content/series/ai/computer-vision-deep-learning/chapters/03-phan-3-segmentation-modern-cv/lessons/10-bai-9-image-generation.md +332 -0
  279. package/content/series/ai/computer-vision-deep-learning/chapters/03-phan-3-segmentation-modern-cv/lessons/11-bai-10-vision-transformer-clip.md +413 -0
  280. package/content/series/ai/computer-vision-deep-learning/chapters/04-phan-4-ung-dung-thuc-te/lessons/12-bai-11-ocr-document-understanding.md +353 -0
  281. package/content/series/ai/computer-vision-deep-learning/chapters/04-phan-4-ung-dung-thuc-te/lessons/13-bai-12-multimodal-ai.md +342 -0
  282. package/content/series/ai/computer-vision-deep-learning/chapters/05-phan-5-deployment-capstone/lessons/14-bai-13-edge-deployment.md +628 -0
  283. package/content/series/ai/computer-vision-deep-learning/chapters/05-phan-5-deployment-capstone/lessons/15-bai-14-capstone.md +653 -0
  284. package/content/series/ai/computer-vision-deep-learning/index.md +287 -0
  285. package/content/series/ai/fine-tuning-llm/chapters/01-phan-1-tong-quan-chien-luoc/lessons/02-bai-1-fine-tuning-la-gi.md +247 -0
  286. package/content/series/ai/fine-tuning-llm/chapters/01-phan-1-tong-quan-chien-luoc/lessons/03-bai-2-fine-tuning-vs-rag.md +224 -0
  287. package/content/series/ai/fine-tuning-llm/chapters/01-phan-1-tong-quan-chien-luoc/lessons/04-bai-3-chi-phi-fine-tuning.md +129 -0
  288. package/content/series/ai/fine-tuning-llm/chapters/02-phan-2-chuan-bi-du-lieu/lessons/05-bai-4-thu-thap-thiet-ke-dataset.md +102 -0
  289. package/content/series/ai/fine-tuning-llm/chapters/02-phan-2-chuan-bi-du-lieu/lessons/06-bai-5-data-cleaning-augmentation.md +96 -0
  290. package/content/series/ai/fine-tuning-llm/chapters/03-phan-3-fine-tuning-gemini/lessons/07-bai-6-vertex-ai-setup.md +93 -0
  291. package/content/series/ai/fine-tuning-llm/chapters/03-phan-3-fine-tuning-gemini/lessons/08-bai-7-fine-tune-gemini-flash.md +107 -0
  292. package/content/series/ai/fine-tuning-llm/chapters/03-phan-3-fine-tuning-gemini/lessons/09-bai-8-fine-tune-gemini-production.md +83 -0
  293. package/content/series/ai/fine-tuning-llm/chapters/04-phan-4-fine-tuning-openai/lessons/10-bai-9-fine-tune-openai.md +79 -0
  294. package/content/series/ai/fine-tuning-llm/chapters/04-phan-4-fine-tuning-openai/lessons/11-bai-10-lora-qlora.md +96 -0
  295. package/content/series/ai/fine-tuning-llm/chapters/05-phan-5-danh-gia-model/lessons/12-bai-11-metrics-danh-gia-llm.md +100 -0
  296. package/content/series/ai/fine-tuning-llm/chapters/05-phan-5-danh-gia-model/lessons/13-bai-12-llm-as-a-judge.md +93 -0
  297. package/content/series/ai/fine-tuning-llm/chapters/05-phan-5-danh-gia-model/lessons/14-bai-13-evaluation-pipeline.md +101 -0
  298. package/content/series/ai/fine-tuning-llm/chapters/06-phan-6-production/lessons/15-bai-14-deployment.md +88 -0
  299. package/content/series/ai/fine-tuning-llm/chapters/06-phan-6-production/lessons/16-bai-15-common-pitfalls.md +81 -0
  300. package/content/series/ai/fine-tuning-llm/chapters/06-phan-6-production/lessons/17-bai-16-capstone.md +118 -0
  301. package/content/series/ai/fine-tuning-llm/index.md +363 -0
  302. package/content/series/ai/gemma-4-local-ai-engineering-tren-mac/chapters/01-phan-1-foundation-gemma-4-local-stack/lessons/01-bai-1-thiet-ke-local-ai-architecture-cho-team-dev.md +343 -0
  303. package/content/series/ai/gemma-4-local-ai-engineering-tren-mac/chapters/01-phan-1-foundation-gemma-4-local-stack/lessons/02-bai-2-setup-gemma-4-voi-ollama-va-open-webui-tren-mac.md +106 -0
  304. package/content/series/ai/gemma-4-local-ai-engineering-tren-mac/chapters/02-phan-2-integration-api-prompting/lessons/03-bai-3-xay-api-gateway-cho-gemma-4-va-policy-tang-ung-dung.md +108 -0
  305. package/content/series/ai/gemma-4-local-ai-engineering-tren-mac/chapters/02-phan-2-integration-api-prompting/lessons/04-bai-4-prompt-contracts-json-schema-va-regression-test-cho-llm.md +102 -0
  306. package/content/series/ai/gemma-4-local-ai-engineering-tren-mac/chapters/03-phan-3-rag-engineering-du-lieu-noi-bo/lessons/05-bai-5-ingestion-chunking-va-vector-indexing-cho-tieng-viet.md +101 -0
  307. package/content/series/ai/gemma-4-local-ai-engineering-tren-mac/chapters/03-phan-3-rag-engineering-du-lieu-noi-bo/lessons/06-bai-6-hybrid-retrieval-bm25-vector-reranker.md +84 -0
  308. package/content/series/ai/gemma-4-local-ai-engineering-tren-mac/chapters/04-phan-4-reliability-cost-production-hardening/lessons/07-bai-7-eval-framework-observability-va-slo-cho-genai.md +82 -0
  309. package/content/series/ai/gemma-4-local-ai-engineering-tren-mac/chapters/04-phan-4-reliability-cost-production-hardening/lessons/08-bai-8-hardening-va-rollout-local-ai-stack-cho-doanh-nghiep.md +90 -0
  310. package/content/series/ai/gemma-4-local-ai-engineering-tren-mac/index.md +64 -0
  311. package/content/series/ai/generative-ai-tao-hinh-anh-video/chapters/01-phan-1-nen-tang-generative-ai/lessons/02-bai-1-generative-ai-la-gi.md +233 -0
  312. package/content/series/ai/generative-ai-tao-hinh-anh-video/chapters/01-phan-1-nen-tang-generative-ai/lessons/03-bai-2-gan.md +299 -0
  313. package/content/series/ai/generative-ai-tao-hinh-anh-video/chapters/01-phan-1-nen-tang-generative-ai/lessons/04-bai-3-vae.md +280 -0
  314. package/content/series/ai/generative-ai-tao-hinh-anh-video/chapters/02-phan-2-diffusion-models/lessons/05-bai-4-diffusion-models.md +229 -0
  315. package/content/series/ai/generative-ai-tao-hinh-anh-video/chapters/02-phan-2-diffusion-models/lessons/06-bai-5-stable-diffusion.md +236 -0
  316. package/content/series/ai/generative-ai-tao-hinh-anh-video/chapters/02-phan-2-diffusion-models/lessons/07-bai-6-prompt-engineering.md +227 -0
  317. package/content/series/ai/generative-ai-tao-hinh-anh-video/chapters/03-phan-3-image-generation-nang-cao/lessons/08-bai-7-controlnet.md +220 -0
  318. package/content/series/ai/generative-ai-tao-hinh-anh-video/chapters/03-phan-3-image-generation-nang-cao/lessons/09-bai-8-inpainting.md +242 -0
  319. package/content/series/ai/generative-ai-tao-hinh-anh-video/chapters/03-phan-3-image-generation-nang-cao/lessons/10-bai-9-lora-custom-training.md +254 -0
  320. package/content/series/ai/generative-ai-tao-hinh-anh-video/chapters/04-phan-4-dall-e-midjourney-apis/lessons/11-bai-10-dall-e-3-api.md +251 -0
  321. package/content/series/ai/generative-ai-tao-hinh-anh-video/chapters/04-phan-4-dall-e-midjourney-apis/lessons/12-bai-11-midjourney-flux.md +220 -0
  322. package/content/series/ai/generative-ai-tao-hinh-anh-video/chapters/05-phan-5-video-generation/lessons/13-bai-12-video-generation.md +242 -0
  323. package/content/series/ai/generative-ai-tao-hinh-anh-video/chapters/05-phan-5-video-generation/lessons/14-bai-13-audio-music.md +232 -0
  324. package/content/series/ai/generative-ai-tao-hinh-anh-video/chapters/05-phan-5-video-generation/lessons/15-bai-14-3d-generation.md +245 -0
  325. package/content/series/ai/generative-ai-tao-hinh-anh-video/chapters/06-phan-6-production/lessons/16-bai-15-comfyui.md +260 -0
  326. package/content/series/ai/generative-ai-tao-hinh-anh-video/chapters/06-phan-6-production/lessons/17-bai-16-api-server.md +349 -0
  327. package/content/series/ai/generative-ai-tao-hinh-anh-video/chapters/06-phan-6-production/lessons/18-bai-17-ai-safety.md +280 -0
  328. package/content/series/ai/generative-ai-tao-hinh-anh-video/chapters/06-phan-6-production/lessons/19-bai-18-capstone.md +379 -0
  329. package/content/series/ai/generative-ai-tao-hinh-anh-video/index.md +339 -0
  330. package/content/series/ai/he-thong-goi-y-recommendation-systems/chapters/01-phan-1-nen-tang-recommendation-systems/lessons/02-bai-1-recsys-tong-quan.md +103 -0
  331. package/content/series/ai/he-thong-goi-y-recommendation-systems/chapters/01-phan-1-nen-tang-recommendation-systems/lessons/03-bai-2-collaborative-filtering.md +103 -0
  332. package/content/series/ai/he-thong-goi-y-recommendation-systems/chapters/01-phan-1-nen-tang-recommendation-systems/lessons/04-bai-3-matrix-factorization.md +103 -0
  333. package/content/series/ai/he-thong-goi-y-recommendation-systems/chapters/02-phan-2-deep-learning-cho-recommendation/lessons/05-bai-4-content-based-features.md +103 -0
  334. package/content/series/ai/he-thong-goi-y-recommendation-systems/chapters/02-phan-2-deep-learning-cho-recommendation/lessons/06-bai-5-neural-cf-embedding.md +103 -0
  335. package/content/series/ai/he-thong-goi-y-recommendation-systems/chapters/02-phan-2-deep-learning-cho-recommendation/lessons/07-bai-6-two-tower-retrieval.md +103 -0
  336. package/content/series/ai/he-thong-goi-y-recommendation-systems/chapters/02-phan-2-deep-learning-cho-recommendation/lessons/08-bai-7-sequence-models-recsys.md +103 -0
  337. package/content/series/ai/he-thong-goi-y-recommendation-systems/chapters/03-phan-3-advanced-recsys-knowledge-graph-multi-task-gnn/lessons/09-bai-8-gnn-recommendation.md +103 -0
  338. package/content/series/ai/he-thong-goi-y-recommendation-systems/chapters/03-phan-3-advanced-recsys-knowledge-graph-multi-task-gnn/lessons/10-bai-9-knowledge-graph-recsys.md +103 -0
  339. package/content/series/ai/he-thong-goi-y-recommendation-systems/chapters/03-phan-3-advanced-recsys-knowledge-graph-multi-task-gnn/lessons/11-bai-10-multi-task-ranking.md +103 -0
  340. package/content/series/ai/he-thong-goi-y-recommendation-systems/chapters/04-phan-4-recsys-production-deploy-scale/lessons/12-bai-11-llm-recommendations.md +103 -0
  341. package/content/series/ai/he-thong-goi-y-recommendation-systems/chapters/04-phan-4-recsys-production-deploy-scale/lessons/13-bai-12-production-recsys-architecture.md +103 -0
  342. package/content/series/ai/he-thong-goi-y-recommendation-systems/chapters/04-phan-4-recsys-production-deploy-scale/lessons/14-bai-13-ab-testing-evaluation.md +103 -0
  343. package/content/series/ai/he-thong-goi-y-recommendation-systems/chapters/04-phan-4-recsys-production-deploy-scale/lessons/15-bai-14-capstone-recsys.md +53 -0
  344. package/content/series/ai/he-thong-goi-y-recommendation-systems/index.md +199 -0
  345. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/chapters/01-phan-0-khoi-dong-cho-nguoi-moi-week-0/index.md +27 -0
  346. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/chapters/01-phan-0-khoi-dong-cho-nguoi-moi-week-0/lessons/01-bai-1-ml-la-gi.md +206 -0
  347. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/chapters/01-phan-0-khoi-dong-cho-nguoi-moi-week-0/lessons/02-bai-2-setup-moi-truong-ml.md +242 -0
  348. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/chapters/01-phan-0-khoi-dong-cho-nguoi-moi-week-0/lessons/03-bai-3-python-pandas-crash-course.md +243 -0
  349. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/chapters/01-phan-0-khoi-dong-cho-nguoi-moi-week-0/lessons/04-bai-4-model-dau-tien-baseline.md +186 -0
  350. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/chapters/01-phan-0-khoi-dong-cho-nguoi-moi-week-0/lessons/05-bai-5-mini-project-1-du-doan-gia-nha.md +165 -0
  351. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/chapters/02-phan-1-supervised-learning-nen-tang/index.md +27 -0
  352. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/chapters/02-phan-1-supervised-learning-nen-tang/lessons/06-bai-6-linear-regression-gradient-descent.md +113 -0
  353. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/chapters/02-phan-1-supervised-learning-nen-tang/lessons/07-bai-7-logistic-regression.md +100 -0
  354. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/chapters/02-phan-1-supervised-learning-nen-tang/lessons/08-bai-8-metrics-quan-trong.md +96 -0
  355. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/chapters/02-phan-1-supervised-learning-nen-tang/lessons/09-bai-9-overfitting-underfitting.md +88 -0
  356. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/chapters/02-phan-1-supervised-learning-nen-tang/lessons/10-bai-10-mini-project-2-churn.md +100 -0
  357. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/chapters/03-phan-2-workflow-chuan-cong-nghiep/index.md +27 -0
  358. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/chapters/03-phan-2-workflow-chuan-cong-nghiep/lessons/11-bai-11-missing-categorical-feature-engineering.md +89 -0
  359. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/chapters/03-phan-2-workflow-chuan-cong-nghiep/lessons/12-bai-12-pipelines-columntransformer.md +91 -0
  360. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/chapters/03-phan-2-workflow-chuan-cong-nghiep/lessons/13-bai-13-cross-validation-tuning.md +86 -0
  361. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/chapters/03-phan-2-workflow-chuan-cong-nghiep/lessons/14-bai-14-data-leakage-error-analysis.md +85 -0
  362. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/chapters/03-phan-2-workflow-chuan-cong-nghiep/lessons/15-bai-15-challenge-house-prices.md +84 -0
  363. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/chapters/04-phan-3-thuat-toan-nang-cao-vua-du-dung/index.md +27 -0
  364. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/chapters/04-phan-3-thuat-toan-nang-cao-vua-du-dung/lessons/16-bai-16-decision-tree-random-forest-xgboost.md +82 -0
  365. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/chapters/04-phan-3-thuat-toan-nang-cao-vua-du-dung/lessons/17-bai-17-clustering.md +81 -0
  366. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/chapters/04-phan-3-thuat-toan-nang-cao-vua-du-dung/lessons/18-bai-18-pca-tsne-umap.md +76 -0
  367. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/chapters/04-phan-3-thuat-toan-nang-cao-vua-du-dung/lessons/19-bai-19-anomaly-detection.md +76 -0
  368. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/chapters/04-phan-3-thuat-toan-nang-cao-vua-du-dung/lessons/20-bai-20-time-series-forecasting.md +84 -0
  369. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/chapters/05-phan-4-production-explainability-va-capstone/index.md +28 -0
  370. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/chapters/05-phan-4-production-explainability-va-capstone/lessons/21-bai-21-explainability-fairness.md +88 -0
  371. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/chapters/05-phan-4-production-explainability-va-capstone/lessons/22-bai-22-model-serving-fastapi-docker.md +95 -0
  372. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/chapters/05-phan-4-production-explainability-va-capstone/lessons/23-bai-23-monitoring-drift-retraining.md +88 -0
  373. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/chapters/05-phan-4-production-explainability-va-capstone/lessons/24-bai-24-capstone-ml-end-to-end.md +74 -0
  374. package/content/series/ai/machine-learning-tu-co-ban-den-nang-cao/index.md +364 -0
  375. package/content/series/ai/mlops-llmops/chapters/01-phan-1-mlops-foundations/lessons/02-bai-1-mlops-la-gi.md +342 -0
  376. package/content/series/ai/mlops-llmops/chapters/01-phan-1-mlops-foundations/lessons/03-bai-2-experiment-tracking.md +522 -0
  377. package/content/series/ai/mlops-llmops/chapters/01-phan-1-mlops-foundations/lessons/04-bai-3-data-versioning.md +493 -0
  378. package/content/series/ai/mlops-llmops/chapters/02-phan-2-ml-infrastructure/lessons/05-bai-4-model-registry.md +459 -0
  379. package/content/series/ai/mlops-llmops/chapters/02-phan-2-ml-infrastructure/lessons/06-bai-5-cicd-cho-ml.md +531 -0
  380. package/content/series/ai/mlops-llmops/chapters/02-phan-2-ml-infrastructure/lessons/07-bai-6-infrastructure.md +548 -0
  381. package/content/series/ai/mlops-llmops/chapters/03-phan-3-llmops/lessons/08-bai-7-llmops-vs-mlops.md +413 -0
  382. package/content/series/ai/mlops-llmops/chapters/03-phan-3-llmops/lessons/09-bai-8-prompt-management.md +514 -0
  383. package/content/series/ai/mlops-llmops/chapters/03-phan-3-llmops/lessons/10-bai-9-llm-observability.md +487 -0
  384. package/content/series/ai/mlops-llmops/chapters/04-phan-4-production-governance/lessons/11-bai-10-cost-optimization.md +511 -0
  385. package/content/series/ai/mlops-llmops/chapters/04-phan-4-production-governance/lessons/12-bai-11-guardrails-compliance.md +614 -0
  386. package/content/series/ai/mlops-llmops/chapters/04-phan-4-production-governance/lessons/13-bai-12-capstone.md +712 -0
  387. package/content/series/ai/mlops-llmops/index.md +276 -0
  388. package/content/series/ai/multimodal-ai-thi-giac-ngon-ngu/chapters/01-phan-1-nen-tang-multimodal-learning/lessons/02-bai-1-multimodal-ai-la-gi.md +103 -0
  389. package/content/series/ai/multimodal-ai-thi-giac-ngon-ngu/chapters/01-phan-1-nen-tang-multimodal-learning/lessons/03-bai-2-clip-contrastive-learning.md +103 -0
  390. package/content/series/ai/multimodal-ai-thi-giac-ngon-ngu/chapters/01-phan-1-nen-tang-multimodal-learning/lessons/04-bai-3-vision-encoders-vit.md +103 -0
  391. package/content/series/ai/multimodal-ai-thi-giac-ngon-ngu/chapters/02-phan-2-vision-language-models-vlms/lessons/05-bai-4-image-captioning.md +103 -0
  392. package/content/series/ai/multimodal-ai-thi-giac-ngon-ngu/chapters/02-phan-2-vision-language-models-vlms/lessons/06-bai-5-vqa.md +103 -0
  393. package/content/series/ai/multimodal-ai-thi-giac-ngon-ngu/chapters/02-phan-2-vision-language-models-vlms/lessons/07-bai-6-llava-vlm.md +103 -0
  394. package/content/series/ai/multimodal-ai-thi-giac-ngon-ngu/chapters/02-phan-2-vision-language-models-vlms/lessons/08-bai-7-gpt4v-gemini.md +103 -0
  395. package/content/series/ai/multimodal-ai-thi-giac-ngon-ngu/chapters/03-phan-3-document-ai-video-understanding/lessons/09-bai-8-document-ai-ocr.md +103 -0
  396. package/content/series/ai/multimodal-ai-thi-giac-ngon-ngu/chapters/03-phan-3-document-ai-video-understanding/lessons/10-bai-9-video-understanding.md +103 -0
  397. package/content/series/ai/multimodal-ai-thi-giac-ngon-ngu/chapters/03-phan-3-document-ai-video-understanding/lessons/11-bai-10-text-to-image.md +103 -0
  398. package/content/series/ai/multimodal-ai-thi-giac-ngon-ngu/chapters/04-phan-4-advanced-multimodal-production/lessons/12-bai-11-multimodal-rag.md +103 -0
  399. package/content/series/ai/multimodal-ai-thi-giac-ngon-ngu/chapters/04-phan-4-advanced-multimodal-production/lessons/13-bai-12-embodied-ai.md +103 -0
  400. package/content/series/ai/multimodal-ai-thi-giac-ngon-ngu/chapters/04-phan-4-advanced-multimodal-production/lessons/14-bai-13-deploy-multimodal.md +103 -0
  401. package/content/series/ai/multimodal-ai-thi-giac-ngon-ngu/chapters/04-phan-4-advanced-multimodal-production/lessons/15-bai-14-capstone-multimodal.md +53 -0
  402. package/content/series/ai/multimodal-ai-thi-giac-ngon-ngu/index.md +199 -0
  403. package/content/series/ai/nlp-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-nlp/lessons/02-bai-1-nlp-la-gi.md +241 -0
  404. package/content/series/ai/nlp-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-nlp/lessons/03-bai-2-text-preprocessing.md +298 -0
  405. package/content/series/ai/nlp-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-nlp/lessons/04-bai-3-tokenization-deep-dive.md +235 -0
  406. package/content/series/ai/nlp-tu-co-ban-den-nang-cao/chapters/02-phan-2-bieu-dien-ngon-ngu/lessons/05-bai-4-bow-tfidf-ngrams.md +170 -0
  407. package/content/series/ai/nlp-tu-co-ban-den-nang-cao/chapters/02-phan-2-bieu-dien-ngon-ngu/lessons/06-bai-5-word-embeddings.md +247 -0
  408. package/content/series/ai/nlp-tu-co-ban-den-nang-cao/chapters/02-phan-2-bieu-dien-ngon-ngu/lessons/07-bai-6-sentence-document-embeddings.md +189 -0
  409. package/content/series/ai/nlp-tu-co-ban-den-nang-cao/chapters/03-phan-3-deep-learning-nlp/lessons/08-bai-7-rnn-lstm.md +182 -0
  410. package/content/series/ai/nlp-tu-co-ban-den-nang-cao/chapters/03-phan-3-deep-learning-nlp/lessons/09-bai-8-attention-mechanism.md +168 -0
  411. package/content/series/ai/nlp-tu-co-ban-den-nang-cao/chapters/03-phan-3-deep-learning-nlp/lessons/10-bai-9-transformer.md +181 -0
  412. package/content/series/ai/nlp-tu-co-ban-den-nang-cao/chapters/04-phan-4-pretrained-language-models/lessons/11-bai-10-bert.md +170 -0
  413. package/content/series/ai/nlp-tu-co-ban-den-nang-cao/chapters/04-phan-4-pretrained-language-models/lessons/12-bai-11-gpt-autoregressive.md +149 -0
  414. package/content/series/ai/nlp-tu-co-ban-den-nang-cao/chapters/04-phan-4-pretrained-language-models/lessons/13-bai-12-hugging-face-ecosystem.md +203 -0
  415. package/content/series/ai/nlp-tu-co-ban-den-nang-cao/chapters/05-phan-5-bai-toan-ung-dung/lessons/14-bai-13-text-classification-sentiment.md +203 -0
  416. package/content/series/ai/nlp-tu-co-ban-den-nang-cao/chapters/05-phan-5-bai-toan-ung-dung/lessons/15-bai-14-ner.md +207 -0
  417. package/content/series/ai/nlp-tu-co-ban-den-nang-cao/chapters/05-phan-5-bai-toan-ung-dung/lessons/16-bai-15-question-answering.md +209 -0
  418. package/content/series/ai/nlp-tu-co-ban-den-nang-cao/chapters/05-phan-5-bai-toan-ung-dung/lessons/17-bai-16-summarization-translation.md +164 -0
  419. package/content/series/ai/nlp-tu-co-ban-den-nang-cao/chapters/06-phan-6-production-xu-huong/lessons/18-bai-17-nlp-tieng-viet.md +190 -0
  420. package/content/series/ai/nlp-tu-co-ban-den-nang-cao/chapters/06-phan-6-production-xu-huong/lessons/19-bai-18-nlp-pipeline-production.md +243 -0
  421. package/content/series/ai/nlp-tu-co-ban-den-nang-cao/chapters/06-phan-6-production-xu-huong/lessons/20-bai-19-llm-nlp-hien-dai.md +219 -0
  422. package/content/series/ai/nlp-tu-co-ban-den-nang-cao/chapters/06-phan-6-production-xu-huong/lessons/21-bai-20-capstone-project.md +270 -0
  423. package/content/series/ai/nlp-tu-co-ban-den-nang-cao/index.md +401 -0
  424. package/content/series/ai/ollama-apple-silicon/chapters/01-phan-1-nen-tang-ollama-apple-silicon/lessons/01-bai-1-apple-silicon-ai-tai-sao-m-chip-la-vua-inference-local.md +216 -0
  425. package/content/series/ai/ollama-apple-silicon/chapters/01-phan-1-nen-tang-ollama-apple-silicon/lessons/02-bai-2-cai-dat-ollama-tu-zero-den-chay-llm-trong-5-phut.md +353 -0
  426. package/content/series/ai/ollama-apple-silicon/chapters/01-phan-1-nen-tang-ollama-apple-silicon/lessons/03-bai-3-chon-model-phu-hop-so-sanh-llm-cho-mac.md +267 -0
  427. package/content/series/ai/ollama-apple-silicon/chapters/02-phan-2-mlx-tang-toc-3x/lessons/04-bai-4-mlx-framework-apple-intelligence-duoi-nap-capo.md +267 -0
  428. package/content/series/ai/ollama-apple-silicon/chapters/02-phan-2-mlx-tang-toc-3x/lessons/05-bai-5-cai-dat-mlx-lm-va-chay-model-mlx-quantized.md +372 -0
  429. package/content/series/ai/ollama-apple-silicon/chapters/02-phan-2-mlx-tang-toc-3x/lessons/06-bai-6-ollama-mlx-backend-ket-hop-tot-nhat-cua-hai-the-gioi.md +314 -0
  430. package/content/series/ai/ollama-apple-silicon/chapters/03-phan-3-tich-hop-api-lap-trinh/lessons/07-bai-7-ollama-rest-api-openai-compatible-endpoint.md +395 -0
  431. package/content/series/ai/ollama-apple-silicon/chapters/03-phan-3-tich-hop-api-lap-trinh/lessons/08-bai-8-python-integration-xay-chatbot-local-voi-ollama.md +450 -0
  432. package/content/series/ai/ollama-apple-silicon/chapters/03-phan-3-tich-hop-api-lap-trinh/lessons/09-bai-9-vision-models-phan-tich-hinh-anh-khong-can-cloud.md +392 -0
  433. package/content/series/ai/ollama-apple-silicon/chapters/04-phan-4-toi-uu-quan-ly-production/lessons/10-bai-10-toi-uu-hieu-nang-ram-context-concurrency.md +497 -0
  434. package/content/series/ai/ollama-apple-silicon/chapters/04-phan-4-toi-uu-quan-ly-production/lessons/11-bai-11-modelfiles-custom-models-va-system-prompts.md +481 -0
  435. package/content/series/ai/ollama-apple-silicon/chapters/04-phan-4-toi-uu-quan-ly-production/lessons/12-bai-12-workflow-hoan-chinh-personal-ai-setup-2026.md +637 -0
  436. package/content/series/ai/ollama-apple-silicon/index.md +57 -0
  437. package/content/series/ai/ollama-apple-silicon/index.md.tmp +239 -0
  438. package/content/series/ai/prompt-engineering-masterclass/chapters/01-phan-1-nen-tang/lessons/02-bai-1-prompt-engineering-la-gi.md +362 -0
  439. package/content/series/ai/prompt-engineering-masterclass/chapters/01-phan-1-nen-tang/lessons/03-bai-2-system-prompts-persona.md +433 -0
  440. package/content/series/ai/prompt-engineering-masterclass/chapters/01-phan-1-nen-tang/lessons/04-bai-3-few-shot-zero-shot.md +424 -0
  441. package/content/series/ai/prompt-engineering-masterclass/chapters/02-phan-2-ky-thuat-nang-cao/lessons/05-bai-4-chain-of-thought.md +320 -0
  442. package/content/series/ai/prompt-engineering-masterclass/chapters/02-phan-2-ky-thuat-nang-cao/lessons/06-bai-5-tree-of-thoughts.md +294 -0
  443. package/content/series/ai/prompt-engineering-masterclass/chapters/02-phan-2-ky-thuat-nang-cao/lessons/07-bai-6-structured-output.md +355 -0
  444. package/content/series/ai/prompt-engineering-masterclass/chapters/03-phan-3-ung-dung-thuc-te/lessons/08-bai-7-prompt-cho-code.md +323 -0
  445. package/content/series/ai/prompt-engineering-masterclass/chapters/03-phan-3-ung-dung-thuc-te/lessons/09-bai-8-prompt-data-business.md +333 -0
  446. package/content/series/ai/prompt-engineering-masterclass/chapters/03-phan-3-ung-dung-thuc-te/lessons/10-bai-9-multimodal-prompting.md +327 -0
  447. package/content/series/ai/prompt-engineering-masterclass/chapters/04-phan-4-production/lessons/11-bai-10-prompt-testing.md +437 -0
  448. package/content/series/ai/prompt-engineering-masterclass/chapters/04-phan-4-production/lessons/12-bai-11-prompt-versioning.md +473 -0
  449. package/content/series/ai/prompt-engineering-masterclass/chapters/04-phan-4-production/lessons/13-bai-12-capstone.md +423 -0
  450. package/content/series/ai/prompt-engineering-masterclass/index.md +266 -0
  451. package/content/series/ai/rag-thuc-chien/chapters/01-phan-1-nen-tang-rag/lessons/02-bai-1-rag-la-gi.md +349 -0
  452. package/content/series/ai/rag-thuc-chien/chapters/01-phan-1-nen-tang-rag/lessons/03-bai-2-embedding-models.md +308 -0
  453. package/content/series/ai/rag-thuc-chien/chapters/01-phan-1-nen-tang-rag/lessons/04-bai-3-vector-databases.md +351 -0
  454. package/content/series/ai/rag-thuc-chien/chapters/02-phan-2-document-processing/lessons/05-bai-4-document-loading.md +302 -0
  455. package/content/series/ai/rag-thuc-chien/chapters/02-phan-2-document-processing/lessons/06-bai-5-chunking-strategies.md +320 -0
  456. package/content/series/ai/rag-thuc-chien/chapters/02-phan-2-document-processing/lessons/07-bai-6-metadata-hybrid-search.md +385 -0
  457. package/content/series/ai/rag-thuc-chien/chapters/03-phan-3-query-retrieval/lessons/08-bai-7-query-transformation.md +335 -0
  458. package/content/series/ai/rag-thuc-chien/chapters/03-phan-3-query-retrieval/lessons/09-bai-8-reranking-compression.md +319 -0
  459. package/content/series/ai/rag-thuc-chien/chapters/03-phan-3-query-retrieval/lessons/10-bai-9-graph-rag.md +351 -0
  460. package/content/series/ai/rag-thuc-chien/chapters/04-phan-4-advanced-rag/lessons/11-bai-10-multimodal-rag.md +359 -0
  461. package/content/series/ai/rag-thuc-chien/chapters/04-phan-4-advanced-rag/lessons/12-bai-11-agentic-rag.md +366 -0
  462. package/content/series/ai/rag-thuc-chien/chapters/04-phan-4-advanced-rag/lessons/13-bai-12-rag-evaluation.md +318 -0
  463. package/content/series/ai/rag-thuc-chien/chapters/05-phan-5-production-capstone/lessons/14-bai-13-deploy-rag-production.md +395 -0
  464. package/content/series/ai/rag-thuc-chien/chapters/05-phan-5-production-capstone/lessons/15-bai-14-capstone.md +409 -0
  465. package/content/series/ai/rag-thuc-chien/index.md +285 -0
  466. package/content/series/ai/reinforcement-learning-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-rl/lessons/02-bai-1-rl-la-gi.md +139 -0
  467. package/content/series/ai/reinforcement-learning-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-rl/lessons/03-bai-2-dynamic-programming.md +139 -0
  468. package/content/series/ai/reinforcement-learning-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-rl/lessons/04-bai-3-monte-carlo-td.md +154 -0
  469. package/content/series/ai/reinforcement-learning-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-rl/lessons/05-bai-4-q-learning.md +148 -0
  470. package/content/series/ai/reinforcement-learning-tu-co-ban-den-nang-cao/chapters/02-phan-2-deep-rl/lessons/06-bai-5-dqn.md +161 -0
  471. package/content/series/ai/reinforcement-learning-tu-co-ban-den-nang-cao/chapters/02-phan-2-deep-rl/lessons/07-bai-6-policy-gradient.md +144 -0
  472. package/content/series/ai/reinforcement-learning-tu-co-ban-den-nang-cao/chapters/02-phan-2-deep-rl/lessons/08-bai-7-ppo.md +130 -0
  473. package/content/series/ai/reinforcement-learning-tu-co-ban-den-nang-cao/chapters/02-phan-2-deep-rl/lessons/09-bai-8-sac.md +126 -0
  474. package/content/series/ai/reinforcement-learning-tu-co-ban-den-nang-cao/chapters/03-phan-3-frameworks/lessons/10-bai-9-gymnasium.md +149 -0
  475. package/content/series/ai/reinforcement-learning-tu-co-ban-den-nang-cao/chapters/03-phan-3-frameworks/lessons/11-bai-10-custom-env.md +142 -0
  476. package/content/series/ai/reinforcement-learning-tu-co-ban-den-nang-cao/chapters/03-phan-3-frameworks/lessons/12-bai-11-robotics.md +116 -0
  477. package/content/series/ai/reinforcement-learning-tu-co-ban-den-nang-cao/chapters/04-phan-4-rlhf-production/lessons/13-bai-12-rlhf.md +122 -0
  478. package/content/series/ai/reinforcement-learning-tu-co-ban-den-nang-cao/chapters/04-phan-4-rlhf-production/lessons/14-bai-13-dpo.md +118 -0
  479. package/content/series/ai/reinforcement-learning-tu-co-ban-den-nang-cao/chapters/04-phan-4-rlhf-production/lessons/15-bai-14-multi-agent.md +120 -0
  480. package/content/series/ai/reinforcement-learning-tu-co-ban-den-nang-cao/chapters/04-phan-4-rlhf-production/lessons/16-bai-15-rl-production.md +153 -0
  481. package/content/series/ai/reinforcement-learning-tu-co-ban-den-nang-cao/chapters/04-phan-4-rlhf-production/lessons/17-bai-16-capstone.md +156 -0
  482. package/content/series/ai/reinforcement-learning-tu-co-ban-den-nang-cao/index.md +280 -0
  483. package/content/series/ai/speech-audio-ai-xu-ly-giong-noi-am-thanh/chapters/01-phan-1-nen-tang-xu-ly-am-thanh-tin-hieu/lessons/02-bai-1-digital-audio-signal-processing.md +103 -0
  484. package/content/series/ai/speech-audio-ai-xu-ly-giong-noi-am-thanh/chapters/01-phan-1-nen-tang-xu-ly-am-thanh-tin-hieu/lessons/03-bai-2-audio-feature-extraction.md +103 -0
  485. package/content/series/ai/speech-audio-ai-xu-ly-giong-noi-am-thanh/chapters/01-phan-1-nen-tang-xu-ly-am-thanh-tin-hieu/lessons/04-bai-3-audio-classification.md +103 -0
  486. package/content/series/ai/speech-audio-ai-xu-ly-giong-noi-am-thanh/chapters/02-phan-2-speech-recognition-asr-nhan-dang-giong-noi/lessons/05-bai-4-asr-architecture.md +103 -0
  487. package/content/series/ai/speech-audio-ai-xu-ly-giong-noi-am-thanh/chapters/02-phan-2-speech-recognition-asr-nhan-dang-giong-noi/lessons/06-bai-5-whisper-modern-asr.md +103 -0
  488. package/content/series/ai/speech-audio-ai-xu-ly-giong-noi-am-thanh/chapters/02-phan-2-speech-recognition-asr-nhan-dang-giong-noi/lessons/07-bai-6-realtime-asr-streaming.md +103 -0
  489. package/content/series/ai/speech-audio-ai-xu-ly-giong-noi-am-thanh/chapters/03-phan-3-text-to-speech-voice-technologies/lessons/08-bai-7-tts-tacotron-vits.md +103 -0
  490. package/content/series/ai/speech-audio-ai-xu-ly-giong-noi-am-thanh/chapters/03-phan-3-text-to-speech-voice-technologies/lessons/09-bai-8-voice-cloning.md +103 -0
  491. package/content/series/ai/speech-audio-ai-xu-ly-giong-noi-am-thanh/chapters/03-phan-3-text-to-speech-voice-technologies/lessons/10-bai-9-speaker-verification-diarization.md +103 -0
  492. package/content/series/ai/speech-audio-ai-xu-ly-giong-noi-am-thanh/chapters/04-phan-4-advanced-audio-ai-production/lessons/11-bai-10-speech-enhancement.md +103 -0
  493. package/content/series/ai/speech-audio-ai-xu-ly-giong-noi-am-thanh/chapters/04-phan-4-advanced-audio-ai-production/lessons/12-bai-11-music-ai.md +103 -0
  494. package/content/series/ai/speech-audio-ai-xu-ly-giong-noi-am-thanh/chapters/04-phan-4-advanced-audio-ai-production/lessons/13-bai-12-emotion-recognition.md +103 -0
  495. package/content/series/ai/speech-audio-ai-xu-ly-giong-noi-am-thanh/chapters/04-phan-4-advanced-audio-ai-production/lessons/14-bai-13-vietnamese-speech-ai.md +103 -0
  496. package/content/series/ai/speech-audio-ai-xu-ly-giong-noi-am-thanh/chapters/04-phan-4-advanced-audio-ai-production/lessons/15-bai-14-deploy-speech-ai.md +103 -0
  497. package/content/series/ai/speech-audio-ai-xu-ly-giong-noi-am-thanh/chapters/04-phan-4-advanced-audio-ai-production/lessons/16-bai-15-capstone-voice-assistant.md +53 -0
  498. package/content/series/ai/speech-audio-ai-xu-ly-giong-noi-am-thanh/index.md +208 -0
  499. package/content/series/ai/time-series-ai-du-doan-chuoi-thoi-gian/chapters/01-phan-1-nen-tang-time-series-analysis/lessons/02-bai-1-time-series-fundamentals.md +103 -0
  500. package/content/series/ai/time-series-ai-du-doan-chuoi-thoi-gian/chapters/01-phan-1-nen-tang-time-series-analysis/lessons/03-bai-2-arima-sarima-ets.md +103 -0
  501. package/content/series/ai/time-series-ai-du-doan-chuoi-thoi-gian/chapters/01-phan-1-nen-tang-time-series-analysis/lessons/04-bai-3-prophet-forecasting.md +103 -0
  502. package/content/series/ai/time-series-ai-du-doan-chuoi-thoi-gian/chapters/02-phan-2-machine-learning-cho-time-series/lessons/05-bai-4-feature-engineering.md +103 -0
  503. package/content/series/ai/time-series-ai-du-doan-chuoi-thoi-gian/chapters/02-phan-2-machine-learning-cho-time-series/lessons/06-bai-5-xgboost-lightgbm.md +103 -0
  504. package/content/series/ai/time-series-ai-du-doan-chuoi-thoi-gian/chapters/02-phan-2-machine-learning-cho-time-series/lessons/07-bai-6-multivariate-hierarchical.md +103 -0
  505. package/content/series/ai/time-series-ai-du-doan-chuoi-thoi-gian/chapters/03-phan-3-deep-learning-cho-time-series/lessons/08-bai-7-lstm-sequence-models.md +103 -0
  506. package/content/series/ai/time-series-ai-du-doan-chuoi-thoi-gian/chapters/03-phan-3-deep-learning-cho-time-series/lessons/09-bai-8-transformers-time-series.md +103 -0
  507. package/content/series/ai/time-series-ai-du-doan-chuoi-thoi-gian/chapters/03-phan-3-deep-learning-cho-time-series/lessons/10-bai-9-foundation-models.md +103 -0
  508. package/content/series/ai/time-series-ai-du-doan-chuoi-thoi-gian/chapters/04-phan-4-ung-dung-production/lessons/11-bai-10-anomaly-detection.md +103 -0
  509. package/content/series/ai/time-series-ai-du-doan-chuoi-thoi-gian/chapters/04-phan-4-ung-dung-production/lessons/12-bai-11-classification-clustering.md +103 -0
  510. package/content/series/ai/time-series-ai-du-doan-chuoi-thoi-gian/chapters/04-phan-4-ung-dung-production/lessons/13-bai-12-financial-time-series.md +103 -0
  511. package/content/series/ai/time-series-ai-du-doan-chuoi-thoi-gian/chapters/04-phan-4-ung-dung-production/lessons/14-bai-13-production-pipeline.md +103 -0
  512. package/content/series/ai/time-series-ai-du-doan-chuoi-thoi-gian/chapters/04-phan-4-ung-dung-production/lessons/15-bai-14-capstone-forecasting.md +53 -0
  513. package/content/series/ai/time-series-ai-du-doan-chuoi-thoi-gian/index.md +199 -0
  514. package/content/series/ai/xay-dung-ai-agent-platform/chapters/01-phan-1-kien-truc-monorepo/lessons/01-bai-1-tong-quan-kien-truc.md +287 -0
  515. package/content/series/ai/xay-dung-ai-agent-platform/chapters/01-phan-1-kien-truc-monorepo/lessons/02-bai-2-setup-typescript-monorepo.md +283 -0
  516. package/content/series/ai/xay-dung-ai-agent-platform/chapters/01-phan-1-kien-truc-monorepo/lessons/03-bai-3-dual-database.md +212 -0
  517. package/content/series/ai/xay-dung-ai-agent-platform/chapters/01-phan-1-kien-truc-monorepo/lessons/04-bai-4-api-gateway-hono.md +143 -0
  518. package/content/series/ai/xay-dung-ai-agent-platform/chapters/02-phan-2-llm-engine-agent-core/lessons/05-bai-5-llm-router.md +268 -0
  519. package/content/series/ai/xay-dung-ai-agent-platform/chapters/02-phan-2-llm-engine-agent-core/lessons/06-bai-6-tool-registry.md +208 -0
  520. package/content/series/ai/xay-dung-ai-agent-platform/chapters/02-phan-2-llm-engine-agent-core/lessons/07-bai-7-agent-class.md +248 -0
  521. package/content/series/ai/xay-dung-ai-agent-platform/chapters/02-phan-2-llm-engine-agent-core/lessons/08-bai-8-streaming-eventbus.md +234 -0
  522. package/content/series/ai/xay-dung-ai-agent-platform/chapters/03-phan-3-rag-pipeline/lessons/09-bai-9-document-processor.md +214 -0
  523. package/content/series/ai/xay-dung-ai-agent-platform/chapters/03-phan-3-rag-pipeline/lessons/10-bai-10-embedding-vector-store.md +236 -0
  524. package/content/series/ai/xay-dung-ai-agent-platform/chapters/03-phan-3-rag-pipeline/lessons/11-bai-11-rag-engine.md +240 -0
  525. package/content/series/ai/xay-dung-ai-agent-platform/chapters/04-phan-4-workflow-engine/lessons/12-bai-12-workflow-engine.md +222 -0
  526. package/content/series/ai/xay-dung-ai-agent-platform/chapters/04-phan-4-workflow-engine/lessons/13-bai-13-workflow-validation-execution.md +260 -0
  527. package/content/series/ai/xay-dung-ai-agent-platform/chapters/05-phan-5-skills-domains-plugins/lessons/14-bai-14-skill-system.md +224 -0
  528. package/content/series/ai/xay-dung-ai-agent-platform/chapters/05-phan-5-skills-domains-plugins/lessons/15-bai-15-domain-packs.md +220 -0
  529. package/content/series/ai/xay-dung-ai-agent-platform/chapters/05-phan-5-skills-domains-plugins/lessons/16-bai-16-plugin-mcp.md +304 -0
  530. package/content/series/ai/xay-dung-ai-agent-platform/chapters/06-phan-6-multi-tenant-rbac-channels/lessons/17-bai-17-multi-tenant-rbac.md +291 -0
  531. package/content/series/ai/xay-dung-ai-agent-platform/chapters/06-phan-6-multi-tenant-rbac-channels/lessons/18-bai-18-chat-channels.md +212 -0
  532. package/content/series/ai/xay-dung-ai-agent-platform/chapters/07-phan-7-frontend-monitoring-production/lessons/19-bai-19-react-frontend.md +1025 -0
  533. package/content/series/ai/xay-dung-ai-agent-platform/chapters/07-phan-7-frontend-monitoring-production/lessons/20-bai-20-monitoring-deploy.md +352 -0
  534. package/content/series/ai/xay-dung-ai-agent-platform/index.md +388 -0
  535. package/content/series/architecture/cloud-native-microservices-architecture/chapters/01-phan-1-cloud-native-foundations/lessons/01-bai-1-cloud-native-la-gi-nguyen-ly-va-twelve-factor-app.md +298 -0
  536. package/content/series/architecture/cloud-native-microservices-architecture/chapters/01-phan-1-cloud-native-foundations/lessons/02-bai-2-container-docker-nen-tang-dong-goi-ung-dung.md +364 -0
  537. package/content/series/architecture/cloud-native-microservices-architecture/chapters/01-phan-1-cloud-native-foundations/lessons/03-bai-3-kubernetes-architecture-core-concepts.md +460 -0
  538. package/content/series/architecture/cloud-native-microservices-architecture/chapters/02-phan-2-system-design-communication-patterns/lessons/04-bai-4-microservices-design-principles-srp-ddd-bounded-context.md +328 -0
  539. package/content/series/architecture/cloud-native-microservices-architecture/chapters/02-phan-2-system-design-communication-patterns/lessons/05-bai-5-synchronous-communication-rest-api-grpc.md +379 -0
  540. package/content/series/architecture/cloud-native-microservices-architecture/chapters/02-phan-2-system-design-communication-patterns/lessons/06-bai-6-asynchronous-communication-message-queue-event-streaming.md +303 -0
  541. package/content/series/architecture/cloud-native-microservices-architecture/chapters/02-phan-2-system-design-communication-patterns/lessons/07-bai-7-api-gateway-pattern-kong-apisix-envoy.md +314 -0
  542. package/content/series/architecture/cloud-native-microservices-architecture/chapters/03-phan-3-data-management/lessons/08-bai-8-database-per-service-polyglot-persistence.md +270 -0
  543. package/content/series/architecture/cloud-native-microservices-architecture/chapters/03-phan-3-data-management/lessons/09-bai-9-event-sourcing-cqrs.md +302 -0
  544. package/content/series/architecture/cloud-native-microservices-architecture/chapters/03-phan-3-data-management/lessons/10-bai-10-saga-pattern-distributed-transactions.md +479 -0
  545. package/content/series/architecture/cloud-native-microservices-architecture/chapters/03-phan-3-data-management/lessons/11-bai-11-data-consistency-patterns-outbox-cdc-eventual-consistency.md +445 -0
  546. package/content/series/architecture/cloud-native-microservices-architecture/chapters/04-phan-4-service-mesh-networking/lessons/12-bai-12-service-discovery-registry.md +459 -0
  547. package/content/series/architecture/cloud-native-microservices-architecture/chapters/04-phan-4-service-mesh-networking/lessons/13-bai-13-service-mesh-istio-linkerd.md +423 -0
  548. package/content/series/architecture/cloud-native-microservices-architecture/chapters/04-phan-4-service-mesh-networking/lessons/14-bai-14-zero-trust-security-mtls.md +444 -0
  549. package/content/series/architecture/cloud-native-microservices-architecture/chapters/05-phan-5-observability/lessons/15-bai-15-metrics-prometheus-grafana.md +541 -0
  550. package/content/series/architecture/cloud-native-microservices-architecture/chapters/05-phan-5-observability/lessons/16-bai-16-logging-structured-logging-loki-elk.md +510 -0
  551. package/content/series/architecture/cloud-native-microservices-architecture/chapters/05-phan-5-observability/lessons/17-bai-17-distributed-tracing-opentelemetry-jaeger.md +583 -0
  552. package/content/series/architecture/cloud-native-microservices-architecture/chapters/06-phan-6-resiliency-patterns/lessons/18-bai-18-circuit-breaker-retry-patterns.md +471 -0
  553. package/content/series/architecture/cloud-native-microservices-architecture/chapters/06-phan-6-resiliency-patterns/lessons/19-bai-19-bulkhead-rate-limiting-health-check-patterns.md +493 -0
  554. package/content/series/architecture/cloud-native-microservices-architecture/chapters/06-phan-6-resiliency-patterns/lessons/20-bai-20-chaos-engineering-kiem-chung-do-tin-cay.md +414 -0
  555. package/content/series/architecture/cloud-native-microservices-architecture/chapters/07-phan-7-cicd-deployment/lessons/21-bai-21-cicd-pipeline-cho-microservices.md +461 -0
  556. package/content/series/architecture/cloud-native-microservices-architecture/chapters/07-phan-7-cicd-deployment/lessons/22-bai-22-gitops-voi-argocd.md +499 -0
  557. package/content/series/architecture/cloud-native-microservices-architecture/chapters/07-phan-7-cicd-deployment/lessons/23-bai-23-deployment-strategies-canary-blue-green-progressive-delivery.md +496 -0
  558. package/content/series/architecture/cloud-native-microservices-architecture/chapters/08-phan-8-security-production-readiness/lessons/24-bai-24-authentication-authorization-oauth2-jwt-oidc.md +485 -0
  559. package/content/series/architecture/cloud-native-microservices-architecture/chapters/08-phan-8-security-production-readiness/lessons/25-bai-25-secrets-management-container-security.md +533 -0
  560. package/content/series/architecture/cloud-native-microservices-architecture/chapters/08-phan-8-security-production-readiness/lessons/26-bai-26-production-readiness-checklist-lo-trinh-trien-khai.md +499 -0
  561. package/content/series/architecture/cloud-native-microservices-architecture/index.md +396 -0
  562. package/content/series/architecture/hl7-fhir-chuan-du-lieu-y-te-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-hl7-va-fhir/lessons/01-bai-1-gioi-thieu-hl7-va-lich-su-chuan-du-lieu-y-te.md +296 -0
  563. package/content/series/architecture/hl7-fhir-chuan-du-lieu-y-te-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-hl7-va-fhir/lessons/02-bai-2-tong-quan-fhir-r5-kien-truc-va-nguyen-tac-thiet-ke.md +447 -0
  564. package/content/series/architecture/hl7-fhir-chuan-du-lieu-y-te-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-hl7-va-fhir/lessons/03-bai-3-cai-dat-moi-truong-phat-trien-fhir.md +413 -0
  565. package/content/series/architecture/hl7-fhir-chuan-du-lieu-y-te-tu-co-ban-den-nang-cao/chapters/02-phan-2-fhir-resources-cot-loi/lessons/04-bai-4-patient-practitioner-organization-resources-hanh-chinh.md +446 -0
  566. package/content/series/architecture/hl7-fhir-chuan-du-lieu-y-te-tu-co-ban-den-nang-cao/chapters/02-phan-2-fhir-resources-cot-loi/lessons/05-bai-5-encounter-condition-observation-resources-lam-sang.md +548 -0
  567. package/content/series/architecture/hl7-fhir-chuan-du-lieu-y-te-tu-co-ban-den-nang-cao/chapters/02-phan-2-fhir-resources-cot-loi/lessons/06-bai-6-medication-medicationrequest-immunization-resources-thuoc.md +363 -0
  568. package/content/series/architecture/hl7-fhir-chuan-du-lieu-y-te-tu-co-ban-den-nang-cao/chapters/02-phan-2-fhir-resources-cot-loi/lessons/07-bai-7-diagnosticreport-procedure-allergyintolerance-resources-chan-doan.md +411 -0
  569. package/content/series/architecture/hl7-fhir-chuan-du-lieu-y-te-tu-co-ban-den-nang-cao/chapters/03-phan-3-fhir-restful-api-va-data-exchange/lessons/08-bai-8-fhir-restful-api-crud-search-history-va-versioning.md +324 -0
  570. package/content/series/architecture/hl7-fhir-chuan-du-lieu-y-te-tu-co-ban-den-nang-cao/chapters/03-phan-3-fhir-restful-api-va-data-exchange/lessons/09-bai-9-bundle-transaction-va-batch-xu-ly-nhieu-resources.md +319 -0
  571. package/content/series/architecture/hl7-fhir-chuan-du-lieu-y-te-tu-co-ban-den-nang-cao/chapters/03-phan-3-fhir-restful-api-va-data-exchange/lessons/10-bai-10-search-parameters-va-tim-kiem-nang-cao.md +219 -0
  572. package/content/series/architecture/hl7-fhir-chuan-du-lieu-y-te-tu-co-ban-den-nang-cao/chapters/04-phan-4-data-types-terminologies-va-profiles/lessons/11-bai-11-fhir-data-types-primitive-complex-va-special.md +318 -0
  573. package/content/series/architecture/hl7-fhir-chuan-du-lieu-y-te-tu-co-ban-den-nang-cao/chapters/04-phan-4-data-types-terminologies-va-profiles/lessons/12-bai-12-terminologies-codesystem-valueset-conceptmap.md +278 -0
  574. package/content/series/architecture/hl7-fhir-chuan-du-lieu-y-te-tu-co-ban-den-nang-cao/chapters/04-phan-4-data-types-terminologies-va-profiles/lessons/13-bai-13-profiles-extensions-va-implementation-guides.md +320 -0
  575. package/content/series/architecture/hl7-fhir-chuan-du-lieu-y-te-tu-co-ban-den-nang-cao/chapters/05-phan-5-tich-hop-messaging-va-security/lessons/14-bai-14-fhir-documents-va-messaging.md +277 -0
  576. package/content/series/architecture/hl7-fhir-chuan-du-lieu-y-te-tu-co-ban-den-nang-cao/chapters/05-phan-5-tich-hop-messaging-va-security/lessons/15-bai-15-fhir-subscriptions-va-real-time-notifications.md +250 -0
  577. package/content/series/architecture/hl7-fhir-chuan-du-lieu-y-te-tu-co-ban-den-nang-cao/chapters/05-phan-5-tich-hop-messaging-va-security/lessons/16-bai-16-smart-on-fhir-oauth2-va-ung-dung-y-te.md +243 -0
  578. package/content/series/architecture/hl7-fhir-chuan-du-lieu-y-te-tu-co-ban-den-nang-cao/chapters/05-phan-5-tich-hop-messaging-va-security/lessons/17-bai-17-security-privacy-va-consent-trong-fhir.md +358 -0
  579. package/content/series/architecture/hl7-fhir-chuan-du-lieu-y-te-tu-co-ban-den-nang-cao/chapters/06-phan-6-thuc-hanh-xay-dung-he-thong-fhir/lessons/18-bai-18-hands-on-xay-dung-fhir-server-voi-hapi-fhir.md +399 -0
  580. package/content/series/architecture/hl7-fhir-chuan-du-lieu-y-te-tu-co-ban-den-nang-cao/chapters/06-phan-6-thuc-hanh-xay-dung-he-thong-fhir/lessons/19-bai-19-hands-on-fhir-client-va-tich-hop-ung-dung.md +353 -0
  581. package/content/series/architecture/hl7-fhir-chuan-du-lieu-y-te-tu-co-ban-den-nang-cao/chapters/06-phan-6-thuc-hanh-xay-dung-he-thong-fhir/lessons/20-bai-20-hands-on-xay-dung-implementation-guide-cho-viet-nam.md +335 -0
  582. package/content/series/architecture/hl7-fhir-chuan-du-lieu-y-te-tu-co-ban-den-nang-cao/chapters/06-phan-6-thuc-hanh-xay-dung-he-thong-fhir/lessons/21-bai-21-hands-on-tich-hop-fhir-voi-emr-his-thuc-te.md +453 -0
  583. package/content/series/architecture/hl7-fhir-chuan-du-lieu-y-te-tu-co-ban-den-nang-cao/chapters/07-phan-7-production-quy-mo-va-tuong-lai/lessons/22-bai-22-fhir-performance-scalability-va-monitoring.md +353 -0
  584. package/content/series/architecture/hl7-fhir-chuan-du-lieu-y-te-tu-co-ban-den-nang-cao/chapters/07-phan-7-production-quy-mo-va-tuong-lai/lessons/23-bai-23-fhir-trong-boi-canh-y-te-viet-nam.md +244 -0
  585. package/content/series/architecture/hl7-fhir-chuan-du-lieu-y-te-tu-co-ban-den-nang-cao/chapters/07-phan-7-production-quy-mo-va-tuong-lai/lessons/24-bai-24-case-studies-us-core-ips-va-trien-khai-thuc-te.md +247 -0
  586. package/content/series/architecture/hl7-fhir-chuan-du-lieu-y-te-tu-co-ban-den-nang-cao/chapters/07-phan-7-production-quy-mo-va-tuong-lai/lessons/25-bai-25-tuong-lai-fhir-r6-ai-ml-genomics-va-xu-huong-moi.md +404 -0
  587. package/content/series/architecture/hl7-fhir-chuan-du-lieu-y-te-tu-co-ban-den-nang-cao/index.md +427 -0
  588. package/content/series/architecture/kien-truc-data-platform-analytics/chapters/01-phan-1-data-platform-foundations/lessons/01-bai-1-tong-quan-data-platform-evolution-architecture-patterns.md +155 -0
  589. package/content/series/architecture/kien-truc-data-platform-analytics/chapters/01-phan-1-data-platform-foundations/lessons/02-bai-2-data-lakehouse-architecture-iceberg-delta-lake-hudi.md +155 -0
  590. package/content/series/architecture/kien-truc-data-platform-analytics/chapters/01-phan-1-data-platform-foundations/lessons/03-bai-3-data-mesh-domain-oriented-data-architecture.md +155 -0
  591. package/content/series/architecture/kien-truc-data-platform-analytics/chapters/02-phan-2-data-ingestion-pipeline/lessons/04-bai-4-batch-processing-etl-elt-voi-airflow-dbt.md +155 -0
  592. package/content/series/architecture/kien-truc-data-platform-analytics/chapters/02-phan-2-data-ingestion-pipeline/lessons/05-bai-5-stream-processing-kafka-flink-real-time-pipeline.md +155 -0
  593. package/content/series/architecture/kien-truc-data-platform-analytics/chapters/02-phan-2-data-ingestion-pipeline/lessons/06-bai-6-change-data-capture-cdc-debezium-event-sourcing.md +155 -0
  594. package/content/series/architecture/kien-truc-data-platform-analytics/chapters/02-phan-2-data-ingestion-pipeline/lessons/07-bai-7-data-integration-api-ingestion.md +155 -0
  595. package/content/series/architecture/kien-truc-data-platform-analytics/chapters/03-phan-3-data-storage-modeling/lessons/08-bai-8-data-modeling-dimensional-modeling-activity-schema.md +155 -0
  596. package/content/series/architecture/kien-truc-data-platform-analytics/chapters/03-phan-3-data-storage-modeling/lessons/09-bai-9-storage-layer-object-storage-columnar-formats-partitioning.md +155 -0
  597. package/content/series/architecture/kien-truc-data-platform-analytics/chapters/03-phan-3-data-storage-modeling/lessons/10-bai-10-query-engines-trino-duckdb-materialized-views.md +155 -0
  598. package/content/series/architecture/kien-truc-data-platform-analytics/chapters/04-phan-4-data-quality-governance/lessons/11-bai-11-data-quality-framework-testing-monitoring-alerting.md +155 -0
  599. package/content/series/architecture/kien-truc-data-platform-analytics/chapters/04-phan-4-data-quality-governance/lessons/12-bai-12-data-catalog-discovery-metadata-management.md +155 -0
  600. package/content/series/architecture/kien-truc-data-platform-analytics/chapters/04-phan-4-data-quality-governance/lessons/13-bai-13-data-governance-access-control.md +155 -0
  601. package/content/series/architecture/kien-truc-data-platform-analytics/chapters/04-phan-4-data-quality-governance/lessons/14-bai-14-data-contracts-schema-evolution.md +155 -0
  602. package/content/series/architecture/kien-truc-data-platform-analytics/chapters/05-phan-5-analytics-semantic-layer/lessons/15-bai-15-semantic-layer-metrics-store-business-logic.md +155 -0
  603. package/content/series/architecture/kien-truc-data-platform-analytics/chapters/05-phan-5-analytics-semantic-layer/lessons/16-bai-16-bi-visualization-dashboard-architecture.md +155 -0
  604. package/content/series/architecture/kien-truc-data-platform-analytics/chapters/05-phan-5-analytics-semantic-layer/lessons/17-bai-17-real-time-analytics-clickhouse-streaming-dashboards.md +155 -0
  605. package/content/series/architecture/kien-truc-data-platform-analytics/chapters/06-phan-6-ml-data-platform/lessons/18-bai-18-feature-store-feature-engineering-at-scale.md +155 -0
  606. package/content/series/architecture/kien-truc-data-platform-analytics/chapters/06-phan-6-ml-data-platform/lessons/19-bai-19-ml-pipeline-integration-training-serving-data.md +155 -0
  607. package/content/series/architecture/kien-truc-data-platform-analytics/chapters/06-phan-6-ml-data-platform/lessons/20-bai-20-reverse-etl-operational-analytics.md +155 -0
  608. package/content/series/architecture/kien-truc-data-platform-analytics/chapters/07-phan-7-production-case-studies/lessons/21-bai-21-infrastructure-cost-optimization.md +155 -0
  609. package/content/series/architecture/kien-truc-data-platform-analytics/chapters/07-phan-7-production-case-studies/lessons/22-bai-22-data-platform-security-privacy.md +155 -0
  610. package/content/series/architecture/kien-truc-data-platform-analytics/chapters/07-phan-7-production-case-studies/lessons/23-bai-23-dataops-platform-engineering.md +155 -0
  611. package/content/series/architecture/kien-truc-data-platform-analytics/chapters/07-phan-7-production-case-studies/lessons/24-bai-24-observability-cho-data-platform.md +155 -0
  612. package/content/series/architecture/kien-truc-data-platform-analytics/chapters/07-phan-7-production-case-studies/lessons/25-bai-25-case-studies-uber-netflix-airbnb-spotify.md +155 -0
  613. package/content/series/architecture/kien-truc-data-platform-analytics/index.md +318 -0
  614. package/content/series/architecture/kien-truc-edtech-lms-platform/chapters/01-phan-1-edtech-foundations/lessons/01-bai-1-tong-quan-edtech-domain-analysis-business-models.md +155 -0
  615. package/content/series/architecture/kien-truc-edtech-lms-platform/chapters/01-phan-1-edtech-foundations/lessons/02-bai-2-lms-platform-architecture-microservices-ddd.md +155 -0
  616. package/content/series/architecture/kien-truc-edtech-lms-platform/chapters/01-phan-1-edtech-foundations/lessons/03-bai-3-learning-standards-scorm-xapi-lti.md +155 -0
  617. package/content/series/architecture/kien-truc-edtech-lms-platform/chapters/02-phan-2-course-content-management/lessons/04-bai-4-course-management-system-curriculum-enrollment.md +155 -0
  618. package/content/series/architecture/kien-truc-edtech-lms-platform/chapters/02-phan-2-course-content-management/lessons/05-bai-5-content-authoring-rich-media.md +155 -0
  619. package/content/series/architecture/kien-truc-edtech-lms-platform/chapters/02-phan-2-course-content-management/lessons/06-bai-6-video-delivery-hls-dash-adaptive-streaming.md +155 -0
  620. package/content/series/architecture/kien-truc-edtech-lms-platform/chapters/02-phan-2-course-content-management/lessons/07-bai-7-live-class-webinar-architecture.md +155 -0
  621. package/content/series/architecture/kien-truc-edtech-lms-platform/chapters/03-phan-3-assessment-gamification/lessons/08-bai-8-assessment-engine-question-bank-quiz-system.md +155 -0
  622. package/content/series/architecture/kien-truc-edtech-lms-platform/chapters/03-phan-3-assessment-gamification/lessons/09-bai-9-coding-assessment-auto-grading.md +155 -0
  623. package/content/series/architecture/kien-truc-edtech-lms-platform/chapters/03-phan-3-assessment-gamification/lessons/10-bai-10-gamification-engine-points-badges-leaderboards.md +155 -0
  624. package/content/series/architecture/kien-truc-edtech-lms-platform/chapters/03-phan-3-assessment-gamification/lessons/11-bai-11-certificate-engine-credential-verification.md +155 -0
  625. package/content/series/architecture/kien-truc-edtech-lms-platform/chapters/04-phan-4-personalization-ai/lessons/12-bai-12-adaptive-learning-personalized-learning-paths.md +155 -0
  626. package/content/series/architecture/kien-truc-edtech-lms-platform/chapters/04-phan-4-personalization-ai/lessons/13-bai-13-ai-tutor-learning-assistant.md +155 -0
  627. package/content/series/architecture/kien-truc-edtech-lms-platform/chapters/04-phan-4-personalization-ai/lessons/14-bai-14-recommendation-engine-what-to-learn-next.md +155 -0
  628. package/content/series/architecture/kien-truc-edtech-lms-platform/chapters/05-phan-5-collaboration-community/lessons/15-bai-15-real-time-collaboration-shared-workspace.md +155 -0
  629. package/content/series/architecture/kien-truc-edtech-lms-platform/chapters/05-phan-5-collaboration-community/lessons/16-bai-16-discussion-forum-social-learning.md +155 -0
  630. package/content/series/architecture/kien-truc-edtech-lms-platform/chapters/05-phan-5-collaboration-community/lessons/17-bai-17-notification-engagement-engine.md +155 -0
  631. package/content/series/architecture/kien-truc-edtech-lms-platform/chapters/06-phan-6-analytics-business/lessons/18-bai-18-learning-analytics-tracking-insights.md +155 -0
  632. package/content/series/architecture/kien-truc-edtech-lms-platform/chapters/06-phan-6-analytics-business/lessons/19-bai-19-marketplace-instructor-platform.md +155 -0
  633. package/content/series/architecture/kien-truc-edtech-lms-platform/chapters/06-phan-6-analytics-business/lessons/20-bai-20-payment-subscription-cho-edtech.md +155 -0
  634. package/content/series/architecture/kien-truc-edtech-lms-platform/chapters/07-phan-7-production-case-studies/lessons/21-bai-21-mobile-first-architecture-offline-learning.md +155 -0
  635. package/content/series/architecture/kien-truc-edtech-lms-platform/chapters/07-phan-7-production-case-studies/lessons/22-bai-22-scalability-performance-cho-edtech.md +155 -0
  636. package/content/series/architecture/kien-truc-edtech-lms-platform/chapters/07-phan-7-production-case-studies/lessons/23-bai-23-security-privacy-cho-edtech.md +155 -0
  637. package/content/series/architecture/kien-truc-edtech-lms-platform/chapters/07-phan-7-production-case-studies/lessons/24-bai-24-accessibility-internationalization.md +155 -0
  638. package/content/series/architecture/kien-truc-edtech-lms-platform/chapters/07-phan-7-production-case-studies/lessons/25-bai-25-case-studies-coursera-udemy-duolingo-khan-academy.md +155 -0
  639. package/content/series/architecture/kien-truc-edtech-lms-platform/index.md +314 -0
  640. package/content/series/architecture/kien-truc-enterprise-ai-chatbot-platform/chapters/01-phan-1-foundation-platform-overview/lessons/01-bai-1-tong-quan-enterprise-ai-chatbot.md +234 -0
  641. package/content/series/architecture/kien-truc-enterprise-ai-chatbot-platform/chapters/01-phan-1-foundation-platform-overview/lessons/02-bai-2-platform-architecture-overview.md +396 -0
  642. package/content/series/architecture/kien-truc-enterprise-ai-chatbot-platform/chapters/01-phan-1-foundation-platform-overview/lessons/03-bai-3-multi-model-gateway.md +663 -0
  643. package/content/series/architecture/kien-truc-enterprise-ai-chatbot-platform/chapters/02-phan-2-core-chatbot-engine/lessons/01-bai-4-conversation-management.md +486 -0
  644. package/content/series/architecture/kien-truc-enterprise-ai-chatbot-platform/chapters/02-phan-2-core-chatbot-engine/lessons/02-bai-5-rag-pipeline.md +450 -0
  645. package/content/series/architecture/kien-truc-enterprise-ai-chatbot-platform/chapters/02-phan-2-core-chatbot-engine/lessons/03-bai-6-prompt-engineering-engine.md +396 -0
  646. package/content/series/architecture/kien-truc-enterprise-ai-chatbot-platform/chapters/02-phan-2-core-chatbot-engine/lessons/04-bai-7-streaming-realtime.md +557 -0
  647. package/content/series/architecture/kien-truc-enterprise-ai-chatbot-platform/chapters/03-phan-3-agentic-architecture/lessons/01-bai-8-function-calling-tool-use.md +409 -0
  648. package/content/series/architecture/kien-truc-enterprise-ai-chatbot-platform/chapters/03-phan-3-agentic-architecture/lessons/02-bai-9-multi-agent-orchestration.md +423 -0
  649. package/content/series/architecture/kien-truc-enterprise-ai-chatbot-platform/chapters/03-phan-3-agentic-architecture/lessons/03-bai-10-planning-reflection.md +463 -0
  650. package/content/series/architecture/kien-truc-enterprise-ai-chatbot-platform/chapters/03-phan-3-agentic-architecture/lessons/04-bai-11-structured-data-querying.md +382 -0
  651. package/content/series/architecture/kien-truc-enterprise-ai-chatbot-platform/chapters/04-phan-4-enterprise-features-safety/lessons/01-bai-12-guardrails-ai-safety.md +396 -0
  652. package/content/series/architecture/kien-truc-enterprise-ai-chatbot-platform/chapters/04-phan-4-enterprise-features-safety/lessons/02-bai-13-knowledge-base-management.md +376 -0
  653. package/content/series/architecture/kien-truc-enterprise-ai-chatbot-platform/chapters/04-phan-4-enterprise-features-safety/lessons/03-bai-14-multi-tenant-architecture.md +345 -0
  654. package/content/series/architecture/kien-truc-enterprise-ai-chatbot-platform/chapters/04-phan-4-enterprise-features-safety/lessons/04-bai-15-analytics-observability.md +350 -0
  655. package/content/series/architecture/kien-truc-enterprise-ai-chatbot-platform/chapters/05-phan-5-multi-channel-scale/lessons/01-bai-16-multi-channel-integration.md +381 -0
  656. package/content/series/architecture/kien-truc-enterprise-ai-chatbot-platform/chapters/05-phan-5-multi-channel-scale/lessons/02-bai-17-human-handoff-hybrid-support.md +384 -0
  657. package/content/series/architecture/kien-truc-enterprise-ai-chatbot-platform/chapters/05-phan-5-multi-channel-scale/lessons/03-bai-18-chatbot-evaluation-testing.md +355 -0
  658. package/content/series/architecture/kien-truc-enterprise-ai-chatbot-platform/chapters/05-phan-5-multi-channel-scale/lessons/04-bai-19-personalization-long-term-memory.md +405 -0
  659. package/content/series/architecture/kien-truc-enterprise-ai-chatbot-platform/chapters/06-phan-6-advanced-ai-capabilities/lessons/01-bai-20-domain-specific-ai.md +330 -0
  660. package/content/series/architecture/kien-truc-enterprise-ai-chatbot-platform/chapters/06-phan-6-advanced-ai-capabilities/lessons/02-bai-21-multimodal-ai.md +364 -0
  661. package/content/series/architecture/kien-truc-enterprise-ai-chatbot-platform/chapters/06-phan-6-advanced-ai-capabilities/lessons/03-bai-22-workflow-automation.md +526 -0
  662. package/content/series/architecture/kien-truc-enterprise-ai-chatbot-platform/chapters/07-phan-7-infrastructure-security-production/lessons/01-bai-23-gpu-infrastructure.md +473 -0
  663. package/content/series/architecture/kien-truc-enterprise-ai-chatbot-platform/chapters/07-phan-7-infrastructure-security-production/lessons/02-bai-24-security-compliance.md +510 -0
  664. package/content/series/architecture/kien-truc-enterprise-ai-chatbot-platform/chapters/07-phan-7-infrastructure-security-production/lessons/03-bai-25-case-studies.md +721 -0
  665. package/content/series/architecture/kien-truc-enterprise-ai-chatbot-platform/index.md +407 -0
  666. package/content/series/architecture/kien-truc-event-driven-microservices-chuyen-sau/chapters/01-phan-1-event-driven-foundations/lessons/01-bai-1-tong-quan-event-driven-architecture-why-events-matter.md +155 -0
  667. package/content/series/architecture/kien-truc-event-driven-microservices-chuyen-sau/chapters/01-phan-1-event-driven-foundations/lessons/02-bai-2-domain-events-event-modeling.md +155 -0
  668. package/content/series/architecture/kien-truc-event-driven-microservices-chuyen-sau/chapters/01-phan-1-event-driven-foundations/lessons/03-bai-3-messaging-patterns-pub-sub-queue-stream.md +155 -0
  669. package/content/series/architecture/kien-truc-event-driven-microservices-chuyen-sau/chapters/02-phan-2-kafka-deep-dive/lessons/04-bai-4-kafka-architecture-brokers-partitions-replication.md +155 -0
  670. package/content/series/architecture/kien-truc-event-driven-microservices-chuyen-sau/chapters/02-phan-2-kafka-deep-dive/lessons/05-bai-5-kafka-producers-consumers-advanced-patterns.md +155 -0
  671. package/content/series/architecture/kien-truc-event-driven-microservices-chuyen-sau/chapters/02-phan-2-kafka-deep-dive/lessons/06-bai-6-kafka-streams-ksqldb.md +155 -0
  672. package/content/series/architecture/kien-truc-event-driven-microservices-chuyen-sau/chapters/02-phan-2-kafka-deep-dive/lessons/07-bai-7-schema-registry-data-serialization.md +155 -0
  673. package/content/series/architecture/kien-truc-event-driven-microservices-chuyen-sau/chapters/03-phan-3-event-sourcing-cqrs/lessons/08-bai-8-event-sourcing-immutable-event-log-source-of-truth.md +155 -0
  674. package/content/series/architecture/kien-truc-event-driven-microservices-chuyen-sau/chapters/03-phan-3-event-sourcing-cqrs/lessons/09-bai-9-cqrs-command-query-responsibility-segregation.md +155 -0
  675. package/content/series/architecture/kien-truc-event-driven-microservices-chuyen-sau/chapters/03-phan-3-event-sourcing-cqrs/lessons/10-bai-10-event-store-implementation-postgresql-eventstoredb.md +155 -0
  676. package/content/series/architecture/kien-truc-event-driven-microservices-chuyen-sau/chapters/03-phan-3-event-sourcing-cqrs/lessons/11-bai-11-projections-read-model-patterns.md +155 -0
  677. package/content/series/architecture/kien-truc-event-driven-microservices-chuyen-sau/chapters/04-phan-4-distributed-patterns/lessons/12-bai-12-saga-pattern-managing-distributed-transactions.md +155 -0
  678. package/content/series/architecture/kien-truc-event-driven-microservices-chuyen-sau/chapters/04-phan-4-distributed-patterns/lessons/13-bai-13-outbox-pattern-reliable-event-publishing.md +155 -0
  679. package/content/series/architecture/kien-truc-event-driven-microservices-chuyen-sau/chapters/04-phan-4-distributed-patterns/lessons/14-bai-14-dead-letter-queue-error-handling.md +155 -0
  680. package/content/series/architecture/kien-truc-event-driven-microservices-chuyen-sau/chapters/04-phan-4-distributed-patterns/lessons/15-bai-15-idempotency-exactly-once-processing.md +155 -0
  681. package/content/series/architecture/kien-truc-event-driven-microservices-chuyen-sau/chapters/05-phan-5-advanced-patterns/lessons/16-bai-16-event-driven-microservices-communication-patterns.md +155 -0
  682. package/content/series/architecture/kien-truc-event-driven-microservices-chuyen-sau/chapters/05-phan-5-advanced-patterns/lessons/17-bai-17-event-driven-data-consistency-conflict-resolution.md +155 -0
  683. package/content/series/architecture/kien-truc-event-driven-microservices-chuyen-sau/chapters/05-phan-5-advanced-patterns/lessons/18-bai-18-event-versioning-schema-evolution.md +155 -0
  684. package/content/series/architecture/kien-truc-event-driven-microservices-chuyen-sau/chapters/05-phan-5-advanced-patterns/lessons/19-bai-19-process-manager-workflow-engine.md +155 -0
  685. package/content/series/architecture/kien-truc-event-driven-microservices-chuyen-sau/chapters/06-phan-6-operations-production/lessons/20-bai-20-kafka-operations-monitoring-tuning-troubleshooting.md +155 -0
  686. package/content/series/architecture/kien-truc-event-driven-microservices-chuyen-sau/chapters/06-phan-6-operations-production/lessons/21-bai-21-testing-event-driven-systems.md +155 -0
  687. package/content/series/architecture/kien-truc-event-driven-microservices-chuyen-sau/chapters/06-phan-6-operations-production/lessons/22-bai-22-observability-cho-event-driven-systems.md +155 -0
  688. package/content/series/architecture/kien-truc-event-driven-microservices-chuyen-sau/chapters/07-phan-7-case-studies/lessons/23-bai-23-migration-to-event-driven-strangler-fig-pattern.md +155 -0
  689. package/content/series/architecture/kien-truc-event-driven-microservices-chuyen-sau/chapters/07-phan-7-case-studies/lessons/24-bai-24-apache-pulsar-alternatives.md +155 -0
  690. package/content/series/architecture/kien-truc-event-driven-microservices-chuyen-sau/chapters/07-phan-7-case-studies/lessons/25-bai-25-case-studies-uber-wix-booking-com-linkedin.md +155 -0
  691. package/content/series/architecture/kien-truc-event-driven-microservices-chuyen-sau/index.md +316 -0
  692. package/content/series/architecture/kien-truc-fintech-payment-platform/chapters/01-phan-1-nen-tang-fintech-payment/lessons/01-bai-1-tong-quan-fintech-domain-analysis-business-models.md +331 -0
  693. package/content/series/architecture/kien-truc-fintech-payment-platform/chapters/01-phan-1-nen-tang-fintech-payment/lessons/02-bai-2-platform-architecture-overview-microservices-ddd-cho-fintech.md +399 -0
  694. package/content/series/architecture/kien-truc-fintech-payment-platform/chapters/01-phan-1-nen-tang-fintech-payment/lessons/03-bai-3-regulatory-compliance-pci-dss-psd2-quy-dinh-nhnn.md +319 -0
  695. package/content/series/architecture/kien-truc-fintech-payment-platform/chapters/02-phan-2-core-payment-engine/lessons/04-bai-4-payment-gateway-architecture-luong-thanh-toan-end-to-end.md +408 -0
  696. package/content/series/architecture/kien-truc-fintech-payment-platform/chapters/02-phan-2-core-payment-engine/lessons/05-bai-5-payment-processing-authorization-capture-settlement.md +349 -0
  697. package/content/series/architecture/kien-truc-fintech-payment-platform/chapters/02-phan-2-core-payment-engine/lessons/06-bai-6-multi-psp-integration-vnpay-momo-zalopay-stripe.md +267 -0
  698. package/content/series/architecture/kien-truc-fintech-payment-platform/chapters/02-phan-2-core-payment-engine/lessons/07-bai-7-reconciliation-settlement-engine.md +257 -0
  699. package/content/series/architecture/kien-truc-fintech-payment-platform/chapters/03-phan-3-digital-wallet-ledger-system/lessons/08-bai-8-digital-wallet-architecture-e-wallet-balance-management.md +277 -0
  700. package/content/series/architecture/kien-truc-fintech-payment-platform/chapters/03-phan-3-digital-wallet-ledger-system/lessons/09-bai-9-double-entry-ledger-system-accounting-engine.md +155 -0
  701. package/content/series/architecture/kien-truc-fintech-payment-platform/chapters/03-phan-3-digital-wallet-ledger-system/lessons/10-bai-10-transaction-processing-acid-idempotency-saga-pattern.md +155 -0
  702. package/content/series/architecture/kien-truc-fintech-payment-platform/chapters/03-phan-3-digital-wallet-ledger-system/lessons/11-bai-11-currency-exchange-rate-engine-multi-currency.md +155 -0
  703. package/content/series/architecture/kien-truc-fintech-payment-platform/chapters/04-phan-4-risk-management-fraud-detection/lessons/12-bai-12-fraud-detection-system-rule-engine-ml-models.md +155 -0
  704. package/content/series/architecture/kien-truc-fintech-payment-platform/chapters/04-phan-4-risk-management-fraud-detection/lessons/13-bai-13-anti-money-laundering-aml-kyc-pipeline.md +155 -0
  705. package/content/series/architecture/kien-truc-fintech-payment-platform/chapters/04-phan-4-risk-management-fraud-detection/lessons/14-bai-14-risk-scoring-real-time-transaction-monitoring.md +155 -0
  706. package/content/series/architecture/kien-truc-fintech-payment-platform/chapters/05-phan-5-banking-lending-platform/lessons/15-bai-15-core-banking-architecture-account-management.md +155 -0
  707. package/content/series/architecture/kien-truc-fintech-payment-platform/chapters/05-phan-5-banking-lending-platform/lessons/16-bai-16-lending-platform-loan-origination-underwriting.md +155 -0
  708. package/content/series/architecture/kien-truc-fintech-payment-platform/chapters/05-phan-5-banking-lending-platform/lessons/17-bai-17-credit-scoring-engine-data-pipeline-ml.md +155 -0
  709. package/content/series/architecture/kien-truc-fintech-payment-platform/chapters/05-phan-5-banking-lending-platform/lessons/18-bai-18-interest-calculation-amortization-engine.md +155 -0
  710. package/content/series/architecture/kien-truc-fintech-payment-platform/chapters/06-phan-6-data-platform-analytics/lessons/19-bai-19-financial-data-pipeline-event-streaming-cdc.md +155 -0
  711. package/content/series/architecture/kien-truc-fintech-payment-platform/chapters/06-phan-6-data-platform-analytics/lessons/20-bai-20-reporting-business-intelligence-regulatory-reports.md +155 -0
  712. package/content/series/architecture/kien-truc-fintech-payment-platform/chapters/06-phan-6-data-platform-analytics/lessons/21-bai-21-real-time-analytics-dashboard.md +155 -0
  713. package/content/series/architecture/kien-truc-fintech-payment-platform/chapters/07-phan-7-infrastructure-security-production/lessons/22-bai-22-security-architecture-encryption-hsm-tokenization.md +155 -0
  714. package/content/series/architecture/kien-truc-fintech-payment-platform/chapters/07-phan-7-infrastructure-security-production/lessons/23-bai-23-infrastructure-high-availability-multi-region-dr.md +155 -0
  715. package/content/series/architecture/kien-truc-fintech-payment-platform/chapters/07-phan-7-infrastructure-security-production/lessons/24-bai-24-performance-scalability-handling-peak-transactions.md +155 -0
  716. package/content/series/architecture/kien-truc-fintech-payment-platform/chapters/07-phan-7-infrastructure-security-production/lessons/25-bai-25-case-studies-vnpay-momo-grabpay-stripe.md +155 -0
  717. package/content/series/architecture/kien-truc-fintech-payment-platform/index.md +402 -0
  718. package/content/series/architecture/kien-truc-he-thong-fashion-design-print-on-demand/chapters/01-phan-1-tong-quan-domain-fashion-pod/lessons/01-bai-1-tong-quan-fashion-design-print-on-demand.md +169 -0
  719. package/content/series/architecture/kien-truc-he-thong-fashion-design-print-on-demand/chapters/01-phan-1-tong-quan-domain-fashion-pod/lessons/02-bai-2-product-lifecycle-design-workflow.md +265 -0
  720. package/content/series/architecture/kien-truc-he-thong-fashion-design-print-on-demand/chapters/01-phan-1-tong-quan-domain-fashion-pod/lessons/03-bai-3-system-architecture-overview.md +298 -0
  721. package/content/series/architecture/kien-truc-he-thong-fashion-design-print-on-demand/chapters/02-phan-2-ai-powered-design-studio/lessons/01-bai-4-design-studio-canvas-editor.md +374 -0
  722. package/content/series/architecture/kien-truc-he-thong-fashion-design-print-on-demand/chapters/02-phan-2-ai-powered-design-studio/lessons/02-bai-5-ai-design-generation.md +435 -0
  723. package/content/series/architecture/kien-truc-he-thong-fashion-design-print-on-demand/chapters/02-phan-2-ai-powered-design-studio/lessons/03-bai-6-ai-pattern-textile-design.md +350 -0
  724. package/content/series/architecture/kien-truc-he-thong-fashion-design-print-on-demand/chapters/02-phan-2-ai-powered-design-studio/lessons/04-bai-7-mockup-engine-3d-visualization.md +407 -0
  725. package/content/series/architecture/kien-truc-he-thong-fashion-design-print-on-demand/chapters/03-phan-3-product-ecommerce-platform/lessons/01-bai-8-product-catalog-sku-architecture.md +349 -0
  726. package/content/series/architecture/kien-truc-he-thong-fashion-design-print-on-demand/chapters/03-phan-3-product-ecommerce-platform/lessons/02-bai-9-multi-channel-sales-integration.md +329 -0
  727. package/content/series/architecture/kien-truc-he-thong-fashion-design-print-on-demand/chapters/03-phan-3-product-ecommerce-platform/lessons/03-bai-10-pricing-engine-revenue-model.md +349 -0
  728. package/content/series/architecture/kien-truc-he-thong-fashion-design-print-on-demand/chapters/03-phan-3-product-ecommerce-platform/lessons/04-bai-11-cart-checkout-payment.md +373 -0
  729. package/content/series/architecture/kien-truc-he-thong-fashion-design-print-on-demand/chapters/04-phan-4-order-processing-fulfillment/lessons/01-bai-12-order-management-system.md +372 -0
  730. package/content/series/architecture/kien-truc-he-thong-fashion-design-print-on-demand/chapters/04-phan-4-order-processing-fulfillment/lessons/02-bai-13-print-production-pipeline.md +329 -0
  731. package/content/series/architecture/kien-truc-he-thong-fashion-design-print-on-demand/chapters/04-phan-4-order-processing-fulfillment/lessons/03-bai-14-supplier-network-routing-engine.md +355 -0
  732. package/content/series/architecture/kien-truc-he-thong-fashion-design-print-on-demand/chapters/04-phan-4-order-processing-fulfillment/lessons/04-bai-15-shipping-logistics.md +355 -0
  733. package/content/series/architecture/kien-truc-he-thong-fashion-design-print-on-demand/chapters/05-phan-5-ai-intelligence-personalization/lessons/01-bai-16-ai-recommendation-personalization.md +294 -0
  734. package/content/series/architecture/kien-truc-he-thong-fashion-design-print-on-demand/chapters/05-phan-5-ai-intelligence-personalization/lessons/02-bai-17-ai-quality-control.md +344 -0
  735. package/content/series/architecture/kien-truc-he-thong-fashion-design-print-on-demand/chapters/05-phan-5-ai-intelligence-personalization/lessons/03-bai-18-ai-trend-forecasting-demand-prediction.md +353 -0
  736. package/content/series/architecture/kien-truc-he-thong-fashion-design-print-on-demand/chapters/06-phan-6-data-platform-analytics/lessons/01-bai-19-data-architecture-event-streaming.md +358 -0
  737. package/content/series/architecture/kien-truc-he-thong-fashion-design-print-on-demand/chapters/06-phan-6-data-platform-analytics/lessons/02-bai-20-analytics-dashboard.md +134 -0
  738. package/content/series/architecture/kien-truc-he-thong-fashion-design-print-on-demand/chapters/06-phan-6-data-platform-analytics/lessons/03-bai-21-ml-pipeline-feature-store.md +160 -0
  739. package/content/series/architecture/kien-truc-he-thong-fashion-design-print-on-demand/chapters/07-phan-7-operations-security-scale/lessons/01-bai-22-infrastructure-devops-kubernetes.md +96 -0
  740. package/content/series/architecture/kien-truc-he-thong-fashion-design-print-on-demand/chapters/07-phan-7-operations-security-scale/lessons/02-bai-23-performance-scaling.md +127 -0
  741. package/content/series/architecture/kien-truc-he-thong-fashion-design-print-on-demand/chapters/07-phan-7-operations-security-scale/lessons/03-bai-24-security-ip-protection-compliance.md +135 -0
  742. package/content/series/architecture/kien-truc-he-thong-fashion-design-print-on-demand/chapters/07-phan-7-operations-security-scale/lessons/04-bai-25-case-studies-industry-analysis.md +130 -0
  743. package/content/series/architecture/kien-truc-he-thong-fashion-design-print-on-demand/index.md +402 -0
  744. package/content/series/architecture/kien-truc-multi-tenant-saas-platform/chapters/01-phan-1-saas-foundations/lessons/01-bai-1-tong-quan-saas-business-models-metrics-architecture.md +155 -0
  745. package/content/series/architecture/kien-truc-multi-tenant-saas-platform/chapters/01-phan-1-saas-foundations/lessons/02-bai-2-multi-tenancy-deep-dive-isolation-strategies-trade-offs.md +155 -0
  746. package/content/series/architecture/kien-truc-multi-tenant-saas-platform/chapters/01-phan-1-saas-foundations/lessons/03-bai-3-platform-architecture-overview-ddd-microservices-cho-saas.md +155 -0
  747. package/content/series/architecture/kien-truc-multi-tenant-saas-platform/chapters/02-phan-2-tenant-management-identity/lessons/04-bai-4-tenant-lifecycle-management-provisioning-configuration.md +155 -0
  748. package/content/series/architecture/kien-truc-multi-tenant-saas-platform/chapters/02-phan-2-tenant-management-identity/lessons/05-bai-5-identity-access-management-multi-tenant-auth-sso.md +155 -0
  749. package/content/series/architecture/kien-truc-multi-tenant-saas-platform/chapters/02-phan-2-tenant-management-identity/lessons/06-bai-6-onboarding-engine-self-service-signup-guided-setup.md +155 -0
  750. package/content/series/architecture/kien-truc-multi-tenant-saas-platform/chapters/02-phan-2-tenant-management-identity/lessons/07-bai-7-data-isolation-multi-tenant-database-patterns.md +155 -0
  751. package/content/series/architecture/kien-truc-multi-tenant-saas-platform/chapters/03-phan-3-billing-subscription-engine/lessons/08-bai-8-subscription-engine-plans-pricing-lifecycle.md +155 -0
  752. package/content/series/architecture/kien-truc-multi-tenant-saas-platform/chapters/03-phan-3-billing-subscription-engine/lessons/09-bai-9-usage-metering-billing-engine.md +155 -0
  753. package/content/series/architecture/kien-truc-multi-tenant-saas-platform/chapters/03-phan-3-billing-subscription-engine/lessons/10-bai-10-entitlement-system-feature-gating.md +155 -0
  754. package/content/series/architecture/kien-truc-multi-tenant-saas-platform/chapters/04-phan-4-core-platform-features/lessons/11-bai-11-feature-flags-configuration-management.md +155 -0
  755. package/content/series/architecture/kien-truc-multi-tenant-saas-platform/chapters/04-phan-4-core-platform-features/lessons/12-bai-12-plugin-extension-architecture-marketplace.md +155 -0
  756. package/content/series/architecture/kien-truc-multi-tenant-saas-platform/chapters/04-phan-4-core-platform-features/lessons/13-bai-13-white-labeling-custom-branding.md +155 -0
  757. package/content/series/architecture/kien-truc-multi-tenant-saas-platform/chapters/04-phan-4-core-platform-features/lessons/14-bai-14-notification-communication-engine.md +155 -0
  758. package/content/series/architecture/kien-truc-multi-tenant-saas-platform/chapters/05-phan-5-data-api-platform/lessons/15-bai-15-api-design-developer-experience.md +155 -0
  759. package/content/series/architecture/kien-truc-multi-tenant-saas-platform/chapters/05-phan-5-data-api-platform/lessons/16-bai-16-data-import-export-migration-tools.md +155 -0
  760. package/content/series/architecture/kien-truc-multi-tenant-saas-platform/chapters/05-phan-5-data-api-platform/lessons/17-bai-17-search-analytics-per-tenant.md +155 -0
  761. package/content/series/architecture/kien-truc-multi-tenant-saas-platform/chapters/05-phan-5-data-api-platform/lessons/18-bai-18-audit-logging-compliance.md +155 -0
  762. package/content/series/architecture/kien-truc-multi-tenant-saas-platform/chapters/06-phan-6-scaling-operations/lessons/19-bai-19-noisy-neighbor-resource-isolation.md +155 -0
  763. package/content/series/architecture/kien-truc-multi-tenant-saas-platform/chapters/06-phan-6-scaling-operations/lessons/20-bai-20-multi-region-deployment-data-residency.md +155 -0
  764. package/content/series/architecture/kien-truc-multi-tenant-saas-platform/chapters/06-phan-6-scaling-operations/lessons/21-bai-21-tenant-aware-cicd-infrastructure-automation.md +155 -0
  765. package/content/series/architecture/kien-truc-multi-tenant-saas-platform/chapters/07-phan-7-production-case-studies/lessons/22-bai-22-observability-sre-cho-multi-tenant.md +155 -0
  766. package/content/series/architecture/kien-truc-multi-tenant-saas-platform/chapters/07-phan-7-production-case-studies/lessons/23-bai-23-security-architecture-cho-saas.md +155 -0
  767. package/content/series/architecture/kien-truc-multi-tenant-saas-platform/chapters/07-phan-7-production-case-studies/lessons/24-bai-24-admin-portal-self-service-operations.md +155 -0
  768. package/content/series/architecture/kien-truc-multi-tenant-saas-platform/chapters/07-phan-7-production-case-studies/lessons/25-bai-25-case-studies-slack-notion-atlassian-linear.md +155 -0
  769. package/content/series/architecture/kien-truc-multi-tenant-saas-platform/index.md +314 -0
  770. package/content/series/architecture/kien-truc-platform-engineering-internal-developer-portal/chapters/01-phan-1-platform-engineering-foundations/lessons/01-bai-1-tong-quan-platform-engineering-why-what-how.md +155 -0
  771. package/content/series/architecture/kien-truc-platform-engineering-internal-developer-portal/chapters/01-phan-1-platform-engineering-foundations/lessons/02-bai-2-developer-experience-dx-measuring-improving.md +155 -0
  772. package/content/series/architecture/kien-truc-platform-engineering-internal-developer-portal/chapters/01-phan-1-platform-engineering-foundations/lessons/03-bai-3-platform-architecture-overview-layers-components.md +155 -0
  773. package/content/series/architecture/kien-truc-platform-engineering-internal-developer-portal/chapters/02-phan-2-developer-portal/lessons/04-bai-4-backstage-internal-developer-portal.md +155 -0
  774. package/content/series/architecture/kien-truc-platform-engineering-internal-developer-portal/chapters/02-phan-2-developer-portal/lessons/05-bai-5-service-catalog-software-templates.md +155 -0
  775. package/content/series/architecture/kien-truc-platform-engineering-internal-developer-portal/chapters/02-phan-2-developer-portal/lessons/06-bai-6-api-portal-documentation.md +155 -0
  776. package/content/series/architecture/kien-truc-platform-engineering-internal-developer-portal/chapters/02-phan-2-developer-portal/lessons/07-bai-7-golden-paths-paved-roads.md +155 -0
  777. package/content/series/architecture/kien-truc-platform-engineering-internal-developer-portal/chapters/03-phan-3-self-service-infrastructure/lessons/08-bai-8-self-service-infrastructure-provisioning-management.md +155 -0
  778. package/content/series/architecture/kien-truc-platform-engineering-internal-developer-portal/chapters/03-phan-3-self-service-infrastructure/lessons/09-bai-9-infrastructure-as-code-terraform-crossplane-pulumi.md +155 -0
  779. package/content/series/architecture/kien-truc-platform-engineering-internal-developer-portal/chapters/03-phan-3-self-service-infrastructure/lessons/10-bai-10-environment-management-dev-staging-production.md +155 -0
  780. package/content/series/architecture/kien-truc-platform-engineering-internal-developer-portal/chapters/03-phan-3-self-service-infrastructure/lessons/11-bai-11-database-middleware-self-service.md +155 -0
  781. package/content/series/architecture/kien-truc-platform-engineering-internal-developer-portal/chapters/04-phan-4-cicd-platform/lessons/12-bai-12-cicd-platform-architecture-pipeline-as-code.md +155 -0
  782. package/content/series/architecture/kien-truc-platform-engineering-internal-developer-portal/chapters/04-phan-4-cicd-platform/lessons/13-bai-13-gitops-deployment-automation.md +155 -0
  783. package/content/series/architecture/kien-truc-platform-engineering-internal-developer-portal/chapters/04-phan-4-cicd-platform/lessons/14-bai-14-container-image-management.md +155 -0
  784. package/content/series/architecture/kien-truc-platform-engineering-internal-developer-portal/chapters/04-phan-4-cicd-platform/lessons/15-bai-15-testing-platform-shift-left-quality-gates.md +155 -0
  785. package/content/series/architecture/kien-truc-platform-engineering-internal-developer-portal/chapters/05-phan-5-security-compliance-platform/lessons/16-bai-16-security-platform-policy-as-code.md +155 -0
  786. package/content/series/architecture/kien-truc-platform-engineering-internal-developer-portal/chapters/05-phan-5-security-compliance-platform/lessons/17-bai-17-supply-chain-security-sbom-slsa.md +155 -0
  787. package/content/series/architecture/kien-truc-platform-engineering-internal-developer-portal/chapters/05-phan-5-security-compliance-platform/lessons/18-bai-18-cost-management-finops-platform.md +155 -0
  788. package/content/series/architecture/kien-truc-platform-engineering-internal-developer-portal/chapters/06-phan-6-observability-platform/lessons/19-bai-19-observability-platform-metrics-logs-traces.md +155 -0
  789. package/content/series/architecture/kien-truc-platform-engineering-internal-developer-portal/chapters/06-phan-6-observability-platform/lessons/20-bai-20-sre-platform-slo-error-budgets-incident-management.md +155 -0
  790. package/content/series/architecture/kien-truc-platform-engineering-internal-developer-portal/chapters/06-phan-6-observability-platform/lessons/21-bai-21-logging-audit-platform.md +155 -0
  791. package/content/series/architecture/kien-truc-platform-engineering-internal-developer-portal/chapters/07-phan-7-production-case-studies/lessons/22-bai-22-platform-team-organization-operating-model.md +155 -0
  792. package/content/series/architecture/kien-truc-platform-engineering-internal-developer-portal/chapters/07-phan-7-production-case-studies/lessons/23-bai-23-platform-migration-adoption.md +155 -0
  793. package/content/series/architecture/kien-truc-platform-engineering-internal-developer-portal/chapters/07-phan-7-production-case-studies/lessons/24-bai-24-measuring-platform-success-metrics-roi.md +155 -0
  794. package/content/series/architecture/kien-truc-platform-engineering-internal-developer-portal/chapters/07-phan-7-production-case-studies/lessons/25-bai-25-case-studies-spotify-netflix-airbnb-mercado-libre.md +155 -0
  795. package/content/series/architecture/kien-truc-platform-engineering-internal-developer-portal/index.md +316 -0
  796. package/content/series/architecture/kien-truc-real-time-iot-platform/chapters/01-phan-1-iot-foundations/lessons/01-bai-1-tong-quan-iot-platform-architecture-ecosystem.md +155 -0
  797. package/content/series/architecture/kien-truc-real-time-iot-platform/chapters/01-phan-1-iot-foundations/lessons/02-bai-2-iot-protocols-mqtt-coap-amqp-websocket.md +155 -0
  798. package/content/series/architecture/kien-truc-real-time-iot-platform/chapters/01-phan-1-iot-foundations/lessons/03-bai-3-platform-architecture-overview-cloud-edge-hybrid.md +155 -0
  799. package/content/series/architecture/kien-truc-real-time-iot-platform/chapters/02-phan-2-device-connectivity/lessons/04-bai-4-device-management-provisioning-registry-lifecycle.md +155 -0
  800. package/content/series/architecture/kien-truc-real-time-iot-platform/chapters/02-phan-2-device-connectivity/lessons/05-bai-5-iot-security-device-authentication-encryption.md +155 -0
  801. package/content/series/architecture/kien-truc-real-time-iot-platform/chapters/02-phan-2-device-connectivity/lessons/06-bai-6-ota-updates-remote-configuration.md +155 -0
  802. package/content/series/architecture/kien-truc-real-time-iot-platform/chapters/02-phan-2-device-connectivity/lessons/07-bai-7-gateway-architecture-protocol-translation.md +155 -0
  803. package/content/series/architecture/kien-truc-real-time-iot-platform/chapters/03-phan-3-edge-computing/lessons/08-bai-8-edge-computing-architecture-processing-at-the-edge.md +155 -0
  804. package/content/series/architecture/kien-truc-real-time-iot-platform/chapters/03-phan-3-edge-computing/lessons/09-bai-9-edge-ai-on-device-inference.md +155 -0
  805. package/content/series/architecture/kien-truc-real-time-iot-platform/chapters/03-phan-3-edge-computing/lessons/10-bai-10-edge-cloud-synchronization-offline-mode.md +155 -0
  806. package/content/series/architecture/kien-truc-real-time-iot-platform/chapters/04-phan-4-data-processing-storage/lessons/11-bai-11-time-series-database-timescaledb-influxdb-questdb.md +155 -0
  807. package/content/series/architecture/kien-truc-real-time-iot-platform/chapters/04-phan-4-data-processing-storage/lessons/12-bai-12-iot-data-pipeline-ingestion-processing-storage.md +155 -0
  808. package/content/series/architecture/kien-truc-real-time-iot-platform/chapters/04-phan-4-data-processing-storage/lessons/13-bai-13-rule-engine-complex-event-processing.md +155 -0
  809. package/content/series/architecture/kien-truc-real-time-iot-platform/chapters/05-phan-5-digital-twin-visualization/lessons/14-bai-14-digital-twin-architecture-virtual-representation.md +155 -0
  810. package/content/series/architecture/kien-truc-real-time-iot-platform/chapters/05-phan-5-digital-twin-visualization/lessons/15-bai-15-real-time-monitoring-dashboard-visualization.md +155 -0
  811. package/content/series/architecture/kien-truc-real-time-iot-platform/chapters/05-phan-5-digital-twin-visualization/lessons/16-bai-16-predictive-maintenance-anomaly-detection.md +155 -0
  812. package/content/series/architecture/kien-truc-real-time-iot-platform/chapters/06-phan-6-industry-applications/lessons/17-bai-17-smart-factory-industrial-iot-iiot-architecture.md +155 -0
  813. package/content/series/architecture/kien-truc-real-time-iot-platform/chapters/06-phan-6-industry-applications/lessons/18-bai-18-smart-building-energy-management.md +155 -0
  814. package/content/series/architecture/kien-truc-real-time-iot-platform/chapters/06-phan-6-industry-applications/lessons/19-bai-19-connected-vehicles-fleet-management.md +155 -0
  815. package/content/series/architecture/kien-truc-real-time-iot-platform/chapters/06-phan-6-industry-applications/lessons/20-bai-20-agriculture-iot-environmental-monitoring.md +155 -0
  816. package/content/series/architecture/kien-truc-real-time-iot-platform/chapters/07-phan-7-production-case-studies/lessons/21-bai-21-scalability-handling-millions-of-devices.md +155 -0
  817. package/content/series/architecture/kien-truc-real-time-iot-platform/chapters/07-phan-7-production-case-studies/lessons/22-bai-22-iot-platform-on-kubernetes.md +155 -0
  818. package/content/series/architecture/kien-truc-real-time-iot-platform/chapters/07-phan-7-production-case-studies/lessons/23-bai-23-iot-data-analytics-machine-learning.md +155 -0
  819. package/content/series/architecture/kien-truc-real-time-iot-platform/chapters/07-phan-7-production-case-studies/lessons/24-bai-24-observability-monitoring-cho-iot-platform.md +155 -0
  820. package/content/series/architecture/kien-truc-real-time-iot-platform/chapters/07-phan-7-production-case-studies/lessons/25-bai-25-case-studies-aws-iot-azure-iot-bosch-iot.md +155 -0
  821. package/content/series/architecture/kien-truc-real-time-iot-platform/index.md +314 -0
  822. package/content/series/architecture/ohdsi-omop-cdm-phan-tich-du-lieu-y-te-toan-dien/chapters/01-phan-1-tong-quan-ohdsi-omop-cdm/lessons/01-bai-1-ohdsi-la-gi-tong-quan-he-sinh-thai-va-tam-nhin.md +275 -0
  823. package/content/series/architecture/ohdsi-omop-cdm-phan-tich-du-lieu-y-te-toan-dien/chapters/01-phan-1-tong-quan-ohdsi-omop-cdm/lessons/02-bai-2-omop-cdm-cau-truc-nguyen-ly-domain.md +439 -0
  824. package/content/series/architecture/ohdsi-omop-cdm-phan-tich-du-lieu-y-te-toan-dien/chapters/01-phan-1-tong-quan-ohdsi-omop-cdm/lessons/03-bai-3-athena-tra-cuu-quan-ly-standardized-vocabularies.md +390 -0
  825. package/content/series/architecture/ohdsi-omop-cdm-phan-tich-du-lieu-y-te-toan-dien/chapters/02-phan-2-etl-chuan-hoa-du-lieu/lessons/04-bai-4-whiterabbit-rabbit-in-a-hat-khao-sat-du-lieu-thiet-ke-etl.md +326 -0
  826. package/content/series/architecture/ohdsi-omop-cdm-phan-tich-du-lieu-y-te-toan-dien/chapters/02-phan-2-etl-chuan-hoa-du-lieu/lessons/05-bai-5-usagi-mapping-ma-nguon-sang-omop-standard-concepts.md +327 -0
  827. package/content/series/architecture/ohdsi-omop-cdm-phan-tich-du-lieu-y-te-toan-dien/chapters/02-phan-2-etl-chuan-hoa-du-lieu/lessons/06-bai-6-xay-dung-etl-pipeline-tu-du-lieu-nguon-sang-omop-cdm.md +452 -0
  828. package/content/series/architecture/ohdsi-omop-cdm-phan-tich-du-lieu-y-te-toan-dien/chapters/03-phan-3-trien-khai-platform/lessons/07-bai-7-cai-dat-omop-cdm-database-tren-postgresql.md +400 -0
  829. package/content/series/architecture/ohdsi-omop-cdm-phan-tich-du-lieu-y-te-toan-dien/chapters/03-phan-3-trien-khai-platform/lessons/08-bai-8-webapi-cai-dat-cau-hinh-rest-api.md +395 -0
  830. package/content/series/architecture/ohdsi-omop-cdm-phan-tich-du-lieu-y-te-toan-dien/chapters/03-phan-3-trien-khai-platform/lessons/09-bai-9-atlas-cai-dat-tich-hop-webapi-giao-dien-tong-quan.md +300 -0
  831. package/content/series/architecture/ohdsi-omop-cdm-phan-tich-du-lieu-y-te-toan-dien/chapters/04-phan-4-phan-tich-du-lieu-atlas/lessons/10-bai-10-atlas-concept-sets-cohort-definitions.md +341 -0
  832. package/content/series/architecture/ohdsi-omop-cdm-phan-tich-du-lieu-y-te-toan-dien/chapters/04-phan-4-phan-tich-du-lieu-atlas/lessons/11-bai-11-atlas-characterization-incidence-rates-pathways.md +310 -0
  833. package/content/series/architecture/ohdsi-omop-cdm-phan-tich-du-lieu-y-te-toan-dien/chapters/04-phan-4-phan-tich-du-lieu-atlas/lessons/12-bai-12-atlas-population-level-estimation-patient-level-prediction.md +453 -0
  834. package/content/series/architecture/ohdsi-omop-cdm-phan-tich-du-lieu-y-te-toan-dien/chapters/05-phan-5-data-quality-advanced-analytics/lessons/13-bai-13-achilles-data-characterization-source-profiling.md +382 -0
  835. package/content/series/architecture/ohdsi-omop-cdm-phan-tich-du-lieu-y-te-toan-dien/chapters/05-phan-5-data-quality-advanced-analytics/lessons/14-bai-14-data-quality-dashboard-danh-gia-chat-luong-du-lieu-cdm.md +409 -0
  836. package/content/series/architecture/ohdsi-omop-cdm-phan-tich-du-lieu-y-te-toan-dien/chapters/05-phan-5-data-quality-advanced-analytics/lessons/15-bai-15-hades-r-packages-cho-nghien-cuu-quan-sat.md +537 -0
  837. package/content/series/architecture/ohdsi-omop-cdm-phan-tich-du-lieu-y-te-toan-dien/chapters/06-phan-6-production-network-studies/lessons/16-bai-16-trien-khai-ohdsi-stack-tren-docker-kubernetes.md +650 -0
  838. package/content/series/architecture/ohdsi-omop-cdm-phan-tich-du-lieu-y-te-toan-dien/chapters/06-phan-6-production-network-studies/lessons/17-bai-17-network-studies-best-practices-nghien-cuu-da-trung-tam.md +520 -0
  839. package/content/series/architecture/ohdsi-omop-cdm-phan-tich-du-lieu-y-te-toan-dien/index.md +341 -0
  840. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/01-phan-1-nen-tang-system-design/lessons/01-bai-1-system-design-la-gi-tong-quan-va-roadmap.md +310 -0
  841. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/01-phan-1-nen-tang-system-design/lessons/02-bai-2-performance-vs-scalability.md +310 -0
  842. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/01-phan-1-nen-tang-system-design/lessons/03-bai-3-latency-throughput-availability-consistency.md +355 -0
  843. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/01-phan-1-nen-tang-system-design/lessons/04-bai-4-networking-fundamentals.md +318 -0
  844. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/02-phan-2-infrastructure-components/lessons/05-bai-5-load-balancer.md +339 -0
  845. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/02-phan-2-infrastructure-components/lessons/06-bai-6-cdn.md +222 -0
  846. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/02-phan-2-infrastructure-components/lessons/07-bai-7-caching-strategies.md +279 -0
  847. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/02-phan-2-infrastructure-components/lessons/08-bai-8-reverse-proxy-api-gateway.md +268 -0
  848. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/03-phan-3-database-architecture/lessons/09-bai-9-sql-vs-nosql.md +252 -0
  849. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/03-phan-3-database-architecture/lessons/10-bai-10-database-replication.md +268 -0
  850. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/03-phan-3-database-architecture/lessons/11-bai-11-database-sharding.md +294 -0
  851. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/03-phan-3-database-architecture/lessons/12-bai-12-data-storage-patterns.md +310 -0
  852. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/04-phan-4-async-processing/lessons/13-bai-13-message-queues.md +289 -0
  853. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/04-phan-4-async-processing/lessons/14-bai-14-event-driven-architecture.md +319 -0
  854. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/04-phan-4-async-processing/lessons/15-bai-15-stream-processing.md +309 -0
  855. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/05-phan-5-architectural-patterns/lessons/16-bai-16-monolith-to-microservices.md +292 -0
  856. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/05-phan-5-architectural-patterns/lessons/17-bai-17-service-communication.md +328 -0
  857. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/05-phan-5-architectural-patterns/lessons/18-bai-18-domain-driven-design.md +317 -0
  858. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/05-phan-5-architectural-patterns/lessons/19-bai-19-serverless-cloud-native.md +291 -0
  859. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/06-phan-6-reliability-security-observability/lessons/20-bai-20-high-availability.md +274 -0
  860. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/06-phan-6-reliability-security-observability/lessons/21-bai-21-disaster-recovery.md +281 -0
  861. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/06-phan-6-reliability-security-observability/lessons/22-bai-22-security-architecture.md +309 -0
  862. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/06-phan-6-reliability-security-observability/lessons/23-bai-23-observability.md +356 -0
  863. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/07-phan-7-case-studies/lessons/24-bai-24-url-shortener.md +257 -0
  864. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/07-phan-7-case-studies/lessons/25-bai-25-chat-system.md +266 -0
  865. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/07-phan-7-case-studies/lessons/26-bai-26-news-feed.md +252 -0
  866. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/07-phan-7-case-studies/lessons/27-bai-27-video-streaming.md +271 -0
  867. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/07-phan-7-case-studies/lessons/28-bai-28-ride-sharing.md +290 -0
  868. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/07-phan-7-case-studies/lessons/29-bai-29-e-commerce.md +311 -0
  869. package/content/series/architecture/system-architecture-from-zero-to-hero/chapters/08-phan-8-production-ready/lessons/30-bai-30-architecture-decision-records.md +361 -0
  870. package/content/series/architecture/system-architecture-from-zero-to-hero/index.md +486 -0
  871. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/01-phan-1-nen-tang-evolution-of-architecture/lessons/01-bai-1-tu-monolith-den-microservices-micro-frontend.md +238 -0
  872. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/01-phan-1-nen-tang-evolution-of-architecture/lessons/02-bai-2-domain-driven-design-tu-duy-phan-tach-he-thong.md +259 -0
  873. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/01-phan-1-nen-tang-evolution-of-architecture/lessons/03-bai-3-kien-truc-tong-quan-full-stack.md +160 -0
  874. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/02-phan-2-thiet-ke-microservices-backend/lessons/04-bai-4-service-decomposition.md +195 -0
  875. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/02-phan-2-thiet-ke-microservices-backend/lessons/05-bai-5-api-design-masterclass.md +211 -0
  876. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/02-phan-2-thiet-ke-microservices-backend/lessons/06-bai-6-inter-service-communication.md +185 -0
  877. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/03-phan-3-data-architecture/lessons/07-bai-7-database-per-service.md +153 -0
  878. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/03-phan-3-data-architecture/lessons/08-bai-8-saga-pattern.md +176 -0
  879. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/03-phan-3-data-architecture/lessons/09-bai-9-event-sourcing-cqrs.md +171 -0
  880. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/04-phan-4-micro-frontend-kien-truc-nguyen-ly/lessons/10-bai-10-micro-frontend-la-gi.md +141 -0
  881. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/04-phan-4-micro-frontend-kien-truc-nguyen-ly/lessons/11-bai-11-integration-strategies.md +141 -0
  882. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/04-phan-4-micro-frontend-kien-truc-nguyen-ly/lessons/12-bai-12-module-federation-deep-dive.md +203 -0
  883. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/05-phan-5-xay-dung-micro-frontend-thuc-te/lessons/13-bai-13-shell-application.md +169 -0
  884. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/05-phan-5-xay-dung-micro-frontend-thuc-te/lessons/14-bai-14-state-management.md +157 -0
  885. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/05-phan-5-xay-dung-micro-frontend-thuc-te/lessons/15-bai-15-design-system.md +134 -0
  886. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/05-phan-5-xay-dung-micro-frontend-thuc-te/lessons/16-bai-16-authentication-sso.md +159 -0
  887. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/06-phan-6-api-gateway-bff-layer/lessons/17-bai-17-bff-pattern.md +174 -0
  888. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/06-phan-6-api-gateway-bff-layer/lessons/18-bai-18-api-gateway.md +224 -0
  889. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/06-phan-6-api-gateway-bff-layer/lessons/19-bai-19-graphql-federation.md +223 -0
  890. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/07-phan-7-testing-full-stack/lessons/20-bai-20-testing-microservices.md +222 -0
  891. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/07-phan-7-testing-full-stack/lessons/21-bai-21-testing-micro-frontend.md +185 -0
  892. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/07-phan-7-testing-full-stack/lessons/22-bai-22-contract-testing.md +212 -0
  893. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/08-phan-8-cicd-deployment-strategies/lessons/23-bai-23-mono-repo-vs-multi-repo.md +198 -0
  894. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/08-phan-8-cicd-deployment-strategies/lessons/24-bai-24-cicd-pipeline.md +249 -0
  895. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/08-phan-8-cicd-deployment-strategies/lessons/25-bai-25-deployment-strategies.md +213 -0
  896. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/09-phan-9-observability-production-readiness/lessons/26-bai-26-observability.md +207 -0
  897. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/09-phan-9-observability-production-readiness/lessons/27-bai-27-performance-optimization.md +218 -0
  898. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/09-phan-9-observability-production-readiness/lessons/28-bai-28-production-readiness.md +242 -0
  899. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/10-phan-10-case-studies-migration/lessons/29-bai-29-case-study-ecommerce.md +219 -0
  900. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/chapters/10-phan-10-case-studies-migration/lessons/30-bai-30-migration-guide.md +281 -0
  901. package/content/series/architecture/thiet-ke-he-thong-microservices-micro-frontend/index.md +550 -0
  902. package/content/series/architecture/thiet-ke-he-thong-notification-gui-email-quy-mo-lon/chapters/01-phan-1-nen-tang-bai-toan-notification/lessons/01-bai-1-tong-quan-he-thong-notification-bai-toan-gui-trieu-email.md +200 -0
  903. package/content/series/architecture/thiet-ke-he-thong-notification-gui-email-quy-mo-lon/chapters/01-phan-1-nen-tang-bai-toan-notification/lessons/02-bai-2-kien-truc-tong-quan-high-level-design.md +369 -0
  904. package/content/series/architecture/thiet-ke-he-thong-notification-gui-email-quy-mo-lon/chapters/01-phan-1-nen-tang-bai-toan-notification/lessons/03-bai-3-design-patterns-cho-email-system-quy-mo-lon.md +375 -0
  905. package/content/series/architecture/thiet-ke-he-thong-notification-gui-email-quy-mo-lon/chapters/02-phan-2-message-queue-event-driven/lessons/04-bai-4-message-queue-xuong-song-cua-notification-system.md +355 -0
  906. package/content/series/architecture/thiet-ke-he-thong-notification-gui-email-quy-mo-lon/chapters/02-phan-2-message-queue-event-driven/lessons/05-bai-5-event-driven-notification-pipeline-voi-kafka.md +434 -0
  907. package/content/series/architecture/thiet-ke-he-thong-notification-gui-email-quy-mo-lon/chapters/02-phan-2-message-queue-event-driven/lessons/06-bai-6-priority-queue-va-scheduling-engine.md +388 -0
  908. package/content/series/architecture/thiet-ke-he-thong-notification-gui-email-quy-mo-lon/chapters/03-phan-3-email-infrastructure/lessons/07-bai-7-smtp-deep-dive-hieu-email-delivery-tu-goc.md +372 -0
  909. package/content/series/architecture/thiet-ke-he-thong-notification-gui-email-quy-mo-lon/chapters/03-phan-3-email-infrastructure/lessons/08-bai-8-email-service-providers-ses-sendgrid-mailgun.md +434 -0
  910. package/content/series/architecture/thiet-ke-he-thong-notification-gui-email-quy-mo-lon/chapters/03-phan-3-email-infrastructure/lessons/09-bai-9-template-engine-va-content-pipeline.md +431 -0
  911. package/content/series/architecture/thiet-ke-he-thong-notification-gui-email-quy-mo-lon/chapters/04-phan-4-xu-ly-quy-mo-scaling-to-millions/lessons/10-bai-10-rate-limiting-throttling-kiem-soat-toc-do-gui.md +267 -0
  912. package/content/series/architecture/thiet-ke-he-thong-notification-gui-email-quy-mo-lon/chapters/04-phan-4-xu-ly-quy-mo-scaling-to-millions/lessons/11-bai-11-batch-processing-worker-pool-architecture.md +294 -0
  913. package/content/series/architecture/thiet-ke-he-thong-notification-gui-email-quy-mo-lon/chapters/04-phan-4-xu-ly-quy-mo-scaling-to-millions/lessons/12-bai-12-retry-dead-letter-queue-error-handling.md +272 -0
  914. package/content/series/architecture/thiet-ke-he-thong-notification-gui-email-quy-mo-lon/chapters/05-phan-5-deliverability-monitoring-production/lessons/13-bai-13-email-deliverability-spf-dkim-dmarc.md +235 -0
  915. package/content/series/architecture/thiet-ke-he-thong-notification-gui-email-quy-mo-lon/chapters/05-phan-5-deliverability-monitoring-production/lessons/14-bai-14-monitoring-metrics-alerting.md +258 -0
  916. package/content/series/architecture/thiet-ke-he-thong-notification-gui-email-quy-mo-lon/chapters/05-phan-5-deliverability-monitoring-production/lessons/15-bai-15-production-deployment-case-study-gui-10-trieu-email.md +289 -0
  917. package/content/series/architecture/thiet-ke-he-thong-notification-gui-email-quy-mo-lon/index.md +313 -0
  918. package/content/series/devsecops/bao-mat-du-lieu-y-te-cho-microservices/chapters/01-phan-1-nen-tang-bao-mat-du-lieu-y-te/lessons/01-bai-1-tong-quan-bao-mat-du-lieu-y-te-hipaa-hl7-fhir.md +317 -0
  919. package/content/series/devsecops/bao-mat-du-lieu-y-te-cho-microservices/chapters/01-phan-1-nen-tang-bao-mat-du-lieu-y-te/lessons/02-bai-2-kien-truc-microservices-an-toan-cho-y-te.md +574 -0
  920. package/content/series/devsecops/bao-mat-du-lieu-y-te-cho-microservices/chapters/01-phan-1-nen-tang-bao-mat-du-lieu-y-te/lessons/03-bai-3-phan-loai-du-lieu-y-te-phi-va-danh-gia-rui-ro.md +375 -0
  921. package/content/series/devsecops/bao-mat-du-lieu-y-te-cho-microservices/chapters/01-phan-1-nen-tang-bao-mat-du-lieu-y-te/lessons/04-bai-4-threat-modeling-stride-dread-cho-his.md +491 -0
  922. package/content/series/devsecops/bao-mat-du-lieu-y-te-cho-microservices/chapters/02-phan-2-identity-access-management-keycloak/lessons/01-bai-5-thiet-ke-keycloak-realm-chuan-y-te.md +515 -0
  923. package/content/series/devsecops/bao-mat-du-lieu-y-te-cho-microservices/chapters/02-phan-2-identity-access-management-keycloak/lessons/02-bai-6-rbac-abac-phan-quyen-nhan-vien-y-te.md +494 -0
  924. package/content/series/devsecops/bao-mat-du-lieu-y-te-cho-microservices/chapters/02-phan-2-identity-access-management-keycloak/lessons/03-bai-7-smart-on-fhir-oauth2-oidc-healthcare-apis.md +497 -0
  925. package/content/series/devsecops/bao-mat-du-lieu-y-te-cho-microservices/chapters/02-phan-2-identity-access-management-keycloak/lessons/04-bai-8-mfa-passkeys-emergency-access-nhan-vien-y-te.md +405 -0
  926. package/content/series/devsecops/bao-mat-du-lieu-y-te-cho-microservices/chapters/03-phan-3-bao-mat-postgresql-du-lieu-y-te/lessons/01-bai-9-postgresql-security-hardening-toan-dien.md +1036 -0
  927. package/content/series/devsecops/bao-mat-du-lieu-y-te-cho-microservices/chapters/03-phan-3-bao-mat-postgresql-du-lieu-y-te/lessons/02-bai-10-ma-hoa-du-lieu-at-rest-in-transit-postgresql.md +1028 -0
  928. package/content/series/devsecops/bao-mat-du-lieu-y-te-cho-microservices/chapters/03-phan-3-bao-mat-postgresql-du-lieu-y-te/lessons/03-bai-11-row-level-security-column-encryption-phi.md +1093 -0
  929. package/content/series/devsecops/bao-mat-du-lieu-y-te-cho-microservices/chapters/03-phan-3-bao-mat-postgresql-du-lieu-y-te/lessons/04-bai-12-audit-logging-cdc-pgaudit.md +1226 -0
  930. package/content/series/devsecops/bao-mat-du-lieu-y-te-cho-microservices/chapters/04-phan-4-bao-mat-microservices-quarkus/lessons/01-bai-13-quarkus-security-oidc-jwt-rbac.md +1317 -0
  931. package/content/series/devsecops/bao-mat-du-lieu-y-te-cho-microservices/chapters/04-phan-4-bao-mat-microservices-quarkus/lessons/02-bai-14-api-gateway-rate-limiting-waf.md +1287 -0
  932. package/content/series/devsecops/bao-mat-du-lieu-y-te-cho-microservices/chapters/04-phan-4-bao-mat-microservices-quarkus/lessons/03-bai-15-ma-hoa-du-lieu-end-to-end-microservices.md +1232 -0
  933. package/content/series/devsecops/bao-mat-du-lieu-y-te-cho-microservices/chapters/04-phan-4-bao-mat-microservices-quarkus/lessons/04-bai-16-mtls-service-mesh-inter-service-communication.md +1387 -0
  934. package/content/series/devsecops/bao-mat-du-lieu-y-te-cho-microservices/chapters/05-phan-5-compliance-audit-data-protection/lessons/01-bai-17-hipaa-technical-safeguards-implementation.md +1500 -0
  935. package/content/series/devsecops/bao-mat-du-lieu-y-te-cho-microservices/chapters/05-phan-5-compliance-audit-data-protection/lessons/02-bai-18-centralized-audit-trail-opentelemetry-elk.md +1415 -0
  936. package/content/series/devsecops/bao-mat-du-lieu-y-te-cho-microservices/chapters/05-phan-5-compliance-audit-data-protection/lessons/03-bai-19-data-masking-anonymization-de-identification.md +1376 -0
  937. package/content/series/devsecops/bao-mat-du-lieu-y-te-cho-microservices/chapters/05-phan-5-compliance-audit-data-protection/lessons/04-bai-20-backup-dr-business-continuity-du-lieu-y-te.md +1351 -0
  938. package/content/series/devsecops/bao-mat-du-lieu-y-te-cho-microservices/chapters/06-phan-6-nang-cao-va-du-an-thuc-hanh/lessons/01-bai-21-zero-trust-architecture-he-thong-y-te.md +1507 -0
  939. package/content/series/devsecops/bao-mat-du-lieu-y-te-cho-microservices/chapters/06-phan-6-nang-cao-va-du-an-thuc-hanh/lessons/02-bai-22-container-kubernetes-security-healthcare.md +1521 -0
  940. package/content/series/devsecops/bao-mat-du-lieu-y-te-cho-microservices/chapters/06-phan-6-nang-cao-va-du-an-thuc-hanh/lessons/03-bai-23-penetration-testing-vulnerability-assessment-y-te.md +1697 -0
  941. package/content/series/devsecops/bao-mat-du-lieu-y-te-cho-microservices/chapters/06-phan-6-nang-cao-va-du-an-thuc-hanh/lessons/04-bai-24-capstone-xay-dung-secure-healthcare-platform.md +1881 -0
  942. package/content/series/devsecops/bao-mat-du-lieu-y-te-cho-microservices/index.md +441 -0
  943. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/01-phan-1-nen-tang-thiet-ke-ha-tang/lessons/01-bai-1-tong-quan-kien-truc-microservices-on-premises.md +964 -0
  944. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/01-phan-1-nen-tang-thiet-ke-ha-tang/lessons/02-bai-2-lap-ke-hoach-phan-cung-va-network-topology.md +1019 -0
  945. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/01-phan-1-nen-tang-thiet-ke-ha-tang/lessons/03-bai-3-chuan-bi-linux-os-va-system-tuning.md +731 -0
  946. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/01-phan-1-nen-tang-thiet-ke-ha-tang/lessons/04-bai-4-load-balancer-cho-kubernetes-api-server.md +708 -0
  947. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/02-phan-2-kubernetes-ha-cluster/lessons/01-bai-5-cai-dat-containerd-va-kubeadm.md +410 -0
  948. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/02-phan-2-kubernetes-ha-cluster/lessons/02-bai-6-khoi-tao-kubernetes-ha-control-plane.md +449 -0
  949. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/02-phan-2-kubernetes-ha-cluster/lessons/03-bai-7-join-them-control-plane-va-worker-nodes.md +356 -0
  950. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/02-phan-2-kubernetes-ha-cluster/lessons/04-bai-8-cai-dat-cilium-cni.md +547 -0
  951. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/02-phan-2-kubernetes-ha-cluster/lessons/05-bai-9-metallb-loadbalancer-cho-on-premises.md +369 -0
  952. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/02-phan-2-kubernetes-ha-cluster/lessons/06-bai-10-etcd-van-hanh-backup-va-disaster-recovery.md +546 -0
  953. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/03-phan-3-distributed-storage-rook-ceph/lessons/01-bai-11-kien-truc-distributed-storage-voi-rook-ceph.md +426 -0
  954. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/03-phan-3-distributed-storage-rook-ceph/lessons/02-bai-12-cai-dat-rook-ceph-operator-va-cephcluster.md +383 -0
  955. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/03-phan-3-distributed-storage-rook-ceph/lessons/03-bai-13-cephblockpool-storageclass-va-pvc.md +392 -0
  956. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/03-phan-3-distributed-storage-rook-ceph/lessons/04-bai-14-cephfs-shared-filesystem-cho-readwritemany.md +307 -0
  957. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/03-phan-3-distributed-storage-rook-ceph/lessons/05-bai-15-ceph-monitoring-tuning-va-troubleshooting.md +329 -0
  958. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/04-phan-4-postgresql-ha-patroni-cloudnativepg/lessons/01-bai-16-kien-truc-postgresql-ha-voi-patroni-va-cloudnativepg.md +302 -0
  959. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/04-phan-4-postgresql-ha-patroni-cloudnativepg/lessons/02-bai-17-deploy-cloudnativepg-operator-va-postgresql-cluster.md +367 -0
  960. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/04-phan-4-postgresql-ha-patroni-cloudnativepg/lessons/03-bai-18-postgresql-backup-pitr-va-disaster-recovery.md +319 -0
  961. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/04-phan-4-postgresql-ha-patroni-cloudnativepg/lessons/04-bai-19-postgresql-failover-testing-va-switchover.md +277 -0
  962. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/04-phan-4-postgresql-ha-patroni-cloudnativepg/lessons/05-bai-20-postgresql-monitoring-tuning-va-day-2-operations.md +409 -0
  963. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/05-phan-5-message-queue-ha/lessons/01-bai-21-rabbitmq-ha-cluster-tren-kubernetes.md +487 -0
  964. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/05-phan-5-message-queue-ha/lessons/02-bai-22-apache-kafka-cluster-voi-strimzi-operator.md +573 -0
  965. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/05-phan-5-message-queue-ha/lessons/03-bai-23-redis-ha-sentinel-va-cluster-mode.md +482 -0
  966. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/06-phan-6-service-mesh-ingress-istio/lessons/01-bai-24-kien-truc-istio-service-mesh.md +364 -0
  967. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/06-phan-6-service-mesh-ingress-istio/lessons/02-bai-25-istio-traffic-management.md +375 -0
  968. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/06-phan-6-service-mesh-ingress-istio/lessons/03-bai-26-istio-gateway-va-ingress.md +385 -0
  969. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/06-phan-6-service-mesh-ingress-istio/lessons/04-bai-27-istio-security-authorizationpolicy.md +350 -0
  970. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/07-phan-7-gitops-argocd-helm-vault/lessons/01-bai-28-gitops-voi-argocd.md +396 -0
  971. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/07-phan-7-gitops-argocd-helm-vault/lessons/02-bai-29-helm-charts-cho-microservices.md +423 -0
  972. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/07-phan-7-gitops-argocd-helm-vault/lessons/03-bai-30-secrets-management-vault.md +368 -0
  973. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/07-phan-7-gitops-argocd-helm-vault/lessons/04-bai-31-cicd-pipeline-gitops.md +345 -0
  974. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/08-phan-8-observability-prometheus-loki-tempo/lessons/01-bai-32-prometheus-stack-monitoring.md +409 -0
  975. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/08-phan-8-observability-prometheus-loki-tempo/lessons/02-bai-33-loki-centralized-logging.md +337 -0
  976. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/08-phan-8-observability-prometheus-loki-tempo/lessons/03-bai-34-tempo-distributed-tracing.md +388 -0
  977. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/08-phan-8-observability-prometheus-loki-tempo/lessons/04-bai-35-grafana-dashboards-va-slo-monitoring.md +347 -0
  978. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/09-phan-9-security-hardening/lessons/01-bai-36-rbac-va-pod-security-standards.md +314 -0
  979. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/09-phan-9-security-hardening/lessons/02-bai-37-kyverno-policy-engine.md +402 -0
  980. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/09-phan-9-security-hardening/lessons/03-bai-38-falco-runtime-security.md +307 -0
  981. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/09-phan-9-security-hardening/lessons/04-bai-39-harbor-registry-va-image-security.md +350 -0
  982. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/10-phan-10-deployment-patterns-auto-scaling/lessons/01-bai-40-canary-va-blue-green-deployment.md +320 -0
  983. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/10-phan-10-deployment-patterns-auto-scaling/lessons/02-bai-41-horizontal-va-vertical-pod-autoscaling.md +343 -0
  984. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/10-phan-10-deployment-patterns-auto-scaling/lessons/03-bai-42-resource-management-va-scheduling.md +301 -0
  985. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/10-phan-10-deployment-patterns-auto-scaling/lessons/04-bai-43-multi-tenancy-va-namespace-isolation.md +316 -0
  986. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/11-phan-11-disaster-recovery-chaos-engineering/lessons/01-bai-44-disaster-recovery-va-backup-strategies.md +309 -0
  987. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/11-phan-11-disaster-recovery-chaos-engineering/lessons/02-bai-45-chaos-engineering-voi-litmus.md +325 -0
  988. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/12-phan-12-production-operations-capstone/lessons/01-bai-46-production-readiness-checklist.md +183 -0
  989. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/12-phan-12-production-operations-capstone/lessons/02-bai-47-day-2-operations-va-maintenance.md +302 -0
  990. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/12-phan-12-production-operations-capstone/lessons/03-bai-48-performance-testing-va-optimization.md +284 -0
  991. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/12-phan-12-production-operations-capstone/lessons/04-bai-49-troubleshooting-guide.md +256 -0
  992. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/chapters/12-phan-12-production-operations-capstone/lessons/05-bai-50-capstone-project-ecommerce-microservices.md +289 -0
  993. package/content/series/devsecops/deploy-microservices-on-premises-voi-kubernetes-ha/index.md +851 -0
  994. package/content/series/devsecops/docker-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-docker/lessons/01-bai-1-gioi-thieu-docker-container-va-virtualization.md +229 -0
  995. package/content/series/devsecops/docker-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-docker/lessons/02-bai-2-cai-dat-docker-va-cac-lenh-co-ban.md +242 -0
  996. package/content/series/devsecops/docker-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-docker/lessons/03-bai-3-docker-images-build-pull-va-quan-ly.md +230 -0
  997. package/content/series/devsecops/docker-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-docker/lessons/04-bai-4-docker-containers-vong-doi-va-quan-ly.md +256 -0
  998. package/content/series/devsecops/docker-tu-co-ban-den-nang-cao/chapters/02-phan-2-dockerfile-va-image-optimization/lessons/05-bai-5-dockerfile-tu-a-den-z.md +330 -0
  999. package/content/series/devsecops/docker-tu-co-ban-den-nang-cao/chapters/02-phan-2-dockerfile-va-image-optimization/lessons/06-bai-6-multi-stage-builds-va-toi-uu-docker-image.md +243 -0
  1000. package/content/series/devsecops/docker-tu-co-ban-den-nang-cao/chapters/02-phan-2-dockerfile-va-image-optimization/lessons/07-bai-7-docker-registry-docker-hub-va-private-registry.md +184 -0
  1001. package/content/series/devsecops/docker-tu-co-ban-den-nang-cao/chapters/02-phan-2-dockerfile-va-image-optimization/lessons/08-bai-8-docker-compose-co-ban.md +324 -0
  1002. package/content/series/devsecops/docker-tu-co-ban-den-nang-cao/chapters/03-phan-3-networking-storage-compose-nang-cao/lessons/09-bai-9-docker-networking-deep-dive.md +192 -0
  1003. package/content/series/devsecops/docker-tu-co-ban-den-nang-cao/chapters/03-phan-3-networking-storage-compose-nang-cao/lessons/10-bai-10-docker-volumes-va-persistent-storage.md +254 -0
  1004. package/content/series/devsecops/docker-tu-co-ban-den-nang-cao/chapters/03-phan-3-networking-storage-compose-nang-cao/lessons/11-bai-11-docker-compose-nang-cao.md +297 -0
  1005. package/content/series/devsecops/docker-tu-co-ban-den-nang-cao/chapters/03-phan-3-networking-storage-compose-nang-cao/lessons/12-bai-12-environment-variables-secrets-va-configuration.md +245 -0
  1006. package/content/series/devsecops/docker-tu-co-ban-den-nang-cao/chapters/04-phan-4-security-monitoring-cicd/lessons/13-bai-13-docker-security-best-practices.md +249 -0
  1007. package/content/series/devsecops/docker-tu-co-ban-den-nang-cao/chapters/04-phan-4-security-monitoring-cicd/lessons/14-bai-14-docker-logging-va-monitoring.md +316 -0
  1008. package/content/series/devsecops/docker-tu-co-ban-den-nang-cao/chapters/04-phan-4-security-monitoring-cicd/lessons/15-bai-15-docker-trong-ci-cd-pipeline.md +298 -0
  1009. package/content/series/devsecops/docker-tu-co-ban-den-nang-cao/chapters/04-phan-4-security-monitoring-cicd/lessons/16-bai-16-docker-performance-tuning.md +238 -0
  1010. package/content/series/devsecops/docker-tu-co-ban-den-nang-cao/chapters/05-phan-5-production-advanced/lessons/17-bai-17-docker-swarm-container-orchestration.md +347 -0
  1011. package/content/series/devsecops/docker-tu-co-ban-den-nang-cao/chapters/05-phan-5-production-advanced/lessons/18-bai-18-docker-cho-microservices-architecture.md +434 -0
  1012. package/content/series/devsecops/docker-tu-co-ban-den-nang-cao/chapters/05-phan-5-production-advanced/lessons/19-bai-19-docker-voi-kubernetes-migration-path.md +408 -0
  1013. package/content/series/devsecops/docker-tu-co-ban-den-nang-cao/chapters/05-phan-5-production-advanced/lessons/20-bai-20-production-deployment-va-troubleshooting.md +602 -0
  1014. package/content/series/devsecops/docker-tu-co-ban-den-nang-cao/index.md +519 -0
  1015. package/content/series/devsecops/hashicorp-vault-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-hashicorp-vault/lessons/01-bai-1-gioi-thieu-hashicorp-vault-secret-management-trong-enterprise.md +200 -0
  1016. package/content/series/devsecops/hashicorp-vault-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-hashicorp-vault/lessons/02-bai-2-cai-dat-vault-standalone-docker-va-kubernetes.md +217 -0
  1017. package/content/series/devsecops/hashicorp-vault-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-hashicorp-vault/lessons/03-bai-3-vault-cli-api-va-web-ui.md +151 -0
  1018. package/content/series/devsecops/hashicorp-vault-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-hashicorp-vault/lessons/04-bai-4-seal-unseal-auto-unseal-va-recovery-keys.md +866 -0
  1019. package/content/series/devsecops/hashicorp-vault-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-hashicorp-vault/lessons/05-bai-5-tokens-leases-va-renewal.md +985 -0
  1020. package/content/series/devsecops/hashicorp-vault-tu-co-ban-den-nang-cao/chapters/02-phan-2-secrets-engines/lessons/06-bai-6-kv-secrets-engine-static-secrets-management.md +642 -0
  1021. package/content/series/devsecops/hashicorp-vault-tu-co-ban-den-nang-cao/chapters/02-phan-2-secrets-engines/lessons/07-bai-7-database-secrets-engine-dynamic-credentials.md +645 -0
  1022. package/content/series/devsecops/hashicorp-vault-tu-co-ban-den-nang-cao/chapters/02-phan-2-secrets-engines/lessons/08-bai-8-pki-secrets-engine-certificate-authority.md +708 -0
  1023. package/content/series/devsecops/hashicorp-vault-tu-co-ban-den-nang-cao/chapters/02-phan-2-secrets-engines/lessons/09-bai-9-transit-secrets-engine-encryption-as-a-service.md +703 -0
  1024. package/content/series/devsecops/hashicorp-vault-tu-co-ban-den-nang-cao/chapters/02-phan-2-secrets-engines/lessons/10-bai-10-aws-azure-gcp-va-cloud-secrets-engines.md +753 -0
  1025. package/content/series/devsecops/hashicorp-vault-tu-co-ban-den-nang-cao/chapters/03-phan-3-auth-methods-xac-thuc-va-uy-quyen/lessons/11-bai-11-auth-methods-co-ban-token-userpass-va-approle.md +553 -0
  1026. package/content/series/devsecops/hashicorp-vault-tu-co-ban-den-nang-cao/chapters/03-phan-3-auth-methods-xac-thuc-va-uy-quyen/lessons/12-bai-12-ldap-oidc-va-jwt-auth-methods.md +397 -0
  1027. package/content/series/devsecops/hashicorp-vault-tu-co-ban-den-nang-cao/chapters/03-phan-3-auth-methods-xac-thuc-va-uy-quyen/lessons/13-bai-13-kubernetes-aws-va-cloud-auth-methods.md +329 -0
  1028. package/content/series/devsecops/hashicorp-vault-tu-co-ban-den-nang-cao/chapters/03-phan-3-auth-methods-xac-thuc-va-uy-quyen/lessons/14-bai-14-policies-acl-sentinel-va-rbac.md +388 -0
  1029. package/content/series/devsecops/hashicorp-vault-tu-co-ban-den-nang-cao/chapters/03-phan-3-auth-methods-xac-thuc-va-uy-quyen/lessons/15-bai-15-identity-secrets-engine-entities-va-mfa.md +314 -0
  1030. package/content/series/devsecops/hashicorp-vault-tu-co-ban-den-nang-cao/chapters/04-phan-4-secrets-engines-nang-cao/lessons/16-bai-16-ssh-secrets-engine-va-totp.md +256 -0
  1031. package/content/series/devsecops/hashicorp-vault-tu-co-ban-den-nang-cao/chapters/04-phan-4-secrets-engines-nang-cao/lessons/17-bai-17-transform-va-tokenization-data-protection.md +238 -0
  1032. package/content/series/devsecops/hashicorp-vault-tu-co-ban-den-nang-cao/chapters/04-phan-4-secrets-engines-nang-cao/lessons/18-bai-18-kmip-consul-nomad-secrets-engines-va-custom-plugins.md +292 -0
  1033. package/content/series/devsecops/hashicorp-vault-tu-co-ban-den-nang-cao/chapters/05-phan-5-vault-agent-proxy-va-kubernetes-integration/lessons/19-bai-19-vault-agent-va-vault-proxy.md +396 -0
  1034. package/content/series/devsecops/hashicorp-vault-tu-co-ban-den-nang-cao/chapters/05-phan-5-vault-agent-proxy-va-kubernetes-integration/lessons/20-bai-20-vault-tren-kubernetes-helm-operator-va-csi.md +407 -0
  1035. package/content/series/devsecops/hashicorp-vault-tu-co-ban-den-nang-cao/chapters/06-phan-6-tich-hop-ung-dung-thuc-te/lessons/21-bai-21-tich-hop-vault-voi-spring-boot-va-nodejs.md +313 -0
  1036. package/content/series/devsecops/hashicorp-vault-tu-co-ban-den-nang-cao/chapters/06-phan-6-tich-hop-ung-dung-thuc-te/lessons/22-bai-22-vault-voi-terraform-ansible-va-cicd-pipelines.md +408 -0
  1037. package/content/series/devsecops/hashicorp-vault-tu-co-ban-den-nang-cao/chapters/07-phan-7-production-enterprise-va-van-hanh/lessons/23-bai-23-high-availability-integrated-storage-va-production-hardening.md +334 -0
  1038. package/content/series/devsecops/hashicorp-vault-tu-co-ban-den-nang-cao/chapters/07-phan-7-production-enterprise-va-van-hanh/lessons/24-bai-24-vault-enterprise-namespaces-replication-va-dr.md +255 -0
  1039. package/content/series/devsecops/hashicorp-vault-tu-co-ban-den-nang-cao/chapters/07-phan-7-production-enterprise-va-van-hanh/lessons/25-bai-25-monitoring-audit-logging-backup-restore-va-troubleshooting.md +366 -0
  1040. package/content/series/devsecops/hashicorp-vault-tu-co-ban-den-nang-cao/index.md +655 -0
  1041. package/content/series/devsecops/keycloak-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-keycloak/lessons/01-bai-1-gioi-thieu-keycloak-iam-va-sso-trong-enterprise.md +237 -0
  1042. package/content/series/devsecops/keycloak-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-keycloak/lessons/02-bai-2-cai-dat-keycloak-standalone-docker-va-kubernetes.md +288 -0
  1043. package/content/series/devsecops/keycloak-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-keycloak/lessons/03-bai-3-admin-console-va-tao-realm-dau-tien.md +495 -0
  1044. package/content/series/devsecops/keycloak-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-keycloak/lessons/04-bai-4-quan-ly-users-groups-va-user-profile.md +582 -0
  1045. package/content/series/devsecops/keycloak-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-keycloak/lessons/05-bai-5-roles-permissions-va-access-control.md +771 -0
  1046. package/content/series/devsecops/keycloak-tu-co-ban-den-nang-cao/chapters/02-phan-2-sso-protocols/lessons/01-bai-6-openid-connect-clients-cau-hinh-tu-a-den-z.md +1008 -0
  1047. package/content/series/devsecops/keycloak-tu-co-ban-den-nang-cao/chapters/02-phan-2-sso-protocols/lessons/02-bai-7-saml-clients-va-protocol-mappers.md +681 -0
  1048. package/content/series/devsecops/keycloak-tu-co-ban-den-nang-cao/chapters/02-phan-2-sso-protocols/lessons/03-bai-8-client-scopes-token-management-va-dpop.md +744 -0
  1049. package/content/series/devsecops/keycloak-tu-co-ban-den-nang-cao/chapters/02-phan-2-sso-protocols/lessons/04-bai-9-client-policies-va-advanced-client-configuration.md +781 -0
  1050. package/content/series/devsecops/keycloak-tu-co-ban-den-nang-cao/chapters/03-phan-3-authentication-mfa-identity-brokering/lessons/01-bai-10-authentication-flows-tuy-chinh-luong-xac-thuc.md +566 -0
  1051. package/content/series/devsecops/keycloak-tu-co-ban-den-nang-cao/chapters/03-phan-3-authentication-mfa-identity-brokering/lessons/02-bai-11-multi-factor-authentication-otp-webauthn-va-passkeys.md +587 -0
  1052. package/content/series/devsecops/keycloak-tu-co-ban-den-nang-cao/chapters/03-phan-3-authentication-mfa-identity-brokering/lessons/03-bai-12-identity-brokering-va-social-login.md +707 -0
  1053. package/content/series/devsecops/keycloak-tu-co-ban-den-nang-cao/chapters/04-phan-4-user-federation-organizations-authorization/lessons/01-bai-13-user-federation-ldap-va-active-directory.md +645 -0
  1054. package/content/series/devsecops/keycloak-tu-co-ban-den-nang-cao/chapters/04-phan-4-user-federation-organizations-authorization/lessons/02-bai-14-organizations-multi-tenancy-va-ciam.md +465 -0
  1055. package/content/series/devsecops/keycloak-tu-co-ban-den-nang-cao/chapters/04-phan-4-user-federation-organizations-authorization/lessons/03-bai-15-authorization-services-phan-quyen-chi-tiet.md +801 -0
  1056. package/content/series/devsecops/keycloak-tu-co-ban-den-nang-cao/chapters/04-phan-4-user-federation-organizations-authorization/lessons/04-bai-16-workflows-tu-dong-hoa-quan-tri-voi-iga.md +861 -0
  1057. package/content/series/devsecops/keycloak-tu-co-ban-den-nang-cao/chapters/05-phan-5-themes-events-security-vault/lessons/01-bai-17-tuy-chinh-giao-dien-keycloak-themes.md +869 -0
  1058. package/content/series/devsecops/keycloak-tu-co-ban-den-nang-cao/chapters/05-phan-5-themes-events-security-vault/lessons/02-bai-18-event-system-va-audit-logging.md +894 -0
  1059. package/content/series/devsecops/keycloak-tu-co-ban-den-nang-cao/chapters/05-phan-5-themes-events-security-vault/lessons/03-bai-19-bao-mat-nang-cao-va-vault-integration.md +858 -0
  1060. package/content/series/devsecops/keycloak-tu-co-ban-den-nang-cao/chapters/06-phan-6-tich-hop-ung-dung-thuc-te/lessons/01-bai-20-tich-hop-spring-boot-va-quarkus.md +1039 -0
  1061. package/content/series/devsecops/keycloak-tu-co-ban-den-nang-cao/chapters/06-phan-6-tich-hop-ung-dung-thuc-te/lessons/02-bai-21-tich-hop-react-angular-va-nodejs.md +1146 -0
  1062. package/content/series/devsecops/keycloak-tu-co-ban-den-nang-cao/chapters/06-phan-6-tich-hop-ung-dung-thuc-te/lessons/03-bai-22-api-gateway-nginx-va-microservices.md +1076 -0
  1063. package/content/series/devsecops/keycloak-tu-co-ban-den-nang-cao/chapters/07-phan-7-production-ha-kubernetes/lessons/01-bai-23-trien-khai-production-va-performance-tuning.md +931 -0
  1064. package/content/series/devsecops/keycloak-tu-co-ban-den-nang-cao/chapters/07-phan-7-production-ha-kubernetes/lessons/02-bai-24-high-availability-clustering-va-multi-site.md +1225 -0
  1065. package/content/series/devsecops/keycloak-tu-co-ban-den-nang-cao/chapters/07-phan-7-production-ha-kubernetes/lessons/03-bai-25-kubernetes-operator-monitoring-va-admin-cli.md +1654 -0
  1066. package/content/series/devsecops/keycloak-tu-co-ban-den-nang-cao/index.md +677 -0
  1067. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/01-module-1-gioi-thieu-va-kien-truc/lessons/02-bai-1-gioi-thieu-kubernetes-va-container-orchestration.md +466 -0
  1068. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/01-module-1-gioi-thieu-va-kien-truc/lessons/03-bai-2-kien-truc-kubernetes.md +458 -0
  1069. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/01-module-1-gioi-thieu-va-kien-truc/lessons/04-bai-3-cai-dat-moi-truong-kubernetes-2026.md +597 -0
  1070. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/01-module-1-gioi-thieu-va-kien-truc/lessons/05-thuc-hanh-1-thiet-lap-cluster-va-cong-cu.md +656 -0
  1071. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/02-module-2-kubernetes-objects-co-ban/lessons/06-bai-5-pods.md +217 -0
  1072. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/02-module-2-kubernetes-objects-co-ban/lessons/07-bai-6-replicasets-va-deployments.md +261 -0
  1073. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/02-module-2-kubernetes-objects-co-ban/lessons/08-bai-7-services-va-endpointslices.md +195 -0
  1074. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/02-module-2-kubernetes-objects-co-ban/lessons/09-bai-8-namespaces.md +212 -0
  1075. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/02-module-2-kubernetes-objects-co-ban/lessons/10-thuc-hanh-2-kubernetes-objects-co-ban.md +325 -0
  1076. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/03-module-3-configuration-va-storage/lessons/11-bai-10-configmaps-va-secrets.md +767 -0
  1077. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/03-module-3-configuration-va-storage/lessons/12-bai-11-persistent-storage.md +476 -0
  1078. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/03-module-3-configuration-va-storage/lessons/13-bai-12-statefulsets.md +556 -0
  1079. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/03-module-3-configuration-va-storage/lessons/14-thuc-hanh-3-configuration-va-storage.md +322 -0
  1080. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/04-module-4-networking/lessons/15-bai-14-kubernetes-networking-model.md +164 -0
  1081. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/04-module-4-networking/lessons/16-bai-15-gateway-api-chuan-moi-thay-ingress.md +275 -0
  1082. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/04-module-4-networking/lessons/17-bai-16-network-policies.md +264 -0
  1083. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/04-module-4-networking/lessons/18-thuc-hanh-4-networking-voi-cilium-va-gateway-api.md +342 -0
  1084. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/05-module-5-workload-management/lessons/19-bai-18-jobs-va-cronjobs.md +428 -0
  1085. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/05-module-5-workload-management/lessons/20-bai-19-daemonsets.md +522 -0
  1086. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/05-module-5-workload-management/lessons/21-bai-20-autoscaling.md +592 -0
  1087. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/05-module-5-workload-management/lessons/22-bai-21-dynamic-resource-allocation-dra.md +224 -0
  1088. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/05-module-5-workload-management/lessons/23-thuc-hanh-5-workload-management.md +336 -0
  1089. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/06-module-6-security/lessons/24-bai-23-authentication-va-authorization.md +213 -0
  1090. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/06-module-6-security/lessons/25-bai-24-validating-admission-policy.md +297 -0
  1091. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/06-module-6-security/lessons/26-bai-25-security-best-practices-2026.md +261 -0
  1092. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/06-module-6-security/lessons/27-bai-26-security-tools.md +255 -0
  1093. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/06-module-6-security/lessons/28-thuc-hanh-6-kubernetes-security.md +323 -0
  1094. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/07-module-7-observability-va-monitoring/lessons/29-bai-28-observability-stack-2026.md +322 -0
  1095. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/07-module-7-observability-va-monitoring/lessons/30-bai-29-prometheus-va-grafana.md +463 -0
  1096. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/07-module-7-observability-va-monitoring/lessons/31-bai-30-loki-tempo-va-distributed-tracing.md +266 -0
  1097. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/07-module-7-observability-va-monitoring/lessons/32-bai-31-debugging-va-troubleshooting.md +259 -0
  1098. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/07-module-7-observability-va-monitoring/lessons/33-thuc-hanh-7-observability-va-logging.md +410 -0
  1099. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/08-module-8-helm-operators-va-gitops/lessons/34-bai-33-helm-4.md +285 -0
  1100. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/08-module-8-helm-operators-va-gitops/lessons/35-bai-34-operators-va-custom-resources.md +286 -0
  1101. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/08-module-8-helm-operators-va-gitops/lessons/36-bai-35-service-mesh-2026.md +212 -0
  1102. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/08-module-8-helm-operators-va-gitops/lessons/37-bai-36-gitops-voi-argocd-va-flux.md +284 -0
  1103. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/08-module-8-helm-operators-va-gitops/lessons/38-thuc-hanh-8-helm-operators-gitops.md +336 -0
  1104. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/09-module-9-cluster-management/lessons/39-bai-38-production-cluster-setup.md +298 -0
  1105. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/09-module-9-cluster-management/lessons/40-bai-39-infrastructure-migration-2026-cgroup-v2-containerd-2.md +229 -0
  1106. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/09-module-9-cluster-management/lessons/41-bai-40-node-management.md +213 -0
  1107. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/09-module-9-cluster-management/lessons/42-bai-41-resource-management.md +266 -0
  1108. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/09-module-9-cluster-management/lessons/43-bai-42-cluster-api.md +264 -0
  1109. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/09-module-9-cluster-management/lessons/44-thuc-hanh-9-cluster-management.md +350 -0
  1110. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/10-module-10-cloud-va-production/lessons/45-bai-44-managed-kubernetes-services-2026.md +228 -0
  1111. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/10-module-10-cloud-va-production/lessons/46-bai-45-cost-optimization.md +233 -0
  1112. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/10-module-10-cloud-va-production/lessons/47-bai-46-best-practices-production-2026.md +316 -0
  1113. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/10-module-10-cloud-va-production/lessons/48-thuc-hanh-10-cloud-platforms.md +376 -0
  1114. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/chapters/10-module-10-cloud-va-production/lessons/49-bai-48-kubernetes-cho-ai-ml.md +266 -0
  1115. package/content/series/devsecops/kubernetes-tu-co-ban-den-nang-cao/index.md +121 -0
  1116. package/content/series/devsecops/nginx-tu-co-ban-den-nang-cao/chapters/01-phan-1-co-ban/lessons/02-bai-1-gioi-thieu-va-cai-dat-nginx.md +389 -0
  1117. package/content/series/devsecops/nginx-tu-co-ban-den-nang-cao/chapters/01-phan-1-co-ban/lessons/03-bai-2-cau-hinh-co-ban-nginx.md +875 -0
  1118. package/content/series/devsecops/nginx-tu-co-ban-den-nang-cao/chapters/01-phan-1-co-ban/lessons/04-bai-3-logging-va-monitoring-nginx.md +635 -0
  1119. package/content/series/devsecops/nginx-tu-co-ban-den-nang-cao/chapters/02-phan-2-reverse-proxy-load-balancing/lessons/05-bai-4-reverse-proxy.md +955 -0
  1120. package/content/series/devsecops/nginx-tu-co-ban-den-nang-cao/chapters/02-phan-2-reverse-proxy-load-balancing/lessons/06-bai-5-load-balancing.md +1290 -0
  1121. package/content/series/devsecops/nginx-tu-co-ban-den-nang-cao/chapters/02-phan-2-reverse-proxy-load-balancing/lessons/07-bai-6-nginx-caching.md +1296 -0
  1122. package/content/series/devsecops/nginx-tu-co-ban-den-nang-cao/chapters/03-phan-3-security-performance/lessons/08-bai-7-ssl-tls-va-https-trong-nginx.md +1001 -0
  1123. package/content/series/devsecops/nginx-tu-co-ban-den-nang-cao/chapters/03-phan-3-security-performance/lessons/09-bai-8-performance-tuning-trong-ngi.md +1315 -0
  1124. package/content/series/devsecops/nginx-tu-co-ban-den-nang-cao/chapters/03-phan-3-security-performance/lessons/10-bai-9-security-trong-nginx.md +1328 -0
  1125. package/content/series/devsecops/nginx-tu-co-ban-den-nang-cao/chapters/03-phan-3-security-performance/lessons/11-bai-10-rewrite-va-redirects-trong-nginx.md +1070 -0
  1126. package/content/series/devsecops/nginx-tu-co-ban-den-nang-cao/chapters/04-phan-4-app-stack-monitoring/lessons/12-bai-11-nginx-voi-application-stack-tr0.md +1228 -0
  1127. package/content/series/devsecops/nginx-tu-co-ban-den-nang-cao/chapters/04-phan-4-app-stack-monitoring/lessons/13-bai-12-monitoring-va-logging-trong-nginx.md +1097 -0
  1128. package/content/series/devsecops/nginx-tu-co-ban-den-nang-cao/chapters/04-phan-4-app-stack-monitoring/lessons/14-bai-13-high-availability-va-load-balancing-advanced-trong-nginx.md +1285 -0
  1129. package/content/series/devsecops/nginx-tu-co-ban-den-nang-cao/chapters/05-phan-5-production-advanced/lessons/15-bai-14-microservices-va-service-mesh-trong-nginx.md +1405 -0
  1130. package/content/series/devsecops/nginx-tu-co-ban-den-nang-cao/chapters/05-phan-5-production-advanced/lessons/16-bai-15-production-best-practices-va-advanced-topics-trong-nginx.md +1454 -0
  1131. package/content/series/devsecops/nginx-tu-co-ban-den-nang-cao/index.md +282 -0
  1132. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/01-phan-1-nen-tang-performance-testing/lessons/01-bai-1-performance-testing-fundamentals.md +215 -0
  1133. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/01-phan-1-nen-tang-performance-testing/lessons/02-bai-2-sre-practices-slo-sli-sla.md +256 -0
  1134. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/01-phan-1-nen-tang-performance-testing/lessons/03-bai-3-shift-left-performance-testing-ci-cd.md +250 -0
  1135. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/01-phan-1-nen-tang-performance-testing/lessons/04-bai-4-k6-load-testing-framework.md +283 -0
  1136. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/01-phan-1-nen-tang-performance-testing/lessons/05-bai-5-gatling-va-artillery-so-sanh.md +272 -0
  1137. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/02-phan-2-performance-testing-nang-cao/lessons/06-bai-6-api-performance-testing.md +305 -0
  1138. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/02-phan-2-performance-testing-nang-cao/lessons/07-bai-7-database-performance-testing.md +221 -0
  1139. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/02-phan-2-performance-testing-nang-cao/lessons/08-bai-8-cloud-native-performance-testing.md +233 -0
  1140. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/02-phan-2-performance-testing-nang-cao/lessons/09-bai-9-chaos-engineering-load-testing.md +235 -0
  1141. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/02-phan-2-performance-testing-nang-cao/lessons/10-bai-10-observability-ai-performance.md +234 -0
  1142. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/03-phan-3-pentest-foundations/lessons/11-bai-11-pentest-fundamentals.md +168 -0
  1143. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/03-phan-3-pentest-foundations/lessons/12-bai-12-ptes-penetration-testing-execution-standard.md +297 -0
  1144. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/03-phan-3-pentest-foundations/lessons/13-bai-13-owasp-top-10-2025.md +351 -0
  1145. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/03-phan-3-pentest-foundations/lessons/14-bai-14-reconnaissance-scanning-nmap-amass-nuclei.md +356 -0
  1146. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/03-phan-3-pentest-foundations/lessons/15-bai-15-web-application-testing-burp-suite-owasp-zap.md +380 -0
  1147. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/04-phan-4-pentest-nang-cao/lessons/16-bai-16-exploitation-frameworks-metasploit.md +337 -0
  1148. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/04-phan-4-pentest-nang-cao/lessons/17-bai-17-cloud-pentesting-aws-azure-gcp.md +284 -0
  1149. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/04-phan-4-pentest-nang-cao/lessons/18-bai-18-container-kubernetes-security-testing.md +340 -0
  1150. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/04-phan-4-pentest-nang-cao/lessons/19-bai-19-api-security-testing-owasp-api-top-10.md +349 -0
  1151. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/04-phan-4-pentest-nang-cao/lessons/20-bai-20-ai-powered-pentesting-2026.md +391 -0
  1152. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/05-phan-5-red-blue-purple-team/lessons/21-bai-21-red-team-adversary-simulation.md +274 -0
  1153. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/05-phan-5-red-blue-purple-team/lessons/22-bai-22-blue-team-detection-engineering.md +313 -0
  1154. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/05-phan-5-red-blue-purple-team/lessons/23-bai-23-purple-team-collaborative-security.md +250 -0
  1155. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/05-phan-5-red-blue-purple-team/lessons/24-bai-24-bug-bounty-methodologies.md +263 -0
  1156. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/05-phan-5-red-blue-purple-team/lessons/25-bai-25-compliance-frameworks.md +266 -0
  1157. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/06-phan-6-bao-cao-va-quy-trinh/lessons/26-bai-26-cvss-v4-scoring.md +255 -0
  1158. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/06-phan-6-bao-cao-va-quy-trinh/lessons/27-bai-27-performance-test-report.md +301 -0
  1159. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/06-phan-6-bao-cao-va-quy-trinh/lessons/28-bai-28-pentest-report-technical-executive.md +364 -0
  1160. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/06-phan-6-bao-cao-va-quy-trinh/lessons/29-bai-29-automated-reporting-remediation-tracking.md +382 -0
  1161. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/chapters/06-phan-6-bao-cao-va-quy-trinh/lessons/30-bai-30-capstone-project-end-to-end.md +705 -0
  1162. package/content/series/devsecops/performance-testing-va-pentest-chuan-doanh-nghiep-2026/index.md +474 -0
  1163. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/chapters/01-phan-1-tong-quan-nen-tang/lessons/02-bai-1-tong-quan-ve-postgresql-high-availability.md +230 -0
  1164. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/chapters/01-phan-1-tong-quan-nen-tang/lessons/03-bai-2-streaming-replication-trong-postgresql.md +295 -0
  1165. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/chapters/01-phan-1-tong-quan-nen-tang/lessons/04-bai-3-gioi-thieu-patroni-va-etcd.md +196 -0
  1166. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/chapters/02-phan-2-cai-dat-cau-hinh/lessons/05-bai-4-chuan-bi-ha-tang.md +496 -0
  1167. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/chapters/02-phan-2-cai-dat-cau-hinh/lessons/06-bai-5-cai-dat-postgresql.md +326 -0
  1168. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/chapters/02-phan-2-cai-dat-cau-hinh/lessons/07-bai-6-cai-dat-va-cau-hinh-etcd-cluster.md +404 -0
  1169. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/chapters/02-phan-2-cai-dat-cau-hinh/lessons/08-bai-7-cai-dat-patroni.md +604 -0
  1170. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/chapters/02-phan-2-cai-dat-cau-hinh/lessons/09-bai-8-cau-hinh-patroni-chi-tiet.md +547 -0
  1171. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/chapters/02-phan-2-cai-dat-cau-hinh/lessons/10-bai-9-bootstrap-postgresql-cluster.md +453 -0
  1172. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/chapters/03-phan-3-quan-ly-cluster/lessons/11-bai-10-quan-ly-replication.md +455 -0
  1173. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/chapters/03-phan-3-quan-ly-cluster/lessons/12-bai-11-patroni-callbacks.md +792 -0
  1174. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/chapters/03-phan-3-quan-ly-cluster/lessons/13-bai-12-patroni-rest-api.md +764 -0
  1175. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/chapters/03-phan-3-quan-ly-cluster/lessons/14-bai-13-automatic-failover.md +507 -0
  1176. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/chapters/03-phan-3-quan-ly-cluster/lessons/15-bai-14-switchover-co-ke-hoach-planned-switchover.md +685 -0
  1177. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/chapters/03-phan-3-quan-ly-cluster/lessons/16-bai-15-recovering-failed-nodes.md +566 -0
  1178. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/chapters/04-phan-4-backup-monitoring-tuning/lessons/17-bai-16-backup-va-point-in-time-recovery-pitr.md +622 -0
  1179. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/chapters/04-phan-4-backup-monitoring-tuning/lessons/18-bai-17-monitoring-patroni-cluster.md +737 -0
  1180. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/chapters/04-phan-4-backup-monitoring-tuning/lessons/19-bai-18-performance-tuning.md +625 -0
  1181. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/chapters/04-phan-4-backup-monitoring-tuning/lessons/20-bai-19-logging-va-troubleshooting.md +569 -0
  1182. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/chapters/05-phan-5-security-nang-cao/lessons/21-bai-20-security-best-practices.md +481 -0
  1183. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/chapters/05-phan-5-security-nang-cao/lessons/22-bai-21-multi-datacenter-setup.md +509 -0
  1184. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/chapters/05-phan-5-security-nang-cao/lessons/23-bai-22-patroni-voi-kubernetes.md +652 -0
  1185. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/chapters/05-phan-5-security-nang-cao/lessons/24-bai-23-patroni-configuration-management.md +346 -0
  1186. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/chapters/05-phan-5-security-nang-cao/lessons/25-bai-24-upgrade-strategies.md +402 -0
  1187. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/chapters/05-phan-5-security-nang-cao/lessons/26-bai-25-real-world-case-studies.md +483 -0
  1188. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/chapters/06-phan-6-production-case-studies/lessons/27-bai-26-automation-voi-ansible.md +688 -0
  1189. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/chapters/06-phan-6-production-case-studies/lessons/28-bai-27-disaster-recovery-drills.md +514 -0
  1190. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/chapters/06-phan-6-production-case-studies/lessons/29-bai-28-thiet-ke-kien-truc-ha.md +510 -0
  1191. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/chapters/06-phan-6-production-case-studies/lessons/30-bai-29-deploy-production-ready-cluster.md +722 -0
  1192. package/content/series/devsecops/postgresql-high-availability-voi-patroni-etcd/index.md +371 -0
  1193. package/content/series/lap-trinh/django-tu-co-ban-den-nang-cao/chapters/01-phan-1-django-fundamentals/lessons/01-bai-1-gioi-thieu-django.md +121 -0
  1194. package/content/series/lap-trinh/django-tu-co-ban-den-nang-cao/chapters/01-phan-1-django-fundamentals/lessons/02-bai-2-models-va-django-orm.md +139 -0
  1195. package/content/series/lap-trinh/django-tu-co-ban-den-nang-cao/chapters/01-phan-1-django-fundamentals/lessons/03-bai-3-views-urls-va-templates.md +139 -0
  1196. package/content/series/lap-trinh/django-tu-co-ban-den-nang-cao/chapters/01-phan-1-django-fundamentals/lessons/04-bai-4-class-based-views-va-forms.md +149 -0
  1197. package/content/series/lap-trinh/django-tu-co-ban-den-nang-cao/chapters/02-phan-2-django-rest-framework/lessons/05-bai-5-drf-serializers-va-views.md +148 -0
  1198. package/content/series/lap-trinh/django-tu-co-ban-den-nang-cao/chapters/02-phan-2-django-rest-framework/lessons/06-bai-6-viewsets-routers-va-pagination.md +123 -0
  1199. package/content/series/lap-trinh/django-tu-co-ban-den-nang-cao/chapters/02-phan-2-django-rest-framework/lessons/07-bai-7-advanced-serializers-va-validation.md +137 -0
  1200. package/content/series/lap-trinh/django-tu-co-ban-den-nang-cao/chapters/02-phan-2-django-rest-framework/lessons/08-bai-8-versioning-throttling-va-api-docs.md +130 -0
  1201. package/content/series/lap-trinh/django-tu-co-ban-den-nang-cao/chapters/03-phan-3-authentication-va-security/lessons/09-bai-9-authentication-session-token-va-jwt.md +140 -0
  1202. package/content/series/lap-trinh/django-tu-co-ban-den-nang-cao/chapters/03-phan-3-authentication-va-security/lessons/10-bai-10-permissions-va-authorization.md +120 -0
  1203. package/content/series/lap-trinh/django-tu-co-ban-den-nang-cao/chapters/03-phan-3-authentication-va-security/lessons/11-bai-11-social-auth-va-oauth2.md +134 -0
  1204. package/content/series/lap-trinh/django-tu-co-ban-den-nang-cao/chapters/03-phan-3-authentication-va-security/lessons/12-bai-12-security-best-practices.md +126 -0
  1205. package/content/series/lap-trinh/django-tu-co-ban-den-nang-cao/chapters/04-phan-4-advanced-features/lessons/13-bai-13-django-admin-customization.md +116 -0
  1206. package/content/series/lap-trinh/django-tu-co-ban-den-nang-cao/chapters/04-phan-4-advanced-features/lessons/14-bai-14-django-channels-va-websockets.md +136 -0
  1207. package/content/series/lap-trinh/django-tu-co-ban-den-nang-cao/chapters/04-phan-4-advanced-features/lessons/15-bai-15-celery-signals-va-caching.md +145 -0
  1208. package/content/series/lap-trinh/django-tu-co-ban-den-nang-cao/chapters/04-phan-4-advanced-features/lessons/16-bai-16-file-storage-email-va-notifications.md +115 -0
  1209. package/content/series/lap-trinh/django-tu-co-ban-den-nang-cao/chapters/05-phan-5-testing-deployment-va-production/lessons/17-bai-17-testing-trong-django.md +136 -0
  1210. package/content/series/lap-trinh/django-tu-co-ban-den-nang-cao/chapters/05-phan-5-testing-deployment-va-production/lessons/18-bai-18-performance-optimization.md +127 -0
  1211. package/content/series/lap-trinh/django-tu-co-ban-den-nang-cao/chapters/05-phan-5-testing-deployment-va-production/lessons/19-bai-19-docker-va-cicd-cho-django.md +159 -0
  1212. package/content/series/lap-trinh/django-tu-co-ban-den-nang-cao/chapters/05-phan-5-testing-deployment-va-production/lessons/20-bai-20-production-deployment-va-monitoring.md +164 -0
  1213. package/content/series/lap-trinh/django-tu-co-ban-den-nang-cao/index.md +324 -0
  1214. package/content/series/lap-trinh/flutter-dart-tu-co-ban-den-nang-cao/chapters/01-phan-1-dart-va-flutter-fundamentals/lessons/01-bai-1-gioi-thieu-flutter-va-dart.md +104 -0
  1215. package/content/series/lap-trinh/flutter-dart-tu-co-ban-den-nang-cao/chapters/01-phan-1-dart-va-flutter-fundamentals/lessons/02-bai-2-dart-language-deep-dive.md +118 -0
  1216. package/content/series/lap-trinh/flutter-dart-tu-co-ban-den-nang-cao/chapters/01-phan-1-dart-va-flutter-fundamentals/lessons/03-bai-3-widget-tree-va-basic-widgets.md +115 -0
  1217. package/content/series/lap-trinh/flutter-dart-tu-co-ban-den-nang-cao/chapters/01-phan-1-dart-va-flutter-fundamentals/lessons/04-bai-4-layouts-va-responsive-design.md +118 -0
  1218. package/content/series/lap-trinh/flutter-dart-tu-co-ban-den-nang-cao/chapters/02-phan-2-navigation-va-state-management/lessons/05-bai-5-navigation-va-routing.md +117 -0
  1219. package/content/series/lap-trinh/flutter-dart-tu-co-ban-den-nang-cao/chapters/02-phan-2-navigation-va-state-management/lessons/06-bai-6-state-management-voi-riverpod.md +110 -0
  1220. package/content/series/lap-trinh/flutter-dart-tu-co-ban-den-nang-cao/chapters/02-phan-2-navigation-va-state-management/lessons/07-bai-7-bloc-pattern-va-cubit.md +151 -0
  1221. package/content/series/lap-trinh/flutter-dart-tu-co-ban-den-nang-cao/chapters/02-phan-2-navigation-va-state-management/lessons/08-bai-8-forms-validation-va-theming.md +167 -0
  1222. package/content/series/lap-trinh/flutter-dart-tu-co-ban-den-nang-cao/chapters/03-phan-3-networking-va-data/lessons/09-bai-9-http-va-rest-api-integration.md +172 -0
  1223. package/content/series/lap-trinh/flutter-dart-tu-co-ban-den-nang-cao/chapters/03-phan-3-networking-va-data/lessons/10-bai-10-local-storage-va-offline-first.md +131 -0
  1224. package/content/series/lap-trinh/flutter-dart-tu-co-ban-den-nang-cao/chapters/03-phan-3-networking-va-data/lessons/11-bai-11-firebase-integration.md +118 -0
  1225. package/content/series/lap-trinh/flutter-dart-tu-co-ban-den-nang-cao/chapters/03-phan-3-networking-va-data/lessons/12-bai-12-authentication-va-authorization.md +155 -0
  1226. package/content/series/lap-trinh/flutter-dart-tu-co-ban-den-nang-cao/chapters/04-phan-4-advanced-ui-va-features/lessons/13-bai-13-animations-va-motion.md +203 -0
  1227. package/content/series/lap-trinh/flutter-dart-tu-co-ban-den-nang-cao/chapters/04-phan-4-advanced-ui-va-features/lessons/14-bai-14-custom-painting-va-advanced-widgets.md +177 -0
  1228. package/content/series/lap-trinh/flutter-dart-tu-co-ban-den-nang-cao/chapters/04-phan-4-advanced-ui-va-features/lessons/15-bai-15-platform-channels-va-native-integration.md +139 -0
  1229. package/content/series/lap-trinh/flutter-dart-tu-co-ban-den-nang-cao/chapters/04-phan-4-advanced-ui-va-features/lessons/16-bai-16-push-notifications-va-background-tasks.md +174 -0
  1230. package/content/series/lap-trinh/flutter-dart-tu-co-ban-den-nang-cao/chapters/05-phan-5-architecture-va-patterns/lessons/17-bai-17-clean-architecture-cho-flutter.md +159 -0
  1231. package/content/series/lap-trinh/flutter-dart-tu-co-ban-den-nang-cao/chapters/05-phan-5-architecture-va-patterns/lessons/18-bai-18-code-generation-va-freezed.md +130 -0
  1232. package/content/series/lap-trinh/flutter-dart-tu-co-ban-den-nang-cao/chapters/06-phan-6-testing-cicd-va-production/lessons/19-bai-19-testing-trong-flutter.md +173 -0
  1233. package/content/series/lap-trinh/flutter-dart-tu-co-ban-den-nang-cao/chapters/06-phan-6-testing-cicd-va-production/lessons/20-bai-20-performance-va-debugging.md +116 -0
  1234. package/content/series/lap-trinh/flutter-dart-tu-co-ban-den-nang-cao/chapters/06-phan-6-testing-cicd-va-production/lessons/21-bai-21-cicd-va-app-signing.md +173 -0
  1235. package/content/series/lap-trinh/flutter-dart-tu-co-ban-den-nang-cao/chapters/06-phan-6-testing-cicd-va-production/lessons/22-bai-22-publish-len-app-store-va-google-play.md +134 -0
  1236. package/content/series/lap-trinh/flutter-dart-tu-co-ban-den-nang-cao/index.md +350 -0
  1237. package/content/series/lap-trinh/golang-tu-co-ban-den-nang-cao/chapters/01-phan-1-go-fundamentals/lessons/01-bai-1-gioi-thieu-go-ngon-ngu-cua-cloud-native.md +397 -0
  1238. package/content/series/lap-trinh/golang-tu-co-ban-den-nang-cao/chapters/01-phan-1-go-fundamentals/lessons/02-bai-2-variables-types-va-control-flow.md +647 -0
  1239. package/content/series/lap-trinh/golang-tu-co-ban-den-nang-cao/chapters/01-phan-1-go-fundamentals/lessons/03-bai-3-functions-interfaces-va-error-handling.md +611 -0
  1240. package/content/series/lap-trinh/golang-tu-co-ban-den-nang-cao/chapters/01-phan-1-go-fundamentals/lessons/04-bai-4-generics-packages-va-modules.md +586 -0
  1241. package/content/series/lap-trinh/golang-tu-co-ban-den-nang-cao/chapters/02-phan-2-concurrency-networking/lessons/05-bai-5-goroutines-va-channels.md +536 -0
  1242. package/content/series/lap-trinh/golang-tu-co-ban-den-nang-cao/chapters/02-phan-2-concurrency-networking/lessons/06-bai-6-context-sync-va-concurrency-patterns.md +579 -0
  1243. package/content/series/lap-trinh/golang-tu-co-ban-den-nang-cao/chapters/02-phan-2-concurrency-networking/lessons/07-bai-7-http-server-va-json-handling.md +548 -0
  1244. package/content/series/lap-trinh/golang-tu-co-ban-den-nang-cao/chapters/02-phan-2-concurrency-networking/lessons/08-bai-8-gin-framework-va-rest-api.md +547 -0
  1245. package/content/series/lap-trinh/golang-tu-co-ban-den-nang-cao/chapters/03-phan-3-database-authentication/lessons/09-bai-9-gorm-va-database-integration.md +467 -0
  1246. package/content/series/lap-trinh/golang-tu-co-ban-den-nang-cao/chapters/03-phan-3-database-authentication/lessons/10-bai-10-migrations-va-repository-pattern.md +519 -0
  1247. package/content/series/lap-trinh/golang-tu-co-ban-den-nang-cao/chapters/03-phan-3-database-authentication/lessons/11-bai-11-authentication-jwt-va-oauth2.md +497 -0
  1248. package/content/series/lap-trinh/golang-tu-co-ban-den-nang-cao/chapters/03-phan-3-database-authentication/lessons/12-bai-12-authorization-security-va-middleware.md +366 -0
  1249. package/content/series/lap-trinh/golang-tu-co-ban-den-nang-cao/chapters/04-phan-4-advanced-features/lessons/13-bai-13-websockets-va-real-time.md +398 -0
  1250. package/content/series/lap-trinh/golang-tu-co-ban-den-nang-cao/chapters/04-phan-4-advanced-features/lessons/14-bai-14-grpc-va-protocol-buffers.md +524 -0
  1251. package/content/series/lap-trinh/golang-tu-co-ban-den-nang-cao/chapters/04-phan-4-advanced-features/lessons/15-bai-15-message-queues-va-event-driven.md +506 -0
  1252. package/content/series/lap-trinh/golang-tu-co-ban-den-nang-cao/chapters/04-phan-4-advanced-features/lessons/16-bai-16-caching-file-upload-va-performance.md +393 -0
  1253. package/content/series/lap-trinh/golang-tu-co-ban-den-nang-cao/chapters/05-phan-5-microservices-testing-production/lessons/17-bai-17-microservices-architecture-voi-go.md +365 -0
  1254. package/content/series/lap-trinh/golang-tu-co-ban-den-nang-cao/chapters/05-phan-5-microservices-testing-production/lessons/18-bai-18-testing-trong-go.md +442 -0
  1255. package/content/series/lap-trinh/golang-tu-co-ban-den-nang-cao/chapters/05-phan-5-microservices-testing-production/lessons/19-bai-19-docker-cicd-va-devops.md +391 -0
  1256. package/content/series/lap-trinh/golang-tu-co-ban-den-nang-cao/chapters/05-phan-5-microservices-testing-production/lessons/20-bai-20-production-deployment-va-observability.md +428 -0
  1257. package/content/series/lap-trinh/golang-tu-co-ban-den-nang-cao/index.md +323 -0
  1258. package/content/series/lap-trinh/laravel-tu-co-ban-den-nang-cao/chapters/01-phan-1-laravel-fundamentals/lessons/01-bai-1-gioi-thieu-laravel.md +110 -0
  1259. package/content/series/lap-trinh/laravel-tu-co-ban-den-nang-cao/chapters/01-phan-1-laravel-fundamentals/lessons/02-bai-2-routing-controllers-va-middleware.md +133 -0
  1260. package/content/series/lap-trinh/laravel-tu-co-ban-den-nang-cao/chapters/01-phan-1-laravel-fundamentals/lessons/03-bai-3-blade-templates-va-frontend.md +119 -0
  1261. package/content/series/lap-trinh/laravel-tu-co-ban-den-nang-cao/chapters/01-phan-1-laravel-fundamentals/lessons/04-bai-4-eloquent-orm-va-relationships.md +133 -0
  1262. package/content/series/lap-trinh/laravel-tu-co-ban-den-nang-cao/chapters/02-phan-2-database-va-validation/lessons/05-bai-5-migrations-seeding-va-query-builder.md +127 -0
  1263. package/content/series/lap-trinh/laravel-tu-co-ban-den-nang-cao/chapters/02-phan-2-database-va-validation/lessons/06-bai-6-validation-va-form-requests.md +118 -0
  1264. package/content/series/lap-trinh/laravel-tu-co-ban-den-nang-cao/chapters/02-phan-2-database-va-validation/lessons/07-bai-7-api-resources-va-response.md +116 -0
  1265. package/content/series/lap-trinh/laravel-tu-co-ban-den-nang-cao/chapters/02-phan-2-database-va-validation/lessons/08-bai-8-file-storage-va-media.md +111 -0
  1266. package/content/series/lap-trinh/laravel-tu-co-ban-den-nang-cao/chapters/03-phan-3-authentication-va-authorization/lessons/09-bai-9-authentication-sanctum-va-fortify.md +110 -0
  1267. package/content/series/lap-trinh/laravel-tu-co-ban-den-nang-cao/chapters/03-phan-3-authentication-va-authorization/lessons/10-bai-10-authorization-gates-va-policies.md +120 -0
  1268. package/content/series/lap-trinh/laravel-tu-co-ban-den-nang-cao/chapters/03-phan-3-authentication-va-authorization/lessons/11-bai-11-oauth2-passport-va-socialite.md +111 -0
  1269. package/content/series/lap-trinh/laravel-tu-co-ban-den-nang-cao/chapters/03-phan-3-authentication-va-authorization/lessons/12-bai-12-security-best-practices.md +99 -0
  1270. package/content/series/lap-trinh/laravel-tu-co-ban-den-nang-cao/chapters/04-phan-4-advanced-features/lessons/13-bai-13-queues-va-jobs.md +120 -0
  1271. package/content/series/lap-trinh/laravel-tu-co-ban-den-nang-cao/chapters/04-phan-4-advanced-features/lessons/14-bai-14-events-listeners-va-broadcasting.md +109 -0
  1272. package/content/series/lap-trinh/laravel-tu-co-ban-den-nang-cao/chapters/04-phan-4-advanced-features/lessons/15-bai-15-notifications-mail-va-scheduler.md +129 -0
  1273. package/content/series/lap-trinh/laravel-tu-co-ban-den-nang-cao/chapters/04-phan-4-advanced-features/lessons/16-bai-16-caching-sessions-va-performance.md +103 -0
  1274. package/content/series/lap-trinh/laravel-tu-co-ban-den-nang-cao/chapters/05-phan-5-modern-full-stack/lessons/17-bai-17-livewire-full-stack-components.md +130 -0
  1275. package/content/series/lap-trinh/laravel-tu-co-ban-den-nang-cao/chapters/05-phan-5-modern-full-stack/lessons/18-bai-18-inertiajs-va-vue-react.md +136 -0
  1276. package/content/series/lap-trinh/laravel-tu-co-ban-den-nang-cao/chapters/06-phan-6-testing-docker-va-production/lessons/19-bai-19-testing-trong-laravel.md +124 -0
  1277. package/content/series/lap-trinh/laravel-tu-co-ban-den-nang-cao/chapters/06-phan-6-testing-docker-va-production/lessons/20-bai-20-clean-architecture-va-packages.md +126 -0
  1278. package/content/series/lap-trinh/laravel-tu-co-ban-den-nang-cao/chapters/06-phan-6-testing-docker-va-production/lessons/21-bai-21-docker-va-cicd.md +138 -0
  1279. package/content/series/lap-trinh/laravel-tu-co-ban-den-nang-cao/chapters/06-phan-6-testing-docker-va-production/lessons/22-bai-22-production-deployment-va-monitoring.md +123 -0
  1280. package/content/series/lap-trinh/laravel-tu-co-ban-den-nang-cao/index.md +354 -0
  1281. package/content/series/lap-trinh/nestjs-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-nestjs/lessons/01-bai-1-gioi-thieu-nestjs-tai-sao-chon-nestjs.md +162 -0
  1282. package/content/series/lap-trinh/nestjs-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-nestjs/lessons/02-bai-2-typescript-essentials-cho-nestjs.md +298 -0
  1283. package/content/series/lap-trinh/nestjs-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-nestjs/lessons/03-bai-3-cai-dat-va-khoi-tao-nestjs-project.md +336 -0
  1284. package/content/series/lap-trinh/nestjs-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-nestjs/lessons/04-bai-4-controllers-va-routing-trong-nestjs.md +310 -0
  1285. package/content/series/lap-trinh/nestjs-tu-co-ban-den-nang-cao/chapters/02-phan-2-providers-di-data-layer/lessons/05-bai-5-providers-va-dependency-injection.md +279 -0
  1286. package/content/series/lap-trinh/nestjs-tu-co-ban-den-nang-cao/chapters/02-phan-2-providers-di-data-layer/lessons/06-bai-6-modules-to-chuc-code-theo-feature.md +258 -0
  1287. package/content/series/lap-trinh/nestjs-tu-co-ban-den-nang-cao/chapters/02-phan-2-providers-di-data-layer/lessons/07-bai-7-typeorm-va-prisma-ket-noi-database.md +381 -0
  1288. package/content/series/lap-trinh/nestjs-tu-co-ban-den-nang-cao/chapters/02-phan-2-providers-di-data-layer/lessons/08-bai-8-validation-pipes-va-exception-filters.md +307 -0
  1289. package/content/series/lap-trinh/nestjs-tu-co-ban-den-nang-cao/chapters/03-phan-3-auth-security/lessons/09-bai-9-authentication-voi-passport-va-jwt.md +343 -0
  1290. package/content/series/lap-trinh/nestjs-tu-co-ban-den-nang-cao/chapters/03-phan-3-auth-security/lessons/10-bai-10-guards-va-authorization-rbac.md +252 -0
  1291. package/content/series/lap-trinh/nestjs-tu-co-ban-den-nang-cao/chapters/03-phan-3-auth-security/lessons/11-bai-11-security-best-practices.md +207 -0
  1292. package/content/series/lap-trinh/nestjs-tu-co-ban-den-nang-cao/chapters/03-phan-3-auth-security/lessons/12-bai-12-session-cookies-va-oauth2.md +244 -0
  1293. package/content/series/lap-trinh/nestjs-tu-co-ban-den-nang-cao/chapters/04-phan-4-advanced-features/lessons/13-bai-13-interceptors-middleware-va-request-lifecycle.md +220 -0
  1294. package/content/series/lap-trinh/nestjs-tu-co-ban-den-nang-cao/chapters/04-phan-4-advanced-features/lessons/14-bai-14-websockets-va-real-time-communication.md +263 -0
  1295. package/content/series/lap-trinh/nestjs-tu-co-ban-den-nang-cao/chapters/04-phan-4-advanced-features/lessons/15-bai-15-graphql-voi-nestjs.md +262 -0
  1296. package/content/series/lap-trinh/nestjs-tu-co-ban-den-nang-cao/chapters/04-phan-4-advanced-features/lessons/16-bai-16-file-upload-caching-va-task-scheduling.md +302 -0
  1297. package/content/series/lap-trinh/nestjs-tu-co-ban-den-nang-cao/chapters/05-phan-5-microservices-testing-production/lessons/17-bai-17-nestjs-microservices.md +228 -0
  1298. package/content/series/lap-trinh/nestjs-tu-co-ban-den-nang-cao/chapters/05-phan-5-microservices-testing-production/lessons/18-bai-18-testing-trong-nestjs.md +310 -0
  1299. package/content/series/lap-trinh/nestjs-tu-co-ban-den-nang-cao/chapters/05-phan-5-microservices-testing-production/lessons/19-bai-19-dockerize-va-ci-cd-cho-nestjs.md +271 -0
  1300. package/content/series/lap-trinh/nestjs-tu-co-ban-den-nang-cao/chapters/05-phan-5-microservices-testing-production/lessons/20-bai-20-production-deployment-va-monitoring.md +352 -0
  1301. package/content/series/lap-trinh/nestjs-tu-co-ban-den-nang-cao/index.md +323 -0
  1302. package/content/series/lap-trinh/nodejs-core-tu-co-ban-den-nang-cao/chapters/01-phan-1-nodejs-internals/lessons/01-bai-1-nodejs-architecture-deep-dive.md +117 -0
  1303. package/content/series/lap-trinh/nodejs-core-tu-co-ban-den-nang-cao/chapters/01-phan-1-nodejs-internals/lessons/02-bai-2-event-loop-va-async-patterns.md +148 -0
  1304. package/content/series/lap-trinh/nodejs-core-tu-co-ban-den-nang-cao/chapters/01-phan-1-nodejs-internals/lessons/03-bai-3-module-system-va-package-management.md +129 -0
  1305. package/content/series/lap-trinh/nodejs-core-tu-co-ban-den-nang-cao/chapters/01-phan-1-nodejs-internals/lessons/04-bai-4-typescript-va-modern-javascript.md +147 -0
  1306. package/content/series/lap-trinh/nodejs-core-tu-co-ban-den-nang-cao/chapters/02-phan-2-core-modules-deep-dive/lessons/05-bai-5-file-system-va-path.md +131 -0
  1307. package/content/series/lap-trinh/nodejs-core-tu-co-ban-den-nang-cao/chapters/02-phan-2-core-modules-deep-dive/lessons/06-bai-6-streams-va-buffers.md +153 -0
  1308. package/content/series/lap-trinh/nodejs-core-tu-co-ban-den-nang-cao/chapters/02-phan-2-core-modules-deep-dive/lessons/07-bai-7-http-https-va-http2.md +147 -0
  1309. package/content/series/lap-trinh/nodejs-core-tu-co-ban-den-nang-cao/chapters/02-phan-2-core-modules-deep-dive/lessons/08-bai-8-crypto-os-va-process.md +143 -0
  1310. package/content/series/lap-trinh/nodejs-core-tu-co-ban-den-nang-cao/chapters/03-phan-3-concurrency-va-networking/lessons/09-bai-9-worker-threads-va-cpu-intensive.md +131 -0
  1311. package/content/series/lap-trinh/nodejs-core-tu-co-ban-den-nang-cao/chapters/03-phan-3-concurrency-va-networking/lessons/10-bai-10-cluster-module-va-load-balancing.md +135 -0
  1312. package/content/series/lap-trinh/nodejs-core-tu-co-ban-den-nang-cao/chapters/03-phan-3-concurrency-va-networking/lessons/11-bai-11-tcp-udp-va-websockets.md +160 -0
  1313. package/content/series/lap-trinh/nodejs-core-tu-co-ban-den-nang-cao/chapters/03-phan-3-concurrency-va-networking/lessons/12-bai-12-events-timers-va-diagnostics.md +151 -0
  1314. package/content/series/lap-trinh/nodejs-core-tu-co-ban-den-nang-cao/chapters/04-phan-4-building-without-frameworks/lessons/13-bai-13-xay-dung-http-framework-tu-scratch.md +185 -0
  1315. package/content/series/lap-trinh/nodejs-core-tu-co-ban-den-nang-cao/chapters/04-phan-4-building-without-frameworks/lessons/14-bai-14-database-drivers-va-connection-pooling.md +153 -0
  1316. package/content/series/lap-trinh/nodejs-core-tu-co-ban-den-nang-cao/chapters/04-phan-4-building-without-frameworks/lessons/15-bai-15-caching-queues-va-background-jobs.md +146 -0
  1317. package/content/series/lap-trinh/nodejs-core-tu-co-ban-den-nang-cao/chapters/04-phan-4-building-without-frameworks/lessons/16-bai-16-native-addons-va-napi.md +139 -0
  1318. package/content/series/lap-trinh/nodejs-core-tu-co-ban-den-nang-cao/chapters/05-phan-5-testing-performance-va-production/lessons/17-bai-17-testing-nodejs-applications.md +173 -0
  1319. package/content/series/lap-trinh/nodejs-core-tu-co-ban-den-nang-cao/chapters/05-phan-5-testing-performance-va-production/lessons/18-bai-18-performance-profiling-va-optimization.md +122 -0
  1320. package/content/series/lap-trinh/nodejs-core-tu-co-ban-den-nang-cao/chapters/05-phan-5-testing-performance-va-production/lessons/19-bai-19-docker-va-cicd.md +169 -0
  1321. package/content/series/lap-trinh/nodejs-core-tu-co-ban-den-nang-cao/chapters/05-phan-5-testing-performance-va-production/lessons/20-bai-20-production-monitoring-va-scaling.md +184 -0
  1322. package/content/series/lap-trinh/nodejs-core-tu-co-ban-den-nang-cao/index.md +321 -0
  1323. package/content/series/lap-trinh/python-fastapi-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-python-fastapi/lessons/01-bai-1-gioi-thieu-fastapi-framework-python-hien-dai-nhat.md +222 -0
  1324. package/content/series/lap-trinh/python-fastapi-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-python-fastapi/lessons/02-bai-2-python-essentials-cho-fastapi.md +398 -0
  1325. package/content/series/lap-trinh/python-fastapi-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-python-fastapi/lessons/03-bai-3-cai-dat-va-khoi-tao-fastapi-project.md +412 -0
  1326. package/content/series/lap-trinh/python-fastapi-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-python-fastapi/lessons/04-bai-4-path-operations-request-va-response.md +485 -0
  1327. package/content/series/lap-trinh/python-fastapi-tu-co-ban-den-nang-cao/chapters/02-phan-2-pydantic-database-orm/lessons/05-bai-5-pydantic-v2-data-validation-va-serialization.md +466 -0
  1328. package/content/series/lap-trinh/python-fastapi-tu-co-ban-den-nang-cao/chapters/02-phan-2-pydantic-database-orm/lessons/06-bai-6-sqlalchemy-2-va-async-database.md +412 -0
  1329. package/content/series/lap-trinh/python-fastapi-tu-co-ban-den-nang-cao/chapters/02-phan-2-pydantic-database-orm/lessons/07-bai-7-alembic-migrations-va-database-seeding.md +417 -0
  1330. package/content/series/lap-trinh/python-fastapi-tu-co-ban-den-nang-cao/chapters/02-phan-2-pydantic-database-orm/lessons/08-bai-8-crud-operations-va-repository-pattern.md +487 -0
  1331. package/content/series/lap-trinh/python-fastapi-tu-co-ban-den-nang-cao/chapters/03-phan-3-authentication-security/lessons/09-bai-9-authentication-voi-oauth2-va-jwt.md +415 -0
  1332. package/content/series/lap-trinh/python-fastapi-tu-co-ban-den-nang-cao/chapters/03-phan-3-authentication-security/lessons/10-bai-10-authorization-rbac-va-permissions.md +313 -0
  1333. package/content/series/lap-trinh/python-fastapi-tu-co-ban-den-nang-cao/chapters/03-phan-3-authentication-security/lessons/11-bai-11-security-best-practices.md +255 -0
  1334. package/content/series/lap-trinh/python-fastapi-tu-co-ban-den-nang-cao/chapters/03-phan-3-authentication-security/lessons/12-bai-12-social-login-va-oauth2-providers.md +338 -0
  1335. package/content/series/lap-trinh/python-fastapi-tu-co-ban-den-nang-cao/chapters/04-phan-4-advanced-features/lessons/13-bai-13-middleware-events-va-lifespan.md +239 -0
  1336. package/content/series/lap-trinh/python-fastapi-tu-co-ban-den-nang-cao/chapters/04-phan-4-advanced-features/lessons/14-bai-14-websockets-va-real-time-communication.md +318 -0
  1337. package/content/series/lap-trinh/python-fastapi-tu-co-ban-den-nang-cao/chapters/04-phan-4-advanced-features/lessons/15-bai-15-background-tasks-celery-va-task-queues.md +331 -0
  1338. package/content/series/lap-trinh/python-fastapi-tu-co-ban-den-nang-cao/chapters/04-phan-4-advanced-features/lessons/16-bai-16-file-upload-caching-va-async-deep-dive.md +358 -0
  1339. package/content/series/lap-trinh/python-fastapi-tu-co-ban-den-nang-cao/chapters/05-phan-5-architecture-testing-production/lessons/17-bai-17-clean-architecture-va-project-structure.md +349 -0
  1340. package/content/series/lap-trinh/python-fastapi-tu-co-ban-den-nang-cao/chapters/05-phan-5-architecture-testing-production/lessons/18-bai-18-testing-trong-fastapi.md +488 -0
  1341. package/content/series/lap-trinh/python-fastapi-tu-co-ban-den-nang-cao/chapters/05-phan-5-architecture-testing-production/lessons/19-bai-19-dockerize-va-cicd-cho-fastapi.md +464 -0
  1342. package/content/series/lap-trinh/python-fastapi-tu-co-ban-den-nang-cao/chapters/05-phan-5-architecture-testing-production/lessons/20-bai-20-production-deployment-va-monitoring.md +517 -0
  1343. package/content/series/lap-trinh/python-fastapi-tu-co-ban-den-nang-cao/index.md +308 -0
  1344. package/content/series/lap-trinh/quarkus-microservices-tu-co-ban-den-production/chapters/01-phan-1-nen-tang-quarkus/lessons/01-bai-1-quarkus-la-gi.md +377 -0
  1345. package/content/series/lap-trinh/quarkus-microservices-tu-co-ban-den-production/chapters/01-phan-1-nen-tang-quarkus/lessons/02-bai-2-tao-quarkus-project.md +376 -0
  1346. package/content/series/lap-trinh/quarkus-microservices-tu-co-ban-den-production/chapters/01-phan-1-nen-tang-quarkus/lessons/03-bai-3-quarkus-rest.md +349 -0
  1347. package/content/series/lap-trinh/quarkus-microservices-tu-co-ban-den-production/chapters/01-phan-1-nen-tang-quarkus/lessons/04-bai-4-postgresql-panache.md +422 -0
  1348. package/content/series/lap-trinh/quarkus-microservices-tu-co-ban-den-production/chapters/01-phan-1-nen-tang-quarkus/lessons/05-bai-5-validation-error-handling.md +758 -0
  1349. package/content/series/lap-trinh/quarkus-microservices-tu-co-ban-den-production/chapters/02-phan-2-thiet-ke-microservices/lessons/06-bai-6-ddd-database-per-service.md +631 -0
  1350. package/content/series/lap-trinh/quarkus-microservices-tu-co-ban-den-production/chapters/02-phan-2-thiet-ke-microservices/lessons/07-bai-7-product-service.md +469 -0
  1351. package/content/series/lap-trinh/quarkus-microservices-tu-co-ban-den-production/chapters/02-phan-2-thiet-ke-microservices/lessons/08-bai-8-order-service.md +443 -0
  1352. package/content/series/lap-trinh/quarkus-microservices-tu-co-ban-den-production/chapters/02-phan-2-thiet-ke-microservices/lessons/09-bai-9-payment-notification-service.md +542 -0
  1353. package/content/series/lap-trinh/quarkus-microservices-tu-co-ban-den-production/chapters/03-phan-3-security-keycloak/lessons/10-bai-10-keycloak-setup.md +571 -0
  1354. package/content/series/lap-trinh/quarkus-microservices-tu-co-ban-den-production/chapters/03-phan-3-security-keycloak/lessons/11-bai-11-oidc-authentication.md +592 -0
  1355. package/content/series/lap-trinh/quarkus-microservices-tu-co-ban-den-production/chapters/03-phan-3-security-keycloak/lessons/12-bai-12-rbac-admin-client.md +1900 -0
  1356. package/content/series/lap-trinh/quarkus-microservices-tu-co-ban-den-production/chapters/04-phan-4-inter-service-communication/lessons/13-bai-13-rest-client.md +529 -0
  1357. package/content/series/lap-trinh/quarkus-microservices-tu-co-ban-den-production/chapters/04-phan-4-inter-service-communication/lessons/14-bai-14-grpc.md +394 -0
  1358. package/content/series/lap-trinh/quarkus-microservices-tu-co-ban-den-production/chapters/04-phan-4-inter-service-communication/lessons/15-bai-15-kafka-event-driven.md +402 -0
  1359. package/content/series/lap-trinh/quarkus-microservices-tu-co-ban-den-production/chapters/05-phan-5-resilience-observability/lessons/16-bai-16-fault-tolerance.md +472 -0
  1360. package/content/series/lap-trinh/quarkus-microservices-tu-co-ban-den-production/chapters/05-phan-5-resilience-observability/lessons/17-bai-17-opentelemetry.md +348 -0
  1361. package/content/series/lap-trinh/quarkus-microservices-tu-co-ban-den-production/chapters/05-phan-5-resilience-observability/lessons/18-bai-18-caching-health-gateway.md +387 -0
  1362. package/content/series/lap-trinh/quarkus-microservices-tu-co-ban-den-production/chapters/06-phan-6-testing/lessons/19-bai-19-quarkustest-testcontainers.md +414 -0
  1363. package/content/series/lap-trinh/quarkus-microservices-tu-co-ban-den-production/chapters/06-phan-6-testing/lessons/20-bai-20-contract-testing-pact.md +678 -0
  1364. package/content/series/lap-trinh/quarkus-microservices-tu-co-ban-den-production/chapters/07-phan-7-deployment-production/lessons/21-bai-21-graalvm-native-container.md +419 -0
  1365. package/content/series/lap-trinh/quarkus-microservices-tu-co-ban-den-production/chapters/07-phan-7-deployment-production/lessons/22-bai-22-kubernetes-cicd.md +603 -0
  1366. package/content/series/lap-trinh/quarkus-microservices-tu-co-ban-den-production/index.md +381 -0
  1367. package/content/series/lap-trinh/react-nextjs-tu-co-ban-den-nang-cao/chapters/01-phan-1-react-fundamentals/lessons/01-bai-1-gioi-thieu-react.md +169 -0
  1368. package/content/series/lap-trinh/react-nextjs-tu-co-ban-den-nang-cao/chapters/01-phan-1-react-fundamentals/lessons/02-bai-2-components-props-va-typescript.md +234 -0
  1369. package/content/series/lap-trinh/react-nextjs-tu-co-ban-den-nang-cao/chapters/01-phan-1-react-fundamentals/lessons/03-bai-3-hooks-deep-dive.md +318 -0
  1370. package/content/series/lap-trinh/react-nextjs-tu-co-ban-den-nang-cao/chapters/01-phan-1-react-fundamentals/lessons/04-bai-4-event-handling-forms-va-conditional-rendering.md +243 -0
  1371. package/content/series/lap-trinh/react-nextjs-tu-co-ban-den-nang-cao/chapters/02-phan-2-react-advanced-va-state-management/lessons/05-bai-5-context-api-va-state-management.md +230 -0
  1372. package/content/series/lap-trinh/react-nextjs-tu-co-ban-den-nang-cao/chapters/02-phan-2-react-advanced-va-state-management/lessons/06-bai-6-react-patterns-va-performance.md +164 -0
  1373. package/content/series/lap-trinh/react-nextjs-tu-co-ban-den-nang-cao/chapters/02-phan-2-react-advanced-va-state-management/lessons/07-bai-7-styling-va-ui-components.md +200 -0
  1374. package/content/series/lap-trinh/react-nextjs-tu-co-ban-den-nang-cao/chapters/03-phan-3-nextjs-fundamentals/lessons/08-bai-8-nextjs-va-app-router.md +204 -0
  1375. package/content/series/lap-trinh/react-nextjs-tu-co-ban-den-nang-cao/chapters/03-phan-3-nextjs-fundamentals/lessons/09-bai-9-server-components-va-client-components.md +161 -0
  1376. package/content/series/lap-trinh/react-nextjs-tu-co-ban-den-nang-cao/chapters/03-phan-3-nextjs-fundamentals/lessons/10-bai-10-data-fetching-va-caching.md +169 -0
  1377. package/content/series/lap-trinh/react-nextjs-tu-co-ban-den-nang-cao/chapters/03-phan-3-nextjs-fundamentals/lessons/11-bai-11-server-actions-va-mutations.md +196 -0
  1378. package/content/series/lap-trinh/react-nextjs-tu-co-ban-den-nang-cao/chapters/04-phan-4-nextjs-advanced/lessons/12-bai-12-authentication-voi-nextauthjs.md +203 -0
  1379. package/content/series/lap-trinh/react-nextjs-tu-co-ban-den-nang-cao/chapters/04-phan-4-nextjs-advanced/lessons/13-bai-13-middleware-api-routes-va-route-handlers.md +214 -0
  1380. package/content/series/lap-trinh/react-nextjs-tu-co-ban-den-nang-cao/chapters/04-phan-4-nextjs-advanced/lessons/14-bai-14-database-integration-va-prisma.md +226 -0
  1381. package/content/series/lap-trinh/react-nextjs-tu-co-ban-den-nang-cao/chapters/04-phan-4-nextjs-advanced/lessons/15-bai-15-internationalization-va-seo.md +203 -0
  1382. package/content/series/lap-trinh/react-nextjs-tu-co-ban-den-nang-cao/chapters/05-phan-5-full-stack-features/lessons/16-bai-16-file-upload-va-image-optimization.md +195 -0
  1383. package/content/series/lap-trinh/react-nextjs-tu-co-ban-den-nang-cao/chapters/05-phan-5-full-stack-features/lessons/17-bai-17-real-time-va-websockets.md +234 -0
  1384. package/content/series/lap-trinh/react-nextjs-tu-co-ban-den-nang-cao/chapters/05-phan-5-full-stack-features/lessons/18-bai-18-email-payment-va-third-party.md +201 -0
  1385. package/content/series/lap-trinh/react-nextjs-tu-co-ban-den-nang-cao/chapters/06-phan-6-testing-deployment-production/lessons/19-bai-19-testing-react-va-nextjs.md +182 -0
  1386. package/content/series/lap-trinh/react-nextjs-tu-co-ban-den-nang-cao/chapters/06-phan-6-testing-deployment-production/lessons/20-bai-20-performance-optimization.md +168 -0
  1387. package/content/series/lap-trinh/react-nextjs-tu-co-ban-den-nang-cao/chapters/06-phan-6-testing-deployment-production/lessons/21-bai-21-docker-va-cicd.md +197 -0
  1388. package/content/series/lap-trinh/react-nextjs-tu-co-ban-den-nang-cao/chapters/06-phan-6-testing-deployment-production/lessons/22-bai-22-production-best-practices-va-monitoring.md +236 -0
  1389. package/content/series/lap-trinh/react-nextjs-tu-co-ban-den-nang-cao/index.md +348 -0
  1390. package/content/series/lap-trinh/rust-tu-co-ban-den-nang-cao/chapters/01-phan-1-rust-fundamentals/lessons/01-bai-1-gioi-thieu-rust.md +104 -0
  1391. package/content/series/lap-trinh/rust-tu-co-ban-den-nang-cao/chapters/01-phan-1-rust-fundamentals/lessons/02-bai-2-variables-types-va-control-flow.md +141 -0
  1392. package/content/series/lap-trinh/rust-tu-co-ban-den-nang-cao/chapters/01-phan-1-rust-fundamentals/lessons/03-bai-3-ownership-borrowing-va-lifetimes.md +141 -0
  1393. package/content/series/lap-trinh/rust-tu-co-ban-den-nang-cao/chapters/01-phan-1-rust-fundamentals/lessons/04-bai-4-structs-enums-va-pattern-matching.md +191 -0
  1394. package/content/series/lap-trinh/rust-tu-co-ban-den-nang-cao/chapters/02-phan-2-advanced-rust/lessons/05-bai-5-traits-va-generics.md +154 -0
  1395. package/content/series/lap-trinh/rust-tu-co-ban-den-nang-cao/chapters/02-phan-2-advanced-rust/lessons/06-bai-6-closures-iterators-va-collections.md +126 -0
  1396. package/content/series/lap-trinh/rust-tu-co-ban-den-nang-cao/chapters/02-phan-2-advanced-rust/lessons/07-bai-7-error-handling-va-modules.md +154 -0
  1397. package/content/series/lap-trinh/rust-tu-co-ban-den-nang-cao/chapters/02-phan-2-advanced-rust/lessons/08-bai-8-smart-pointers-va-concurrency.md +153 -0
  1398. package/content/series/lap-trinh/rust-tu-co-ban-den-nang-cao/chapters/03-phan-3-async-rust-va-web-development/lessons/09-bai-9-async-rust-va-tokio.md +139 -0
  1399. package/content/series/lap-trinh/rust-tu-co-ban-den-nang-cao/chapters/03-phan-3-async-rust-va-web-development/lessons/10-bai-10-axum-framework-va-rest-api.md +154 -0
  1400. package/content/series/lap-trinh/rust-tu-co-ban-den-nang-cao/chapters/03-phan-3-async-rust-va-web-development/lessons/11-bai-11-sqlx-va-database-integration.md +140 -0
  1401. package/content/series/lap-trinh/rust-tu-co-ban-den-nang-cao/chapters/03-phan-3-async-rust-va-web-development/lessons/12-bai-12-authentication-va-authorization.md +164 -0
  1402. package/content/series/lap-trinh/rust-tu-co-ban-den-nang-cao/chapters/04-phan-4-advanced-backend/lessons/13-bai-13-websockets-va-real-time.md +147 -0
  1403. package/content/series/lap-trinh/rust-tu-co-ban-den-nang-cao/chapters/04-phan-4-advanced-backend/lessons/14-bai-14-grpc-voi-tonic.md +134 -0
  1404. package/content/series/lap-trinh/rust-tu-co-ban-den-nang-cao/chapters/04-phan-4-advanced-backend/lessons/15-bai-15-message-queues-va-background-jobs.md +147 -0
  1405. package/content/series/lap-trinh/rust-tu-co-ban-den-nang-cao/chapters/04-phan-4-advanced-backend/lessons/16-bai-16-caching-cli-tools-va-macros.md +174 -0
  1406. package/content/series/lap-trinh/rust-tu-co-ban-den-nang-cao/chapters/05-phan-5-webassembly-va-systems/lessons/17-bai-17-webassembly-voi-rust.md +156 -0
  1407. package/content/series/lap-trinh/rust-tu-co-ban-den-nang-cao/chapters/05-phan-5-webassembly-va-systems/lessons/18-bai-18-ffi-va-unsafe-rust.md +177 -0
  1408. package/content/series/lap-trinh/rust-tu-co-ban-den-nang-cao/chapters/06-phan-6-testing-cicd-va-production/lessons/19-bai-19-testing-va-benchmarking.md +142 -0
  1409. package/content/series/lap-trinh/rust-tu-co-ban-den-nang-cao/chapters/06-phan-6-testing-cicd-va-production/lessons/20-bai-20-docker-va-cicd-cho-rust.md +153 -0
  1410. package/content/series/lap-trinh/rust-tu-co-ban-den-nang-cao/chapters/06-phan-6-testing-cicd-va-production/lessons/21-bai-21-observability-va-monitoring.md +141 -0
  1411. package/content/series/lap-trinh/rust-tu-co-ban-den-nang-cao/chapters/06-phan-6-testing-cicd-va-production/lessons/22-bai-22-production-deployment-va-performance-tuning.md +157 -0
  1412. package/content/series/lap-trinh/rust-tu-co-ban-den-nang-cao/index.md +350 -0
  1413. package/content/series/lap-trinh/spring-boot-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-spring-boot/lessons/02-bai-1-spring-boot-la-gi.md +263 -0
  1414. package/content/series/lap-trinh/spring-boot-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-spring-boot/lessons/03-bai-2-cai-dat-moi-truong-va-khoi-tao-project.md +472 -0
  1415. package/content/series/lap-trinh/spring-boot-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-spring-boot/lessons/04-bai-3-auto-configuration-ioc-container.md +442 -0
  1416. package/content/series/lap-trinh/spring-boot-tu-co-ban-den-nang-cao/chapters/01-phan-1-nen-tang-spring-boot/lessons/05-bai-4-dependency-injection-bean-lifecycle.md +430 -0
  1417. package/content/series/lap-trinh/spring-boot-tu-co-ban-den-nang-cao/chapters/02-phan-2-xay-dung-rest-api/lessons/02-bai-5-rest-api-foundations.md +387 -0
  1418. package/content/series/lap-trinh/spring-boot-tu-co-ban-den-nang-cao/chapters/02-phan-2-xay-dung-rest-api/lessons/03-bai-6-dto-validation-exception-handling.md +412 -0
  1419. package/content/series/lap-trinh/spring-boot-tu-co-ban-den-nang-cao/chapters/02-phan-2-xay-dung-rest-api/lessons/04-bai-7-spring-data-jpa-entity-repository.md +399 -0
  1420. package/content/series/lap-trinh/spring-boot-tu-co-ban-den-nang-cao/chapters/02-phan-2-xay-dung-rest-api/lessons/05-bai-8-quan-he-entity-pagination-specification.md +415 -0
  1421. package/content/series/lap-trinh/spring-boot-tu-co-ban-den-nang-cao/chapters/03-phan-3-bao-mat-ung-dung/lessons/02-bai-9-spring-security-fundamentals.md +313 -0
  1422. package/content/series/lap-trinh/spring-boot-tu-co-ban-den-nang-cao/chapters/03-phan-3-bao-mat-ung-dung/lessons/03-bai-10-jwt-authentication.md +400 -0
  1423. package/content/series/lap-trinh/spring-boot-tu-co-ban-den-nang-cao/chapters/03-phan-3-bao-mat-ung-dung/lessons/04-bai-11-oauth2-openid-connect.md +306 -0
  1424. package/content/series/lap-trinh/spring-boot-tu-co-ban-den-nang-cao/chapters/03-phan-3-bao-mat-ung-dung/lessons/05-bai-12-method-security-cors-csrf.md +261 -0
  1425. package/content/series/lap-trinh/spring-boot-tu-co-ban-den-nang-cao/chapters/04-phan-4-tinh-nang-nang-cao/lessons/02-bai-13-transaction-management-caching.md +281 -0
  1426. package/content/series/lap-trinh/spring-boot-tu-co-ban-den-nang-cao/chapters/04-phan-4-tinh-nang-nang-cao/lessons/03-bai-14-async-scheduling-events.md +301 -0
  1427. package/content/series/lap-trinh/spring-boot-tu-co-ban-den-nang-cao/chapters/04-phan-4-tinh-nang-nang-cao/lessons/04-bai-15-file-upload-email-websocket.md +312 -0
  1428. package/content/series/lap-trinh/spring-boot-tu-co-ban-den-nang-cao/chapters/04-phan-4-tinh-nang-nang-cao/lessons/05-bai-16-openapi-hateoas.md +271 -0
  1429. package/content/series/lap-trinh/spring-boot-tu-co-ban-den-nang-cao/chapters/05-phan-5-testing-chat-luong-code/lessons/02-bai-17-unit-testing-junit5-mockito.md +275 -0
  1430. package/content/series/lap-trinh/spring-boot-tu-co-ban-den-nang-cao/chapters/05-phan-5-testing-chat-luong-code/lessons/03-bai-18-integration-testing-testcontainers.md +297 -0
  1431. package/content/series/lap-trinh/spring-boot-tu-co-ban-den-nang-cao/chapters/05-phan-5-testing-chat-luong-code/lessons/04-bai-19-api-testing-mockmvc-webtestclient.md +258 -0
  1432. package/content/series/lap-trinh/spring-boot-tu-co-ban-den-nang-cao/chapters/05-phan-5-testing-chat-luong-code/lessons/05-bai-20-actuator-micrometer-observability.md +338 -0
  1433. package/content/series/lap-trinh/spring-boot-tu-co-ban-den-nang-cao/chapters/06-phan-6-microservices-production/lessons/02-bai-21-docker-containerization.md +240 -0
  1434. package/content/series/lap-trinh/spring-boot-tu-co-ban-den-nang-cao/chapters/06-phan-6-microservices-production/lessons/03-bai-22-microservices-service-discovery-api-gateway.md +317 -0
  1435. package/content/series/lap-trinh/spring-boot-tu-co-ban-den-nang-cao/chapters/06-phan-6-microservices-production/lessons/04-bai-23-kafka-rabbitmq-event-driven.md +325 -0
  1436. package/content/series/lap-trinh/spring-boot-tu-co-ban-den-nang-cao/chapters/06-phan-6-microservices-production/lessons/05-bai-24-cicd-cloud-deployment-production.md +416 -0
  1437. package/content/series/lap-trinh/spring-boot-tu-co-ban-den-nang-cao/index.md +322 -0
  1438. package/content/series/lap-trinh/vibe-coding-voi-github-copilot/chapters/01-phan-1-nen-tang-vibe-coding-github-copilot/lessons/01-bai-1-vibe-coding-la-gi-ky-nguyen-moi-cua-lap-trinh-voi-ai.md +251 -0
  1439. package/content/series/lap-trinh/vibe-coding-voi-github-copilot/chapters/01-phan-1-nen-tang-vibe-coding-github-copilot/lessons/02-bai-2-cai-dat-va-cau-hinh-github-copilot-trong-vs-code.md +321 -0
  1440. package/content/series/lap-trinh/vibe-coding-voi-github-copilot/chapters/01-phan-1-nen-tang-vibe-coding-github-copilot/lessons/03-bai-3-inline-suggestions-va-next-edit-suggestions.md +290 -0
  1441. package/content/series/lap-trinh/vibe-coding-voi-github-copilot/chapters/01-phan-1-nen-tang-vibe-coding-github-copilot/lessons/04-bai-4-inline-chat-va-smart-actions.md +269 -0
  1442. package/content/series/lap-trinh/vibe-coding-voi-github-copilot/chapters/02-phan-2-agent-mode/lessons/05-bai-5-agent-mode-de-ai-tu-viet-code-cho-ban.md +294 -0
  1443. package/content/series/lap-trinh/vibe-coding-voi-github-copilot/chapters/02-phan-2-agent-mode/lessons/06-bai-6-plan-agent-lap-ke-hoach-truoc-khi-code.md +244 -0
  1444. package/content/series/lap-trinh/vibe-coding-voi-github-copilot/chapters/02-phan-2-agent-mode/lessons/07-bai-7-cloud-agent-va-copilot-cli.md +273 -0
  1445. package/content/series/lap-trinh/vibe-coding-voi-github-copilot/chapters/03-phan-3-prompt-engineering-cho-code/lessons/08-bai-8-nghe-thuat-viet-prompt-cho-code.md +307 -0
  1446. package/content/series/lap-trinh/vibe-coding-voi-github-copilot/chapters/03-phan-3-prompt-engineering-cho-code/lessons/09-bai-9-context-management-cung-cap-ngu-canh-cho-ai.md +207 -0
  1447. package/content/series/lap-trinh/vibe-coding-voi-github-copilot/chapters/03-phan-3-prompt-engineering-cho-code/lessons/10-bai-10-prompt-patterns-nang-cao.md +270 -0
  1448. package/content/series/lap-trinh/vibe-coding-voi-github-copilot/chapters/04-phan-4-customize-va-extend-copilot/lessons/11-bai-11-custom-instructions-day-ai-theo-coding-style-cua-ban.md +223 -0
  1449. package/content/series/lap-trinh/vibe-coding-voi-github-copilot/chapters/04-phan-4-customize-va-extend-copilot/lessons/12-bai-12-custom-agents-va-agent-skills.md +312 -0
  1450. package/content/series/lap-trinh/vibe-coding-voi-github-copilot/chapters/04-phan-4-customize-va-extend-copilot/lessons/13-bai-13-mcp-servers-ket-noi-ai-voi-the-gioi-ben-ngoai.md +279 -0
  1451. package/content/series/lap-trinh/vibe-coding-voi-github-copilot/chapters/05-phan-5-vibe-coding-thuc-chien/lessons/14-bai-14-vibe-coding-full-stack-app-phan-1-backend.md +500 -0
  1452. package/content/series/lap-trinh/vibe-coding-voi-github-copilot/chapters/05-phan-5-vibe-coding-thuc-chien/lessons/15-bai-15-vibe-coding-full-stack-app-phan-2-frontend.md +429 -0
  1453. package/content/series/lap-trinh/vibe-coding-voi-github-copilot/chapters/05-phan-5-vibe-coding-thuc-chien/lessons/16-bai-16-vibe-coding-cho-mobile-va-cross-platform.md +366 -0
  1454. package/content/series/lap-trinh/vibe-coding-voi-github-copilot/chapters/06-phan-6-vibe-coding-chuyen-nghiep/lessons/17-bai-17-code-quality-va-review-vibe-coding-co-trach-nhiem.md +301 -0
  1455. package/content/series/lap-trinh/vibe-coding-voi-github-copilot/chapters/06-phan-6-vibe-coding-chuyen-nghiep/lessons/18-bai-18-security-trong-vibe-coding.md +371 -0
  1456. package/content/series/lap-trinh/vibe-coding-voi-github-copilot/chapters/06-phan-6-vibe-coding-chuyen-nghiep/lessons/19-bai-19-technical-debt-va-maintainability.md +301 -0
  1457. package/content/series/lap-trinh/vibe-coding-voi-github-copilot/chapters/06-phan-6-vibe-coding-chuyen-nghiep/lessons/20-bai-20-vibe-coding-trong-team-va-production.md +435 -0
  1458. package/content/series/lap-trinh/vibe-coding-voi-github-copilot/index.md +322 -0
  1459. package/content/series/lap-trinh/vuejs-nuxt-tu-co-ban-den-nang-cao/chapters/01-phan-1-vuejs-fundamentals/lessons/01-bai-1-gioi-thieu-vuejs.md +154 -0
  1460. package/content/series/lap-trinh/vuejs-nuxt-tu-co-ban-den-nang-cao/chapters/01-phan-1-vuejs-fundamentals/lessons/02-bai-2-reactivity-system-va-composition-api.md +195 -0
  1461. package/content/series/lap-trinh/vuejs-nuxt-tu-co-ban-den-nang-cao/chapters/01-phan-1-vuejs-fundamentals/lessons/03-bai-3-components-props-va-events.md +209 -0
  1462. package/content/series/lap-trinh/vuejs-nuxt-tu-co-ban-den-nang-cao/chapters/01-phan-1-vuejs-fundamentals/lessons/04-bai-4-directives-rendering-va-template-refs.md +182 -0
  1463. package/content/series/lap-trinh/vuejs-nuxt-tu-co-ban-den-nang-cao/chapters/02-phan-2-vue-ecosystem/lessons/05-bai-5-vue-router-deep-dive.md +164 -0
  1464. package/content/series/lap-trinh/vuejs-nuxt-tu-co-ban-den-nang-cao/chapters/02-phan-2-vue-ecosystem/lessons/06-bai-6-state-management-voi-pinia.md +177 -0
  1465. package/content/series/lap-trinh/vuejs-nuxt-tu-co-ban-den-nang-cao/chapters/02-phan-2-vue-ecosystem/lessons/07-bai-7-composables-va-reusable-logic.md +186 -0
  1466. package/content/series/lap-trinh/vuejs-nuxt-tu-co-ban-den-nang-cao/chapters/02-phan-2-vue-ecosystem/lessons/08-bai-8-forms-validation-va-styling.md +178 -0
  1467. package/content/series/lap-trinh/vuejs-nuxt-tu-co-ban-den-nang-cao/chapters/03-phan-3-nuxt-3-fundamentals/lessons/09-bai-9-nuxt-3-va-file-based-routing.md +187 -0
  1468. package/content/series/lap-trinh/vuejs-nuxt-tu-co-ban-den-nang-cao/chapters/03-phan-3-nuxt-3-fundamentals/lessons/10-bai-10-data-fetching-va-ssr.md +149 -0
  1469. package/content/series/lap-trinh/vuejs-nuxt-tu-co-ban-den-nang-cao/chapters/03-phan-3-nuxt-3-fundamentals/lessons/11-bai-11-nitro-server-engine-va-api-routes.md +189 -0
  1470. package/content/series/lap-trinh/vuejs-nuxt-tu-co-ban-den-nang-cao/chapters/03-phan-3-nuxt-3-fundamentals/lessons/12-bai-12-middleware-plugins-va-modules.md +178 -0
  1471. package/content/series/lap-trinh/vuejs-nuxt-tu-co-ban-den-nang-cao/chapters/04-phan-4-nuxt-advanced-va-full-stack/lessons/13-bai-13-authentication-va-authorization.md +173 -0
  1472. package/content/series/lap-trinh/vuejs-nuxt-tu-co-ban-den-nang-cao/chapters/04-phan-4-nuxt-advanced-va-full-stack/lessons/14-bai-14-database-va-orm-trong-nuxt.md +173 -0
  1473. package/content/series/lap-trinh/vuejs-nuxt-tu-co-ban-den-nang-cao/chapters/04-phan-4-nuxt-advanced-va-full-stack/lessons/15-bai-15-file-upload-images-va-seo.md +158 -0
  1474. package/content/series/lap-trinh/vuejs-nuxt-tu-co-ban-den-nang-cao/chapters/04-phan-4-nuxt-advanced-va-full-stack/lessons/16-bai-16-real-time-websockets-va-i18n.md +176 -0
  1475. package/content/series/lap-trinh/vuejs-nuxt-tu-co-ban-den-nang-cao/chapters/05-phan-5-advanced-patterns/lessons/17-bai-17-animations-va-transitions.md +198 -0
  1476. package/content/series/lap-trinh/vuejs-nuxt-tu-co-ban-den-nang-cao/chapters/05-phan-5-advanced-patterns/lessons/18-bai-18-advanced-patterns-va-custom-module.md +184 -0
  1477. package/content/series/lap-trinh/vuejs-nuxt-tu-co-ban-den-nang-cao/chapters/06-phan-6-testing-deployment-production/lessons/19-bai-19-testing-vue-va-nuxt.md +207 -0
  1478. package/content/series/lap-trinh/vuejs-nuxt-tu-co-ban-den-nang-cao/chapters/06-phan-6-testing-deployment-production/lessons/20-bai-20-performance-optimization.md +206 -0
  1479. package/content/series/lap-trinh/vuejs-nuxt-tu-co-ban-den-nang-cao/chapters/06-phan-6-testing-deployment-production/lessons/21-bai-21-deployment-va-hosting.md +206 -0
  1480. package/content/series/lap-trinh/vuejs-nuxt-tu-co-ban-den-nang-cao/chapters/06-phan-6-testing-deployment-production/lessons/22-bai-22-production-monitoring-va-best-practices.md +244 -0
  1481. package/content/series/lap-trinh/vuejs-nuxt-tu-co-ban-den-nang-cao/index.md +347 -0
  1482. package/content/showcase/autox.md +141 -0
  1483. package/content/showcase/x-lms.md +118 -0
  1484. package/content/showcase/x-postgres-backup.md +96 -0
  1485. package/content/showcase/xclaw-app.md +66 -0
  1486. package/content/showcase/xclaw.md +80 -0
  1487. package/content/showcase/xdev-asia.md +102 -0
  1488. package/content/showcase/xdev-reader.md +68 -0
  1489. package/data/authors.json +8 -0
  1490. package/data/categories.json +98 -0
  1491. package/data/github-repos.json +44 -0
  1492. package/data/reviews.json +1 -0
  1493. package/data/settings.json +23 -0
  1494. package/data/tags.json +122 -0
  1495. package/dist/content-loader.d.ts +56 -0
  1496. package/dist/content-loader.d.ts.map +1 -0
  1497. package/dist/content-loader.js +331 -0
  1498. package/dist/content-loader.js.map +1 -0
  1499. package/dist/data/hipaa-safeguards.d.ts +28 -0
  1500. package/dist/data/hipaa-safeguards.d.ts.map +1 -0
  1501. package/dist/data/hipaa-safeguards.js +222 -0
  1502. package/dist/data/hipaa-safeguards.js.map +1 -0
  1503. package/dist/data/phi-classifier.d.ts +36 -0
  1504. package/dist/data/phi-classifier.d.ts.map +1 -0
  1505. package/dist/data/phi-classifier.js +115 -0
  1506. package/dist/data/phi-classifier.js.map +1 -0
  1507. package/dist/data/security-configs.d.ts +14 -0
  1508. package/dist/data/security-configs.d.ts.map +1 -0
  1509. package/dist/data/security-configs.js +507 -0
  1510. package/dist/data/security-configs.js.map +1 -0
  1511. package/dist/data/threat-patterns.d.ts +44 -0
  1512. package/dist/data/threat-patterns.d.ts.map +1 -0
  1513. package/dist/data/threat-patterns.js +177 -0
  1514. package/dist/data/threat-patterns.js.map +1 -0
  1515. package/dist/index.d.ts +3 -0
  1516. package/dist/index.d.ts.map +1 -0
  1517. package/dist/index.js +18 -0
  1518. package/dist/index.js.map +1 -0
  1519. package/dist/prompts/index.d.ts +3 -0
  1520. package/dist/prompts/index.d.ts.map +1 -0
  1521. package/dist/prompts/index.js +228 -0
  1522. package/dist/prompts/index.js.map +1 -0
  1523. package/dist/resources/index.d.ts +3 -0
  1524. package/dist/resources/index.d.ts.map +1 -0
  1525. package/dist/resources/index.js +218 -0
  1526. package/dist/resources/index.js.map +1 -0
  1527. package/dist/tools/index.d.ts +3 -0
  1528. package/dist/tools/index.d.ts.map +1 -0
  1529. package/dist/tools/index.js +684 -0
  1530. package/dist/tools/index.js.map +1 -0
  1531. package/package.json +58 -0
@@ -0,0 +1,1900 @@
1
+ ---
2
+ id: 019e2a10-a112-7a01-b001-f1a2b3c4d512
3
+ title: 'Bài 12: RBAC nâng cao & Keycloak Admin Client'
4
+ slug: bai-12-rbac-nang-cao-keycloak-admin-client
5
+ description: >-
6
+ Role-Based Access Control nâng cao, Fine-grained Authorization,
7
+ Keycloak Admin Client API để quản lý users/roles từ backend.
8
+ duration_minutes: 100
9
+ is_free: false
10
+ video_url: null
11
+ sort_order: 11
12
+ section_title: "Phần 3: Security với Keycloak"
13
+ course:
14
+ id: 019e2a10-a100-7a01-b001-f1a2b3c4d5e6
15
+ title: "Quarkus Microservices: Từ Cơ bản đến Production"
16
+ slug: quarkus-microservices-tu-co-ban-den-production
17
+ ---
18
+
19
+ ## Giới thiệu
20
+
21
+ Bài 11 đã cover authentication cơ bản với `@Authenticated` và `@RolesAllowed`. Bài này đi sâu vào **Fine-grained RBAC** (resource-level permissions), phân biệt **Realm Roles vs Client Roles vs Composite Roles**, **Group-based Access Control**, **Keycloak Admin Client** để quản lý users/roles programmatically, **Multi-tenancy** pattern, và **Audit Logging** cho production.
22
+
23
+ ## Tổng quan hệ thống phân quyền
24
+
25
+ ```
26
+ ┌─────────────────────────────────────────────────────────┐
27
+ │ Keycloak Realm │
28
+ │ │
29
+ │ ┌─────────────┐ ┌──────────────┐ ┌───────────────┐ │
30
+ │ │ Realm Roles │ │ Client Roles │ │ Groups │ │
31
+ │ │ │ │ │ │ │ │
32
+ │ │ • admin │ │ product-svc: │ │ /sellers │ │
33
+ │ │ • customer │ │ • manage │ │ /premium │ │
34
+ │ │ • seller │ │ • view │ │ /customers │ │
35
+ │ │ • moderator │ │ │ │ /vip │ │
36
+ │ │ │ │ order-svc: │ │ /staff │ │
37
+ │ │ │ │ • process │ │ /warehouse │ │
38
+ │ │ │ │ • refund │ │ /support │ │
39
+ │ └──────┬──────┘ └──────┬───────┘ └───────┬────────┘ │
40
+ │ │ │ │ │
41
+ │ └────────────────┼──────────────────┘ │
42
+ │ ▼ │
43
+ │ ┌─────────────┐ │
44
+ │ │ User │ │
45
+ │ │ JWT Token │ │
46
+ │ └─────────────┘ │
47
+ └─────────────────────────────────────────────────────────┘
48
+ ```
49
+
50
+ ## Realm Roles vs Client Roles vs Composite Roles
51
+
52
+ ### Realm Roles
53
+
54
+ Scope toàn realm — dùng cho **cross-service** permissions:
55
+
56
+ ```
57
+ Realm Roles:
58
+ ├── admin → Full access mọi service
59
+ ├── customer → Mua hàng, xem đơn
60
+ ├── seller → Quản lý sản phẩm
61
+ └── moderator → Review, moderate content
62
+ ```
63
+
64
+ ### Client Roles
65
+
66
+ Scope từng client (service) — dùng cho **service-specific** permissions:
67
+
68
+ ```
69
+ Client: product-service
70
+ ├── product:create → Tạo sản phẩm
71
+ ├── product:update → Sửa sản phẩm
72
+ ├── product:delete → Xoá sản phẩm
73
+ ├── product:view → Xem sản phẩm
74
+ └── product:manage → Full CRUD
75
+
76
+ Client: order-service
77
+ ├── order:create → Tạo đơn hàng
78
+ ├── order:view → Xem đơn hàng
79
+ ├── order:process → Xử lý đơn (confirm, ship)
80
+ ├── order:cancel → Huỷ đơn
81
+ └── order:refund → Hoàn tiền
82
+ ```
83
+
84
+ ### Composite Roles
85
+
86
+ Gom nhiều roles thành 1 role cha:
87
+
88
+ ```
89
+ Composite Role: "seller"
90
+ ├── product:create
91
+ ├── product:update
92
+ ├── product:view
93
+ ├── order:view
94
+ └── order:process
95
+
96
+ Composite Role: "admin"
97
+ ├── seller (inherits all seller roles)
98
+ ├── product:delete
99
+ ├── order:cancel
100
+ ├── order:refund
101
+ └── user:manage
102
+ ```
103
+
104
+ ### Cấu hình trong Realm JSON
105
+
106
+ ```json
107
+ {
108
+ "realm": "ecommerce",
109
+ "roles": {
110
+ "realm": [
111
+ {
112
+ "name": "admin",
113
+ "composite": true,
114
+ "composites": {
115
+ "realm": ["seller", "moderator"],
116
+ "client": {
117
+ "product-service": ["product:manage", "product:delete"],
118
+ "order-service": ["order:process", "order:refund", "order:cancel"]
119
+ }
120
+ }
121
+ },
122
+ {
123
+ "name": "seller",
124
+ "composite": true,
125
+ "composites": {
126
+ "client": {
127
+ "product-service": ["product:create", "product:update", "product:view"],
128
+ "order-service": ["order:view", "order:process"]
129
+ }
130
+ }
131
+ },
132
+ { "name": "customer" },
133
+ { "name": "moderator" }
134
+ ],
135
+ "client": {
136
+ "product-service": [
137
+ { "name": "product:create" },
138
+ { "name": "product:update" },
139
+ { "name": "product:delete" },
140
+ { "name": "product:view" },
141
+ { "name": "product:manage" }
142
+ ],
143
+ "order-service": [
144
+ { "name": "order:create" },
145
+ { "name": "order:view" },
146
+ { "name": "order:process" },
147
+ { "name": "order:cancel" },
148
+ { "name": "order:refund" }
149
+ ]
150
+ }
151
+ }
152
+ }
153
+ ```
154
+
155
+ ### Sử dụng Client Roles trong Quarkus
156
+
157
+ Để `@RolesAllowed` nhận client roles, cần map claim trong token:
158
+
159
+ ```properties
160
+ # Map client roles vào SecurityIdentity
161
+ quarkus.oidc.roles.role-claim-path=\
162
+ resource_access/product-service/roles
163
+
164
+ # Hoặc dùng realm_access cho realm roles (default)
165
+ # quarkus.oidc.roles.role-claim-path=realm_access/roles
166
+ ```
167
+
168
+ **JWT token structure**:
169
+
170
+ ```json
171
+ {
172
+ "sub": "user-123",
173
+ "realm_access": {
174
+ "roles": ["seller", "customer"]
175
+ },
176
+ "resource_access": {
177
+ "product-service": {
178
+ "roles": ["product:create", "product:update", "product:view"]
179
+ },
180
+ "order-service": {
181
+ "roles": ["order:view", "order:process"]
182
+ }
183
+ }
184
+ }
185
+ ```
186
+
187
+ ```java
188
+ @Path("/api/v1/products")
189
+ public class ProductResource {
190
+
191
+ // Realm role
192
+ @POST
193
+ @RolesAllowed("seller")
194
+ public Response createProduct(CreateProductRequest req) {
195
+ // ...
196
+ }
197
+
198
+ // Client role (fine-grained)
199
+ @DELETE @Path("/{id}")
200
+ @RolesAllowed("product:delete")
201
+ public Response deleteProduct(@PathParam("id") Long id) {
202
+ // Chỉ admin có product:delete (qua composite role)
203
+ }
204
+
205
+ // Nhiều roles (OR logic — bất kỳ role nào match)
206
+ @GET @Path("/{id}")
207
+ @RolesAllowed({"product:view", "customer", "seller"})
208
+ public ProductDTO getProduct(@PathParam("id") Long id) {
209
+ // ...
210
+ }
211
+ }
212
+ ```
213
+
214
+ ## Group-based Access Control
215
+
216
+ ### Cấu hình Groups trong Keycloak
217
+
218
+ ```json
219
+ {
220
+ "groups": [
221
+ {
222
+ "name": "sellers",
223
+ "subGroups": [
224
+ {
225
+ "name": "premium-sellers",
226
+ "realmRoles": ["seller"],
227
+ "clientRoles": {
228
+ "product-service": ["product:manage"]
229
+ },
230
+ "attributes": {
231
+ "max_products": ["1000"],
232
+ "commission_rate": ["0.05"]
233
+ }
234
+ },
235
+ {
236
+ "name": "basic-sellers",
237
+ "realmRoles": ["seller"],
238
+ "clientRoles": {
239
+ "product-service": ["product:create", "product:view"]
240
+ },
241
+ "attributes": {
242
+ "max_products": ["50"],
243
+ "commission_rate": ["0.10"]
244
+ }
245
+ }
246
+ ]
247
+ },
248
+ {
249
+ "name": "staff",
250
+ "subGroups": [
251
+ {
252
+ "name": "warehouse",
253
+ "realmRoles": [],
254
+ "clientRoles": {
255
+ "order-service": ["order:process"]
256
+ }
257
+ },
258
+ {
259
+ "name": "support",
260
+ "realmRoles": ["moderator"],
261
+ "clientRoles": {
262
+ "order-service": ["order:view", "order:cancel", "order:refund"]
263
+ }
264
+ }
265
+ ]
266
+ }
267
+ ]
268
+ }
269
+ ```
270
+
271
+ ### Map Groups vào Token
272
+
273
+ Trong Keycloak Admin Console → Client Scopes → tạo mapper:
274
+
275
+ | Setting | Value |
276
+ |---------|-------|
277
+ | Mapper Type | Group Membership |
278
+ | Token Claim Name | groups |
279
+ | Full group path | ON |
280
+ | Add to ID token | ON |
281
+ | Add to access token | ON |
282
+
283
+ **JWT token sẽ chứa**:
284
+
285
+ ```json
286
+ {
287
+ "groups": ["/sellers/premium-sellers"],
288
+ "realm_access": { "roles": ["seller"] },
289
+ "resource_access": {
290
+ "product-service": { "roles": ["product:manage"] }
291
+ }
292
+ }
293
+ ```
294
+
295
+ ### Sử dụng Groups trong Quarkus
296
+
297
+ ```java
298
+ @ApplicationScoped
299
+ public class GroupAuthorizationService {
300
+
301
+ @Inject
302
+ JsonWebToken jwt;
303
+
304
+ /**
305
+ * Check user thuộc group cụ thể
306
+ */
307
+ public boolean belongsToGroup(String groupPath) {
308
+ Set<String> groups = jwt.getClaim("groups");
309
+ if (groups == null) return false;
310
+ return groups.stream()
311
+ .anyMatch(g -> g.equals(groupPath)
312
+ || g.startsWith(groupPath + "/"));
313
+ }
314
+
315
+ /**
316
+ * Lấy group attribute (VD: max_products, commission_rate)
317
+ */
318
+ public Optional<String> getGroupAttribute(String attrName) {
319
+ // Group attributes thường map qua custom claim
320
+ Object value = jwt.getClaim(attrName);
321
+ return Optional.ofNullable(value)
322
+ .map(Object::toString);
323
+ }
324
+
325
+ /**
326
+ * Kiểm tra seller tier
327
+ */
328
+ public SellerTier getSellerTier() {
329
+ Set<String> groups = jwt.getClaim("groups");
330
+ if (groups == null) return SellerTier.NONE;
331
+
332
+ if (groups.contains("/sellers/premium-sellers")) {
333
+ return SellerTier.PREMIUM;
334
+ } else if (groups.contains("/sellers/basic-sellers")) {
335
+ return SellerTier.BASIC;
336
+ }
337
+ return SellerTier.NONE;
338
+ }
339
+
340
+ public enum SellerTier { NONE, BASIC, PREMIUM }
341
+ }
342
+
343
+ @Path("/api/v1/products")
344
+ @Authenticated
345
+ public class ProductResource {
346
+
347
+ @Inject
348
+ GroupAuthorizationService groupAuth;
349
+
350
+ @Inject
351
+ JsonWebToken jwt;
352
+
353
+ @POST
354
+ @RolesAllowed("seller")
355
+ public Response createProduct(CreateProductRequest req) {
356
+ // Kiểm tra seller quota
357
+ GroupAuthorizationService.SellerTier tier =
358
+ groupAuth.getSellerTier();
359
+
360
+ int maxProducts = switch (tier) {
361
+ case PREMIUM -> 1000;
362
+ case BASIC -> 50;
363
+ default -> 0;
364
+ };
365
+
366
+ long currentCount = Product.count(
367
+ "sellerId", jwt.getSubject());
368
+ if (currentCount >= maxProducts) {
369
+ throw new BusinessException(403,
370
+ "Bạn đã đạt giới hạn " + maxProducts
371
+ + " sản phẩm. Nâng cấp lên Premium"
372
+ + " để đăng thêm.");
373
+ }
374
+
375
+ // Proceed with creation...
376
+ return Response.status(201).build();
377
+ }
378
+ }
379
+ ```
380
+
381
+ ## Fine-grained Authorization — Resource Owner Check
382
+
383
+ ### Cách 1: Inline Check (đơn giản)
384
+
385
+ ```java
386
+ @Path("/api/v1/orders")
387
+ @Authenticated
388
+ public class OrderResource {
389
+
390
+ @Inject
391
+ JsonWebToken jwt;
392
+
393
+ @Inject
394
+ SecurityIdentity identity;
395
+
396
+ @Inject
397
+ OrderRepository orderRepo;
398
+
399
+ @Inject
400
+ SecurityAuditService auditService;
401
+
402
+ @GET @Path("/{id}")
403
+ public OrderDTO getOrder(@PathParam("id") Long id) {
404
+ Order order = orderRepo.findByIdOptional(id)
405
+ .orElseThrow(() ->
406
+ new ResourceNotFoundException("Order", id));
407
+
408
+ // Resource owner check
409
+ String currentUserId = jwt.getSubject();
410
+ boolean isOwner =
411
+ order.customerId.equals(currentUserId);
412
+ boolean isAdmin = identity.hasRole("admin");
413
+ boolean isSupport = identity.hasRole("moderator");
414
+
415
+ if (!isOwner && !isAdmin && !isSupport) {
416
+ auditService.logAccess("DENIED",
417
+ "Order", id.toString());
418
+ throw new ForbiddenException(
419
+ "Bạn không có quyền xem đơn hàng này");
420
+ }
421
+
422
+ auditService.logAccess("VIEW", "Order", id.toString());
423
+
424
+ // Support chỉ thấy thông tin giới hạn
425
+ if (isSupport && !isOwner) {
426
+ return OrderDTO.redacted(order);
427
+ }
428
+
429
+ return OrderDTO.from(order);
430
+ }
431
+
432
+ @PUT @Path("/{id}/cancel")
433
+ public OrderDTO cancelOrder(@PathParam("id") Long id) {
434
+ Order order = orderRepo.findByIdOptional(id)
435
+ .orElseThrow(() ->
436
+ new ResourceNotFoundException("Order", id));
437
+
438
+ String currentUserId = jwt.getSubject();
439
+ boolean isOwner =
440
+ order.customerId.equals(currentUserId);
441
+ boolean hasRefundRole =
442
+ identity.hasRole("order:cancel");
443
+
444
+ // Customer chỉ cancel đơn CREATED/CONFIRMED
445
+ if (isOwner) {
446
+ if (!Set.of("CREATED", "CONFIRMED")
447
+ .contains(order.status)) {
448
+ throw new BusinessException(400,
449
+ "Chỉ huỷ được đơn ở trạng thái"
450
+ + " CREATED hoặc CONFIRMED");
451
+ }
452
+ } else if (!hasRefundRole) {
453
+ throw new ForbiddenException(
454
+ "Bạn không có quyền huỷ đơn hàng này");
455
+ }
456
+
457
+ order.cancel(currentUserId);
458
+ auditService.logAccess("CANCEL",
459
+ "Order", id.toString());
460
+ return OrderDTO.from(order);
461
+ }
462
+ }
463
+ ```
464
+
465
+ ### Cách 2: Custom `@ResourceOwner` Annotation (tái sử dụng)
466
+
467
+ ```java
468
+ // === Annotation ===
469
+ @Target(ElementType.METHOD)
470
+ @Retention(RetentionPolicy.RUNTIME)
471
+ @InterceptorBinding
472
+ public @interface RequiresOwnership {
473
+ // Sử dụng @Nonbinding cho các attribute
474
+ // để CDI không dùng chúng làm qualifier
475
+
476
+ @Nonbinding
477
+ String paramName() default "id";
478
+
479
+ @Nonbinding
480
+ String resourceType() default "";
481
+
482
+ @Nonbinding
483
+ String[] bypassRoles() default {"admin"};
484
+ }
485
+
486
+ // === Ownership Resolver Interface ===
487
+ public interface OwnershipResolver<ID> {
488
+ /**
489
+ * Trả về userId sở hữu resource.
490
+ * Null nếu resource không tồn tại.
491
+ */
492
+ String resolveOwner(String resourceType, ID resourceId);
493
+ }
494
+
495
+ // === Concrete Resolver ===
496
+ @ApplicationScoped
497
+ public class OrderOwnershipResolver
498
+ implements OwnershipResolver<Long> {
499
+
500
+ @Inject
501
+ OrderRepository orderRepo;
502
+
503
+ @Override
504
+ public String resolveOwner(String resourceType,
505
+ Long resourceId) {
506
+ return orderRepo.findByIdOptional(resourceId)
507
+ .map(o -> o.customerId)
508
+ .orElse(null);
509
+ }
510
+ }
511
+
512
+ @ApplicationScoped
513
+ public class ProductOwnershipResolver
514
+ implements OwnershipResolver<Long> {
515
+
516
+ @Inject
517
+ ProductRepository productRepo;
518
+
519
+ @Override
520
+ public String resolveOwner(String resourceType,
521
+ Long resourceId) {
522
+ return productRepo.findByIdOptional(resourceId)
523
+ .map(p -> p.sellerId)
524
+ .orElse(null);
525
+ }
526
+ }
527
+
528
+ // === Interceptor ===
529
+ @RequiresOwnership
530
+ @Interceptor
531
+ @Priority(Interceptor.Priority.APPLICATION + 10)
532
+ public class OwnershipInterceptor {
533
+
534
+ private static final Logger LOG =
535
+ Logger.getLogger(OwnershipInterceptor.class);
536
+
537
+ @Inject
538
+ JsonWebToken jwt;
539
+
540
+ @Inject
541
+ SecurityIdentity identity;
542
+
543
+ @Inject
544
+ SecurityAuditService auditService;
545
+
546
+ @Inject
547
+ Instance<OwnershipResolver<?>> resolvers;
548
+
549
+ @AroundInvoke
550
+ public Object checkOwnership(InvocationContext ctx)
551
+ throws Exception {
552
+
553
+ RequiresOwnership annotation = ctx.getMethod()
554
+ .getAnnotation(RequiresOwnership.class);
555
+
556
+ // 1. Check bypass roles (admin, etc.)
557
+ for (String role : annotation.bypassRoles()) {
558
+ if (identity.hasRole(role)) {
559
+ LOG.debugf("Bypass ownership check:"
560
+ + " user=%s has role=%s",
561
+ jwt.getSubject(), role);
562
+ return ctx.proceed();
563
+ }
564
+ }
565
+
566
+ // 2. Extract resource ID từ method params
567
+ Object resourceId =
568
+ extractParam(ctx, annotation.paramName());
569
+ if (resourceId == null) {
570
+ throw new IllegalStateException(
571
+ "Cannot find @PathParam(\""
572
+ + annotation.paramName()
573
+ + "\") in method " + ctx.getMethod());
574
+ }
575
+
576
+ // 3. Resolve owner
577
+ String resourceType = annotation.resourceType();
578
+ String ownerId = resolveOwner(resourceType,
579
+ resourceId);
580
+ if (ownerId == null) {
581
+ throw new ResourceNotFoundException(
582
+ resourceType, resourceId);
583
+ }
584
+
585
+ // 4. Compare
586
+ String currentUserId = jwt.getSubject();
587
+ if (!ownerId.equals(currentUserId)) {
588
+ auditService.logAccess("OWNERSHIP_DENIED",
589
+ resourceType, resourceId.toString());
590
+ throw new ForbiddenException(
591
+ "Bạn không có quyền truy cập "
592
+ + resourceType + " #" + resourceId);
593
+ }
594
+
595
+ return ctx.proceed();
596
+ }
597
+
598
+ @SuppressWarnings("unchecked")
599
+ private String resolveOwner(String resourceType,
600
+ Object resourceId) {
601
+ for (OwnershipResolver resolver : resolvers) {
602
+ try {
603
+ return resolver.resolveOwner(
604
+ resourceType, resourceId);
605
+ } catch (ClassCastException e) {
606
+ // Wrong resolver type, try next
607
+ }
608
+ }
609
+ throw new IllegalStateException(
610
+ "No OwnershipResolver found for: "
611
+ + resourceType);
612
+ }
613
+
614
+ private Object extractParam(InvocationContext ctx,
615
+ String paramName) {
616
+ Parameter[] params =
617
+ ctx.getMethod().getParameters();
618
+ for (int i = 0; i < params.length; i++) {
619
+ PathParam pp = params[i]
620
+ .getAnnotation(PathParam.class);
621
+ if (pp != null
622
+ && pp.value().equals(paramName)) {
623
+ return ctx.getParameters()[i];
624
+ }
625
+ }
626
+ return null;
627
+ }
628
+ }
629
+ ```
630
+
631
+ ### Sử dụng @RequiresOwnership
632
+
633
+ ```java
634
+ @Path("/api/v1/orders")
635
+ @Authenticated
636
+ public class OrderResource {
637
+
638
+ @GET @Path("/{id}")
639
+ @RequiresOwnership(
640
+ paramName = "id",
641
+ resourceType = "Order",
642
+ bypassRoles = {"admin", "moderator"})
643
+ public OrderDTO getOrder(@PathParam("id") Long id) {
644
+ // Nếu đến đây = đã pass ownership check
645
+ return OrderDTO.from(orderRepo.findById(id));
646
+ }
647
+
648
+ @PUT @Path("/{id}")
649
+ @RequiresOwnership(
650
+ paramName = "id",
651
+ resourceType = "Order") // chỉ admin bypass
652
+ public OrderDTO updateOrder(
653
+ @PathParam("id") Long id,
654
+ UpdateOrderRequest request) {
655
+ return orderService.update(id, request);
656
+ }
657
+ }
658
+
659
+ @Path("/api/v1/products")
660
+ @Authenticated
661
+ public class ProductResource {
662
+
663
+ @PUT @Path("/{id}")
664
+ @RolesAllowed("seller")
665
+ @RequiresOwnership(
666
+ paramName = "id",
667
+ resourceType = "Product")
668
+ public ProductDTO updateProduct(
669
+ @PathParam("id") Long id,
670
+ UpdateProductRequest request) {
671
+ // Seller chỉ sửa được sản phẩm của mình
672
+ return productService.update(id, request);
673
+ }
674
+ }
675
+ ```
676
+
677
+ ## Custom Claims — Token Enrichment
678
+
679
+ ### Keycloak Protocol Mapper
680
+
681
+ Thêm custom attributes vào token qua Keycloak Admin → Client Scopes → Mappers:
682
+
683
+ | Setting | Value |
684
+ |---------|-------|
685
+ | Mapper Type | User Attribute |
686
+ | User Attribute | seller_tier |
687
+ | Token Claim Name | seller_tier |
688
+ | Claim JSON Type | String |
689
+ | Add to access token | ON |
690
+
691
+ Hoặc dùng **Script Mapper** cho logic phức tạp:
692
+
693
+ ```javascript
694
+ // Keycloak Script Mapper
695
+ // Tính seller_level dựa trên số sản phẩm đã bán
696
+ var level = 'basic';
697
+ var salesCount = user.getAttribute('total_sales');
698
+ if (salesCount && parseInt(salesCount[0]) > 1000) {
699
+ level = 'gold';
700
+ } else if (salesCount && parseInt(salesCount[0]) > 100) {
701
+ level = 'silver';
702
+ }
703
+ token.setOtherClaims('seller_level', level);
704
+ ```
705
+
706
+ ### Đọc Custom Claims trong Quarkus
707
+
708
+ ```java
709
+ @ApplicationScoped
710
+ public class TokenClaimService {
711
+
712
+ @Inject
713
+ JsonWebToken jwt;
714
+
715
+ public String getSellerTier() {
716
+ return jwt.getClaim("seller_tier");
717
+ }
718
+
719
+ public String getSellerLevel() {
720
+ return jwt.getClaim("seller_level");
721
+ }
722
+
723
+ /**
724
+ * Lấy tất cả custom claims dạng Map
725
+ */
726
+ public Map<String, Object> getCustomClaims() {
727
+ return Map.of(
728
+ "seller_tier",
729
+ Optional.ofNullable(
730
+ jwt.getClaim("seller_tier"))
731
+ .orElse("none"),
732
+ "seller_level",
733
+ Optional.ofNullable(
734
+ jwt.getClaim("seller_level"))
735
+ .orElse("basic"),
736
+ "groups",
737
+ Optional.ofNullable(
738
+ jwt.<Set<String>>getClaim("groups"))
739
+ .orElse(Set.of())
740
+ );
741
+ }
742
+ }
743
+ ```
744
+
745
+ ## Keycloak Admin Client
746
+
747
+ ### Dependency
748
+
749
+ ```xml
750
+ <dependency>
751
+ <groupId>io.quarkus</groupId>
752
+ <artifactId>quarkus-keycloak-admin-client</artifactId>
753
+ </dependency>
754
+ ```
755
+
756
+ ### Cấu hình
757
+
758
+ ```properties
759
+ # === Development: Password Grant ===
760
+ quarkus.keycloak.admin-client.server-url=http://localhost:8180
761
+ quarkus.keycloak.admin-client.realm=master
762
+ quarkus.keycloak.admin-client.client-id=admin-cli
763
+ quarkus.keycloak.admin-client.grant-type=PASSWORD
764
+ quarkus.keycloak.admin-client.username=admin
765
+ quarkus.keycloak.admin-client.password=admin
766
+
767
+ # === Production: Service Account (Client Credentials) ===
768
+ %prod.quarkus.keycloak.admin-client.server-url=\
769
+ ${KC_SERVER_URL}
770
+ %prod.quarkus.keycloak.admin-client.realm=master
771
+ %prod.quarkus.keycloak.admin-client.client-id=ecommerce-admin
772
+ %prod.quarkus.keycloak.admin-client.client-secret=\
773
+ ${KC_ADMIN_SECRET}
774
+ %prod.quarkus.keycloak.admin-client.grant-type=\
775
+ CLIENT_CREDENTIALS
776
+ ```
777
+
778
+ > **Service Account setup trong Keycloak**: Client `ecommerce-admin` → Settings → Service Account Roles → assign `realm-admin` role.
779
+
780
+ ### DTOs
781
+
782
+ ```java
783
+ public record CreateUserRequest(
784
+ @NotBlank String username,
785
+ @Email @NotBlank String email,
786
+ @Size(min = 8) String password,
787
+ @NotBlank String firstName,
788
+ @NotBlank String lastName
789
+ ) {}
790
+
791
+ public record UpdateUserRequest(
792
+ String firstName,
793
+ String lastName,
794
+ String email,
795
+ Map<String, List<String>> attributes
796
+ ) {}
797
+
798
+ public record UserDTO(
799
+ String id,
800
+ String username,
801
+ String email,
802
+ String firstName,
803
+ String lastName,
804
+ boolean enabled,
805
+ boolean emailVerified,
806
+ List<String> realmRoles,
807
+ Map<String, List<String>> clientRoles,
808
+ List<String> groups,
809
+ Map<String, List<String>> attributes,
810
+ Long createdTimestamp
811
+ ) {
812
+ public static UserDTO from(UserRepresentation user,
813
+ List<String> roles,
814
+ Map<String, List<String>> cRoles,
815
+ List<String> groups) {
816
+ return new UserDTO(
817
+ user.getId(), user.getUsername(),
818
+ user.getEmail(), user.getFirstName(),
819
+ user.getLastName(), user.isEnabled(),
820
+ user.isEmailVerified(),
821
+ roles, cRoles, groups,
822
+ user.getAttributes(),
823
+ user.getCreatedTimestamp());
824
+ }
825
+ }
826
+
827
+ public record UserPageDTO(
828
+ List<UserDTO> users,
829
+ int total,
830
+ int page,
831
+ int size
832
+ ) {}
833
+ ```
834
+
835
+ ### User Management Service (Full)
836
+
837
+ ```java
838
+ import org.keycloak.admin.client.Keycloak;
839
+ import org.keycloak.admin.client.resource.*;
840
+ import org.keycloak.representations.idm.*;
841
+ import jakarta.ws.rs.core.Response;
842
+
843
+ @ApplicationScoped
844
+ public class KeycloakUserService {
845
+
846
+ private static final Logger LOG =
847
+ Logger.getLogger(KeycloakUserService.class);
848
+
849
+ @Inject
850
+ Keycloak keycloak;
851
+
852
+ @Inject
853
+ SecurityAuditService auditService;
854
+
855
+ @ConfigProperty(name = "app.keycloak.realm",
856
+ defaultValue = "ecommerce")
857
+ String realmName;
858
+
859
+ // === Helper Methods ===
860
+
861
+ private RealmResource realm() {
862
+ return keycloak.realm(realmName);
863
+ }
864
+
865
+ private UsersResource users() {
866
+ return realm().users();
867
+ }
868
+
869
+ private UserResource user(String userId) {
870
+ return users().get(userId);
871
+ }
872
+
873
+ // =============================================
874
+ // CREATE USER
875
+ // =============================================
876
+
877
+ public String createUser(CreateUserRequest request) {
878
+ // 1. Check duplicate username/email
879
+ List<UserRepresentation> existing =
880
+ users().searchByEmail(request.email(), true);
881
+ if (!existing.isEmpty()) {
882
+ throw new BusinessException(409,
883
+ "Email đã được sử dụng: "
884
+ + request.email());
885
+ }
886
+
887
+ existing = users().searchByUsername(
888
+ request.username(), true);
889
+ if (!existing.isEmpty()) {
890
+ throw new BusinessException(409,
891
+ "Username đã tồn tại: "
892
+ + request.username());
893
+ }
894
+
895
+ // 2. Build UserRepresentation
896
+ UserRepresentation user = new UserRepresentation();
897
+ user.setUsername(request.username());
898
+ user.setEmail(request.email());
899
+ user.setFirstName(request.firstName());
900
+ user.setLastName(request.lastName());
901
+ user.setEnabled(true);
902
+ user.setEmailVerified(false);
903
+
904
+ // Set initial attributes
905
+ user.setAttributes(Map.of(
906
+ "registered_from", List.of("ecommerce-api"),
907
+ "registration_date",
908
+ List.of(LocalDate.now().toString())
909
+ ));
910
+
911
+ // 3. Create user in Keycloak
912
+ try (Response response = users().create(user)) {
913
+ if (response.getStatus() != 201) {
914
+ String error = response.readEntity(
915
+ String.class);
916
+ LOG.errorf("Failed to create user: %s",
917
+ error);
918
+ throw new BusinessException(400,
919
+ "Không thể tạo user: " + error);
920
+ }
921
+
922
+ // 4. Extract user ID
923
+ String userId = extractUserId(response);
924
+
925
+ // 5. Set password
926
+ setPassword(userId, request.password(), false);
927
+
928
+ // 6. Assign default role
929
+ assignRealmRole(userId, "customer");
930
+
931
+ // 7. Gửi email verify (optional)
932
+ sendVerificationEmail(userId);
933
+
934
+ LOG.infof("Created user: %s (%s)",
935
+ request.username(), userId);
936
+ auditService.logAdminAction(
937
+ "CREATE_USER", userId);
938
+
939
+ return userId;
940
+ }
941
+ }
942
+
943
+ private String extractUserId(Response response) {
944
+ String locationHeader =
945
+ response.getHeaderString("Location");
946
+ if (locationHeader == null) {
947
+ throw new BusinessException(500,
948
+ "Missing Location header in response");
949
+ }
950
+ return locationHeader
951
+ .replaceAll(".*/([^/]+)$", "$1");
952
+ }
953
+
954
+ // =============================================
955
+ // UPDATE USER
956
+ // =============================================
957
+
958
+ public UserDTO updateUser(String userId,
959
+ UpdateUserRequest request) {
960
+ UserRepresentation user =
961
+ user(userId).toRepresentation();
962
+
963
+ if (request.firstName() != null) {
964
+ user.setFirstName(request.firstName());
965
+ }
966
+ if (request.lastName() != null) {
967
+ user.setLastName(request.lastName());
968
+ }
969
+ if (request.email() != null) {
970
+ // Check email uniqueness
971
+ List<UserRepresentation> existing =
972
+ users().searchByEmail(
973
+ request.email(), true);
974
+ if (existing.stream()
975
+ .anyMatch(u -> !u.getId()
976
+ .equals(userId))) {
977
+ throw new BusinessException(409,
978
+ "Email đã được sử dụng");
979
+ }
980
+ user.setEmail(request.email());
981
+ user.setEmailVerified(false);
982
+ }
983
+ if (request.attributes() != null) {
984
+ Map<String, List<String>> attrs =
985
+ new HashMap<>(user.getAttributes() != null
986
+ ? user.getAttributes()
987
+ : Map.of());
988
+ attrs.putAll(request.attributes());
989
+ user.setAttributes(attrs);
990
+ }
991
+
992
+ user(userId).update(user);
993
+ auditService.logAdminAction("UPDATE_USER", userId);
994
+
995
+ return getUser(userId);
996
+ }
997
+
998
+ // =============================================
999
+ // PASSWORD MANAGEMENT
1000
+ // =============================================
1001
+
1002
+ public void setPassword(String userId, String password,
1003
+ boolean temporary) {
1004
+ CredentialRepresentation cred =
1005
+ new CredentialRepresentation();
1006
+ cred.setType(CredentialRepresentation.PASSWORD);
1007
+ cred.setValue(password);
1008
+ cred.setTemporary(temporary);
1009
+ user(userId).resetPassword(cred);
1010
+ }
1011
+
1012
+ public void sendVerificationEmail(String userId) {
1013
+ try {
1014
+ user(userId).sendVerifyEmail();
1015
+ } catch (Exception e) {
1016
+ LOG.warnf("Could not send verification"
1017
+ + " email to user %s: %s",
1018
+ userId, e.getMessage());
1019
+ }
1020
+ }
1021
+
1022
+ public void sendPasswordResetEmail(String userId) {
1023
+ user(userId).executeActionsEmail(
1024
+ List.of("UPDATE_PASSWORD"));
1025
+ }
1026
+
1027
+ // =============================================
1028
+ // ROLE MANAGEMENT
1029
+ // =============================================
1030
+
1031
+ public void assignRealmRole(String userId,
1032
+ String roleName) {
1033
+ RoleRepresentation role = realm().roles()
1034
+ .get(roleName).toRepresentation();
1035
+ user(userId).roles().realmLevel()
1036
+ .add(List.of(role));
1037
+ auditService.logAdminAction(
1038
+ "ASSIGN_ROLE:" + roleName, userId);
1039
+ }
1040
+
1041
+ public void removeRealmRole(String userId,
1042
+ String roleName) {
1043
+ RoleRepresentation role = realm().roles()
1044
+ .get(roleName).toRepresentation();
1045
+ user(userId).roles().realmLevel()
1046
+ .remove(List.of(role));
1047
+ auditService.logAdminAction(
1048
+ "REMOVE_ROLE:" + roleName, userId);
1049
+ }
1050
+
1051
+ public void assignClientRole(String userId,
1052
+ String clientId,
1053
+ String roleName) {
1054
+ // Find client by clientId
1055
+ ClientRepresentation client = realm().clients()
1056
+ .findByClientId(clientId).stream()
1057
+ .findFirst()
1058
+ .orElseThrow(() -> new BusinessException(404,
1059
+ "Client not found: " + clientId));
1060
+
1061
+ RoleRepresentation role = realm().clients()
1062
+ .get(client.getId()).roles()
1063
+ .get(roleName).toRepresentation();
1064
+
1065
+ user(userId).roles()
1066
+ .clientLevel(client.getId())
1067
+ .add(List.of(role));
1068
+
1069
+ auditService.logAdminAction(
1070
+ "ASSIGN_CLIENT_ROLE:"
1071
+ + clientId + "/" + roleName, userId);
1072
+ }
1073
+
1074
+ public void removeClientRole(String userId,
1075
+ String clientId,
1076
+ String roleName) {
1077
+ ClientRepresentation client = realm().clients()
1078
+ .findByClientId(clientId).stream()
1079
+ .findFirst()
1080
+ .orElseThrow(() -> new BusinessException(404,
1081
+ "Client not found: " + clientId));
1082
+
1083
+ RoleRepresentation role = realm().clients()
1084
+ .get(client.getId()).roles()
1085
+ .get(roleName).toRepresentation();
1086
+
1087
+ user(userId).roles()
1088
+ .clientLevel(client.getId())
1089
+ .remove(List.of(role));
1090
+ }
1091
+
1092
+ // =============================================
1093
+ // GROUP MANAGEMENT
1094
+ // =============================================
1095
+
1096
+ public void joinGroup(String userId, String groupId) {
1097
+ user(userId).joinGroup(groupId);
1098
+ auditService.logAdminAction(
1099
+ "JOIN_GROUP:" + groupId, userId);
1100
+ }
1101
+
1102
+ public void leaveGroup(String userId, String groupId) {
1103
+ user(userId).leaveGroup(groupId);
1104
+ auditService.logAdminAction(
1105
+ "LEAVE_GROUP:" + groupId, userId);
1106
+ }
1107
+
1108
+ public List<GroupRepresentation> getUserGroups(
1109
+ String userId) {
1110
+ return user(userId).groups();
1111
+ }
1112
+
1113
+ public List<GroupRepresentation> listAllGroups() {
1114
+ return realm().groups().groups();
1115
+ }
1116
+
1117
+ // =============================================
1118
+ // SEARCH & GET
1119
+ // =============================================
1120
+
1121
+ public UserDTO getUser(String userId) {
1122
+ UserRepresentation user =
1123
+ user(userId).toRepresentation();
1124
+
1125
+ // Realm roles
1126
+ List<String> realmRoles = user(userId).roles()
1127
+ .realmLevel().listEffective().stream()
1128
+ .map(RoleRepresentation::getName)
1129
+ .filter(r -> !r.startsWith("default-roles-"))
1130
+ .toList();
1131
+
1132
+ // Client roles
1133
+ Map<String, List<String>> clientRoles =
1134
+ new HashMap<>();
1135
+ for (ClientRepresentation client :
1136
+ realm().clients().findAll()) {
1137
+ List<RoleRepresentation> roles =
1138
+ user(userId).roles()
1139
+ .clientLevel(client.getId())
1140
+ .listEffective();
1141
+ if (!roles.isEmpty()) {
1142
+ clientRoles.put(client.getClientId(),
1143
+ roles.stream()
1144
+ .map(RoleRepresentation::getName)
1145
+ .toList());
1146
+ }
1147
+ }
1148
+
1149
+ // Groups
1150
+ List<String> groups = user(userId).groups().stream()
1151
+ .map(GroupRepresentation::getPath)
1152
+ .toList();
1153
+
1154
+ return UserDTO.from(user, realmRoles,
1155
+ clientRoles, groups);
1156
+ }
1157
+
1158
+ public UserPageDTO searchUsers(String keyword,
1159
+ int page, int size) {
1160
+ int first = page * size;
1161
+ List<UserDTO> users =
1162
+ users().search(keyword, first, size).stream()
1163
+ .map(u -> {
1164
+ List<String> roles = user(u.getId())
1165
+ .roles().realmLevel()
1166
+ .listEffective().stream()
1167
+ .map(RoleRepresentation::getName)
1168
+ .filter(r ->
1169
+ !r.startsWith("default-roles-"))
1170
+ .toList();
1171
+ return UserDTO.from(u, roles,
1172
+ Map.of(), List.of());
1173
+ })
1174
+ .toList();
1175
+
1176
+ int total = users().count(keyword);
1177
+
1178
+ return new UserPageDTO(users, total, page, size);
1179
+ }
1180
+
1181
+ // =============================================
1182
+ // ENABLE / DISABLE / DELETE
1183
+ // =============================================
1184
+
1185
+ public void setUserEnabled(String userId, boolean en) {
1186
+ UserRepresentation user =
1187
+ user(userId).toRepresentation();
1188
+ user.setEnabled(en);
1189
+ user(userId).update(user);
1190
+ auditService.logAdminAction(
1191
+ en ? "ENABLE_USER" : "DISABLE_USER", userId);
1192
+ }
1193
+
1194
+ public void deleteUser(String userId) {
1195
+ user(userId).remove();
1196
+ auditService.logAdminAction("DELETE_USER", userId);
1197
+ }
1198
+
1199
+ // =============================================
1200
+ // SESSION MANAGEMENT
1201
+ // =============================================
1202
+
1203
+ public List<UserSessionRepresentation> getUserSessions(
1204
+ String userId) {
1205
+ return user(userId).getUserSessions();
1206
+ }
1207
+
1208
+ public void logoutUser(String userId) {
1209
+ user(userId).logout();
1210
+ auditService.logAdminAction("LOGOUT_USER", userId);
1211
+ }
1212
+
1213
+ public void logoutAllSessions(String userId) {
1214
+ user(userId).getUserSessions()
1215
+ .forEach(session ->
1216
+ realm().deleteSession(session.getId()));
1217
+ auditService.logAdminAction(
1218
+ "LOGOUT_ALL_SESSIONS", userId);
1219
+ }
1220
+ }
1221
+ ```
1222
+
1223
+ ### Admin REST API (Full)
1224
+
1225
+ ```java
1226
+ @Path("/api/v1/admin/users")
1227
+ @RolesAllowed("admin")
1228
+ @Produces(MediaType.APPLICATION_JSON)
1229
+ @Consumes(MediaType.APPLICATION_JSON)
1230
+ @Tag(name = "Admin - User Management")
1231
+ public class AdminUserResource {
1232
+
1233
+ @Inject
1234
+ KeycloakUserService userService;
1235
+
1236
+ // === CRUD ===
1237
+
1238
+ @POST
1239
+ @Operation(summary = "Tạo user mới")
1240
+ public Response createUser(
1241
+ @Valid CreateUserRequest request) {
1242
+ String userId = userService.createUser(request);
1243
+ return Response.created(
1244
+ URI.create("/api/v1/admin/users/" + userId))
1245
+ .entity(Map.of("userId", userId))
1246
+ .build();
1247
+ }
1248
+
1249
+ @GET
1250
+ @Operation(summary = "Tìm kiếm users")
1251
+ public UserPageDTO searchUsers(
1252
+ @QueryParam("q") String keyword,
1253
+ @QueryParam("page") @DefaultValue("0") int page,
1254
+ @QueryParam("size") @DefaultValue("20") int size) {
1255
+ return userService.searchUsers(keyword, page, size);
1256
+ }
1257
+
1258
+ @GET @Path("/{userId}")
1259
+ @Operation(summary = "Lấy thông tin user chi tiết")
1260
+ public UserDTO getUser(
1261
+ @PathParam("userId") String userId) {
1262
+ return userService.getUser(userId);
1263
+ }
1264
+
1265
+ @PUT @Path("/{userId}")
1266
+ @Operation(summary = "Cập nhật thông tin user")
1267
+ public UserDTO updateUser(
1268
+ @PathParam("userId") String userId,
1269
+ UpdateUserRequest request) {
1270
+ return userService.updateUser(userId, request);
1271
+ }
1272
+
1273
+ @DELETE @Path("/{userId}")
1274
+ @Operation(summary = "Xoá user")
1275
+ public Response deleteUser(
1276
+ @PathParam("userId") String userId) {
1277
+ userService.deleteUser(userId);
1278
+ return Response.noContent().build();
1279
+ }
1280
+
1281
+ // === Role Management ===
1282
+
1283
+ @POST @Path("/{userId}/roles/{roleName}")
1284
+ @Operation(summary = "Gán realm role cho user")
1285
+ public Response assignRealmRole(
1286
+ @PathParam("userId") String userId,
1287
+ @PathParam("roleName") String roleName) {
1288
+ userService.assignRealmRole(userId, roleName);
1289
+ return Response.ok(Map.of(
1290
+ "message", "Đã gán role: " + roleName))
1291
+ .build();
1292
+ }
1293
+
1294
+ @DELETE @Path("/{userId}/roles/{roleName}")
1295
+ @Operation(summary = "Gỡ realm role khỏi user")
1296
+ public Response removeRealmRole(
1297
+ @PathParam("userId") String userId,
1298
+ @PathParam("roleName") String roleName) {
1299
+ userService.removeRealmRole(userId, roleName);
1300
+ return Response.ok().build();
1301
+ }
1302
+
1303
+ @POST
1304
+ @Path("/{userId}/clients/{clientId}/roles/{roleName}")
1305
+ @Operation(summary = "Gán client role cho user")
1306
+ public Response assignClientRole(
1307
+ @PathParam("userId") String userId,
1308
+ @PathParam("clientId") String clientId,
1309
+ @PathParam("roleName") String roleName) {
1310
+ userService.assignClientRole(
1311
+ userId, clientId, roleName);
1312
+ return Response.ok().build();
1313
+ }
1314
+
1315
+ @DELETE
1316
+ @Path("/{userId}/clients/{clientId}/roles/{roleName}")
1317
+ @Operation(summary = "Gỡ client role khỏi user")
1318
+ public Response removeClientRole(
1319
+ @PathParam("userId") String userId,
1320
+ @PathParam("clientId") String clientId,
1321
+ @PathParam("roleName") String roleName) {
1322
+ userService.removeClientRole(
1323
+ userId, clientId, roleName);
1324
+ return Response.ok().build();
1325
+ }
1326
+
1327
+ // === Group Management ===
1328
+
1329
+ @GET @Path("/{userId}/groups")
1330
+ @Operation(summary = "Lấy danh sách groups của user")
1331
+ public List<GroupRepresentation> getUserGroups(
1332
+ @PathParam("userId") String userId) {
1333
+ return userService.getUserGroups(userId);
1334
+ }
1335
+
1336
+ @POST @Path("/{userId}/groups/{groupId}")
1337
+ @Operation(summary = "Thêm user vào group")
1338
+ public Response joinGroup(
1339
+ @PathParam("userId") String userId,
1340
+ @PathParam("groupId") String groupId) {
1341
+ userService.joinGroup(userId, groupId);
1342
+ return Response.ok().build();
1343
+ }
1344
+
1345
+ @DELETE @Path("/{userId}/groups/{groupId}")
1346
+ @Operation(summary = "Xoá user khỏi group")
1347
+ public Response leaveGroup(
1348
+ @PathParam("userId") String userId,
1349
+ @PathParam("groupId") String groupId) {
1350
+ userService.leaveGroup(userId, groupId);
1351
+ return Response.ok().build();
1352
+ }
1353
+
1354
+ // === Account Actions ===
1355
+
1356
+ @PUT @Path("/{userId}/enable")
1357
+ @Operation(summary = "Kích hoạt user")
1358
+ public Response enableUser(
1359
+ @PathParam("userId") String userId) {
1360
+ userService.setUserEnabled(userId, true);
1361
+ return Response.ok().build();
1362
+ }
1363
+
1364
+ @PUT @Path("/{userId}/disable")
1365
+ @Operation(summary = "Vô hiệu hoá user")
1366
+ public Response disableUser(
1367
+ @PathParam("userId") String userId) {
1368
+ userService.setUserEnabled(userId, false);
1369
+ return Response.ok().build();
1370
+ }
1371
+
1372
+ @POST @Path("/{userId}/reset-password")
1373
+ @Operation(summary = "Gửi email reset password")
1374
+ public Response resetPassword(
1375
+ @PathParam("userId") String userId) {
1376
+ userService.sendPasswordResetEmail(userId);
1377
+ return Response.ok(Map.of(
1378
+ "message", "Đã gửi email reset password"))
1379
+ .build();
1380
+ }
1381
+
1382
+ @POST @Path("/{userId}/verify-email")
1383
+ @Operation(summary = "Gửi email xác thực")
1384
+ public Response verifyEmail(
1385
+ @PathParam("userId") String userId) {
1386
+ userService.sendVerificationEmail(userId);
1387
+ return Response.ok().build();
1388
+ }
1389
+
1390
+ // === Session Management ===
1391
+
1392
+ @GET @Path("/{userId}/sessions")
1393
+ @Operation(summary = "Lấy active sessions của user")
1394
+ public List<UserSessionRepresentation> getSessions(
1395
+ @PathParam("userId") String userId) {
1396
+ return userService.getUserSessions(userId);
1397
+ }
1398
+
1399
+ @DELETE @Path("/{userId}/sessions")
1400
+ @Operation(summary = "Logout tất cả sessions")
1401
+ public Response logoutAll(
1402
+ @PathParam("userId") String userId) {
1403
+ userService.logoutAllSessions(userId);
1404
+ return Response.ok(Map.of(
1405
+ "message", "Đã logout tất cả sessions"))
1406
+ .build();
1407
+ }
1408
+
1409
+ // === Groups List ===
1410
+
1411
+ @GET @Path("/groups")
1412
+ @Operation(summary = "Liệt kê tất cả groups")
1413
+ public List<GroupRepresentation> listGroups() {
1414
+ return userService.listAllGroups();
1415
+ }
1416
+ }
1417
+ ```
1418
+
1419
+ ## Self-Registration Endpoint
1420
+
1421
+ ```java
1422
+ @Path("/api/v1/auth")
1423
+ @Produces(MediaType.APPLICATION_JSON)
1424
+ @Consumes(MediaType.APPLICATION_JSON)
1425
+ @Tag(name = "Authentication")
1426
+ public class AuthResource {
1427
+
1428
+ @Inject
1429
+ KeycloakUserService userService;
1430
+
1431
+ @Inject
1432
+ SecurityAuditService auditService;
1433
+
1434
+ @POST @Path("/register")
1435
+ @PermitAll
1436
+ @Operation(summary = "Đăng ký tài khoản mới")
1437
+ public Response register(
1438
+ @Valid RegisterRequest request) {
1439
+ String userId = userService.createUser(
1440
+ new CreateUserRequest(
1441
+ request.username(), request.email(),
1442
+ request.password(), request.firstName(),
1443
+ request.lastName()));
1444
+
1445
+ auditService.logAccess("REGISTER",
1446
+ "User", userId);
1447
+
1448
+ return Response.status(201)
1449
+ .entity(Map.of(
1450
+ "message", "Đăng ký thành công."
1451
+ + " Kiểm tra email để xác thực.",
1452
+ "userId", userId))
1453
+ .build();
1454
+ }
1455
+
1456
+ @GET @Path("/me")
1457
+ @Authenticated
1458
+ @Operation(summary = "Lấy thông tin user hiện tại")
1459
+ public UserProfileDTO getProfile(
1460
+ @Context SecurityContext ctx) {
1461
+ JsonWebToken jwt = (JsonWebToken) ctx
1462
+ .getUserPrincipal();
1463
+
1464
+ return new UserProfileDTO(
1465
+ jwt.getSubject(),
1466
+ jwt.getName(),
1467
+ jwt.getClaim("email"),
1468
+ jwt.getClaim("preferred_username"),
1469
+ jwt.getGroups(),
1470
+ jwt.getClaim("seller_tier"),
1471
+ jwt.getClaim("realm_access"));
1472
+ }
1473
+ }
1474
+
1475
+ public record RegisterRequest(
1476
+ @NotBlank @Size(min = 3, max = 50) String username,
1477
+ @Email @NotBlank String email,
1478
+ @NotBlank @Size(min = 8, message =
1479
+ "Mật khẩu tối thiểu 8 ký tự") String password,
1480
+ @NotBlank String firstName,
1481
+ @NotBlank String lastName
1482
+ ) {}
1483
+
1484
+ public record UserProfileDTO(
1485
+ String id,
1486
+ String name,
1487
+ String email,
1488
+ String username,
1489
+ Set<String> roles,
1490
+ String sellerTier,
1491
+ Object realmAccess
1492
+ ) {}
1493
+ ```
1494
+
1495
+ ## Multi-tenancy Pattern
1496
+
1497
+ Cho SaaS — mỗi tenant là 1 realm hoặc 1 group + tenant attribute:
1498
+
1499
+ ### Approach 1: Tenant via Group + Attribute
1500
+
1501
+ ```java
1502
+ @ApplicationScoped
1503
+ public class TenantResolver {
1504
+
1505
+ @Inject
1506
+ JsonWebToken jwt;
1507
+
1508
+ /**
1509
+ * Resolve tenant từ JWT token.
1510
+ * Token chứa custom claim "tenant_id"
1511
+ * (mapped từ user attribute trong Keycloak)
1512
+ */
1513
+ public String getCurrentTenantId() {
1514
+ String tenantId = jwt.getClaim("tenant_id");
1515
+ if (tenantId == null || tenantId.isBlank()) {
1516
+ throw new ForbiddenException(
1517
+ "User không thuộc tenant nào");
1518
+ }
1519
+ return tenantId;
1520
+ }
1521
+ }
1522
+
1523
+ // Hibernate Filter cho multi-tenancy
1524
+ @FilterDef(
1525
+ name = "tenantFilter",
1526
+ parameters = @ParamDef(
1527
+ name = "tenantId", type = String.class))
1528
+ @Filter(
1529
+ name = "tenantFilter",
1530
+ condition = "tenant_id = :tenantId")
1531
+ @Entity
1532
+ @Table(name = "products")
1533
+ public class Product extends PanacheEntity {
1534
+ @Column(name = "tenant_id", nullable = false)
1535
+ public String tenantId;
1536
+
1537
+ public String name;
1538
+ public BigDecimal price;
1539
+ // ...
1540
+ }
1541
+
1542
+ // Auto-apply tenant filter
1543
+ @ApplicationScoped
1544
+ public class TenantFilterService {
1545
+
1546
+ @Inject
1547
+ EntityManager em;
1548
+
1549
+ @Inject
1550
+ TenantResolver tenantResolver;
1551
+
1552
+ /**
1553
+ * Enable tenant filter cho mọi query
1554
+ * trong request scope
1555
+ */
1556
+ public void enableTenantFilter() {
1557
+ Session session = em.unwrap(Session.class);
1558
+ session.enableFilter("tenantFilter")
1559
+ .setParameter("tenantId",
1560
+ tenantResolver.getCurrentTenantId());
1561
+ }
1562
+ }
1563
+
1564
+ // Jakarta REST Filter — tự động enable
1565
+ @Provider
1566
+ @Authenticated
1567
+ public class TenantRequestFilter
1568
+ implements ContainerRequestFilter {
1569
+
1570
+ @Inject
1571
+ TenantFilterService tenantFilter;
1572
+
1573
+ @Override
1574
+ public void filter(
1575
+ ContainerRequestContext ctx) {
1576
+ tenantFilter.enableTenantFilter();
1577
+ }
1578
+ }
1579
+ ```
1580
+
1581
+ ### Approach 2: Tenant per Realm
1582
+
1583
+ ```properties
1584
+ # Mỗi tenant có realm riêng
1585
+ # Resolve realm từ subdomain hoặc header
1586
+ quarkus.oidc.auth-server-url=\
1587
+ http://keycloak:8080/realms/${tenant.realm}
1588
+
1589
+ # Dùng TenantConfigResolver
1590
+ quarkus.oidc.tenant-enabled=true
1591
+ ```
1592
+
1593
+ ```java
1594
+ @ApplicationScoped
1595
+ public class CustomTenantConfigResolver
1596
+ implements TenantConfigResolver {
1597
+
1598
+ @Override
1599
+ public Uni<OidcTenantConfig> resolve(
1600
+ RoutingContext context,
1601
+ OidcRequestContext<OidcTenantConfig> reqCtx) {
1602
+
1603
+ // Resolve tenant từ subdomain
1604
+ String host = context.request().host();
1605
+ String tenant = host.split("\\.")[0];
1606
+ // acme.ecommerce.xdev.asia → tenant = "acme"
1607
+
1608
+ OidcTenantConfig config = new OidcTenantConfig();
1609
+ config.setTenantId(tenant);
1610
+ config.setAuthServerUrl(
1611
+ "http://keycloak:8080/realms/" + tenant);
1612
+ config.setClientId("ecommerce-api");
1613
+ config.setApplicationType(
1614
+ OidcTenantConfig.ApplicationType.SERVICE);
1615
+
1616
+ return Uni.createFrom().item(config);
1617
+ }
1618
+ }
1619
+ ```
1620
+
1621
+ ## Audit Logging
1622
+
1623
+ ### Structured Audit Service
1624
+
1625
+ ```java
1626
+ @ApplicationScoped
1627
+ public class SecurityAuditService {
1628
+
1629
+ private static final Logger AUDIT =
1630
+ Logger.getLogger("SECURITY_AUDIT");
1631
+
1632
+ @Inject
1633
+ JsonWebToken jwt;
1634
+
1635
+ @Inject
1636
+ @ConfigProperty(name = "quarkus.application.name")
1637
+ String serviceName;
1638
+
1639
+ /**
1640
+ * Log resource access (view, update, delete)
1641
+ */
1642
+ public void logAccess(String action, String resource,
1643
+ String resourceId) {
1644
+ AuditEntry entry = new AuditEntry(
1645
+ UUID.randomUUID().toString(),
1646
+ Instant.now(),
1647
+ serviceName,
1648
+ resolveUserId(),
1649
+ resolveUsername(),
1650
+ action,
1651
+ resource,
1652
+ resourceId,
1653
+ "SUCCESS",
1654
+ null);
1655
+
1656
+ AUDIT.infof("%s", entry.toJson());
1657
+ }
1658
+
1659
+ /**
1660
+ * Log admin actions (create/delete user, assign role)
1661
+ */
1662
+ public void logAdminAction(String action,
1663
+ String targetUserId) {
1664
+ AuditEntry entry = new AuditEntry(
1665
+ UUID.randomUUID().toString(),
1666
+ Instant.now(),
1667
+ serviceName,
1668
+ resolveUserId(),
1669
+ resolveUsername(),
1670
+ action,
1671
+ "User",
1672
+ targetUserId,
1673
+ "SUCCESS",
1674
+ null);
1675
+
1676
+ // Admin actions → WARN level cho visibility
1677
+ AUDIT.warnf("ADMIN_ACTION | %s", entry.toJson());
1678
+ }
1679
+
1680
+ /**
1681
+ * Log security violations (unauthorized access,
1682
+ * ownership check failures)
1683
+ */
1684
+ public void logViolation(String action, String resource,
1685
+ String resourceId,
1686
+ String reason) {
1687
+ AuditEntry entry = new AuditEntry(
1688
+ UUID.randomUUID().toString(),
1689
+ Instant.now(),
1690
+ serviceName,
1691
+ resolveUserId(),
1692
+ resolveUsername(),
1693
+ action,
1694
+ resource,
1695
+ resourceId,
1696
+ "DENIED",
1697
+ reason);
1698
+
1699
+ // Security violations → ERROR level
1700
+ AUDIT.errorf("SECURITY_VIOLATION | %s",
1701
+ entry.toJson());
1702
+ }
1703
+
1704
+ private String resolveUserId() {
1705
+ return jwt != null ? jwt.getSubject() : "anonymous";
1706
+ }
1707
+
1708
+ private String resolveUsername() {
1709
+ return jwt != null
1710
+ ? jwt.getClaim("preferred_username")
1711
+ : "anonymous";
1712
+ }
1713
+ }
1714
+
1715
+ public record AuditEntry(
1716
+ String id,
1717
+ Instant timestamp,
1718
+ String service,
1719
+ String userId,
1720
+ String username,
1721
+ String action,
1722
+ String resourceType,
1723
+ String resourceId,
1724
+ String result,
1725
+ String reason
1726
+ ) {
1727
+ public String toJson() {
1728
+ return String.format(
1729
+ "{\"id\":\"%s\",\"timestamp\":\"%s\","
1730
+ + "\"service\":\"%s\",\"userId\":\"%s\","
1731
+ + "\"username\":\"%s\",\"action\":\"%s\","
1732
+ + "\"resourceType\":\"%s\","
1733
+ + "\"resourceId\":\"%s\","
1734
+ + "\"result\":\"%s\",\"reason\":\"%s\"}",
1735
+ id, timestamp, service, userId, username,
1736
+ action, resourceType, resourceId,
1737
+ result, reason != null ? reason : "");
1738
+ }
1739
+ }
1740
+ ```
1741
+
1742
+ ### Audit Log trong application.properties
1743
+
1744
+ ```properties
1745
+ # Separate audit log file
1746
+ quarkus.log.category."SECURITY_AUDIT".level=INFO
1747
+ quarkus.log.handler.file."audit".enable=true
1748
+ quarkus.log.handler.file."audit".path=logs/audit.log
1749
+ quarkus.log.handler.file."audit".rotation.max-file-size=50M
1750
+ quarkus.log.handler.file."audit".rotation.max-backup-index=30
1751
+ quarkus.log.handler.file."audit".format=%d{yyyy-MM-dd HH:mm:ss} %m%n
1752
+ quarkus.log.category."SECURITY_AUDIT".handlers=audit
1753
+ quarkus.log.category."SECURITY_AUDIT".use-parent-handlers=false
1754
+ ```
1755
+
1756
+ ## Testing Security
1757
+
1758
+ ```java
1759
+ @QuarkusTest
1760
+ class AdminUserResourceTest {
1761
+
1762
+ // === Test admin access ===
1763
+ @Test
1764
+ @TestSecurity(user = "admin1",
1765
+ roles = {"admin"})
1766
+ void testListUsersAsAdmin() {
1767
+ given()
1768
+ .queryParam("q", "test")
1769
+ .when().get("/api/v1/admin/users")
1770
+ .then()
1771
+ .statusCode(200)
1772
+ .body("users", notNullValue())
1773
+ .body("total", greaterThanOrEqualTo(0));
1774
+ }
1775
+
1776
+ // === Test forbidden for non-admin ===
1777
+ @Test
1778
+ @TestSecurity(user = "customer1",
1779
+ roles = {"customer"})
1780
+ void testListUsersAsCustomerForbidden() {
1781
+ given()
1782
+ .when().get("/api/v1/admin/users")
1783
+ .then()
1784
+ .statusCode(403);
1785
+ }
1786
+
1787
+ // === Test resource owner ===
1788
+ @Test
1789
+ @TestSecurity(user = "owner-123",
1790
+ roles = {"customer"})
1791
+ void testGetOwnOrder() {
1792
+ // Assume order #1 belongs to owner-123
1793
+ given()
1794
+ .when().get("/api/v1/orders/1")
1795
+ .then()
1796
+ .statusCode(200);
1797
+ }
1798
+
1799
+ @Test
1800
+ @TestSecurity(user = "other-user",
1801
+ roles = {"customer"})
1802
+ void testGetOtherUserOrderForbidden() {
1803
+ // order #1 belongs to owner-123, not other-user
1804
+ given()
1805
+ .when().get("/api/v1/orders/1")
1806
+ .then()
1807
+ .statusCode(403);
1808
+ }
1809
+
1810
+ // === Test admin bypass ownership ===
1811
+ @Test
1812
+ @TestSecurity(user = "admin1",
1813
+ roles = {"admin"})
1814
+ void testAdminCanViewAnyOrder() {
1815
+ given()
1816
+ .when().get("/api/v1/orders/1")
1817
+ .then()
1818
+ .statusCode(200);
1819
+ }
1820
+
1821
+ // === Test self-registration ===
1822
+ @Test
1823
+ void testRegister() {
1824
+ given()
1825
+ .contentType("application/json")
1826
+ .body("""
1827
+ {
1828
+ "username": "newuser",
1829
+ "email": "new@xdev.asia",
1830
+ "password": "Password123!",
1831
+ "firstName": "New",
1832
+ "lastName": "User"
1833
+ }
1834
+ """)
1835
+ .when().post("/api/v1/auth/register")
1836
+ .then()
1837
+ .statusCode(201)
1838
+ .body("userId", notNullValue());
1839
+ }
1840
+
1841
+ // === Test client roles ===
1842
+ @Test
1843
+ @TestSecurity(user = "seller1",
1844
+ roles = {"seller", "product:create",
1845
+ "product:update", "product:view"})
1846
+ void testSellerCanCreateProduct() {
1847
+ given()
1848
+ .contentType("application/json")
1849
+ .body("""
1850
+ {"name": "Test Product",
1851
+ "price": 100000,
1852
+ "stockQuantity": 10,
1853
+ "categoryId": 1}
1854
+ """)
1855
+ .when().post("/api/v1/products")
1856
+ .then()
1857
+ .statusCode(201);
1858
+ }
1859
+
1860
+ @Test
1861
+ @TestSecurity(user = "seller1",
1862
+ roles = {"seller", "product:create"})
1863
+ void testSellerCannotDeleteProduct() {
1864
+ // seller không có product:delete
1865
+ given()
1866
+ .when().delete("/api/v1/products/1")
1867
+ .then()
1868
+ .statusCode(403);
1869
+ }
1870
+ }
1871
+ ```
1872
+
1873
+ ## Bài tập
1874
+
1875
+ 1. Cấu hình Realm Roles, Client Roles và Composite Roles trong Keycloak realm JSON
1876
+ 2. Implement `@RequiresOwnership` annotation + interceptor cho Order và Product resources
1877
+ 3. Tích hợp Keycloak Admin Client: CRUD users, assign/remove roles, manage groups
1878
+ 4. Tạo Admin API endpoints với Swagger documentation
1879
+ 5. Implement Self-Registration endpoint với email verification
1880
+ 6. Cấu hình Group-based access: sellers (premium/basic) với product quota
1881
+ 7. Thêm Audit Logging structured với separate log file
1882
+ 8. Viết tests: `@TestSecurity` cho admin, customer, seller, resource ownership
1883
+ 9. (Nâng cao) Implement Multi-tenancy với Hibernate Filter hoặc per-realm approach
1884
+
1885
+ ## Tổng kết
1886
+
1887
+ | Tính năng | Mô tả |
1888
+ |-----------|--------|
1889
+ | **Realm Roles** | Cross-service permissions: admin, customer, seller |
1890
+ | **Client Roles** | Service-specific: product:create, order:refund |
1891
+ | **Composite Roles** | Gom roles: seller = product:create + product:view + ... |
1892
+ | **Groups** | Tổ chức users: /sellers/premium, /staff/support |
1893
+ | **@RequiresOwnership** | Resource-level authorization, admin bypass |
1894
+ | **Custom Claims** | Token enrichment qua Keycloak Protocol Mapper |
1895
+ | **Admin Client** | CRUD users, roles, groups, sessions programmatically |
1896
+ | **Multi-tenancy** | Per-group hoặc per-realm tenant isolation |
1897
+ | **Audit Logging** | Structured logs cho security events, separate file |
1898
+ | **@TestSecurity** | Mock authentication/authorization trong tests |
1899
+
1900
+ Bài tiếp theo: REST Client — Giao tiếp đồng bộ giữa Microservices.