timonel 3.0.0-beta.1 → 3.0.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,189 @@
1
+ # [3.0.0](https://github.com/KenkoGeek/timonel/compare/v2.13.0...v3.0.0) (2025-12-07)
2
+
3
+ - feat!: rename ChartFactory to Rutter (maritime pilot concept) ([b0a7a33](https://github.com/KenkoGeek/timonel/commit/b0a7a3361e761a5b20ff2c203d55bdfab35323af))
4
+
5
+ ### Bug Fixes
6
+
7
+ - address all security vulnerabilities from code review ([bf3165b](https://github.com/KenkoGeek/timonel/commit/bf3165b2198ea7b67e653df9a1b47ed25b1129b1))
8
+ - **aws:** update Karpenter API versions and add disruption/scheduling helpers ([#77](https://github.com/KenkoGeek/timonel/issues/77)) ([d03fb5f](https://github.com/KenkoGeek/timonel/commit/d03fb5f580810204905ad3ec95a0165f4e4339c1))
9
+ - change imports to use 'timonel' package instead of relative paths ([ac77265](https://github.com/KenkoGeek/timonel/commit/ac772651a85ed4f45426e4f603091939560f669a))
10
+ - **ci:** add comprehensive test suite with unit and integration tests ([#38](https://github.com/KenkoGeek/timonel/issues/38)) ([ad782c1](https://github.com/KenkoGeek/timonel/commit/ad782c1597469ffc98054a0b66f8091b6f2a1e0b))
11
+ - **ci:** add mandatory CI status verification to beta release ([6b4083c](https://github.com/KenkoGeek/timonel/commit/6b4083c478c41415b5767cb311a7006f817f0bb7))
12
+ - **ci:** and beside or ([401c06a](https://github.com/KenkoGeek/timonel/commit/401c06acf05d8fb60a34faf2991756d4b317b9e6))
13
+ - **ci:** change CodeQL build-mode to 'none' for JavaScript/TypeScript ([e47c97a](https://github.com/KenkoGeek/timonel/commit/e47c97acf6670007c5dbdbc90a197aa438095694))
14
+ - **ci:** clean up workflows and fix CodeQL configuration ([1dd7b62](https://github.com/KenkoGeek/timonel/commit/1dd7b6242e9ea5d3d98443965704d84bfca18a4a))
15
+ - **ci:** configure GitHub App token for semantic-release bypass - Use RELEASE_TOKEN from npm-prd environment for checkout and semantic-release ([ab4eea3](https://github.com/KenkoGeek/timonel/commit/ab4eea394d98227ed330091f0a3972eee903de9a))
16
+ - **ci:** correct CodeQL workflow configuration ([c6f9b53](https://github.com/KenkoGeek/timonel/commit/c6f9b53eb641a47c2c8723405c54f7119f0d0be8))
17
+ - **ci:** correct CodeQL workflow name in release.yaml ([09db750](https://github.com/KenkoGeek/timonel/commit/09db750692a26e9195f03ea459acbd1549a9087f))
18
+ - **ci:** correct job dependencies and summary references ([27a5d97](https://github.com/KenkoGeek/timonel/commit/27a5d9748a3a7d4fbe2b120830fd94c16f957336))
19
+ - **ci:** disable body-max-line-length for semantic-release compatibility - Set body-max-line-length to 0 (disabled) to allow long changelog entries - Fixes semantic-release commit validation failures - Maintains other commitlint rules for developer commits ([cf2e199](https://github.com/KenkoGeek/timonel/commit/cf2e19972b31f30a8d681d5f540b02b6c381e04b))
20
+ - **ci:** disable footer line length limit for semantic-release commits ([143d512](https://github.com/KenkoGeek/timonel/commit/143d512a8a41881c3cf84868a72b478598678c53))
21
+ - **ci:** disable footer-leading-blank for semantic-release compatibility - Set footer-leading-blank to 0 (disabled) to allow semantic-release footer format ([b14b45c](https://github.com/KenkoGeek/timonel/commit/b14b45c4435b9bfecb20fa4e270d36994a942241))
22
+ - **ci:** ensure real release on main branch ([fb898e6](https://github.com/KenkoGeek/timonel/commit/fb898e667d499bdc52166d6beb82c566f3c39eb1))
23
+ - **ci:** lint errors ([210d0e2](https://github.com/KenkoGeek/timonel/commit/210d0e242a80568cb3a2a99fe9544bbc466aedd8))
24
+ - **ci:** Q gate not needed ([7d809e0](https://github.com/KenkoGeek/timonel/commit/7d809e0cbb12f9d90d889537f8c8e2dff67d8343))
25
+ - **ci:** Q gate not needed ([a6e1faf](https://github.com/KenkoGeek/timonel/commit/a6e1fafbc4c9a82b8b119d91d72b50970b2cd852))
26
+ - **ci:** remove explicit pnpm version from CodeQL workflow ([8e947ee](https://github.com/KenkoGeek/timonel/commit/8e947eefd39ab050c6830fa21eb26141bf6ba4dc))
27
+ - **ci:** remove explicit pnpm version from workflows ([22ff6d7](https://github.com/KenkoGeek/timonel/commit/22ff6d7f031f4d82449430d038c0b03cf0c1d670))
28
+ - **ci:** remove npm-prd environment from beta release ([4cc4e77](https://github.com/KenkoGeek/timonel/commit/4cc4e77c066b1a39b0f6aa23d4b113cbeee0459e))
29
+ - **ci:** remove pnpm cache from setup-node to prevent executable error ([349a87b](https://github.com/KenkoGeek/timonel/commit/349a87b2407374b6fa1da6a36df393465a6a4fc3))
30
+ - **ci:** remove redundant publish workflow and configure release token ([4ac7597](https://github.com/KenkoGeek/timonel/commit/4ac75970bea9ca503af9d940b06f7ecb4ceb0bea))
31
+ - **ci:** reorder pnpm setup before Node.js in CodeQL workflow ([6b806c8](https://github.com/KenkoGeek/timonel/commit/6b806c85f68aefd4531a5a20093a7f277da06fde))
32
+ - **ci:** replace CodeQL with security check in release validation ([#15](https://github.com/KenkoGeek/timonel/issues/15)) ([6a3df07](https://github.com/KenkoGeek/timonel/commit/6a3df076d07bbf548a6acb86eea97a6e83441af8))
33
+ - **ci:** resolve pnpm version conflict in workflows ([4d041ed](https://github.com/KenkoGeek/timonel/commit/4d041ede0716975efc65ce18b1656e4358ca8441))
34
+ - **ci:** resolve release workflow issues ([#16](https://github.com/KenkoGeek/timonel/issues/16)) ([46a9581](https://github.com/KenkoGeek/timonel/commit/46a9581bc84c70bbb8b39cd4fbc0e3a15f4bfc13))
35
+ - **ci:** restore release.yml workflow from v2.7.3 ([7d14a52](https://github.com/KenkoGeek/timonel/commit/7d14a522a913532a8bc214c1bc1b67596b2811d9))
36
+ - **ci:** restore working release workflow from v2.7.3 ([e3540ac](https://github.com/KenkoGeek/timonel/commit/e3540acd65a84f1a06f8ded068c7431d39b35e51))
37
+ - **ci:** simple but effective release ([20b439d](https://github.com/KenkoGeek/timonel/commit/20b439dd5d21e4fc43de662bb3f6ea21248b7498))
38
+ - **ci:** simple but effective release, security.md updated ([45a0085](https://github.com/KenkoGeek/timonel/commit/45a00850f0653bcc41cca8b75050b5011551f7e4))
39
+ - **ci:** specify explicit semantic-release config file ([8b7e5dc](https://github.com/KenkoGeek/timonel/commit/8b7e5dca2a357dcd55e206a512ef9b0428d928ad))
40
+ - **ci:** use exact pnpm version 10.15.0 in workflows ([a91d38d](https://github.com/KenkoGeek/timonel/commit/a91d38d0690fb9e01235f5d44b6147ce0da4b286))
41
+ - **ci:** use working semantic-release config from v2.7.3 ([bc23629](https://github.com/KenkoGeek/timonel/commit/bc23629a2fb0c9f174cded6964beeb2b309db359))
42
+ - **cli:** consolidate path validation and improve error handling ([a46a5eb](https://github.com/KenkoGeek/timonel/commit/a46a5ebd6f27a23ac2d71b5d98dd371adfbec070))
43
+ - **cli:** enable TypeScript execution with enhanced security and strict mode validation ([8dd9e4c](https://github.com/KenkoGeek/timonel/commit/8dd9e4c8c2f555707aea2fc53c9e5161b82c0b4b))
44
+ - **cli:** handle flags after positional arguments ([#142](https://github.com/KenkoGeek/timonel/issues/142)) ([bea408f](https://github.com/KenkoGeek/timonel/commit/bea408fe88011185541acf9b102910321ff79642))
45
+ - **cli:** harden flag handling and path validation ([#130](https://github.com/KenkoGeek/timonel/issues/130)) ([569f445](https://github.com/KenkoGeek/timonel/commit/569f445735626db50d68c4be88c2e805d390286f))
46
+ - **cli:** improve version display and fallback handling ([#117](https://github.com/KenkoGeek/timonel/issues/117)) ([5d34db0](https://github.com/KenkoGeek/timonel/commit/5d34db0bfe092b640635e7edb0866359f6e8eb93))
47
+ - **cli:** new feature for cli ([14f3a4a](https://github.com/KenkoGeek/timonel/commit/14f3a4afc3454bf27427c36a423ee234940e25e3))
48
+ - **cli:** resolve ES modules \_\_dirname and scaffold import paths ([#80](https://github.com/KenkoGeek/timonel/issues/80)) ([8f1157f](https://github.com/KenkoGeek/timonel/commit/8f1157fa34d4b95c628961fc779661f747410859))
49
+ - **cli:** resolve incorrect syntax in conditional Helm templates, ensuring namespace and ingress conditions work correctly ([86a9215](https://github.com/KenkoGeek/timonel/commit/86a9215dc782c01731ce7bdfd9c010b0c9f96523))
50
+ - **cli:** resolve timonel module not found error in umbrella.ts ([c5e66fc](https://github.com/KenkoGeek/timonel/commit/c5e66fc815f8754f6592dc0bc407ce8515072f3d))
51
+ - **core:** addIngress already normalized with NGINX best practices ([1107e44](https://github.com/KenkoGeek/timonel/commit/1107e441ad9e4b04007f494891840ef94acafc28))
52
+ - **core:** correct StorageClass API structure for Kubernetes 1.32+ compatibility ([48ba6ca](https://github.com/KenkoGeek/timonel/commit/48ba6ca17ea104b894efc904786a41510fc6482e)), closes [#58](https://github.com/KenkoGeek/timonel/issues/58) [#58](https://github.com/KenkoGeek/timonel/issues/58)
53
+ - **core:** correct TypeScript errors and improve version handling ([9ade121](https://github.com/KenkoGeek/timonel/commit/9ade121516c1c04e7b0d939e46b82cd76366fea4))
54
+ - **core:** ensure Timonel header appears in all YAML files ([7d93d4e](https://github.com/KenkoGeek/timonel/commit/7d93d4ec9fbba703af9436c0b2e23acc3ef540ad))
55
+ - **core:** implement CLI-focused security validations and centralized input sanitization ([0568d38](https://github.com/KenkoGeek/timonel/commit/0568d38eac2ba69b5cdccdc5f735e635a092f8e9))
56
+ - **core:** resolve critical issues [#52](https://github.com/KenkoGeek/timonel/issues/52)-[#56](https://github.com/KenkoGeek/timonel/issues/56) and security vulnerabilities ([9c86e55](https://github.com/KenkoGeek/timonel/commit/9c86e5512716b686afa04e7b033652633cc340f7))
57
+ - **core:** resolve issue [#114](https://github.com/KenkoGeek/timonel/issues/114) - invalid Helm template generation ([b958d45](https://github.com/KenkoGeek/timonel/commit/b958d454b49e8ab61be0f9bcddcb96a831c5298d))
58
+ - **core:** resolve splitDocs removing Timonel headers from YAML ([7335025](https://github.com/KenkoGeek/timonel/commit/73350253d73f4adaa616b5290e35573b29702bf4))
59
+ - **core:** TypeScript interfaces for GCP Artifact Registry and Karpenter helpers ([#72](https://github.com/KenkoGeek/timonel/issues/72)) ([914e6fa](https://github.com/KenkoGeek/timonel/commit/914e6fa04d286533255a9987802c60deae3e878c))
60
+ - correct Helm template expression formatting for include and inline conditionals ([927d6a3](https://github.com/KenkoGeek/timonel/commit/927d6a353bd8b5fb8b2afa8cb6738a55fa36b3e9))
61
+ - **deps:** merge conflict solved [skip ci] ([8931abd](https://github.com/KenkoGeek/timonel/commit/8931abd5c800fe85fa7cda0a06d2ea183f54e185))
62
+ - **deps:** merge conflicts ([a0dd0bd](https://github.com/KenkoGeek/timonel/commit/a0dd0bdecf603fd43335721fc2e201f81bede2d1))
63
+ - **deps:** merge conflicts ([0f2d49f](https://github.com/KenkoGeek/timonel/commit/0f2d49ff6316f9e76c4eb18f39ae78599b19475b))
64
+ - **deps:** upgrade timonel version [skip ci] ([20cae6f](https://github.com/KenkoGeek/timonel/commit/20cae6fa57a61bc44a18d9c7af8e7ad8970d7af9))
65
+ - **docs:** apply prettier formatting to README.md ([bc9c00b](https://github.com/KenkoGeek/timonel/commit/bc9c00be41167296ef5852e26547975aea7c9cc7))
66
+ - **docs:** use published npm package imports in example instead of local src ([80e19f4](https://github.com/KenkoGeek/timonel/commit/80e19f40acf9d0073db15d6d576a9e0776dbdc62))
67
+ - **docs:** valuesRef and lib imported example ([72bc785](https://github.com/KenkoGeek/timonel/commit/72bc7858b615cbf5652cca81b45d9d2d799d913c))
68
+ - **examples:** update timonel dependency to ^1.0.0 ([b9e8e19](https://github.com/KenkoGeek/timonel/commit/b9e8e19bf7cf942c675b9116efa6de5b8c7ba36c))
69
+ - exclude examples from main lint script ([5ba6ea8](https://github.com/KenkoGeek/timonel/commit/5ba6ea8670459c53fd053e8938430ec8f180188b))
70
+ - exclude examples from security linting ([5761d41](https://github.com/KenkoGeek/timonel/commit/5761d410471137b1655d624162a9921818ce2597))
71
+ - format CHANGELOG.md with prettier ([b382ea0](https://github.com/KenkoGeek/timonel/commit/b382ea0d4dfacf1c3ffcd05648c762a9d4202938))
72
+ - **helm:** implement Helm-aware YAML serializer ([#112](https://github.com/KenkoGeek/timonel/issues/112)) ([fdf7cd9](https://github.com/KenkoGeek/timonel/commit/fdf7cd90c86dbeff2136e618b20a9f86e0f8b51d))
73
+ - **helm:** remove automatic numbering from template files ([#20](https://github.com/KenkoGeek/timonel/issues/20)) ([e21b1cf](https://github.com/KenkoGeek/timonel/commit/e21b1cf2bc62a73b3f2ab84514b6fa415452a725))
74
+ - **helm:** remove debug logs from helmChartWriter ([63870a7](https://github.com/KenkoGeek/timonel/commit/63870a715db0c05e03a9b496b619284a3e34c848))
75
+ - **helm:** trying to make it work ([3ce69d5](https://github.com/KenkoGeek/timonel/commit/3ce69d56969468260f159870abc5b3f089bad9ab))
76
+ - ignore node_modules MDs ([fda76c4](https://github.com/KenkoGeek/timonel/commit/fda76c497ad7197195287aa5b47e8ee000bcc03e))
77
+ - ignore node_modules MDs ([8804860](https://github.com/KenkoGeek/timonel/commit/88048609d155883b4c473ddc85ab276d368cf0a8))
78
+ - **network:** Ingress API with TLS validation and security defaults ([#88](https://github.com/KenkoGeek/timonel/issues/88)) ([348ee2d](https://github.com/KenkoGeek/timonel/commit/348ee2dcf27d8b44064245f89279d0cfe9aa4973))
79
+ - **release:** align required checks with ruleset configuration ([d912f3c](https://github.com/KenkoGeek/timonel/commit/d912f3c0229eb78f0fc927421007b8eb5347b8b9))
80
+ - **release:** update required checks in release workflow ([ba2712e](https://github.com/KenkoGeek/timonel/commit/ba2712e2cc95cb55588fcf583a84da365acd84a7))
81
+ - resolve ESLint sonarjs plugin compatibility for CI ([48c16e6](https://github.com/KenkoGeek/timonel/commit/48c16e641bbd0984df00268360a873e7bd5d58c9))
82
+ - resolve Helm chart YAML generation issues ([5e8c779](https://github.com/KenkoGeek/timonel/commit/5e8c7794fcbfb3bddef1f2136ba78103b28ab62b))
83
+ - resolve issue [#114](https://github.com/KenkoGeek/timonel/issues/114) - Helm template generation bug and enhance documentation ([#116](https://github.com/KenkoGeek/timonel/issues/116)) ([65d4f26](https://github.com/KenkoGeek/timonel/commit/65d4f26c1449135704e59eb8acf71268f4f660d0))
84
+ - resolve markdown linting issues ([8a817ef](https://github.com/KenkoGeek/timonel/commit/8a817ef2836fb8289f612ad171e4aaf010904f53))
85
+ - resolve prettier formatting issues and enhance CI checks ([648b35c](https://github.com/KenkoGeek/timonel/commit/648b35cbe55889b855bb56c652b6a4b8c3021bf1))
86
+ - resolve remaining eslint errors ([64f60e5](https://github.com/KenkoGeek/timonel/commit/64f60e5967676f2b651967e9c53b6c083a18d69b))
87
+ - resolve TypeScript module resolution error in CLI validation ([41ad96e](https://github.com/KenkoGeek/timonel/commit/41ad96e2e7dc2366f7fec189a0d9e551da3466ad))
88
+ - resolve TypeScript strict optional types errors ([2906889](https://github.com/KenkoGeek/timonel/commit/2906889e352d94eae8070a5f99734ca1f5d35767))
89
+ - resolve umbrella chart validation issues ([48206b6](https://github.com/KenkoGeek/timonel/commit/48206b660eb2998bb31f326e420ba2f4d3ceb89b))
90
+ - **umbrella:** remove unused \_subchartInstance variables ([ee07f96](https://github.com/KenkoGeek/timonel/commit/ee07f96c49a032289654f57a407e9bfba7ebc171))
91
+ - update examples versions and resolve security vulnerability ([68fad19](https://github.com/KenkoGeek/timonel/commit/68fad195baaac65085ca8634d1d7f62d8c1c1361))
92
+ - update pnpm-lock.yaml after removing cdk8s-plus-28 ([ff1b929](https://github.com/KenkoGeek/timonel/commit/ff1b9298e068df7e0fc715f21dc7d4150eccc2c3))
93
+ - update WordPress example imports to use timonel package ([19a36a6](https://github.com/KenkoGeek/timonel/commit/19a36a6e010abe2276268dbe64b27bb6144ae16e))
94
+
95
+ ### Features
96
+
97
+ - add --set flag for dynamic value overrides ([36ae842](https://github.com/KenkoGeek/timonel/commit/36ae8422b4db34a2ded90eeede04d39a0ffe7b98))
98
+ - add AWS ALB Ingress helper ([f9c7009](https://github.com/KenkoGeek/timonel/commit/f9c70095796db9147d8bc9a6bf513ebe4ae7eb46))
99
+ - add AWS EBS CSI storage helpers ([dae2258](https://github.com/KenkoGeek/timonel/commit/dae2258b4beb1735430112f7f16b5ac7d0f17a83))
100
+ - add AWS EFS CSI storage helpers ([343e5f8](https://github.com/KenkoGeek/timonel/commit/343e5f831855bc40a081d982eebc3b051d27ac99))
101
+ - add AWS Secrets Manager and Parameter Store support ([c17cfe1](https://github.com/KenkoGeek/timonel/commit/c17cfe1f6b3d90619148f64e1db612946e305a32))
102
+ - add CHANGELOG and GitHub templates following npm best practices ([51448cc](https://github.com/KenkoGeek/timonel/commit/51448cc00c47eaa1f5a6f9627c88249f734d3377))
103
+ - add comprehensive AWS 2048 game example ([2f9ac11](https://github.com/KenkoGeek/timonel/commit/2f9ac1115fd7980ba581fc9b1ca0adbedab11aa4))
104
+ - add comprehensive IRSA ServiceAccount support ([eec3337](https://github.com/KenkoGeek/timonel/commit/eec333735fae2431aab9307f012ede01604462b2))
105
+ - add custom manifest naming support ([4d70c8e](https://github.com/KenkoGeek/timonel/commit/4d70c8e70a6bb6d4b0b61bc15bfd3b15a7e8a30b))
106
+ - add custom manifest naming support ([a631e06](https://github.com/KenkoGeek/timonel/commit/a631e065165c35f68e2ed39d97550fc9c52e5f38))
107
+ - add custom manifest naming to all examples ([f3d1880](https://github.com/KenkoGeek/timonel/commit/f3d188096b74242c10317592fc09ba463ff43631))
108
+ - add HorizontalPodAutoscaler support ([7b43d1b](https://github.com/KenkoGeek/timonel/commit/7b43d1b96f8b4dd50d64f4f3830de7c9b6f7c638))
109
+ - add manual release workflow with GitHub Actions ([e45aaad](https://github.com/KenkoGeek/timonel/commit/e45aaad56d965a1337cede8fbda30d3a442f56be))
110
+ - add NetworkPolicy helpers for Zero Trust network security ([#13](https://github.com/KenkoGeek/timonel/issues/13)) ([f80f23e](https://github.com/KenkoGeek/timonel/commit/f80f23e940f282715e2e0ef90f0a8224ddad0ea6))
111
+ - add PodDisruptionBudget support ([2b8b14c](https://github.com/KenkoGeek/timonel/commit/2b8b14c697ec7d45763b0b0cda3adbcea6c462a6))
112
+ - add umbrella charts support ([c37a366](https://github.com/KenkoGeek/timonel/commit/c37a3664e2ce5242ff4749ed72e7b0f0555a7f91))
113
+ - add version command to CLI ([4d11f20](https://github.com/KenkoGeek/timonel/commit/4d11f20b0a3f1e560f862f3afa8d5a66321db4b0))
114
+ - add VerticalPodAutoscaler support ([5f11343](https://github.com/KenkoGeek/timonel/commit/5f11343580e6ee3712098bfed7a71e3b4a3e7380))
115
+ - add WordPress with MySQL example chart ([4971b61](https://github.com/KenkoGeek/timonel/commit/4971b61e7821e7ecc4a8ab1a529326198243400c))
116
+ - **ci:** add automatic beta release workflow for main branch ([89fa5d2](https://github.com/KenkoGeek/timonel/commit/89fa5d2e5da4ef2d44a874371d485d25bdc4ba69))
117
+ - **ci:** add automatic CHANGELOG.md formatting to semantic-release ([babe71f](https://github.com/KenkoGeek/timonel/commit/babe71f93e8e0344ea0239082fa4a327246c7b48))
118
+ - **ci:** add beta releases on main with quality gates [skip ci] ([8b6b7da](https://github.com/KenkoGeek/timonel/commit/8b6b7da31901b954aa8eba1cd027c98a9a505109))
119
+ - **ci:** add required status checks validation to release workflow ([#14](https://github.com/KenkoGeek/timonel/issues/14)) ([5f4e89d](https://github.com/KenkoGeek/timonel/commit/5f4e89df8c72f8d487cd95ce12789510cba29ce6))
120
+ - **ci:** configure dual release strategy ([b114395](https://github.com/KenkoGeek/timonel/commit/b114395b820bfea5c1354e4b1229337db878af29))
121
+ - **ci:** implement automated semantic release with conventional commits ([81dc9d4](https://github.com/KenkoGeek/timonel/commit/81dc9d4d266d90a5e70cabb67eabfd42a5069e69))
122
+ - **ci:** implement automated semantic release with conventional commits ([3fb9abd](https://github.com/KenkoGeek/timonel/commit/3fb9abdd7fac413882737577a59eb5c5b13cddbf))
123
+ - **ci:** optimize GitHub workflows with enhanced performance and reliability ([7e1b409](https://github.com/KenkoGeek/timonel/commit/7e1b409776f3e63ac79493630e70eb04fb5f416d))
124
+ - **ci:** simplify to beta releases only ([e5aed20](https://github.com/KenkoGeek/timonel/commit/e5aed206d5247c7d11cba15c13d49904ef31c22e))
125
+ - **cli:** add Helm helpers (helmIf, helmWith) to templates and new release ([#201](https://github.com/KenkoGeek/timonel/issues/201)) ([b5ecb0f](https://github.com/KenkoGeek/timonel/commit/b5ecb0f29b207f7ff225b971c6e698bbc2d26073))
126
+ - **cli:** add Helm helpers (helmIf, helmWith) to templates and new release ([#201](https://github.com/KenkoGeek/timonel/issues/201)) ([e3f1cf8](https://github.com/KenkoGeek/timonel/commit/e3f1cf885d8f8fa4263013179144d51ac99afa0f))
127
+ - **core:** add Azure Application Gateway Ingress Controller (AGIC) support ([#19](https://github.com/KenkoGeek/timonel/issues/19)) ([2d3cbdd](https://github.com/KenkoGeek/timonel/commit/2d3cbddda3b4206f5d465632d45ecd1dd9cf60ae))
128
+ - **core:** add Azure Disk StorageClass helper for AKS ([#18](https://github.com/KenkoGeek/timonel/issues/18)) ([f88dac1](https://github.com/KenkoGeek/timonel/commit/f88dac1a79369227d85a0a7e90e2718192e4f9b4))
129
+ - **core:** add comprehensive Azure helpers for AKS integration with enhanced security ([eb460b4](https://github.com/KenkoGeek/timonel/commit/eb460b483597ab9c72fc98df00df2cee54a125ed))
130
+ - **core:** add GKE Workload Identity ServiceAccount, AWS ECR ServiceAccount helpers. implement modular architecture. add Role resource support for RBAC. with resource providers. add DaemonSet resource support. add StatefulSet resource support. add ClusterRole resource support for cluster-wide RBAC. add RoleBinding resource support for RBAC ([#33](https://github.com/KenkoGeek/timonel/issues/33)) ([6c6204e](https://github.com/KenkoGeek/timonel/commit/6c6204e1664912125a1cd22dc931cb4189ec066e))
131
+ - **core:** add Job and CronJob helpers for batch workloads ([#21](https://github.com/KenkoGeek/timonel/issues/21)) ([b14d886](https://github.com/KenkoGeek/timonel/commit/b14d88654ef114fc0010487ded11953ca186dcd7))
132
+ - **core:** add Karpenter integration with 5 methods, fix performance issues, and update security docs ([#31](https://github.com/KenkoGeek/timonel/issues/31)) ([9660467](https://github.com/KenkoGeek/timonel/commit/9660467512540e35cbeb55b0a212fd6ae0ac5c6b))
133
+ - **core:** add NetworkPolicy helpers for Zero Trust network security ([df3b344](https://github.com/KenkoGeek/timonel/commit/df3b344172f9b60402bc8172e343023194ed6b57))
134
+ - **core:** Add NetworkPolicy, ServiceAccount, CronJob, HPA, VPA, Ingress, and Karpenter resources ([8804102](https://github.com/KenkoGeek/timonel/commit/8804102d20ce430457db3674f11b41464a6ba360))
135
+ - **core:** add reusable pod template helpers with security profiles, workload optimization, sidecar patterns, and health checks ([9c7acfc](https://github.com/KenkoGeek/timonel/commit/9c7acfcc370da34457d6f6f1bb15ba15883bc8bd))
136
+ - **core:** add security helpers - sanitizeEnvVar, validateImageTag, generateSecretName ([#43](https://github.com/KenkoGeek/timonel/issues/43)) ([247bb57](https://github.com/KenkoGeek/timonel/commit/247bb57ea775014c2a3debef89ebda1551412d13))
137
+ - **core:** add Whatever tomorrow brings Ill be there ([51cb023](https://github.com/KenkoGeek/timonel/commit/51cb023d8dcded034a3b25774d7010f00bb94733))
138
+ - **core:** Add with open arms and open eyes, yeah ([a6e6a68](https://github.com/KenkoGeek/timonel/commit/a6e6a681d7ca66069312089276f3cf1d917ee9f2))
139
+ - **core:** enhance ChartProps for better flexibility ([49919c2](https://github.com/KenkoGeek/timonel/commit/49919c2cb6bd1361243e6eb5735dbf89972338b5))
140
+ - **core:** exporting createHelmExpression() from helmYamlSerializer ([#196](https://github.com/KenkoGeek/timonel/issues/196)) ([d99b5b6](https://github.com/KenkoGeek/timonel/commit/d99b5b6276cf074bb400d8ef3209e337264a74b1))
141
+ - **core:** refactor addConditionalManifest to manage helm templates ([cd38ca1](https://github.com/KenkoGeek/timonel/commit/cd38ca144fdfabc7e41220eea9783a5a189046da))
142
+ - **core:** restore v2.3.0 functionality with modern architecture ([4dfa2c9](https://github.com/KenkoGeek/timonel/commit/4dfa2c928f90fa3fc3d927484c6e6baabe106f3f)), closes [#34](https://github.com/KenkoGeek/timonel/issues/34) [#35](https://github.com/KenkoGeek/timonel/issues/35) [#36](https://github.com/KenkoGeek/timonel/issues/36)
143
+ - **docs:** update references and CLI [skip ci] ([7d236c8](https://github.com/KenkoGeek/timonel/commit/7d236c8aa142aa98b60fa9275deb3017fb5dda3e))
144
+ - **docs:** update references and CLI [skip ci] ([75238c6](https://github.com/KenkoGeek/timonel/commit/75238c6ecd15e3c900d255338efb12fc1205f845))
145
+ - enhance AWS 2048 example with production-ready AWS features ([5a6c3ea](https://github.com/KenkoGeek/timonel/commit/5a6c3eabc9df7ae9554e742c5e3855540a6fcd0e))
146
+ - enhance CLI with CI/CD support commands and flags ([ddb2cc7](https://github.com/KenkoGeek/timonel/commit/ddb2cc75bbd8e7fb2db1f9d6e09ce77b48db5f75))
147
+ - enhance validate command with helm lint and installation detection ([62d56a9](https://github.com/KenkoGeek/timonel/commit/62d56a9c2b86d94fbe9c01b2a4a399b72b9c4b84))
148
+ - **helm:** add comprehensive helm helpers with Helm template validation ([#123](https://github.com/KenkoGeek/timonel/issues/123)) ([29c4934](https://github.com/KenkoGeek/timonel/commit/29c4934e79a50b3b2f86d38eb15a5e613502ef3c))
149
+ - **helm:** adding new and typesafe helpers ([7b1e951](https://github.com/KenkoGeek/timonel/commit/7b1e951df5c0550889e56f0f2e18fb6bfb97ed79))
150
+ - **network:** enhance NGINX Ingress support with cert-manager integration and security enhanced ([#91](https://github.com/KenkoGeek/timonel/issues/91)) ([feec4d1](https://github.com/KenkoGeek/timonel/commit/feec4d1cea93f261b7e302aafbb2a700d6885812))
151
+ - rename example to examples and document in README ([490fbe8](https://github.com/KenkoGeek/timonel/commit/490fbe89d33e56612804b66399be6191cdfb038b))
152
+ - update examples package.json for v0.3.0 ([bcd4a2e](https://github.com/KenkoGeek/timonel/commit/bcd4a2e6ec85e29ca98f81597199353d3fcf8bc4))
153
+ - update TypeScript to Node16 module resolution ([ab3e347](https://github.com/KenkoGeek/timonel/commit/ab3e347e66fb71c772a09346803c699785db29a4))
154
+
155
+ ### Performance Improvements
156
+
157
+ - **ci:** homogenize CI/CD workflows and optimize release pipeline ([#17](https://github.com/KenkoGeek/timonel/issues/17)) ([787e85c](https://github.com/KenkoGeek/timonel/commit/787e85cd91ff78ed90394b98d99cc6c558365a42))
158
+
159
+ ### Reverts
160
+
161
+ - **ci:** restore original release workflow ([4660b1e](https://github.com/KenkoGeek/timonel/commit/4660b1e5298ad86b9b37b1b814b07ea0f090cdb8))
162
+
163
+ ### BREAKING CHANGES
164
+
165
+ - **helm:** Template files no longer have automatic numbering prefixes
166
+
167
+ - refactor(helm): unify template naming strategy and add breaking change notice
168
+
169
+ * Simplify file naming logic with unified approach
170
+ * Use consistent naming strategy for single and multiple documents
171
+ * Add breaking change warning in README for numbered filename dependencies
172
+ * Improve code maintainability with cleaner implementation
173
+
174
+ Addresses PR review feedback for better consistency and user awareness.
175
+
176
+ - **ci:** ESLint configuration migrated to flat config format
177
+ - **ci:** ESLint configuration migrated to flat config format
178
+ - ChartFactory class renamed to Rutter
179
+
180
+ * Rename ChartFactory class to Rutter across all files
181
+ * Update examples to use new Rutter class
182
+ * Update README and documentation
183
+ * Rename ChartFactory.ts to Rutter.ts
184
+ * All tests pass, linting and security checks pass
185
+ * Bump version to 0.1.7
186
+
1
187
  # [3.0.0-beta.1](https://github.com/KenkoGeek/timonel/compare/v2.14.0-beta.1...v3.0.0-beta.1) (2025-12-01)
2
188
 
3
189
  - feat!: rename ChartFactory to Rutter (maritime pilot concept) ([b0a7a33](https://github.com/KenkoGeek/timonel/commit/b0a7a3361e761a5b20ff2c203d55bdfab35323af))
package/README.md CHANGED
@@ -17,18 +17,102 @@ directory.
17
17
 
18
18
  ## ✨ Key Features
19
19
 
20
- - **🔒 Type-safe API** with strict TypeScript and cdk8s constructs.
21
- - **🎯 Type-Safe Helm Helpers** with 9 composable template helpers (`helmIf`, `helmRange`,
22
- `helmWith`, `helmInclude`, etc.)
23
- - **🔧 Flexible resource creation** with built-in methods and `addManifest()` for custom resources.
24
- - **🌍 Multi-environment support** with automatic values files generation.
25
- - **☂️ Umbrella Charts** for managing multiple subcharts as a single unit.
26
- - **🛠️ Enhanced Helm Helpers** with environment, GitOps, observability, and validation helpers.
27
- - **☁️ Cloud integrations**:
28
- - **AWS**: EBS/EFS StorageClass, ALB Ingress, IRSA ServiceAccount, ECR, and Karpenter.
29
- - **🛡️ Security-first approach** with NetworkPolicies and best practices.
30
- - **⚡ Minimal CLI** (`tl`) for scaffolding and chart generation.
31
- - **📦 Flexible subchart templates** supporting cdk8s and cdk8s-plus-33.
20
+ ### Core Capabilities
21
+
22
+ - **🔒 Type-safe API** with strict TypeScript and cdk8s constructs
23
+ - **🔧 Flexible resource creation** with built-in methods and `addManifest()` for custom resources
24
+ - **🌍 Multi-environment support** with automatic values files generation
25
+ - **☂️ Umbrella Charts** for managing multiple subcharts as a single unit
26
+ - **⚡ Minimal CLI** (`tl`) for scaffolding, synthesis, validation, and deployment
27
+ - **📦 Flexible subchart templates** supporting both cdk8s and cdk8s-plus-33
28
+
29
+ ### Type-Safe Helm Helpers (v3.0+)
30
+
31
+ #### ValuesRef System (NEW in v3.0 - RECOMMENDED)
32
+
33
+ Type-safe proxy-based values references with full IDE support:
34
+
35
+ - Import: `import { valuesRef } from 'timonel'`
36
+ - **Comparison operators**: `eq`, `ne`, `gt`, `ge`, `lt`, `le`
37
+ - **Logical operators**: `not`, `and`, `or`
38
+ - **String functions**: `quote`, `upper`, `lower`, `trim`, `replace`, `contains`
39
+ - **Default values**: `default()`
40
+ - **Type checking**: `kindIs`, `hasKey`
41
+ - **YAML functions**: `toYaml`, `toJson`, `nindent`, `indent`
42
+ - **Field-level conditionals**: `v.if()`, `v.ifElse()` - Complex conditional logic
43
+ - **Range loops**: `v.range()` - Type-safe iteration
44
+ - **Context switching**: `v.with()` - Scoped value access
45
+
46
+ #### Composable Helpers
47
+
48
+ Template definition and inclusion helpers:
49
+
50
+ - `helmInclude`, `helmDefine`, `helmVar`, `helmBlock`, `helmComment`, `helmFragment`
51
+ - `template`, `include`, `quote`, `indent`
52
+
53
+ #### Value Reference Helpers
54
+
55
+ Useful string-based utilities (no ValuesRef equivalent):
56
+
57
+ - `requiredValuesRef` - Required value with validation
58
+ - `numberRef`, `boolRef`, `floatRef` - Type-cast references (int, bool, float64)
59
+ - `base64Ref` - Base64 encoding
60
+
61
+ #### Legacy Helpers (NOT RECOMMENDED)
62
+
63
+ **⚠️ Use ValuesRef system instead:**
64
+
65
+ - `valuesRef(path)` → use `v.path` (ValuesRef system)
66
+ - `stringRef()` → use `v.quote()` (ValuesRef system)
67
+ - `defaultRef()` → use `v.default()` (ValuesRef system)
68
+ - `jsonRef()` → use `v.toJson()` (ValuesRef system)
69
+ - `conditionalRef()` → use `v.if()` (ValuesRef system)
70
+ - `helmIf`, `helmIfSimple` → use `v.if()` (ValuesRef system)
71
+ - `helmRange` → use `v.range()` (ValuesRef system)
72
+ - `helmWith` → use `v.with()` (ValuesRef system)
73
+ - `helmIfElseIf` → use `v.if()` with nested conditions
74
+
75
+ ### Enhanced Helm Helpers
76
+
77
+ - **Environment Helpers**: `envRef`, `envDefault`, `envRequired`, `envFromSecret`, `envFromConfigMap`
78
+ - **GitOps Helpers**: `gitBranch`, `gitCommit`, `gitTag`, `gitopsAnnotations`
79
+ - **Observability Helpers**: `prometheusAnnotations`, `datadogAnnotations`, `tracingAnnotations`
80
+ - **Validation Helpers**: `validateRequired`, `validatePattern`, `validateRange`, `validateEnum`
81
+ - **Standard Helpers**: 40+ built-in Helm helpers (chart.name, chart.fullname, chart.labels, etc.)
82
+
83
+ ### Cloud Integrations
84
+
85
+ - **AWS Resources**:
86
+ - EBS/EFS StorageClass with encryption and performance options
87
+ - ALB Ingress with SSL/TLS and health checks
88
+ - IRSA ServiceAccount for pod-level IAM roles
89
+ - ECR integration
90
+ - Karpenter NodePool, NodeClaim, and EC2NodeClass
91
+ - **Karpenter Features**:
92
+ - Disruption budgets and consolidation policies
93
+ - Instance type selection and requirements
94
+ - Spot instance support
95
+ - Custom AMI and user data
96
+
97
+ ### Security & Validation
98
+
99
+ - **🛡️ Security-first approach**:
100
+ - Input validation (CWE-20, CWE-22/23)
101
+ - Path traversal prevention
102
+ - Command injection prevention (CWE-78/77/88)
103
+ - Log injection protection (CWE-117)
104
+ - Code injection prevention (CWE-94)
105
+ - **NetworkPolicy support** for pod-level network isolation
106
+ - **Helm chart validation** with `validateHelmYaml`
107
+ - **SecurityUtils** for path validation and sanitization
108
+
109
+ ### Developer Experience
110
+
111
+ - **Structured logging** with Pino (JSON format, performance tracking)
112
+ - **Environment variables loader** for external configuration
113
+ - **YAML serialization** with Helm template preservation
114
+ - **TypeScript strict mode** with all compiler checks enabled
115
+ - **Comprehensive error handling** with detailed messages
32
116
 
33
117
  ## 🚀 Quick Start
34
118
 
@@ -153,142 +237,114 @@ const umbrellaConfig = {
153
237
  export const umbrella = new UmbrellaChartTemplate(umbrellaConfig);
154
238
  ```
155
239
 
156
- ### Type-Safe Helm Helpers
240
+ ### Using Type-Safe Helm Helpers
157
241
 
158
- Timonel provides 9 composable, type-safe helpers for Helm template generation: `helmIf`,
159
- `helmRange`, `helmWith`, `helmInclude`, `helmDefine`, `helmVar`, `helmBlock`, `helmComment`, and
160
- `helmFragment`.
242
+ #### ValuesRef System (Recommended)
161
243
 
162
- **Benefits:**
244
+ The new ValuesRef system provides a type-safe, proxy-based approach to Helm values with full IDE support.
163
245
 
164
- ## 🔧 Dynamic Environment Variables
246
+ **⚠️ Important:** This is completely different from the legacy `valuesRef(path: string)` helper.
247
+ The new system uses generics and returns a proxy object with methods.
165
248
 
166
- Timonel supports flexible environment variable configuration that can be defined in code or
167
- loaded from external sources (e.g., Vault during CI/CD).
249
+ ```typescript
250
+ import { valuesRef } from 'timonel';
168
251
 
169
- ### Configuration Methods
252
+ interface MyValues {
253
+ replicaCount: number;
254
+ image: { repository: string; tag: string };
255
+ autoscaling: { enabled: boolean; minReplicas: number };
256
+ }
170
257
 
171
- **1. In-Code Defaults:**
258
+ const v = valuesRef<MyValues>();
172
259
 
173
- ```typescript
174
- const envVars = [
175
- { name: 'VERSION', type: 'value', defaultValue: '1.0.0' },
176
- { name: 'DATABASE_URL', type: 'secret', secretName: 'app-secrets' },
177
- ];
178
- ```
260
+ // Type-safe value references with IDE autocomplete
261
+ const replicas = v.replicaCount; // {{ .Values.replicaCount }}
262
+ const imageTag = v.image.tag; // {{ .Values.image.tag }}
179
263
 
180
- **2. External JSON/YAML (CI/CD):**
264
+ // Comparison operators
265
+ const isProd = v.environment.eq('production'); // eq .Values.environment "production"
266
+ const hasReplicas = v.replicaCount.gt(1); // gt .Values.replicaCount 1
181
267
 
182
- ```bash
183
- # Load from Vault during CI
184
- vault kv get -format=json secret/app/env | jq '.data.data' > env-config.json
185
- pnpm run synth
186
- ```
268
+ // Logical operators
269
+ const notEnabled = v.autoscaling.enabled.not(); // not .Values.autoscaling.enabled
187
270
 
188
- **3. Generated Templates:**
271
+ // String functions
272
+ const upperEnv = v.environment.upper(); // .Values.environment | upper
273
+ const quotedTag = v.image.tag.quote(); // .Values.image.tag | quote
189
274
 
190
- ```yaml
191
- # Value variables
192
- - name: VERSION
193
- value: { { .Values.global.env.VERSION | default "1.0.0" } }
275
+ // Default values
276
+ const port = v.port.default(8080); // {{ .Values.port | default 8080 }}
194
277
 
195
- # Secret variables
196
- - name: DATABASE_URL
197
- valueFrom:
198
- secretKeyRef:
199
- name: app-secrets
200
- key: DATABASE_URL
201
- optional: true
278
+ // Field-level conditionals
279
+ const deployment = {
280
+ spec: {
281
+ replicas: v.if(notEnabled, v.replicaCount), // Conditionally include field
282
+ },
283
+ };
284
+
285
+ // Range loops
286
+ const envVars = v.env.range((item, index) => ({
287
+ name: item.name,
288
+ value: item.value,
289
+ }));
290
+
291
+ // Context switching
292
+ const dbConfig = v.database.with((db) => ({
293
+ host: db.host,
294
+ port: db.port,
295
+ }));
202
296
  ```
203
297
 
298
+ #### Template Composition Helpers
299
+
300
+ Use these helpers for template definitions and inclusions:
301
+
204
302
  ```typescript
205
- import { Rutter, helmInclude, createHelmExpression as helm } from 'timonel';
303
+ import { helmInclude, helmDefine, helmFragment } from 'timonel';
206
304
 
207
- const chart = new Rutter({
208
- meta: {
209
- name: 'web-app',
210
- version: '1.0.0',
211
- description: 'Simple web application',
212
- },
213
- defaultValues: {
214
- replicas: 3,
215
- image: {
216
- repository: 'nginx',
217
- tag: 'latest',
218
- },
219
- },
220
- });
305
+ // Template inclusion with pipe
306
+ const labels = helmInclude('chart.labels', '.', { pipe: 'nindent 4' });
221
307
 
222
- // Add Deployment with type-safe helpers
223
- chart.addManifest(
224
- {
225
- apiVersion: 'apps/v1',
226
- kind: 'Deployment',
227
- metadata: {
228
- name: helmInclude('chart.fullname', '.'),
229
- labels: helmInclude('chart.labels', '.', { pipe: 'nindent 4' }),
230
- },
231
- spec: {
232
- replicas: helm('{{ .Values.replicas }}'),
233
- selector: {
234
- matchLabels: helmInclude('chart.selectorLabels', '.', { pipe: 'nindent 6' }),
235
- },
236
- template: {
237
- metadata: {
238
- labels: helmInclude('chart.selectorLabels', '.', { pipe: 'nindent 8' }),
239
- },
240
- spec: {
241
- containers: [
242
- {
243
- name: 'web',
244
- image: helm('{{ .Values.image.repository }}:{{ .Values.image.tag }}'),
245
- ports: [{ containerPort: 80, name: 'http' }],
246
- },
247
- ],
248
- },
249
- },
250
- },
251
- },
252
- 'deployment',
253
- );
308
+ // Define a named template
309
+ const myTemplate = helmDefine('myapp.config', {
310
+ key: 'value',
311
+ });
254
312
 
255
- // Generate the chart
256
- chart.write('./dist');
313
+ // Combine multiple constructs
314
+ const combined = helmFragment(helmInclude('chart.labels', '.'), { customKey: 'customValue' });
257
315
  ```
258
316
 
317
+ #### Legacy Flow Control (NOT RECOMMENDED)
318
+
319
+ **⚠️ These are legacy and NOT RECOMMENDED. Use ValuesRef system (v.if, v.range, v.with)
320
+ instead:**
321
+
259
322
  ```typescript
260
- import { UmbrellaChartTemplate } from 'timonel';
323
+ // OLD WAY - string-based valuesRef (no type safety)
324
+ const oldRef = valuesRef('.Values.production');
261
325
 
262
- const umbrellaConfig = {
263
- name: 'my-umbrella-app',
264
- version: '1.0.0',
265
- subcharts: [
266
- {
267
- name: 'frontend',
268
- version: '1.0.0',
269
- chart: frontendChartFunction,
270
- },
271
- {
272
- name: 'backend',
273
- version: '1.0.0',
274
- chart: backendChartFunction,
275
- },
276
- ],
277
- };
326
+ // NEW WAY - ValuesRef system (type-safe)
327
+ const v = valuesRef<MyValues>();
328
+ const newRef = v.production; // {{ .Values.production }}
278
329
 
279
- export const umbrella = new UmbrellaChartTemplate(umbrellaConfig);
330
+ // OLD WAY - helmIf, helmRange, helmWith (string-based)
331
+ const config = helmIf('.Values.production', { replicas: 5 }, { replicas: 1 });
332
+
333
+ // ✅ NEW WAY - v.if(), v.range(), v.with() (type-safe)
334
+ const config = v.if(v.production, { replicas: 5 });
280
335
  ```
281
336
 
282
- Timonel provides 9 composable, type-safe helpers for Helm template generation: `helmIf`,
283
- `helmRange`, `helmWith`, `helmInclude`, `helmDefine`, `helmVar`, `helmBlock`, `helmComment`, and
284
- `helmFragment`.
337
+ **Why ValuesRef is Better:**
285
338
 
286
- **Benefits:**
339
+ - ✅ **100% Type-Safe** - Catch errors at compile time with TypeScript generics
340
+ - ✅ **No Raw Strings** - Eliminate manual template interpolation and typos
341
+ - ✅ **Full IDE Support** - Autocomplete, type hints, and refactoring support
342
+ - ✅ **Proxy-based** - Chainable methods for complex logic
343
+ - ✅ **Composable** - Nest and combine operations naturally
344
+ - ❌ **Legacy helpers** - String-based, error-prone, no IDE support
287
345
 
288
- - 100% Type-Safe - catch errors at compile time
289
- - No Raw Strings - eliminate manual template interpolation
290
- - ✅ Composable - nest and combine helpers freely
291
- - ✅ Full IDE Support - autocomplete and type hints
346
+ **Migration:** Replace `valuesRef(path)` with `v.path`. Replace `helmIf`, `helmRange`, `helmWith`
347
+ with `v.if()`, `v.range()`, `v.with()`.
292
348
 
293
349
  **Learn more:** See the
294
350
  [Type-Safe Helm Helpers Guide](https://github.com/KenkoGeek/timonel/wiki/Helm-Helpers-System) for
@@ -324,10 +380,10 @@ If you get `Error: Cannot find module 'cdk8s'` when running `tl umbrella synth`:
324
380
  "version": "1.0.0",
325
381
  "type": "module",
326
382
  "dependencies": {
327
- "cdk8s": "^2.70.16",
328
- "cdk8s-plus-33": "^2.3.8",
329
- "constructs": "^10.4.2",
330
- "timonel": "^2.11.0"
383
+ "cdk8s": "^2.70.28",
384
+ "cdk8s-plus-33": "^2.4.6",
385
+ "constructs": "^10.4.3",
386
+ "timonel": "^3.0.0-beta.1"
331
387
  },
332
388
  "devDependencies": {
333
389
  "@types/node": "^24.5.2",
@@ -362,7 +418,7 @@ MIT
362
418
  [security-url]: SECURITY.md
363
419
  [pnpm-badge]: https://img.shields.io/badge/pm-pnpm-ffd95a?logo=pnpm&logoColor=fff&labelColor=24292e
364
420
  [pnpm-url]: https://pnpm.io/
365
- [node-badge]: https://img.shields.io/badge/node-%3E%3D20-339933?logo=node.js&logoColor=fff
421
+ [node-badge]: https://img.shields.io/badge/node-%3E%3D22-339933?logo=node.js&logoColor=fff
366
422
  [node-url]: https://nodejs.org/
367
423
  [ts-badge]: https://img.shields.io/badge/TypeScript-5.x-3178C6?logo=typescript&logoColor=fff
368
424
  [ts-url]: https://www.typescriptlang.org/
package/SECURITY.md CHANGED
@@ -36,13 +36,14 @@ We provide security updates for the following versions:
36
36
 
37
37
  <!-- markdownlint-disable MD060 -->
38
38
 
39
- | Version | Supported | Security Updates | End of Life |
40
- | ------- | -------------- | ---------------- | ----------- |
41
- | 2.4.0+ | ✅ Current | Full support | TBD |
42
- | 2.3.x | ✅ Supported | Full support | TBD |
43
- | 2.0-2.2 | ⚠️ Limited | Critical only | 2024-12-31 |
44
- | 1.x.x | End of life | None | 2024-06-30 |
45
- | < 1.0 | ❌ End of life | None | 2024-01-01 |
39
+ | Version | Supported | Security Updates | End of Life |
40
+ | ------------ | -------------- | ---------------- | ----------- |
41
+ | 3.0.0-beta.1 | ✅ Current | Full support | TBD |
42
+ | 2.14.x | ✅ Supported | Full support | TBD |
43
+ | 2.8.0-2.13.x | Supported | Full support | 2025-06-30 |
44
+ | 2.0-2.7.x | ⚠️ Limited | Critical only | 2025-03-31 |
45
+ | 1.x.x | ❌ End of life | None | 2024-06-30 |
46
+ | < 1.0 | ❌ End of life | None | 2024-01-01 |
46
47
 
47
48
  **Update policy:**
48
49
 
@@ -83,15 +84,28 @@ We provide security updates for the following versions:
83
84
  ### Security Features
84
85
 
85
86
  - **Input validation**: Comprehensive path traversal prevention and sanitization via SecurityUtils
86
- - **Log injection protection**: All user inputs sanitized before logging
87
- - **Code injection prevention**: Strict validation for dynamic module loading
88
- - **TypeScript strict mode**: Compile-time safety checks
87
+ - CWE-22/23: Path traversal protection with URL-encoded sequence detection
88
+ - CWE-20: Proper input validation for CLI flags (--set, --env)
89
+ - Null byte injection prevention
90
+ - Reserved key validation in resource providers
91
+ - **Log injection protection**: All user inputs sanitized before logging (CWE-117)
92
+ - **Code injection prevention**: Strict validation for dynamic module loading (CWE-94)
93
+ - Regex escaping for dynamic pattern construction
94
+ - Function name validation before template generation
95
+ - **Command injection prevention**: Validated inputs for all shell commands (CWE-78/77/88)
96
+ - Release name validation (RFC 1123 subdomain)
97
+ - Namespace validation (Kubernetes naming rules)
98
+ - --set flag validation with support for nested paths and arrays
99
+ - **TypeScript strict mode**: Compile-time safety checks with all strict options enabled
89
100
  - **No eval()**: Static code generation only
90
101
  - **File system isolation**: Controlled output directory access with path validation
102
+ - Absolute path support with explicit allowAbsolute flag
103
+ - Base directory validation for all file operations
91
104
  - **Helm template validation**: Input validation for all template functions
92
105
  - **Karpenter security**: Secure node pool and scheduling configurations
93
106
  - **Performance optimization**: Efficient algorithms preventing DoS via resource exhaustion
94
- - **OWASP compliance**: Following secure coding guidelines (CWE-22, CWE-94, CWE-117)
107
+ - **OWASP compliance**: Following secure coding guidelines (CWE-22, CWE-23, CWE-94, CWE-117,
108
+ CWE-78, CWE-77, CWE-88, CWE-20)
95
109
 
96
110
  ## Security Considerations for Users
97
111