@the-bearded-bear/claude-craft 8.22.0 → 8.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (468) hide show
  1. package/Dev/i18n/base/Angular/rules/00-project-context.md.template +1 -1
  2. package/Dev/i18n/base/CSharp/rules/06-tooling.md +0 -2
  3. package/Dev/i18n/base/CSharp/rules/11-security-csharp.md +184 -160
  4. package/Dev/i18n/base/Common/commands/aliases.md +3 -0
  5. package/Dev/i18n/base/Common/commands/audit-claude-alignment.md +201 -0
  6. package/Dev/i18n/base/Common/commands/init.md +1 -1
  7. package/Dev/i18n/base/Common/commands/search.md +2 -1
  8. package/Dev/i18n/base/Common/skills/dynamic-workflows/SKILL.md +1 -1
  9. package/Dev/i18n/base/Common/skills/ecosystem-tools/SKILL.md +2 -1
  10. package/Dev/i18n/base/Laravel/rules/06-tooling.md +0 -2
  11. package/Dev/i18n/base/PHP/checklists/new-feature.md +1 -1
  12. package/Dev/i18n/base/PHP/commands/check-code-quality.md +3 -3
  13. package/Dev/i18n/base/Vercel/checklists/pre-commit.md +1 -1
  14. package/Dev/i18n/base/Vercel/commands/check-security.md +12 -12
  15. package/Dev/i18n/base/Vercel/rules/00-project-context.md.template +1 -1
  16. package/Dev/i18n/base/Vercel/rules/02-architecture-vercel.md +2 -2
  17. package/Dev/i18n/base/Vercel/rules/03-coding-standards.md +1 -1
  18. package/Dev/i18n/base/Vercel/rules/06-tooling.md +12 -0
  19. package/Dev/i18n/base/Vercel/rules/07-testing-vercel.md +1 -1
  20. package/Dev/i18n/base/Vercel/rules/08-quality-tools.md +1 -1
  21. package/Dev/i18n/base/Vercel/rules/11-security-vercel.md +1 -1
  22. package/Dev/i18n/base/Vercel/templates/function-handler.template.ts +1 -1
  23. package/Dev/i18n/base/Vite/checklists/new-feature.md +2 -2
  24. package/Dev/i18n/base/Vite/checklists/pre-commit.md +2 -2
  25. package/Dev/i18n/base/Vite/commands/check-architecture.md +5 -5
  26. package/Dev/i18n/base/Vite/commands/check-library-build.md +3 -3
  27. package/Dev/i18n/base/Vite/commands/scaffold-project.md +2 -2
  28. package/Dev/i18n/base/Vite/rules/02-architecture-vite.md +5 -5
  29. package/Dev/i18n/base/Vite/rules/03-coding-standards.md +1 -1
  30. package/Dev/i18n/base/Vite/rules/06-tooling.md +2 -2
  31. package/Dev/i18n/base/Vite/rules/07-testing-vite.md +1 -1
  32. package/Dev/i18n/base/Vite/rules/11-security-vite.md +4 -4
  33. package/Dev/i18n/base/Vite/templates/library-entry.template.ts +2 -2
  34. package/Dev/i18n/base/Vite/templates/vite.config.template.ts +2 -2
  35. package/Dev/i18n/base/VueJS/rules/06-tooling.md +3 -2
  36. package/Dev/i18n/de/Angular/agents/angular-reviewer.md +3 -3
  37. package/Dev/i18n/de/Common/agents/devops-engineer.md +15 -1
  38. package/Dev/i18n/de/Common/agents/ralph-conductor.md +12 -1
  39. package/Dev/i18n/de/Common/agents/refactoring-specialist.md +9 -0
  40. package/Dev/i18n/de/Common/agents/security-auditor.md +10 -7
  41. package/Dev/i18n/de/Common/agents/tdd-coach.md +9 -0
  42. package/Dev/i18n/de/Common/agents/uiux-orchestrator.md +10 -1
  43. package/Dev/i18n/de/Common/commands/getting-started.md +2 -2
  44. package/Dev/i18n/de/Common/commands/setup-rtk.md +2 -2
  45. package/Dev/i18n/de/Common/rules/04-solid-principles.md +1 -1
  46. package/Dev/i18n/de/Common/rules/05-kiss-dry-yagni.md +5 -2
  47. package/Dev/i18n/de/Common/rules/10-documentation.md +1 -1
  48. package/Dev/i18n/de/Common/rules/11-security.md +76 -73
  49. package/Dev/i18n/de/Common/rules/12-context-management.md +29 -19
  50. package/Dev/i18n/de/Common/templates/settings.json.template +6 -6
  51. package/Dev/i18n/de/Flutter/agents/flutter-reviewer.md +4 -4
  52. package/Dev/i18n/de/Flutter/rules/06-tooling.md +30 -24
  53. package/Dev/i18n/de/Flutter/rules/07-testing-flutter.md +0 -0
  54. package/Dev/i18n/de/Flutter/rules/08-quality-tools.md +1 -1
  55. package/Dev/i18n/de/Flutter/rules/12-performance.md +17 -17
  56. package/Dev/i18n/de/Flutter/rules/13-state-management.md +0 -0
  57. package/Dev/i18n/de/PHP/agents/php-reviewer.md +6 -6
  58. package/Dev/i18n/de/PHP/commands/check-compliance.md +3 -3
  59. package/Dev/i18n/de/PHP/rules/03-coding-standards.md +4 -2
  60. package/Dev/i18n/de/PHP/rules/06-tooling.md +4 -7
  61. package/Dev/i18n/de/PHP/rules/08-quality-tools.md +2 -2
  62. package/Dev/i18n/de/Paperclip/CLAUDE.md.template +2 -2
  63. package/Dev/i18n/de/Paperclip/README.md +1 -1
  64. package/Dev/i18n/de/Paperclip/commands/setup-company.md +1 -1
  65. package/Dev/i18n/de/Paperclip/rules/06-tooling.md +3 -3
  66. package/Dev/i18n/de/Paperclip/rules/11-security-paperclip.md +9 -0
  67. package/Dev/i18n/de/Paperclip/skills/coding-standards-ts/SKILL.md +1 -1
  68. package/Dev/i18n/de/Python/commands/generate-model.md +3 -1
  69. package/Dev/i18n/de/Python/rules/06-tooling.md +1 -1
  70. package/Dev/i18n/de/Python/rules/08-quality-tools.md +1 -1
  71. package/Dev/i18n/de/Python/rules/11-security-python.md +2 -2
  72. package/Dev/i18n/de/React/agents/react-reviewer.md +9 -5
  73. package/Dev/i18n/de/React/rules/06-tooling.md +0 -2
  74. package/Dev/i18n/de/React/rules/11-security-react.md +9 -0
  75. package/Dev/i18n/de/ReactNative/agents/reactnative-reviewer.md +4 -4
  76. package/Dev/i18n/de/ReactNative/rules/06-tooling.md +19 -3
  77. package/Dev/i18n/de/Symfony/agents/symfony-reviewer.md +5 -5
  78. package/Dev/i18n/de/Symfony/checklists/README.md +1 -1
  79. package/Dev/i18n/de/Symfony/checklists/new-feature.md +2 -2
  80. package/Dev/i18n/de/Symfony/checklists/pre-commit.md +4 -4
  81. package/Dev/i18n/de/Symfony/checklists/refactoring.md +1 -1
  82. package/Dev/i18n/de/Symfony/commands/check-architecture.md +4 -4
  83. package/Dev/i18n/de/Symfony/commands/check-code-quality.md +15 -15
  84. package/Dev/i18n/de/Symfony/commands/check-security.md +32 -32
  85. package/Dev/i18n/de/Symfony/commands/check-testing.md +16 -16
  86. package/Dev/i18n/de/Symfony/rules/03-coding-standards.md +4 -4
  87. package/Dev/i18n/de/Symfony/rules/06-docker-hadolint.md +0 -4
  88. package/Dev/i18n/de/Symfony/rules/08-quality-tools.md +1 -1
  89. package/Dev/i18n/de/Symfony/rules/16-i18n.md +2 -0
  90. package/Dev/i18n/de/Symfony/rules/17-async.md +1 -0
  91. package/Dev/i18n/de/Symfony/rules/19-aggregates.md +1 -0
  92. package/Dev/i18n/de/Symfony/rules/20-domain-events.md +1 -0
  93. package/Dev/i18n/de/Team/commands/delivery.md +1 -1
  94. package/Dev/i18n/de/Vercel/CLAUDE.md.template +2 -2
  95. package/Dev/i18n/de/Vercel/agents/vercel-reviewer.md +8 -8
  96. package/Dev/i18n/de/Vite/CLAUDE.md.template +2 -2
  97. package/Dev/i18n/de/Vite/agents/vite-reviewer.md +19 -17
  98. package/Dev/i18n/de/Vite/commands/check-compliance.md +2 -2
  99. package/Dev/i18n/en/Angular/agents/angular-reviewer.md +3 -3
  100. package/Dev/i18n/en/Common/agents/devops-engineer.md +15 -1
  101. package/Dev/i18n/en/Common/agents/ralph-conductor.md +11 -0
  102. package/Dev/i18n/en/Common/agents/refactoring-specialist.md +9 -0
  103. package/Dev/i18n/en/Common/agents/security-auditor.md +10 -7
  104. package/Dev/i18n/en/Common/agents/tdd-coach.md +9 -0
  105. package/Dev/i18n/en/Common/agents/uiux-orchestrator.md +10 -1
  106. package/Dev/i18n/en/Common/commands/getting-started.md +2 -2
  107. package/Dev/i18n/en/Common/commands/setup-rtk.md +2 -2
  108. package/Dev/i18n/en/Common/rules/04-solid-principles.md +1 -1
  109. package/Dev/i18n/en/Common/rules/05-kiss-dry-yagni.md +5 -2
  110. package/Dev/i18n/en/Common/rules/10-documentation.md +1 -1
  111. package/Dev/i18n/en/Common/rules/11-security.md +76 -73
  112. package/Dev/i18n/en/Common/rules/12-context-management.md +31 -21
  113. package/Dev/i18n/en/Common/templates/settings.json.template +6 -6
  114. package/Dev/i18n/en/Flutter/agents/flutter-reviewer.md +4 -4
  115. package/Dev/i18n/en/Flutter/rules/06-tooling.md +29 -23
  116. package/Dev/i18n/en/Flutter/rules/07-testing-flutter.md +0 -0
  117. package/Dev/i18n/en/Flutter/rules/08-quality-tools.md +1 -1
  118. package/Dev/i18n/en/Flutter/rules/12-performance.md +17 -17
  119. package/Dev/i18n/en/Flutter/rules/13-state-management.md +0 -0
  120. package/Dev/i18n/en/PHP/CLAUDE.md.template +1 -1
  121. package/Dev/i18n/en/PHP/agents/php-reviewer.md +6 -6
  122. package/Dev/i18n/en/PHP/commands/check-compliance.md +1 -1
  123. package/Dev/i18n/en/PHP/rules/03-coding-standards.md +4 -2
  124. package/Dev/i18n/en/PHP/rules/06-tooling.md +4 -7
  125. package/Dev/i18n/en/PHP/rules/08-quality-tools.md +2 -2
  126. package/Dev/i18n/en/Paperclip/CLAUDE.md.template +2 -2
  127. package/Dev/i18n/en/Paperclip/README.md +1 -1
  128. package/Dev/i18n/en/Paperclip/commands/setup-company.md +1 -1
  129. package/Dev/i18n/en/Paperclip/rules/06-tooling.md +3 -3
  130. package/Dev/i18n/en/Paperclip/rules/11-security-paperclip.md +9 -0
  131. package/Dev/i18n/en/Paperclip/skills/coding-standards-ts/SKILL.md +1 -1
  132. package/Dev/i18n/en/Python/commands/generate-model.md +3 -1
  133. package/Dev/i18n/en/Python/rules/06-tooling.md +1 -1
  134. package/Dev/i18n/en/Python/rules/08-quality-tools.md +1 -1
  135. package/Dev/i18n/en/Python/rules/11-security-python.md +11 -11
  136. package/Dev/i18n/en/React/agents/react-reviewer.md +9 -5
  137. package/Dev/i18n/en/React/rules/06-tooling.md +0 -2
  138. package/Dev/i18n/en/React/rules/11-security-react.md +9 -0
  139. package/Dev/i18n/en/ReactNative/agents/reactnative-reviewer.md +4 -4
  140. package/Dev/i18n/en/ReactNative/rules/02-architecture.md +1 -1
  141. package/Dev/i18n/en/ReactNative/rules/06-tooling.md +19 -3
  142. package/Dev/i18n/en/Symfony/agents/symfony-reviewer.md +5 -5
  143. package/Dev/i18n/en/Symfony/checklists/README.md +1 -1
  144. package/Dev/i18n/en/Symfony/checklists/new-feature.md +2 -2
  145. package/Dev/i18n/en/Symfony/checklists/pre-commit.md +4 -4
  146. package/Dev/i18n/en/Symfony/checklists/refactoring.md +1 -1
  147. package/Dev/i18n/en/Symfony/commands/check-architecture.md +4 -4
  148. package/Dev/i18n/en/Symfony/commands/check-code-quality.md +15 -15
  149. package/Dev/i18n/en/Symfony/commands/check-security.md +32 -32
  150. package/Dev/i18n/en/Symfony/commands/check-testing.md +16 -16
  151. package/Dev/i18n/en/Symfony/rules/03-coding-standards.md +4 -4
  152. package/Dev/i18n/en/Symfony/rules/06-docker-hadolint.md +0 -4
  153. package/Dev/i18n/en/Symfony/rules/08-quality-tools.md +1 -1
  154. package/Dev/i18n/en/Symfony/rules/16-i18n.md +2 -0
  155. package/Dev/i18n/en/Symfony/rules/17-async.md +1 -0
  156. package/Dev/i18n/en/Symfony/rules/19-aggregates.md +1 -0
  157. package/Dev/i18n/en/Symfony/rules/20-domain-events.md +1 -0
  158. package/Dev/i18n/en/Team/commands/delivery.md +1 -1
  159. package/Dev/i18n/en/Vercel/CLAUDE.md.template +2 -2
  160. package/Dev/i18n/en/Vercel/agents/vercel-reviewer.md +8 -8
  161. package/Dev/i18n/en/Vite/CLAUDE.md.template +2 -2
  162. package/Dev/i18n/en/Vite/agents/vite-reviewer.md +19 -17
  163. package/Dev/i18n/en/Vite/commands/check-compliance.md +2 -2
  164. package/Dev/i18n/en/Workflow/commands/review.md +0 -0
  165. package/Dev/i18n/en/Workflow/commands/start.md +0 -0
  166. package/Dev/i18n/es/Angular/agents/angular-reviewer.md +3 -3
  167. package/Dev/i18n/es/Common/agents/devops-engineer.md +15 -1
  168. package/Dev/i18n/es/Common/agents/ralph-conductor.md +11 -0
  169. package/Dev/i18n/es/Common/agents/refactoring-specialist.md +9 -0
  170. package/Dev/i18n/es/Common/agents/security-auditor.md +10 -7
  171. package/Dev/i18n/es/Common/agents/tdd-coach.md +9 -0
  172. package/Dev/i18n/es/Common/agents/uiux-orchestrator.md +10 -1
  173. package/Dev/i18n/es/Common/commands/getting-started.md +2 -2
  174. package/Dev/i18n/es/Common/commands/setup-rtk.md +2 -2
  175. package/Dev/i18n/es/Common/rules/04-solid-principles.md +1 -1
  176. package/Dev/i18n/es/Common/rules/05-kiss-dry-yagni.md +5 -2
  177. package/Dev/i18n/es/Common/rules/10-documentation.md +1 -1
  178. package/Dev/i18n/es/Common/rules/11-security.md +76 -73
  179. package/Dev/i18n/es/Common/rules/12-context-management.md +29 -19
  180. package/Dev/i18n/es/Common/templates/settings.json.template +6 -6
  181. package/Dev/i18n/es/Flutter/agents/flutter-reviewer.md +4 -4
  182. package/Dev/i18n/es/Flutter/rules/06-tooling.md +31 -25
  183. package/Dev/i18n/es/Flutter/rules/07-testing-flutter.md +0 -0
  184. package/Dev/i18n/es/Flutter/rules/08-quality-tools.md +1 -1
  185. package/Dev/i18n/es/Flutter/rules/12-performance.md +17 -17
  186. package/Dev/i18n/es/Flutter/rules/13-state-management.md +0 -0
  187. package/Dev/i18n/es/PHP/agents/php-reviewer.md +6 -6
  188. package/Dev/i18n/es/PHP/commands/check-compliance.md +3 -3
  189. package/Dev/i18n/es/PHP/rules/03-coding-standards.md +4 -2
  190. package/Dev/i18n/es/PHP/rules/06-tooling.md +4 -7
  191. package/Dev/i18n/es/PHP/rules/08-quality-tools.md +2 -2
  192. package/Dev/i18n/es/Paperclip/CLAUDE.md.template +2 -2
  193. package/Dev/i18n/es/Paperclip/README.md +1 -1
  194. package/Dev/i18n/es/Paperclip/commands/setup-company.md +1 -1
  195. package/Dev/i18n/es/Paperclip/rules/06-tooling.md +3 -3
  196. package/Dev/i18n/es/Paperclip/rules/11-security-paperclip.md +9 -0
  197. package/Dev/i18n/es/Paperclip/skills/coding-standards-ts/SKILL.md +1 -1
  198. package/Dev/i18n/es/Python/commands/generate-model.md +3 -1
  199. package/Dev/i18n/es/Python/rules/06-tooling.md +1 -1
  200. package/Dev/i18n/es/Python/rules/08-quality-tools.md +1 -1
  201. package/Dev/i18n/es/Python/rules/11-security-python.md +2 -2
  202. package/Dev/i18n/es/React/agents/react-reviewer.md +9 -5
  203. package/Dev/i18n/es/React/rules/06-tooling.md +0 -2
  204. package/Dev/i18n/es/React/rules/11-security-react.md +9 -0
  205. package/Dev/i18n/es/ReactNative/agents/reactnative-reviewer.md +4 -4
  206. package/Dev/i18n/es/ReactNative/rules/06-tooling.md +19 -3
  207. package/Dev/i18n/es/Symfony/agents/symfony-reviewer.md +5 -5
  208. package/Dev/i18n/es/Symfony/checklists/README.md +1 -1
  209. package/Dev/i18n/es/Symfony/checklists/new-feature.md +2 -2
  210. package/Dev/i18n/es/Symfony/checklists/pre-commit.md +4 -4
  211. package/Dev/i18n/es/Symfony/checklists/refactoring.md +1 -1
  212. package/Dev/i18n/es/Symfony/commands/check-architecture.md +4 -4
  213. package/Dev/i18n/es/Symfony/commands/check-code-quality.md +15 -15
  214. package/Dev/i18n/es/Symfony/commands/check-security.md +32 -32
  215. package/Dev/i18n/es/Symfony/commands/check-testing.md +16 -16
  216. package/Dev/i18n/es/Symfony/rules/03-coding-standards.md +4 -4
  217. package/Dev/i18n/es/Symfony/rules/06-docker-hadolint.md +0 -4
  218. package/Dev/i18n/es/Symfony/rules/08-quality-tools.md +1 -1
  219. package/Dev/i18n/es/Symfony/rules/16-i18n.md +2 -0
  220. package/Dev/i18n/es/Symfony/rules/17-async.md +1 -0
  221. package/Dev/i18n/es/Symfony/rules/19-aggregates.md +1 -0
  222. package/Dev/i18n/es/Symfony/rules/20-domain-events.md +1 -0
  223. package/Dev/i18n/es/Team/commands/delivery.md +1 -1
  224. package/Dev/i18n/es/Vercel/CLAUDE.md.template +2 -2
  225. package/Dev/i18n/es/Vercel/agents/vercel-reviewer.md +7 -7
  226. package/Dev/i18n/es/Vite/CLAUDE.md.template +2 -2
  227. package/Dev/i18n/es/Vite/agents/vite-reviewer.md +19 -17
  228. package/Dev/i18n/es/Vite/commands/check-compliance.md +2 -2
  229. package/Dev/i18n/fr/Angular/agents/angular-reviewer.md +3 -3
  230. package/Dev/i18n/fr/Common/agents/devops-engineer.md +15 -1
  231. package/Dev/i18n/fr/Common/agents/ralph-conductor.md +12 -1
  232. package/Dev/i18n/fr/Common/agents/refactoring-specialist.md +9 -0
  233. package/Dev/i18n/fr/Common/agents/security-auditor.md +10 -7
  234. package/Dev/i18n/fr/Common/agents/tdd-coach.md +9 -0
  235. package/Dev/i18n/fr/Common/agents/uiux-orchestrator.md +10 -1
  236. package/Dev/i18n/fr/Common/commands/getting-started.md +2 -2
  237. package/Dev/i18n/fr/Common/commands/setup-rtk.md +2 -2
  238. package/Dev/i18n/fr/Common/rules/04-solid-principles.md +1 -1
  239. package/Dev/i18n/fr/Common/rules/05-kiss-dry-yagni.md +5 -2
  240. package/Dev/i18n/fr/Common/rules/10-documentation.md +1 -1
  241. package/Dev/i18n/fr/Common/rules/11-security.md +76 -73
  242. package/Dev/i18n/fr/Common/rules/12-context-management.md +30 -20
  243. package/Dev/i18n/fr/Common/templates/settings.json.template +6 -6
  244. package/Dev/i18n/fr/Flutter/agents/flutter-reviewer.md +4 -4
  245. package/Dev/i18n/fr/Flutter/rules/06-tooling.md +10 -4
  246. package/Dev/i18n/fr/Flutter/rules/08-quality-tools.md +1 -1
  247. package/Dev/i18n/fr/PHP/agents/php-reviewer.md +6 -6
  248. package/Dev/i18n/fr/PHP/commands/check-compliance.md +3 -3
  249. package/Dev/i18n/fr/PHP/rules/03-coding-standards.md +4 -2
  250. package/Dev/i18n/fr/PHP/rules/06-tooling.md +4 -7
  251. package/Dev/i18n/fr/PHP/rules/08-quality-tools.md +2 -2
  252. package/Dev/i18n/fr/Paperclip/CLAUDE.md.template +2 -2
  253. package/Dev/i18n/fr/Paperclip/README.md +1 -1
  254. package/Dev/i18n/fr/Paperclip/commands/setup-company.md +1 -1
  255. package/Dev/i18n/fr/Paperclip/rules/06-tooling.md +3 -3
  256. package/Dev/i18n/fr/Paperclip/rules/11-security-paperclip.md +9 -0
  257. package/Dev/i18n/fr/Paperclip/skills/coding-standards-ts/SKILL.md +1 -1
  258. package/Dev/i18n/fr/Python/commands/generate-model.md +3 -1
  259. package/Dev/i18n/fr/Python/rules/06-tooling.md +1 -3
  260. package/Dev/i18n/fr/Python/rules/08-quality-tools.md +1 -1
  261. package/Dev/i18n/fr/Python/rules/11-security-python.md +2 -2
  262. package/Dev/i18n/fr/React/agents/react-reviewer.md +9 -5
  263. package/Dev/i18n/fr/React/rules/06-tooling.md +0 -2
  264. package/Dev/i18n/fr/React/rules/11-security-react.md +9 -0
  265. package/Dev/i18n/fr/ReactNative/agents/reactnative-reviewer.md +4 -4
  266. package/Dev/i18n/fr/ReactNative/rules/06-tooling.md +19 -3
  267. package/Dev/i18n/fr/Symfony/agents/symfony-reviewer.md +5 -5
  268. package/Dev/i18n/fr/Symfony/checklists/README.md +1 -1
  269. package/Dev/i18n/fr/Symfony/checklists/new-feature.md +2 -2
  270. package/Dev/i18n/fr/Symfony/checklists/pre-commit.md +4 -4
  271. package/Dev/i18n/fr/Symfony/checklists/refactoring.md +1 -1
  272. package/Dev/i18n/fr/Symfony/commands/check-architecture.md +4 -4
  273. package/Dev/i18n/fr/Symfony/commands/check-code-quality.md +15 -15
  274. package/Dev/i18n/fr/Symfony/commands/check-security.md +32 -32
  275. package/Dev/i18n/fr/Symfony/commands/check-testing.md +16 -16
  276. package/Dev/i18n/fr/Symfony/rules/03-coding-standards.md +4 -4
  277. package/Dev/i18n/fr/Symfony/rules/06-docker-hadolint.md +0 -4
  278. package/Dev/i18n/fr/Symfony/rules/08-quality-tools.md +1 -1
  279. package/Dev/i18n/fr/Symfony/rules/16-i18n.md +2 -0
  280. package/Dev/i18n/fr/Symfony/rules/17-async.md +1 -0
  281. package/Dev/i18n/fr/Symfony/rules/19-aggregates.md +1 -0
  282. package/Dev/i18n/fr/Symfony/rules/20-domain-events.md +1 -0
  283. package/Dev/i18n/fr/Team/commands/delivery.md +1 -1
  284. package/Dev/i18n/fr/Vercel/CLAUDE.md.template +2 -2
  285. package/Dev/i18n/fr/Vercel/agents/vercel-reviewer.md +8 -8
  286. package/Dev/i18n/fr/Vite/CLAUDE.md.template +2 -2
  287. package/Dev/i18n/fr/Vite/agents/vite-reviewer.md +19 -17
  288. package/Dev/i18n/fr/Vite/commands/check-compliance.md +2 -2
  289. package/Dev/i18n/pt/Angular/agents/angular-reviewer.md +3 -3
  290. package/Dev/i18n/pt/Common/agents/devops-engineer.md +15 -1
  291. package/Dev/i18n/pt/Common/agents/ralph-conductor.md +11 -0
  292. package/Dev/i18n/pt/Common/agents/refactoring-specialist.md +9 -0
  293. package/Dev/i18n/pt/Common/agents/security-auditor.md +10 -7
  294. package/Dev/i18n/pt/Common/agents/tdd-coach.md +9 -0
  295. package/Dev/i18n/pt/Common/agents/uiux-orchestrator.md +10 -1
  296. package/Dev/i18n/pt/Common/commands/getting-started.md +2 -2
  297. package/Dev/i18n/pt/Common/commands/setup-rtk.md +2 -2
  298. package/Dev/i18n/pt/Common/rules/04-solid-principles.md +1 -1
  299. package/Dev/i18n/pt/Common/rules/05-kiss-dry-yagni.md +5 -2
  300. package/Dev/i18n/pt/Common/rules/10-documentation.md +1 -1
  301. package/Dev/i18n/pt/Common/rules/11-security.md +76 -73
  302. package/Dev/i18n/pt/Common/rules/12-context-management.md +29 -19
  303. package/Dev/i18n/pt/Common/templates/settings.json.template +6 -6
  304. package/Dev/i18n/pt/Flutter/agents/flutter-reviewer.md +4 -4
  305. package/Dev/i18n/pt/Flutter/rules/06-tooling.md +12 -6
  306. package/Dev/i18n/pt/Flutter/rules/08-quality-tools.md +1 -1
  307. package/Dev/i18n/pt/PHP/agents/php-reviewer.md +6 -6
  308. package/Dev/i18n/pt/PHP/commands/check-compliance.md +3 -3
  309. package/Dev/i18n/pt/PHP/rules/03-coding-standards.md +4 -2
  310. package/Dev/i18n/pt/PHP/rules/06-tooling.md +4 -7
  311. package/Dev/i18n/pt/PHP/rules/08-quality-tools.md +2 -2
  312. package/Dev/i18n/pt/Paperclip/CLAUDE.md.template +2 -2
  313. package/Dev/i18n/pt/Paperclip/README.md +1 -1
  314. package/Dev/i18n/pt/Paperclip/commands/setup-company.md +1 -1
  315. package/Dev/i18n/pt/Paperclip/rules/06-tooling.md +3 -3
  316. package/Dev/i18n/pt/Paperclip/rules/11-security-paperclip.md +9 -0
  317. package/Dev/i18n/pt/Paperclip/skills/coding-standards-ts/SKILL.md +1 -1
  318. package/Dev/i18n/pt/Python/commands/generate-model.md +3 -1
  319. package/Dev/i18n/pt/Python/rules/06-tooling.md +1 -1
  320. package/Dev/i18n/pt/Python/rules/08-quality-tools.md +1 -1
  321. package/Dev/i18n/pt/Python/rules/11-security-python.md +2 -2
  322. package/Dev/i18n/pt/React/agents/react-reviewer.md +9 -5
  323. package/Dev/i18n/pt/React/rules/06-tooling.md +0 -2
  324. package/Dev/i18n/pt/React/rules/11-security-react.md +9 -0
  325. package/Dev/i18n/pt/ReactNative/agents/reactnative-reviewer.md +4 -4
  326. package/Dev/i18n/pt/ReactNative/rules/06-tooling.md +19 -3
  327. package/Dev/i18n/pt/Symfony/agents/symfony-reviewer.md +5 -5
  328. package/Dev/i18n/pt/Symfony/checklists/README.md +1 -1
  329. package/Dev/i18n/pt/Symfony/checklists/new-feature.md +2 -2
  330. package/Dev/i18n/pt/Symfony/checklists/pre-commit.md +4 -4
  331. package/Dev/i18n/pt/Symfony/checklists/refactoring.md +1 -1
  332. package/Dev/i18n/pt/Symfony/commands/check-architecture.md +4 -4
  333. package/Dev/i18n/pt/Symfony/commands/check-code-quality.md +15 -15
  334. package/Dev/i18n/pt/Symfony/commands/check-security.md +32 -32
  335. package/Dev/i18n/pt/Symfony/commands/check-testing.md +16 -16
  336. package/Dev/i18n/pt/Symfony/rules/03-coding-standards.md +4 -4
  337. package/Dev/i18n/pt/Symfony/rules/06-docker-hadolint.md +0 -4
  338. package/Dev/i18n/pt/Symfony/rules/08-quality-tools.md +1 -1
  339. package/Dev/i18n/pt/Symfony/rules/16-i18n.md +2 -0
  340. package/Dev/i18n/pt/Symfony/rules/17-async.md +1 -0
  341. package/Dev/i18n/pt/Symfony/rules/19-aggregates.md +1 -0
  342. package/Dev/i18n/pt/Symfony/rules/20-domain-events.md +1 -0
  343. package/Dev/i18n/pt/Team/commands/delivery.md +1 -1
  344. package/Dev/i18n/pt/Vercel/CLAUDE.md.template +2 -2
  345. package/Dev/i18n/pt/Vercel/agents/vercel-reviewer.md +8 -8
  346. package/Dev/i18n/pt/Vite/CLAUDE.md.template +2 -2
  347. package/Dev/i18n/pt/Vite/agents/vite-reviewer.md +19 -17
  348. package/Dev/i18n/pt/Vite/commands/check-compliance.md +2 -2
  349. package/Dev/scripts/install-paperclip-rules.sh +5 -5
  350. package/Dev/scripts/install-vite-rules.sh +4 -4
  351. package/Infra/i18n/de/Ansible/agents/ansible-architect.md +2 -0
  352. package/Infra/i18n/de/Docker/commands/docker-architecture.md +0 -2
  353. package/Infra/i18n/de/Docker/commands/docker-compose-setup.md +0 -2
  354. package/Infra/i18n/de/FrankenPHP/agents/frankenphp-architect.md +4 -1
  355. package/Infra/i18n/de/FrankenPHP/agents/frankenphp-deployment.md +2 -2
  356. package/Infra/i18n/de/FrankenPHP/agents/frankenphp-security.md +1 -1
  357. package/Infra/i18n/de/FrankenPHP/commands/deploy-setup.md +1 -1
  358. package/Infra/i18n/de/Hcloud/agents/hcloud-architect.md +14 -4
  359. package/Infra/i18n/de/Hcloud/agents/hcloud-cost.md +1 -1
  360. package/Infra/i18n/de/Hcloud/agents/hcloud-debug.md +1 -1
  361. package/Infra/i18n/de/Hcloud/agents/hcloud-deployment.md +2 -2
  362. package/Infra/i18n/de/Hcloud/agents/hcloud-security.md +1 -1
  363. package/Infra/i18n/de/Hcloud/commands/architecture.md +3 -3
  364. package/Infra/i18n/de/Hcloud/commands/debug.md +1 -1
  365. package/Infra/i18n/de/Kubernetes/agents/kubernetes-architect.md +3 -3
  366. package/Infra/i18n/de/Kubernetes/commands/architecture.md +1 -1
  367. package/Infra/i18n/de/OpenTofu/agents/opentofu-architect.md +1 -1
  368. package/Infra/i18n/de/OpenTofu/agents/opentofu-deployment.md +2 -2
  369. package/Infra/i18n/de/PgBouncer/agents/pgbouncer-architect.md +11 -2
  370. package/Infra/i18n/de/PgBouncer/agents/pgbouncer-debug.md +1 -0
  371. package/Infra/i18n/de/PgBouncer/agents/pgbouncer-deployment.md +38 -30
  372. package/Infra/i18n/de/PgBouncer/commands/deploy-setup.md +1 -1
  373. package/Infra/i18n/en/Ansible/agents/ansible-architect.md +2 -0
  374. package/Infra/i18n/en/Docker/commands/docker-architecture.md +0 -2
  375. package/Infra/i18n/en/Docker/commands/docker-compose-setup.md +0 -2
  376. package/Infra/i18n/en/FrankenPHP/agents/frankenphp-architect.md +4 -1
  377. package/Infra/i18n/en/FrankenPHP/agents/frankenphp-deployment.md +2 -2
  378. package/Infra/i18n/en/FrankenPHP/agents/frankenphp-security.md +1 -1
  379. package/Infra/i18n/en/FrankenPHP/commands/deploy-setup.md +1 -1
  380. package/Infra/i18n/en/Hcloud/agents/hcloud-architect.md +14 -4
  381. package/Infra/i18n/en/Hcloud/agents/hcloud-cost.md +1 -1
  382. package/Infra/i18n/en/Hcloud/agents/hcloud-debug.md +1 -1
  383. package/Infra/i18n/en/Hcloud/agents/hcloud-deployment.md +2 -2
  384. package/Infra/i18n/en/Hcloud/agents/hcloud-security.md +1 -1
  385. package/Infra/i18n/en/Hcloud/commands/architecture.md +3 -3
  386. package/Infra/i18n/en/Hcloud/commands/debug.md +1 -1
  387. package/Infra/i18n/en/Kubernetes/agents/kubernetes-architect.md +3 -3
  388. package/Infra/i18n/en/Kubernetes/commands/architecture.md +1 -1
  389. package/Infra/i18n/en/OpenTofu/agents/opentofu-architect.md +1 -1
  390. package/Infra/i18n/en/OpenTofu/agents/opentofu-deployment.md +2 -2
  391. package/Infra/i18n/en/PgBouncer/agents/pgbouncer-architect.md +11 -2
  392. package/Infra/i18n/en/PgBouncer/agents/pgbouncer-debug.md +1 -0
  393. package/Infra/i18n/en/PgBouncer/agents/pgbouncer-deployment.md +38 -30
  394. package/Infra/i18n/en/PgBouncer/commands/deploy-setup.md +1 -1
  395. package/Infra/i18n/es/Ansible/agents/ansible-architect.md +2 -0
  396. package/Infra/i18n/es/Docker/commands/docker-architecture.md +0 -2
  397. package/Infra/i18n/es/Docker/commands/docker-compose-setup.md +0 -2
  398. package/Infra/i18n/es/FrankenPHP/agents/frankenphp-architect.md +4 -1
  399. package/Infra/i18n/es/FrankenPHP/agents/frankenphp-deployment.md +2 -2
  400. package/Infra/i18n/es/FrankenPHP/agents/frankenphp-security.md +1 -1
  401. package/Infra/i18n/es/FrankenPHP/commands/deploy-setup.md +1 -1
  402. package/Infra/i18n/es/Hcloud/agents/hcloud-architect.md +14 -4
  403. package/Infra/i18n/es/Hcloud/agents/hcloud-cost.md +1 -1
  404. package/Infra/i18n/es/Hcloud/agents/hcloud-debug.md +1 -1
  405. package/Infra/i18n/es/Hcloud/agents/hcloud-deployment.md +2 -2
  406. package/Infra/i18n/es/Hcloud/agents/hcloud-security.md +1 -1
  407. package/Infra/i18n/es/Hcloud/commands/architecture.md +3 -3
  408. package/Infra/i18n/es/Hcloud/commands/debug.md +1 -1
  409. package/Infra/i18n/es/Kubernetes/agents/kubernetes-architect.md +3 -3
  410. package/Infra/i18n/es/Kubernetes/commands/architecture.md +1 -1
  411. package/Infra/i18n/es/OpenTofu/agents/opentofu-architect.md +1 -1
  412. package/Infra/i18n/es/OpenTofu/agents/opentofu-deployment.md +2 -2
  413. package/Infra/i18n/es/PgBouncer/agents/pgbouncer-architect.md +11 -2
  414. package/Infra/i18n/es/PgBouncer/agents/pgbouncer-debug.md +1 -0
  415. package/Infra/i18n/es/PgBouncer/agents/pgbouncer-deployment.md +38 -30
  416. package/Infra/i18n/es/PgBouncer/commands/deploy-setup.md +1 -1
  417. package/Infra/i18n/fr/Ansible/agents/ansible-architect.md +2 -0
  418. package/Infra/i18n/fr/Docker/commands/docker-architecture.md +0 -2
  419. package/Infra/i18n/fr/Docker/commands/docker-compose-setup.md +0 -2
  420. package/Infra/i18n/fr/FrankenPHP/agents/frankenphp-architect.md +4 -1
  421. package/Infra/i18n/fr/FrankenPHP/agents/frankenphp-deployment.md +2 -2
  422. package/Infra/i18n/fr/FrankenPHP/agents/frankenphp-security.md +1 -1
  423. package/Infra/i18n/fr/FrankenPHP/commands/deploy-setup.md +1 -1
  424. package/Infra/i18n/fr/Hcloud/agents/hcloud-architect.md +14 -4
  425. package/Infra/i18n/fr/Hcloud/agents/hcloud-cost.md +1 -1
  426. package/Infra/i18n/fr/Hcloud/agents/hcloud-debug.md +1 -1
  427. package/Infra/i18n/fr/Hcloud/agents/hcloud-deployment.md +2 -2
  428. package/Infra/i18n/fr/Hcloud/agents/hcloud-security.md +1 -1
  429. package/Infra/i18n/fr/Hcloud/commands/architecture.md +3 -3
  430. package/Infra/i18n/fr/Hcloud/commands/debug.md +1 -1
  431. package/Infra/i18n/fr/Kubernetes/agents/kubernetes-architect.md +3 -3
  432. package/Infra/i18n/fr/Kubernetes/commands/architecture.md +1 -1
  433. package/Infra/i18n/fr/OpenTofu/agents/opentofu-architect.md +1 -1
  434. package/Infra/i18n/fr/OpenTofu/agents/opentofu-deployment.md +2 -2
  435. package/Infra/i18n/fr/PgBouncer/agents/pgbouncer-architect.md +11 -2
  436. package/Infra/i18n/fr/PgBouncer/agents/pgbouncer-debug.md +1 -0
  437. package/Infra/i18n/fr/PgBouncer/agents/pgbouncer-deployment.md +38 -30
  438. package/Infra/i18n/fr/PgBouncer/commands/deploy-setup.md +1 -1
  439. package/Infra/i18n/pt/Ansible/agents/ansible-architect.md +2 -0
  440. package/Infra/i18n/pt/Docker/commands/docker-architecture.md +0 -2
  441. package/Infra/i18n/pt/Docker/commands/docker-compose-setup.md +0 -2
  442. package/Infra/i18n/pt/FrankenPHP/agents/frankenphp-architect.md +4 -1
  443. package/Infra/i18n/pt/FrankenPHP/agents/frankenphp-deployment.md +2 -2
  444. package/Infra/i18n/pt/FrankenPHP/agents/frankenphp-security.md +1 -1
  445. package/Infra/i18n/pt/FrankenPHP/commands/deploy-setup.md +1 -1
  446. package/Infra/i18n/pt/Hcloud/agents/hcloud-architect.md +14 -4
  447. package/Infra/i18n/pt/Hcloud/agents/hcloud-cost.md +1 -1
  448. package/Infra/i18n/pt/Hcloud/agents/hcloud-debug.md +1 -1
  449. package/Infra/i18n/pt/Hcloud/agents/hcloud-deployment.md +2 -2
  450. package/Infra/i18n/pt/Hcloud/agents/hcloud-security.md +1 -1
  451. package/Infra/i18n/pt/Hcloud/commands/architecture.md +3 -3
  452. package/Infra/i18n/pt/Hcloud/commands/debug.md +1 -1
  453. package/Infra/i18n/pt/Kubernetes/agents/kubernetes-architect.md +3 -3
  454. package/Infra/i18n/pt/Kubernetes/commands/architecture.md +1 -1
  455. package/Infra/i18n/pt/OpenTofu/agents/opentofu-architect.md +1 -1
  456. package/Infra/i18n/pt/OpenTofu/agents/opentofu-deployment.md +2 -2
  457. package/Infra/i18n/pt/PgBouncer/agents/pgbouncer-architect.md +11 -2
  458. package/Infra/i18n/pt/PgBouncer/agents/pgbouncer-debug.md +1 -0
  459. package/Infra/i18n/pt/PgBouncer/agents/pgbouncer-deployment.md +38 -30
  460. package/Infra/i18n/pt/PgBouncer/commands/deploy-setup.md +1 -1
  461. package/README.md +30 -22
  462. package/Tools/Ralph/.ralph/hooks/pre-tool-context.sh +2 -2
  463. package/Tools/StatusLine/README.md +1 -1
  464. package/bundles/cursor/.cursorrules +32 -32
  465. package/bundles/windsurf/.windsurfrules +32 -32
  466. package/cli/lib/doctor.js +15 -15
  467. package/cli/lib/tech-registry.js +10 -10
  468. package/package.json +2 -1
@@ -7,7 +7,7 @@ description: PgBouncer deployment and CI/CD pipeline specialist
7
7
 
8
8
  ## Identite
9
9
 
10
- Vous etes un **Ingenieur Senior de Deploiement PgBouncer** specialise dans les deploiements Docker/Bitnami en conteneurs, les patterns Kubernetes sidecar et standalone, la configuration de charts Helm, la gestion de services systemd et les strategies de reload sans interruption. Vous concevez des pipelines de deploiement pour des mises en production fiables de PgBouncer dans tous les environnements.
10
+ Vous etes un **Ingenieur Senior de Deploiement PgBouncer** specialise dans les deploiements Docker en conteneurs, les patterns Kubernetes sidecar et standalone, la configuration de charts Helm, la gestion de services systemd et les strategies de reload sans interruption. Vous concevez des pipelines de deploiement pour des mises en production fiables de PgBouncer dans tous les environnements.
11
11
 
12
12
  ## Expertise technique
13
13
 
@@ -15,7 +15,7 @@ Vous etes un **Ingenieur Senior de Deploiement PgBouncer** specialise dans les d
15
15
 
16
16
  | Domaine | Expertise | Perimetre |
17
17
  |---------|-----------|-----------|
18
- | Deploiement Docker | Expert | Image Bitnami, Dockerfile personnalise, health checks |
18
+ | Deploiement Docker | Expert | Image communautaire, Dockerfile personnalise, health checks |
19
19
  | Patterns Kubernetes | Expert | Sidecar par pod, Deployment standalone, Helm |
20
20
  | Gestion systemd | Expert | Fichiers unit, reload, journalisation journald |
21
21
  | Reload sans interruption | Expert | SIGHUP, commande RELOAD, drain graceful |
@@ -55,25 +55,28 @@ Vous etes un **Ingenieur Senior de Deploiement PgBouncer** specialise dans les d
55
55
 
56
56
  #### Docker Compose
57
57
 
58
+ > **Note sur l'image :** `bitnami/pgbouncer` n'est plus maintenue sur Docker Hub (Bitnami a restreint son catalogue public en 2025 ; `bitnamilegacy/pgbouncer` est figée en 1.24.1, touchée par les CVE corrigées en 1.26.0). Les exemples utilisent l'image communautaire `edoburu/pgbouncer` (variables `DB_*`, écoute sur 5432 sauf si `LISTEN_PORT` est défini). Épingler le tag et auditer l'image avant la production.
59
+
58
60
  ```yaml
59
61
  # docker-compose.yml
60
62
  services:
61
63
  pgbouncer:
62
- image: bitnami/pgbouncer:1.25.1
64
+ image: edoburu/pgbouncer:v1.26.0-p0
63
65
  ports:
64
66
  - "6432:6432"
65
67
  environment:
66
- - POSTGRESQL_HOST=postgresql
67
- - POSTGRESQL_PORT=5432
68
- - POSTGRESQL_USERNAME=app_user
69
- - POSTGRESQL_PASSWORD=${DB_PASSWORD}
70
- - POSTGRESQL_DATABASE=app_production
71
- - PGBOUNCER_POOL_MODE=transaction
72
- - PGBOUNCER_MAX_CLIENT_CONN=200
73
- - PGBOUNCER_DEFAULT_POOL_SIZE=20
74
- - PGBOUNCER_MIN_POOL_SIZE=5
75
- - PGBOUNCER_SERVER_RESET_QUERY=DISCARD ALL
76
- - PGBOUNCER_AUTH_TYPE=scram-sha-256
68
+ - DB_HOST=postgresql
69
+ - DB_PORT=5432
70
+ - DB_USER=app_user
71
+ - DB_PASSWORD=${DB_PASSWORD}
72
+ - DB_NAME=app_production
73
+ - LISTEN_PORT=6432
74
+ - POOL_MODE=transaction
75
+ - MAX_CLIENT_CONN=200
76
+ - DEFAULT_POOL_SIZE=20
77
+ - MIN_POOL_SIZE=5
78
+ - SERVER_RESET_QUERY=DISCARD ALL
79
+ - AUTH_TYPE=scram-sha-256
77
80
  healthcheck:
78
81
  test: ["CMD", "pg_isready", "-h", "localhost", "-p", "6432"]
79
82
  interval: 10s
@@ -85,13 +88,14 @@ services:
85
88
  restart: unless-stopped
86
89
 
87
90
  postgresql:
88
- image: postgres:17
91
+ image: postgres:18
89
92
  environment:
90
93
  - POSTGRES_DB=app_production
91
94
  - POSTGRES_USER=app_user
92
95
  - POSTGRES_PASSWORD=${DB_PASSWORD}
93
96
  volumes:
94
- - pgdata:/var/lib/postgresql/data
97
+ # PostgreSQL 18+ images keep data under /var/lib/postgresql/<major>/
98
+ - pgdata:/var/lib/postgresql
95
99
  healthcheck:
96
100
  test: ["CMD-SHELL", "pg_isready -U app_user"]
97
101
  interval: 10s
@@ -124,31 +128,33 @@ spec:
124
128
  spec:
125
129
  containers:
126
130
  - name: pgbouncer
127
- image: bitnami/pgbouncer:1.25.1
131
+ image: edoburu/pgbouncer:v1.26.0-p0
128
132
  ports:
129
133
  - containerPort: 6432
130
134
  env:
131
- - name: POSTGRESQL_HOST
135
+ - name: DB_HOST
132
136
  value: postgresql.database.svc.cluster.local
133
- - name: POSTGRESQL_PORT
137
+ - name: DB_PORT
134
138
  value: "5432"
135
- - name: POSTGRESQL_DATABASE
139
+ - name: DB_NAME
136
140
  value: app_production
137
- - name: POSTGRESQL_USERNAME
141
+ - name: DB_USER
138
142
  valueFrom:
139
143
  secretKeyRef:
140
144
  name: pgbouncer-secrets
141
145
  key: db-username
142
- - name: POSTGRESQL_PASSWORD
146
+ - name: DB_PASSWORD
143
147
  valueFrom:
144
148
  secretKeyRef:
145
149
  name: pgbouncer-secrets
146
150
  key: db-password
147
- - name: PGBOUNCER_POOL_MODE
151
+ - name: LISTEN_PORT
152
+ value: "6432"
153
+ - name: POOL_MODE
148
154
  value: transaction
149
- - name: PGBOUNCER_MAX_CLIENT_CONN
155
+ - name: MAX_CLIENT_CONN
150
156
  value: "200"
151
- - name: PGBOUNCER_DEFAULT_POOL_SIZE
157
+ - name: DEFAULT_POOL_SIZE
152
158
  value: "20"
153
159
  livenessProbe:
154
160
  tcpSocket:
@@ -204,17 +210,19 @@ spec:
204
210
  - name: DATABASE_URL
205
211
  value: "postgresql://app_user:$(DB_PASSWORD)@localhost:6432/app_production"
206
212
  - name: pgbouncer
207
- image: bitnami/pgbouncer:1.25.1
213
+ image: edoburu/pgbouncer:v1.26.0-p0
208
214
  ports:
209
215
  - containerPort: 6432
210
216
  env:
211
- - name: POSTGRESQL_HOST
217
+ - name: DB_HOST
212
218
  value: postgresql.database.svc.cluster.local
213
- - name: PGBOUNCER_POOL_MODE
219
+ - name: LISTEN_PORT
220
+ value: "6432"
221
+ - name: POOL_MODE
214
222
  value: transaction
215
- - name: PGBOUNCER_MAX_CLIENT_CONN
223
+ - name: MAX_CLIENT_CONN
216
224
  value: "100"
217
- - name: PGBOUNCER_DEFAULT_POOL_SIZE
225
+ - name: DEFAULT_POOL_SIZE
218
226
  value: "10"
219
227
  resources:
220
228
  requests:
@@ -54,7 +54,7 @@ STRATEGIE DE DEPLOIEMENT
54
54
 
55
55
  Methode : {Docker Compose / K8s Standalone / K8s Sidecar / Systemd}
56
56
  HA : {Active-passif / Replicas multiples / Instance unique}
57
- Image : bitnami/pgbouncer:1.25.1
57
+ Image : edoburu/pgbouncer:v1.26.0-p0
58
58
 
59
59
  | Decision | Choix | Justification |
60
60
  |----------|-------|---------------|
@@ -32,6 +32,8 @@ Voce e um **Arquiteto Ansible Senior** capaz de projetar arquiteturas completas
32
32
  | Multi-ambiente | Separacao dev / staging / producao | Alta |
33
33
  | Hierarquico (Landscape/Type/Function) | Gerenciamento de datacenter corporativo | Alta |
34
34
 
35
+ > Hetzner Cloud: usar a coleção `hetzner.hcloud` (7.2.0) com ansible-core 2.21.5, fixada em `requirements.yml`.
36
+
35
37
  ## Metodologia
36
38
 
37
39
  ### Fase 1 -- Descoberta
@@ -142,8 +142,6 @@ projeto/
142
142
 
143
143
  ```yaml
144
144
  # docker-compose.yml
145
- version: "3.8"
146
-
147
145
  services:
148
146
  # ═══════════════════════════════════════════════════════════
149
147
  # REVERSE PROXY
@@ -51,8 +51,6 @@ Stack: {stack}
51
51
 
52
52
  ```yaml
53
53
  # docker-compose.yml - Base comum
54
- version: "3.8"
55
-
56
54
  services:
57
55
  app:
58
56
  build:
@@ -7,7 +7,7 @@ description: FrankenPHP Caddyfile design, worker topology, and framework integra
7
7
 
8
8
  ## Identidade
9
9
 
10
- Voce e um **Arquiteto Senior de FrankenPHP** capaz de projetar topologias completas de servico de aplicacoes PHP usando FrankenPHP 1.12+. Voce coordena decisoes de worker mode vs classic mode, dimensionamento de threads, design de Caddyfile, integracao com frameworks (Symfony, Laravel), configuracao de Mercure real-time e Early Hints (103) para entregar deployments FrankenPHP prontos para producao.
10
+ Voce e um **Arquiteto Senior de FrankenPHP** capaz de projetar topologias completas de servico de aplicacoes PHP usando FrankenPHP 1.13+. Voce coordena decisoes de worker mode vs classic mode, dimensionamento de threads, design de Caddyfile, integracao com frameworks (Symfony, Laravel), configuracao de Mercure real-time e Early Hints (103) para entregar deployments FrankenPHP prontos para producao.
11
11
 
12
12
  ## Expertise Tecnica
13
13
 
@@ -120,6 +120,9 @@ Extrair e esclarecer:
120
120
  - `max_requests = 500` para prevenir acumulo de memoria
121
121
  - Benchmark com `wrk` ou `k6`, ajustar para cima/baixo
122
122
  - Monitorar: memoria RSS por worker, tempo de resposta p99
123
+ - Usar FrankenPHP 1.13.0+: a 1.12.4 é vulnerável (correções de segurança na 1.12.5: phpinfo na imagem padrão, vazamento de ID de sessão em worker mode, timeout do body; 5 advisories, 2 deles high, na 1.13.0)
124
+ - FrankenPHP 1.13+: `num_threads` conta apenas os threads para requisições que nenhum worker atende; os threads de worker são somados, e a inicialização falha se `max_threads` < `num_threads` + threads de worker
125
+ - O hot reload em desenvolvimento passa pelo Mercure 1.0: `$_SERVER['FRANKENPHP_HOT_RELOAD']` agora anuncia `/.well-known/mercure?match=<topic>` (não fixar `?topic=` no código)
123
126
 
124
127
  ### Fase 3 -- Blueprint de Implementacao
125
128
 
@@ -59,7 +59,7 @@ Voce e um **Engenheiro Senior de Deployment FrankenPHP** especializado em deploy
59
59
  # docker-compose.yml
60
60
  services:
61
61
  app:
62
- image: dunglas/frankenphp:1.12-php8.5-bookworm
62
+ image: dunglas/frankenphp:1.13-php8.5-bookworm
63
63
  ports:
64
64
  - "80:80"
65
65
  - "443:443"
@@ -88,7 +88,7 @@ volumes:
88
88
 
89
89
  ```dockerfile
90
90
  # Stage 1: Dependencias
91
- FROM dunglas/frankenphp:1.12-php8.5-bookworm AS base
91
+ FROM dunglas/frankenphp:1.13-php8.5-bookworm AS base
92
92
 
93
93
  # Instalar extensoes PHP
94
94
  RUN install-php-extensions \
@@ -185,7 +185,7 @@ example.com {
185
185
 
186
186
  ```dockerfile
187
187
  # Dockerfile - FrankenPHP nao-root
188
- FROM dunglas/frankenphp:1.12-php8.5-bookworm
188
+ FROM dunglas/frankenphp:1.13-php8.5-bookworm
189
189
 
190
190
  # Instalar extensoes
191
191
  RUN install-php-extensions pdo_pgsql intl opcache
@@ -53,7 +53,7 @@ ESTRATEGIA DE DEPLOYMENT
53
53
  ──────────────────────────────────────────────────────────────
54
54
 
55
55
  Metodo: {Docker Compose / Kubernetes / Binario Standalone}
56
- Imagem: dunglas/frankenphp:1.12-php8.5-bookworm
56
+ Imagem: dunglas/frankenphp:1.13-php8.5-bookworm
57
57
  Worker mode: {sim/nao}
58
58
 
59
59
  | Decisao | Escolha | Justificativa |
@@ -5,7 +5,7 @@ description: Hetzner Cloud infrastructure architecture designer
5
5
 
6
6
  # Hcloud Architect
7
7
 
8
- > ⚠️ **Migração obrigatória antes de 2026-07-01**: o parâmetro `location` está deprecado em favor de `location`. Provider Terraform do Hetzner Cloud >= 1.58.0. Fonte: https://github.com/hetznercloud/terraform-provider-hcloud/releases
8
+ > ⚠️ **`datacenter` removido (2026-07-01)**: substituído por `location`; os endpoints `datacenter` retornam HTTP 410 desde 2026-10-01. Usar `location = "fsn1"` em vez de `datacenter`. Provider Terraform da Hetzner Cloud >= 1.70.0. Fonte: https://docs.hetzner.cloud/changelog e https://github.com/hetznercloud/terraform-provider-hcloud/releases
9
9
 
10
10
  ## Identidade
11
11
 
@@ -135,7 +135,7 @@ hcloud placement-group create --name web-spread --type spread
135
135
  # Servers
136
136
  hcloud server create \
137
137
  --name web-01 \
138
- --type cx22 \
138
+ --type cx23 \
139
139
  --image ubuntu-24.04 \
140
140
  --location fsn1 \
141
141
  --ssh-key deploy-key \
@@ -199,13 +199,23 @@ hcloud network add-subnet primary-net --type cloud --network-zone eu-central --i
199
199
 
200
200
  # Servers in different locations with placement groups
201
201
  hcloud placement-group create --name pg-primary --type spread
202
- hcloud server create --name app-fsn-01 --type cpx31 --image ubuntu-24.04 \
202
+ hcloud server create --name app-fsn-01 --type cpx32 --image ubuntu-24.04 \
203
203
  --location fsn1 --placement-group pg-primary --network primary-net
204
204
 
205
- hcloud server create --name app-hel-01 --type cpx31 --image ubuntu-24.04 \
205
+ hcloud server create --name app-hel-01 --type cpx32 --image ubuntu-24.04 \
206
206
  --location hel1 --network primary-net
207
207
  ```
208
208
 
209
+ ## Mudanças da API Hetzner a considerar (2026)
210
+
211
+ - Os Load Balancers aceitam Primary IPs existentes na criação (`public_net.ipv4` / `public_net.ipv6`; provider >= 1.70.0: `ipv4_id` / `ipv6_id`); a atribuição não pode ser alterada depois (changelog 2026-10-05)
212
+ - Primary IPs e Floating IPs devem ser desatribuídos antes de serem excluídos: a API retorna `must_be_unassigned` (desde 2026-05-01)
213
+ - `dns_ptr` é obrigatório nos pedidos de alteração (Primary IPs, Floating IPs, Servers, Load Balancers) desde 2026-09-30; `null` redefine o ponteiro
214
+ - O campo `deprecated` dos server types é removido em 2026-11-02: ler `locations[].deprecation` em vez disso (`null` = não obsoleto)
215
+ - O provider Terraform 1.69 abandona o Terraform 1.14 (1.16 adicionado); manter o provider hcloud em `>= 1.70.0`, CLI hcloud 1.70.1
216
+ - Os server types cx22/cx32/cx42/cx52 e cpx11-cpx51 não podem mais ser pedidos desde 2026-01-01: usar cx23/cx33/cx43/cx53 e cpx12/cpx22/cpx32/cpx42/cpx52/cpx62
217
+ - Ansible: usar a coleção `hetzner.hcloud` (7.2.0, requer um ansible-core recente, ex. 2.21.5) e fixar a versão em `requirements.yml`
218
+
209
219
  ## Checklist de Arquitetura
210
220
 
211
221
  ### Design
@@ -5,7 +5,7 @@ description: Hetzner Cloud cost optimization and right-sizing specialist
5
5
 
6
6
  # Hcloud Cost Specialist
7
7
 
8
- > ⚠️ **Migração obrigatória antes de 2026-07-01**: o parâmetro `location` está deprecado em favor de `location`. Provider Terraform do Hetzner Cloud >= 1.58.0. Fonte: https://github.com/hetznercloud/terraform-provider-hcloud/releases
8
+ > ⚠️ **`datacenter` removido (2026-07-01)**: substituído por `location`; os endpoints `datacenter` retornam HTTP 410 desde 2026-10-01. Usar `location = "fsn1"` em vez de `datacenter`. Provider Terraform da Hetzner Cloud >= 1.70.0. Fonte: https://docs.hetzner.cloud/changelog e https://github.com/hetznercloud/terraform-provider-hcloud/releases
9
9
 
10
10
  ## Identidade
11
11
 
@@ -5,7 +5,7 @@ description: Hetzner Cloud troubleshooting specialist
5
5
 
6
6
  # Hcloud Debug Specialist
7
7
 
8
- > ⚠️ **Migração obrigatória antes de 2026-07-01**: o parâmetro `location` está deprecado em favor de `location`. Provider Terraform do Hetzner Cloud >= 1.58.0. Fonte: https://github.com/hetznercloud/terraform-provider-hcloud/releases
8
+ > ⚠️ **`datacenter` removido (2026-07-01)**: substituído por `location`; os endpoints `datacenter` retornam HTTP 410 desde 2026-10-01. Usar `location = "fsn1"` em vez de `datacenter`. Provider Terraform da Hetzner Cloud >= 1.70.0. Fonte: https://docs.hetzner.cloud/changelog e https://github.com/hetznercloud/terraform-provider-hcloud/releases
9
9
 
10
10
  ## Identidade
11
11
 
@@ -137,7 +137,7 @@ Voce e um **Engenheiro Senior de Deployment Hetzner Cloud** especializado em int
137
137
  # Create new server from image
138
138
  hcloud server create \
139
139
  --name prod-blue-$(date +%s) \
140
- --type cpx31 \
140
+ --type cpx32 \
141
141
  --image ${{ needs.build-image.outputs.image_id }} \
142
142
  --location fsn1 \
143
143
  --ssh-key deploy \
@@ -189,7 +189,7 @@ source "hcloud" "app" {
189
189
  token = var.hcloud_token
190
190
  image = "ubuntu-24.04"
191
191
  location = "fsn1"
192
- server_type = "cx22"
192
+ server_type = "cx23"
193
193
  server_name = "packer-build-{{timestamp}}"
194
194
  ssh_username = "root"
195
195
  snapshot_name = "app-{{timestamp}}"
@@ -5,7 +5,7 @@ description: Hetzner Cloud security and firewall specialist
5
5
 
6
6
  # Hcloud Security Specialist
7
7
 
8
- > ⚠️ **Migração obrigatória antes de 2026-07-01**: o parâmetro `location` está deprecado em favor de `location`. Provider Terraform do Hetzner Cloud >= 1.58.0. Fonte: https://github.com/hetznercloud/terraform-provider-hcloud/releases
8
+ > ⚠️ **`datacenter` removido (2026-07-01)**: substituído por `location`; os endpoints `datacenter` retornam HTTP 410 desde 2026-10-01. Usar `location = "fsn1"` em vez de `datacenter`. Provider Terraform da Hetzner Cloud >= 1.70.0. Fonte: https://docs.hetzner.cloud/changelog e https://github.com/hetznercloud/terraform-provider-hcloud/releases
9
9
 
10
10
  ## Identidade
11
11
 
@@ -5,7 +5,7 @@ argument-hint: <Project> [constraints]
5
5
 
6
6
  # Hcloud Architecture
7
7
 
8
- > ⚠️ **Migração obrigatória antes de 2026-07-01**: o parâmetro `location` está deprecado em favor de `location`. Provider Terraform do Hetzner Cloud >= 1.58.0. Fonte: https://github.com/hetznercloud/terraform-provider-hcloud/releases
8
+ > ⚠️ **`datacenter` removido (2026-07-01)**: substituído por `location`; os endpoints `datacenter` retornam HTTP 410 desde 2026-10-01. Usar `location = "fsn1"` em vez de `datacenter`. Provider Terraform da Hetzner Cloud >= 1.70.0. Fonte: https://docs.hetzner.cloud/changelog e https://github.com/hetznercloud/terraform-provider-hcloud/releases
9
9
 
10
10
  Voce e um arquiteto senior de Hetzner Cloud. Voce deve projetar uma arquitetura completa de infraestrutura em nuvem a partir das especificacoes do projeto.
11
11
 
@@ -83,8 +83,8 @@ SERVER TYPE SELECTION
83
83
 
84
84
  | Role | Server Type | Count | Justification |
85
85
  |------|-------------|-------|---------------|
86
- | Web | {cax21/cx22} | {n} | {reason} |
87
- | App | {cpx31/cax31} | {n} | {reason} |
86
+ | Web | {cax21/cx23} | {n} | {reason} |
87
+ | App | {cpx32/cax31} | {n} | {reason} |
88
88
  | DB | {ccx23/ccx33} | {n} | {reason} |
89
89
 
90
90
  ──────────────────────────────────────────────────────────────
@@ -5,7 +5,7 @@ argument-hint: <Symptom> [resource]
5
5
 
6
6
  # Hcloud Debug
7
7
 
8
- > ⚠️ **Migração obrigatória antes de 2026-07-01**: o parâmetro `location` está deprecado em favor de `location`. Provider Terraform do Hetzner Cloud >= 1.58.0. Fonte: https://github.com/hetznercloud/terraform-provider-hcloud/releases
8
+ > ⚠️ **`datacenter` removido (2026-07-01)**: substituído por `location`; os endpoints `datacenter` retornam HTTP 410 desde 2026-10-01. Usar `location = "fsn1"` em vez de `datacenter`. Provider Terraform da Hetzner Cloud >= 1.70.0. Fonte: https://docs.hetzner.cloud/changelog e https://github.com/hetznercloud/terraform-provider-hcloud/releases
9
9
 
10
10
  Voce e um especialista em troubleshooting Hetzner Cloud. Voce deve diagnosticar e resolver sistematicamente problemas de infraestrutura a partir dos sintomas fornecidos.
11
11
 
@@ -67,8 +67,8 @@ Extrair e esclarecer:
67
67
  ┌─────────────────────────────────────────────────────────┐
68
68
  │ INGRESS LAYER │
69
69
  │ ┌──────────────┐ ┌──────────────┐ │
70
- │ │ Ingress NGINX│─────────│ Cert-Manager│ │
71
- │ │ / Traefik │ │ (Let's Enc.)│ │
70
+ │ │ Gateway API │─────────│ Cert-Manager│ │
71
+ │ │ (HTTPRoute) │ │ (Let's Enc.)│ │
72
72
  │ └──────┬───────┘ └──────────────┘ │
73
73
  └─────────┼───────────────────────────────────────────────┘
74
74
  │
@@ -95,7 +95,7 @@ Extrair e esclarecer:
95
95
  - Resource quotas e limit ranges por namespace
96
96
 
97
97
  3. **Redes**
98
- - Seleção do ingress controller (NGINX, Traefik, Istio Gateway)
98
+ - Gateway API (HTTPRoute) como primeira opção (implementações: Envoy Gateway, Traefik, Istio, Cilium); o Ingress NGINX foi descontinuado em março de 2026 (sem mais correções de segurança), migrar com `ingress2gateway`
99
99
  - NetworkPolicies para isolamento entre namespaces
100
100
  - Estratégia de DNS (descoberta de serviços internos)
101
101
  - Terminação TLS e gerenciamento de certificados
@@ -68,7 +68,7 @@ TOPOLOGIA DE NAMESPACES
68
68
  ┌─────────────────────────────────────────────────────────────┐
69
69
  │ INGRESS LAYER │
70
70
  │ ┌───────────────┐ ┌───────────────┐ │
71
- │ │ Ingress NGINX │─────────│ Cert-Manager │ │
71
+ │ │ Gateway API │─────────│ Cert-Manager │ │
72
72
  │ └───────┬───────┘ └───────────────┘ │
73
73
  └──────────┼──────────────────────────────────────────────────┘
74
74
  │
@@ -143,7 +143,7 @@ Produzir todas as configurações necessárias:
143
143
  ```hcl
144
144
  # versions.tf
145
145
  terraform {
146
- required_version = ">= 1.7.0"
146
+ required_version = ">= 1.13.0"
147
147
  required_providers {
148
148
  aws = {
149
149
  source = "hashicorp/aws"
@@ -65,7 +65,7 @@ Você é um **Engenheiro de Implantação OpenTofu Sênior** especializado em pi
65
65
  branches: [main]
66
66
 
67
67
  env:
68
- TOFU_VERSION: "1.9.0"
68
+ TOFU_VERSION: "1.13.1"
69
69
 
70
70
  jobs:
71
71
  plan:
@@ -114,7 +114,7 @@ Você é um **Engenheiro de Implantação OpenTofu Sênior** especializado em pi
114
114
  - apply
115
115
 
116
116
  variables:
117
- TOFU_VERSION: "1.9.0"
117
+ TOFU_VERSION: "1.13.1"
118
118
 
119
119
  .tofu-base:
120
120
  image: ghcr.io/opentofu/opentofu:$TOFU_VERSION
@@ -68,7 +68,8 @@ Extrair e esclarecer:
68
68
  ```
69
69
  Aplicacao usa prepared statements?
70
70
  ├── Sim, nao pode desabilitar → Session mode
71
- ├── Sim, pode usar DEALLOCATE ALL → Transaction mode + server_reset_query
71
+ ├── Sim, protocolo estendido → Transaction mode + max_prepared_statements (200 por padrão desde 1.24)
72
+ ├── Sim, PREPARE SQL, pode usar DEALLOCATE ALL → Transaction mode + server_reset_query
72
73
  └── Nao
73
74
  ├── Usa SET/variaveis de sessao? → Session mode (ou transaction + reset_query)
74
75
  ├── Usa LISTEN/NOTIFY? → Session mode
@@ -264,7 +265,15 @@ default_pool_size = 20
264
265
  | Sem reserve pool | Picos causam falhas de conexao | Definir reserve_pool_size = 25% do default |
265
266
  | PgBouncer por instancia da app | Pools multiplicados, sem compartilhamento | Instancia(s) PgBouncer compartilhada(s) |
266
267
  | Sem server_reset_query | Estado de sessao vaza entre clientes | DISCARD ALL para transaction mode |
267
- | Ignorar prepared statements | Erros em transaction mode | Testar com app, usar DEALLOCATE ALL ou session mode |
268
+ | Ignorar prepared statements | Erros em transaction mode | Testar com app, usar max_prepared_statements, DEALLOCATE ALL ou session mode |
269
+
270
+ ## Notas do PgBouncer 1.26
271
+
272
+ - **Segurança**: a 1.26.0 corrige CVE-2026-19888 (client-final-message SCRAM sem nonce: queda do PgBouncer sem autenticação), CVE-2026-6668 (estouro de inteiro no buffer de pacotes que causa um loop infinito) e CVE-2026-6669 (número de iterações SCRAM sem limite aceito de um servidor); atualizar a partir de qualquer 1.25.x.
273
+ - **Prepared statements**: `max_prepared_statements` vale 200 por padrão desde a 1.24, portanto os prepared statements do protocolo funcionam em transaction mode; `DEALLOCATE ALL` só afeta `PREPARE` SQL.
274
+ - **Parâmetros rastreados**: `search_path` (PostgreSQL 18+) e `default_transaction_read_only` são rastreados por padrão, então um `SET` não vaza mais entre clientes em transaction mode.
275
+ - **Novas configurações**: `pool_idle_timeout` (desativado por padrão) remove pools sem uso; `query_wait_timeout` pode ser configurado por usuário e por banco; `SHOW STATS` expõe `client_login_count`.
276
+ - **Removido**: o restart online (`-R`), `SHOW FDS` e `SUSPEND`; usar restarts progressivos com `so_reuseport`.
268
277
 
269
278
  ## Template de Documentacao
270
279
 
@@ -167,6 +167,7 @@ psql -h localhost -p 6432 -U app_user -d app_production
167
167
  -- Nos logs do PgBouncer, procurar por:
168
168
  -- "prepared statement X does not exist"
169
169
 
170
+ -- Correção 0: prepared statements do protocolo exigem max_prepared_statements > 0 (200 por padrão desde 1.24)
170
171
  -- Correcao 1: Adicionar DEALLOCATE ALL ao server_reset_query
171
172
  -- Em pgbouncer.ini:
172
173
  -- server_reset_query = DISCARD ALL
@@ -7,7 +7,7 @@ description: PgBouncer deployment and CI/CD pipeline specialist
7
7
 
8
8
  ## Identidade
9
9
 
10
- Voce e um **Engenheiro Senior de Deployment PgBouncer** especializado em deployments Docker/Bitnami container, padroes Kubernetes sidecar e standalone, configuracao de Helm charts, gerenciamento de servicos systemd e estrategias de reload sem tempo de inatividade. Voce projeta pipelines de deployment para rollouts confiaveis de PgBouncer em todos os ambientes.
10
+ Voce e um **Engenheiro Senior de Deployment PgBouncer** especializado em deployments Docker container, padroes Kubernetes sidecar e standalone, configuracao de Helm charts, gerenciamento de servicos systemd e estrategias de reload sem tempo de inatividade. Voce projeta pipelines de deployment para rollouts confiaveis de PgBouncer em todos os ambientes.
11
11
 
12
12
  ## Expertise Tecnica
13
13
 
@@ -15,7 +15,7 @@ Voce e um **Engenheiro Senior de Deployment PgBouncer** especializado em deploym
15
15
 
16
16
  | Dominio | Expertise | Escopo |
17
17
  |---------|-----------|--------|
18
- | Docker deployment | Expert | Bitnami image, custom Dockerfile, health checks |
18
+ | Docker deployment | Expert | community image, custom Dockerfile, health checks |
19
19
  | Padroes Kubernetes | Expert | Sidecar per pod, standalone Deployment, Helm |
20
20
  | Gerenciamento systemd | Expert | Unit files, reload, journald logging |
21
21
  | Reload sem tempo de inatividade | Expert | SIGHUP, RELOAD command, graceful drain |
@@ -55,25 +55,28 @@ Voce e um **Engenheiro Senior de Deployment PgBouncer** especializado em deploym
55
55
 
56
56
  #### Docker Compose
57
57
 
58
+ > **Nota sobre a imagem:** `bitnami/pgbouncer` não é mais mantida no Docker Hub (a Bitnami restringiu seu catálogo público em 2025; `bitnamilegacy/pgbouncer` está congelada na 1.24.1, afetada pelas CVEs corrigidas na 1.26.0). Os exemplos usam a imagem da comunidade `edoburu/pgbouncer` (variáveis `DB_*`, escuta na 5432, a menos que `LISTEN_PORT` seja definido). Fixar a tag e auditar a imagem antes da produção.
59
+
58
60
  ```yaml
59
61
  # docker-compose.yml
60
62
  services:
61
63
  pgbouncer:
62
- image: bitnami/pgbouncer:1.25.1
64
+ image: edoburu/pgbouncer:v1.26.0-p0
63
65
  ports:
64
66
  - "6432:6432"
65
67
  environment:
66
- - POSTGRESQL_HOST=postgresql
67
- - POSTGRESQL_PORT=5432
68
- - POSTGRESQL_USERNAME=app_user
69
- - POSTGRESQL_PASSWORD=${DB_PASSWORD}
70
- - POSTGRESQL_DATABASE=app_production
71
- - PGBOUNCER_POOL_MODE=transaction
72
- - PGBOUNCER_MAX_CLIENT_CONN=200
73
- - PGBOUNCER_DEFAULT_POOL_SIZE=20
74
- - PGBOUNCER_MIN_POOL_SIZE=5
75
- - PGBOUNCER_SERVER_RESET_QUERY=DISCARD ALL
76
- - PGBOUNCER_AUTH_TYPE=scram-sha-256
68
+ - DB_HOST=postgresql
69
+ - DB_PORT=5432
70
+ - DB_USER=app_user
71
+ - DB_PASSWORD=${DB_PASSWORD}
72
+ - DB_NAME=app_production
73
+ - LISTEN_PORT=6432
74
+ - POOL_MODE=transaction
75
+ - MAX_CLIENT_CONN=200
76
+ - DEFAULT_POOL_SIZE=20
77
+ - MIN_POOL_SIZE=5
78
+ - SERVER_RESET_QUERY=DISCARD ALL
79
+ - AUTH_TYPE=scram-sha-256
77
80
  healthcheck:
78
81
  test: ["CMD", "pg_isready", "-h", "localhost", "-p", "6432"]
79
82
  interval: 10s
@@ -85,13 +88,14 @@ services:
85
88
  restart: unless-stopped
86
89
 
87
90
  postgresql:
88
- image: postgres:17
91
+ image: postgres:18
89
92
  environment:
90
93
  - POSTGRES_DB=app_production
91
94
  - POSTGRES_USER=app_user
92
95
  - POSTGRES_PASSWORD=${DB_PASSWORD}
93
96
  volumes:
94
- - pgdata:/var/lib/postgresql/data
97
+ # PostgreSQL 18+ images keep data under /var/lib/postgresql/<major>/
98
+ - pgdata:/var/lib/postgresql
95
99
  healthcheck:
96
100
  test: ["CMD-SHELL", "pg_isready -U app_user"]
97
101
  interval: 10s
@@ -124,31 +128,33 @@ spec:
124
128
  spec:
125
129
  containers:
126
130
  - name: pgbouncer
127
- image: bitnami/pgbouncer:1.25.1
131
+ image: edoburu/pgbouncer:v1.26.0-p0
128
132
  ports:
129
133
  - containerPort: 6432
130
134
  env:
131
- - name: POSTGRESQL_HOST
135
+ - name: DB_HOST
132
136
  value: postgresql.database.svc.cluster.local
133
- - name: POSTGRESQL_PORT
137
+ - name: DB_PORT
134
138
  value: "5432"
135
- - name: POSTGRESQL_DATABASE
139
+ - name: DB_NAME
136
140
  value: app_production
137
- - name: POSTGRESQL_USERNAME
141
+ - name: DB_USER
138
142
  valueFrom:
139
143
  secretKeyRef:
140
144
  name: pgbouncer-secrets
141
145
  key: db-username
142
- - name: POSTGRESQL_PASSWORD
146
+ - name: DB_PASSWORD
143
147
  valueFrom:
144
148
  secretKeyRef:
145
149
  name: pgbouncer-secrets
146
150
  key: db-password
147
- - name: PGBOUNCER_POOL_MODE
151
+ - name: LISTEN_PORT
152
+ value: "6432"
153
+ - name: POOL_MODE
148
154
  value: transaction
149
- - name: PGBOUNCER_MAX_CLIENT_CONN
155
+ - name: MAX_CLIENT_CONN
150
156
  value: "200"
151
- - name: PGBOUNCER_DEFAULT_POOL_SIZE
157
+ - name: DEFAULT_POOL_SIZE
152
158
  value: "20"
153
159
  livenessProbe:
154
160
  tcpSocket:
@@ -204,17 +210,19 @@ spec:
204
210
  - name: DATABASE_URL
205
211
  value: "postgresql://app_user:$(DB_PASSWORD)@localhost:6432/app_production"
206
212
  - name: pgbouncer
207
- image: bitnami/pgbouncer:1.25.1
213
+ image: edoburu/pgbouncer:v1.26.0-p0
208
214
  ports:
209
215
  - containerPort: 6432
210
216
  env:
211
- - name: POSTGRESQL_HOST
217
+ - name: DB_HOST
212
218
  value: postgresql.database.svc.cluster.local
213
- - name: PGBOUNCER_POOL_MODE
219
+ - name: LISTEN_PORT
220
+ value: "6432"
221
+ - name: POOL_MODE
214
222
  value: transaction
215
- - name: PGBOUNCER_MAX_CLIENT_CONN
223
+ - name: MAX_CLIENT_CONN
216
224
  value: "100"
217
- - name: PGBOUNCER_DEFAULT_POOL_SIZE
225
+ - name: DEFAULT_POOL_SIZE
218
226
  value: "10"
219
227
  resources:
220
228
  requests:
@@ -54,7 +54,7 @@ ESTRATEGIA DE DEPLOYMENT
54
54
 
55
55
  Metodo: {Docker Compose / K8s Standalone / K8s Sidecar / Systemd}
56
56
  HA: {Active-passive / Multiplas replicas / Instancia unica}
57
- Imagem: bitnami/pgbouncer:1.25.1
57
+ Imagem: edoburu/pgbouncer:v1.26.0-p0
58
58
 
59
59
  | Decisao | Escolha | Justificativa |
60
60
  |---------|---------|---------------|