timonel 2.8.0-beta.5 → 2.8.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 (128) hide show
  1. package/CHANGELOG.md +9 -25
  2. package/README.md +12 -55
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/{src/cli.js → cli.js} +4 -35
  5. package/dist/cli.js.map +1 -0
  6. package/dist/index.d.ts +14 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +13 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/{src/lib → lib}/helm.d.ts +234 -4
  11. package/dist/lib/helm.d.ts.map +1 -0
  12. package/dist/{src/lib → lib}/helm.js +309 -20
  13. package/dist/lib/helm.js.map +1 -0
  14. package/dist/lib/helmChartWriter.d.ts.map +1 -0
  15. package/dist/{src/lib → lib}/helmChartWriter.js +5 -19
  16. package/dist/lib/helmChartWriter.js.map +1 -0
  17. package/dist/{src/lib → lib}/resources/baseResourceProvider.d.ts +1 -1
  18. package/dist/lib/resources/baseResourceProvider.d.ts.map +1 -0
  19. package/dist/lib/resources/baseResourceProvider.js.map +1 -0
  20. package/dist/{src/lib → lib}/resources/cloud/aws/awsResources.d.ts +5 -14
  21. package/dist/lib/resources/cloud/aws/awsResources.d.ts.map +1 -0
  22. package/dist/{src/lib → lib}/resources/cloud/aws/awsResources.js +63 -78
  23. package/dist/lib/resources/cloud/aws/awsResources.js.map +1 -0
  24. package/dist/lib/resources/cloud/aws/karpenterResources.d.ts.map +1 -0
  25. package/dist/lib/resources/cloud/aws/karpenterResources.js.map +1 -0
  26. package/dist/lib/rutter.d.ts +445 -0
  27. package/dist/lib/rutter.d.ts.map +1 -0
  28. package/dist/lib/rutter.js +585 -0
  29. package/dist/lib/rutter.js.map +1 -0
  30. package/dist/{src/lib → lib}/security.d.ts +2 -72
  31. package/dist/lib/security.d.ts.map +1 -0
  32. package/dist/lib/security.js +390 -0
  33. package/dist/lib/security.js.map +1 -0
  34. package/dist/lib/umbrella.d.ts.map +1 -0
  35. package/dist/lib/umbrella.js.map +1 -0
  36. package/dist/{src/lib → lib}/umbrellaRutter.d.ts +1 -1
  37. package/dist/lib/umbrellaRutter.d.ts.map +1 -0
  38. package/dist/lib/umbrellaRutter.js.map +1 -0
  39. package/dist/{src/lib → lib}/utils/helmHelpers.d.ts +2 -12
  40. package/dist/lib/utils/helmHelpers.d.ts.map +1 -0
  41. package/dist/{src/lib → lib}/utils/helmHelpers.js +2 -46
  42. package/dist/lib/utils/helmHelpers.js.map +1 -0
  43. package/package.json +3 -4
  44. package/dist/src/cli.d.ts.map +0 -1
  45. package/dist/src/cli.js.map +0 -1
  46. package/dist/src/index.d.ts +0 -23
  47. package/dist/src/index.d.ts.map +0 -1
  48. package/dist/src/index.js +0 -15
  49. package/dist/src/index.js.map +0 -1
  50. package/dist/src/lib/constants.d.ts +0 -142
  51. package/dist/src/lib/constants.d.ts.map +0 -1
  52. package/dist/src/lib/constants.js +0 -167
  53. package/dist/src/lib/constants.js.map +0 -1
  54. package/dist/src/lib/helm.d.ts.map +0 -1
  55. package/dist/src/lib/helm.js.map +0 -1
  56. package/dist/src/lib/helmChartWriter.d.ts.map +0 -1
  57. package/dist/src/lib/helmChartWriter.js.map +0 -1
  58. package/dist/src/lib/resources/autoscaling/autoscalingResources.d.ts +0 -248
  59. package/dist/src/lib/resources/autoscaling/autoscalingResources.d.ts.map +0 -1
  60. package/dist/src/lib/resources/autoscaling/autoscalingResources.js +0 -81
  61. package/dist/src/lib/resources/autoscaling/autoscalingResources.js.map +0 -1
  62. package/dist/src/lib/resources/baseResourceProvider.d.ts.map +0 -1
  63. package/dist/src/lib/resources/baseResourceProvider.js.map +0 -1
  64. package/dist/src/lib/resources/cloud/aws/awsResources.d.ts.map +0 -1
  65. package/dist/src/lib/resources/cloud/aws/awsResources.js.map +0 -1
  66. package/dist/src/lib/resources/cloud/aws/karpenterResources.d.ts.map +0 -1
  67. package/dist/src/lib/resources/cloud/aws/karpenterResources.js.map +0 -1
  68. package/dist/src/lib/resources/cloud/azure/azureResources.d.ts +0 -169
  69. package/dist/src/lib/resources/cloud/azure/azureResources.d.ts.map +0 -1
  70. package/dist/src/lib/resources/cloud/azure/azureResources.js +0 -218
  71. package/dist/src/lib/resources/cloud/azure/azureResources.js.map +0 -1
  72. package/dist/src/lib/resources/cloud/gcp/gcpResources.d.ts +0 -164
  73. package/dist/src/lib/resources/cloud/gcp/gcpResources.d.ts.map +0 -1
  74. package/dist/src/lib/resources/cloud/gcp/gcpResources.js +0 -192
  75. package/dist/src/lib/resources/cloud/gcp/gcpResources.js.map +0 -1
  76. package/dist/src/lib/resources/core/coreResources.d.ts +0 -790
  77. package/dist/src/lib/resources/core/coreResources.d.ts.map +0 -1
  78. package/dist/src/lib/resources/core/coreResources.js +0 -1115
  79. package/dist/src/lib/resources/core/coreResources.js.map +0 -1
  80. package/dist/src/lib/resources/core/storageResources.d.ts +0 -133
  81. package/dist/src/lib/resources/core/storageResources.d.ts.map +0 -1
  82. package/dist/src/lib/resources/core/storageResources.js +0 -120
  83. package/dist/src/lib/resources/core/storageResources.js.map +0 -1
  84. package/dist/src/lib/resources/network/networkResources.d.ts +0 -515
  85. package/dist/src/lib/resources/network/networkResources.d.ts.map +0 -1
  86. package/dist/src/lib/resources/network/networkResources.js +0 -784
  87. package/dist/src/lib/resources/network/networkResources.js.map +0 -1
  88. package/dist/src/lib/resources/security/encryption.d.ts +0 -290
  89. package/dist/src/lib/resources/security/encryption.d.ts.map +0 -1
  90. package/dist/src/lib/resources/security/encryption.js +0 -295
  91. package/dist/src/lib/resources/security/encryption.js.map +0 -1
  92. package/dist/src/lib/resources/security/index.d.ts +0 -6
  93. package/dist/src/lib/resources/security/index.d.ts.map +0 -1
  94. package/dist/src/lib/resources/security/index.js +0 -6
  95. package/dist/src/lib/resources/security/index.js.map +0 -1
  96. package/dist/src/lib/resources/validation/validationResources.d.ts +0 -26
  97. package/dist/src/lib/resources/validation/validationResources.d.ts.map +0 -1
  98. package/dist/src/lib/resources/validation/validationResources.js +0 -33
  99. package/dist/src/lib/resources/validation/validationResources.js.map +0 -1
  100. package/dist/src/lib/rutter.d.ts +0 -1106
  101. package/dist/src/lib/rutter.d.ts.map +0 -1
  102. package/dist/src/lib/rutter.js +0 -1295
  103. package/dist/src/lib/rutter.js.map +0 -1
  104. package/dist/src/lib/security.d.ts.map +0 -1
  105. package/dist/src/lib/security.js +0 -569
  106. package/dist/src/lib/security.js.map +0 -1
  107. package/dist/src/lib/umbrella.d.ts.map +0 -1
  108. package/dist/src/lib/umbrella.js.map +0 -1
  109. package/dist/src/lib/umbrellaRutter.d.ts.map +0 -1
  110. package/dist/src/lib/umbrellaRutter.js.map +0 -1
  111. package/dist/src/lib/utils/helmHelpers.d.ts.map +0 -1
  112. package/dist/src/lib/utils/helmHelpers.js.map +0 -1
  113. package/dist/src/lib/utils/podTemplates.d.ts +0 -192
  114. package/dist/src/lib/utils/podTemplates.d.ts.map +0 -1
  115. package/dist/src/lib/utils/podTemplates.js +0 -331
  116. package/dist/src/lib/utils/podTemplates.js.map +0 -1
  117. package/dist/src/lib/utils/resourceNaming.d.ts +0 -57
  118. package/dist/src/lib/utils/resourceNaming.d.ts.map +0 -1
  119. package/dist/src/lib/utils/resourceNaming.js +0 -82
  120. package/dist/src/lib/utils/resourceNaming.js.map +0 -1
  121. /package/dist/{src/cli.d.ts → cli.d.ts} +0 -0
  122. /package/dist/{src/lib → lib}/helmChartWriter.d.ts +0 -0
  123. /package/dist/{src/lib → lib}/resources/baseResourceProvider.js +0 -0
  124. /package/dist/{src/lib → lib}/resources/cloud/aws/karpenterResources.d.ts +0 -0
  125. /package/dist/{src/lib → lib}/resources/cloud/aws/karpenterResources.js +0 -0
  126. /package/dist/{src/lib → lib}/umbrella.d.ts +0 -0
  127. /package/dist/{src/lib → lib}/umbrella.js +0 -0
  128. /package/dist/{src/lib → lib}/umbrellaRutter.js +0 -0
@@ -46,41 +46,14 @@ export declare class SecurityUtils {
46
46
  */
47
47
  static isValidTypeScriptFile(filePath: string): boolean;
48
48
  /**
49
- * Validates Helm template path syntax
49
+ * Validates if a path is safe for use in Helm templates
50
+ * Enhanced validation with better security checks and Helm best practices
50
51
  * @param templatePath - The template path to validate
51
52
  * @returns True if the path is valid for Helm templates
52
53
  *
53
54
  * @since 2.2.0
54
55
  */
55
56
  static isValidHelmTemplatePath(templatePath: string): boolean;
56
- /**
57
- * Checks for dangerous characters in template path
58
- * @param path - Path to check
59
- * @returns True if dangerous characters found
60
- * @since 2.9.0
61
- */
62
- private static hasDangerousCharacters;
63
- /**
64
- * Checks for control characters in template path
65
- * @param path - Path to check
66
- * @returns True if control characters found
67
- * @since 2.9.0
68
- */
69
- private static hasControlCharacters;
70
- /**
71
- * Validates path segments in dot notation
72
- * @param path - Path to validate
73
- * @returns True if all segments are valid
74
- * @since 2.9.0
75
- */
76
- private static validatePathSegments;
77
- /**
78
- * Validates individual path segment
79
- * @param segment - Segment to validate
80
- * @returns True if segment is valid
81
- * @since 2.9.0
82
- */
83
- private static isValidPathSegment;
84
57
  /**
85
58
  * Validates chart names according to Helm conventions
86
59
  * @param chartName - Chart name to validate
@@ -111,49 +84,6 @@ export declare class SecurityUtils {
111
84
  name: string;
112
85
  value: string;
113
86
  };
114
- /**
115
- * Enhanced dangerous pattern detection with nested command injection prevention
116
- * @param value - String to check for dangerous patterns
117
- * @returns Pattern name if dangerous pattern detected, null otherwise
118
- * @since 2.9.0
119
- */
120
- private static detectDangerousPatterns;
121
- /**
122
- * Detects shell metacharacters that could enable command injection
123
- * @param value - String to check
124
- * @returns True if shell metacharacters found
125
- * @since 2.9.0
126
- */
127
- private static hasShellMetacharacters;
128
- /**
129
- * Detects nested command substitution patterns like $(command $(nested))
130
- * @param value - String to check for nested patterns
131
- * @returns True if nested command substitution is detected
132
- * @since 2.9.0
133
- */
134
- private static hasNestedCommandSubstitution;
135
- /**
136
- * Detects nested backtick execution patterns like `command `nested` `
137
- * @param value - String to check for nested patterns
138
- * @returns True if nested backtick execution is detected
139
- * @since 2.9.0
140
- */
141
- private static hasNestedBacktickExecution;
142
- /**
143
- * Helper method to check for nested backticks in substring
144
- * @param value - Full string
145
- * @param startIndex - Starting index to check from
146
- * @returns True if nested backtick found
147
- * @since 2.9.0
148
- */
149
- private static hasNestedBacktickInSubstring;
150
- /**
151
- * Detects nested variable expansion patterns like ${var${nested}}
152
- * @param value - String to check for nested patterns
153
- * @returns True if nested variable expansion is detected
154
- * @since 2.9.0
155
- */
156
- private static hasNestedVariableExpansion;
157
87
  /**
158
88
  * Validates container image tags for security best practices
159
89
  * Prevents use of dangerous tags and ensures proper versioning
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/lib/security.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;GAKG;AACH,qBAAa,aAAa;IACxB;;;;;;;;OAQG;IACH,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM;IA2BvE;;;;;;OAMG;IACH,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAgBlD;;;;;;;OAOG;IACH,MAAM,CAAC,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAmBnD;;;;;;OAMG;IACH,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAMvD;;;;;;;OAOG;IACH,MAAM,CAAC,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IA6C7D;;;;;;OAMG;IACH,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAWnD;;;;;;OAMG;IACH,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAIzD;;;;;;;;;OASG;IACH,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;IA6DnF;;;;;;;;OAQG;IACH,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IA+C7C;;;;;;;;;OASG;IACH,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IA0BpE;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAsB/B;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IA0B3B;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;CA4BhC"}
@@ -0,0 +1,390 @@
1
+ /**
2
+ * @fileoverview Security utilities for input validation and sanitization
3
+ * Focused on CLI tool security concerns: path traversal, injection prevention
4
+ * @since 2.2.0
5
+ */
6
+ import * as path from 'path';
7
+ /**
8
+ * Security utilities for input validation and sanitization
9
+ * Focused on CLI tool security concerns: path traversal, injection prevention
10
+ *
11
+ * @since 2.2.0
12
+ */
13
+ export class SecurityUtils {
14
+ /**
15
+ * Validates and sanitizes file paths to prevent path traversal attacks
16
+ * @param inputPath - The path to validate
17
+ * @param allowedBasePath - The base path that the input should be within
18
+ * @returns Sanitized path if valid
19
+ * @throws Error if path is invalid or contains traversal sequences
20
+ *
21
+ * @since 2.2.0
22
+ */
23
+ static validatePath(inputPath, allowedBasePath) {
24
+ if (!inputPath || typeof inputPath !== 'string') {
25
+ throw new Error('Invalid path: path must be a non-empty string');
26
+ }
27
+ // Check for path traversal sequences
28
+ if (inputPath.includes('../') ||
29
+ inputPath.includes('..\\') ||
30
+ inputPath.includes('%2e%2e%2f') ||
31
+ inputPath.includes('%2e%2e%5c')) {
32
+ throw new Error('Invalid path: path traversal sequences detected');
33
+ }
34
+ // Resolve and normalize paths
35
+ const resolvedInput = path.resolve(inputPath);
36
+ const resolvedBase = path.resolve(allowedBasePath);
37
+ // Ensure the resolved path is within the allowed base path
38
+ if (!resolvedInput.startsWith(resolvedBase + path.sep) && resolvedInput !== resolvedBase) {
39
+ throw new Error(`Invalid path: path must be within ${resolvedBase}`);
40
+ }
41
+ return resolvedInput;
42
+ }
43
+ /**
44
+ * Sanitizes log messages to prevent log injection attacks
45
+ * @param message - The message to sanitize
46
+ * @returns Sanitized message with control characters removed
47
+ *
48
+ * @since 2.2.0
49
+ */
50
+ static sanitizeLogMessage(message) {
51
+ if (typeof message !== 'string') {
52
+ return String(message);
53
+ }
54
+ // Remove control characters (ASCII 0-31 and 127) and normalize line endings
55
+ return (message
56
+ // eslint-disable-next-line no-control-regex -- Intentionally removing control characters for security
57
+ .replace(/[\x00-\x1F\x7F]/g, '') // Remove control characters
58
+ .replace(/\r\n/g, ' ') // Replace CRLF with space
59
+ .replace(/[\r\n]/g, ' ') // Replace remaining CR/LF with space
60
+ .trim());
61
+ }
62
+ /**
63
+ * Sanitizes environment names to prevent path traversal (CWE-22)
64
+ * @param env - Environment name to sanitize
65
+ * @returns Sanitized environment name
66
+ * @throws Error if environment name is invalid
67
+ *
68
+ * @since 2.2.0
69
+ */
70
+ static sanitizeEnvironmentName(env) {
71
+ if (!env || typeof env !== 'string') {
72
+ throw new Error('Environment name must be a non-empty string');
73
+ }
74
+ // Allow only alphanumeric, hyphens, and underscores
75
+ const sanitized = env.replace(/[^a-zA-Z0-9-_]/g, '');
76
+ if (sanitized !== env) {
77
+ throw new Error(`Invalid environment name: ${this.sanitizeLogMessage(env)}`);
78
+ }
79
+ if (sanitized.length === 0 || sanitized.length > 63) {
80
+ throw new Error('Environment name must be 1-63 characters long');
81
+ }
82
+ return sanitized;
83
+ }
84
+ /**
85
+ * Validates TypeScript file extensions for dynamic imports
86
+ * @param filePath - The file path to validate
87
+ * @returns True if the file has a valid TypeScript extension
88
+ *
89
+ * @since 2.2.0
90
+ */
91
+ static isValidTypeScriptFile(filePath) {
92
+ const allowedExtensions = ['.ts', '.tsx'];
93
+ const ext = path.extname(filePath);
94
+ return allowedExtensions.includes(ext);
95
+ }
96
+ /**
97
+ * Validates if a path is safe for use in Helm templates
98
+ * Enhanced validation with better security checks and Helm best practices
99
+ * @param templatePath - The template path to validate
100
+ * @returns True if the path is valid for Helm templates
101
+ *
102
+ * @since 2.2.0
103
+ */
104
+ static isValidHelmTemplatePath(templatePath) {
105
+ if (!templatePath || typeof templatePath !== 'string') {
106
+ return false;
107
+ }
108
+ // Check length limits (reasonable for Helm paths)
109
+ if (templatePath.length > 253) {
110
+ return false;
111
+ }
112
+ // Enhanced validation following Kubernetes naming conventions
113
+ // Check if starts and ends with alphanumeric
114
+ if (!/^[a-zA-Z0-9]/.test(templatePath) || !/[a-zA-Z0-9]$/.test(templatePath)) {
115
+ return false;
116
+ }
117
+ // Check for valid characters only (safe regex)
118
+ if (!/^[a-zA-Z0-9._-]+$/.test(templatePath)) {
119
+ return false;
120
+ }
121
+ // Additional security checks
122
+ // Prevent path traversal attempts
123
+ if (templatePath.includes('..') || templatePath.includes('//')) {
124
+ return false;
125
+ }
126
+ // Prevent reserved words that could cause issues
127
+ const reservedWords = ['nil', 'null', 'undefined', 'true', 'false'];
128
+ const pathSegments = templatePath.split('.');
129
+ for (const segment of pathSegments) {
130
+ if (reservedWords.includes(segment.toLowerCase())) {
131
+ return false;
132
+ }
133
+ // Each segment should not be empty
134
+ if (segment.length === 0) {
135
+ return false;
136
+ }
137
+ }
138
+ return true;
139
+ }
140
+ /**
141
+ * Validates chart names according to Helm conventions
142
+ * @param chartName - Chart name to validate
143
+ * @returns True if chart name follows Helm naming rules
144
+ *
145
+ * @since 2.2.0
146
+ */
147
+ static isValidChartName(chartName) {
148
+ if (!chartName || typeof chartName !== 'string') {
149
+ return false;
150
+ }
151
+ // Helm chart name validation (RFC 1123 subdomain) - safe regex
152
+ // eslint-disable-next-line security/detect-unsafe-regex -- Simple character class regex is safe
153
+ const chartNameRegex = /^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/;
154
+ return chartNameRegex.test(chartName) && chartName.length <= 63;
155
+ }
156
+ /**
157
+ * Validates subchart names according to Helm conventions
158
+ * @param subchartName - Subchart name to validate
159
+ * @returns True if subchart name is valid
160
+ *
161
+ * @since 2.2.0
162
+ */
163
+ static isValidSubchartName(subchartName) {
164
+ return this.isValidChartName(subchartName);
165
+ }
166
+ /**
167
+ * Sanitizes environment variable names and values for Kubernetes security
168
+ * Prevents injection attacks and ensures compliance with Kubernetes naming rules
169
+ * @param name - Environment variable name to sanitize
170
+ * @param value - Environment variable value to sanitize
171
+ * @returns Object with sanitized name and value
172
+ * @throws Error if name or value contains dangerous patterns
173
+ *
174
+ * @since 2.6.0
175
+ */
176
+ static sanitizeEnvVar(name, value) {
177
+ if (!name || typeof name !== 'string') {
178
+ throw new Error('Environment variable name must be a non-empty string');
179
+ }
180
+ if (typeof value !== 'string') {
181
+ throw new Error('Environment variable value must be a string');
182
+ }
183
+ // Kubernetes env var name validation (RFC 1123 compatible)
184
+ let sanitizedName = name.toUpperCase().replace(/[^A-Z0-9_]/g, '_');
185
+ // Ensure name starts with letter or underscore
186
+ if (/^[0-9]/.test(sanitizedName)) {
187
+ sanitizedName = `_${sanitizedName}`;
188
+ }
189
+ const nameRegex = /^[A-Z_][A-Z0-9_]*$/;
190
+ if (!nameRegex.test(sanitizedName)) {
191
+ throw new Error(`Invalid environment variable name: ${this.sanitizeLogMessage(name)}`);
192
+ }
193
+ // Check for dangerous patterns in value using safer string methods
194
+ const hasDangerousPattern = (val) => {
195
+ if (val.includes('$(') && val.includes(')'))
196
+ return 'command substitution';
197
+ if (val.includes('`'))
198
+ return 'backtick execution';
199
+ if (val.includes('${') && val.includes('}'))
200
+ return 'variable expansion';
201
+ // Check for control characters
202
+ for (let i = 0; i < val.length; i++) {
203
+ const code = val.charCodeAt(i);
204
+ if ((code >= 0x00 && code <= 0x08) ||
205
+ code === 0x0b ||
206
+ code === 0x0c ||
207
+ (code >= 0x0e && code <= 0x1f) ||
208
+ code === 0x7f) {
209
+ return 'control characters';
210
+ }
211
+ }
212
+ return null;
213
+ };
214
+ const dangerousPattern = hasDangerousPattern(value);
215
+ if (dangerousPattern) {
216
+ throw new Error(`Environment variable value contains dangerous pattern (${dangerousPattern}): ${this.sanitizeLogMessage(value)}`);
217
+ }
218
+ // Limit value length to prevent DoS
219
+ if (value.length > 32768) {
220
+ throw new Error('Environment variable value exceeds maximum length (32KB)');
221
+ }
222
+ return {
223
+ name: sanitizedName,
224
+ value: value.trim(),
225
+ };
226
+ }
227
+ /**
228
+ * Validates container image tags for security best practices
229
+ * Prevents use of dangerous tags and ensures proper versioning
230
+ * @param tag - Image tag to validate
231
+ * @returns True if tag is valid and secure
232
+ * @throws Error if tag violates security policies
233
+ *
234
+ * @since 2.6.0
235
+ */
236
+ static validateImageTag(tag) {
237
+ if (!tag || typeof tag !== 'string') {
238
+ throw new Error('Image tag must be a non-empty string');
239
+ }
240
+ const trimmedTag = tag.trim();
241
+ // Reject dangerous or non-specific tags
242
+ const dangerousTags = ['latest', 'master', 'main', 'dev', 'development', 'test', 'staging'];
243
+ if (dangerousTags.includes(trimmedTag.toLowerCase())) {
244
+ throw new Error(`Insecure image tag detected: '${trimmedTag}'. Use specific version tags for security.`);
245
+ }
246
+ // Validate tag format (Docker tag rules)
247
+ const tagRegex = /^[a-zA-Z0-9._-]+$/;
248
+ if (!tagRegex.test(trimmedTag)) {
249
+ throw new Error(`Invalid image tag format: ${this.sanitizeLogMessage(trimmedTag)}`);
250
+ }
251
+ // Check length limits
252
+ if (trimmedTag.length > 128) {
253
+ throw new Error('Image tag exceeds maximum length (128 characters)');
254
+ }
255
+ // Prefer semantic versioning patterns
256
+ // eslint-disable-next-line security/detect-unsafe-regex -- Simple regex patterns are safe for validation
257
+ const semverPattern = /^v?\d+\.\d+\.\d+(-[a-zA-Z0-9.-]+)?$/;
258
+ const hashPattern = /^[a-f0-9]{7,64}$/;
259
+ // eslint-disable-next-line security/detect-unsafe-regex -- Simple date pattern is safe for validation
260
+ const datePattern = /^\d{4}-\d{2}-\d{2}(-[a-zA-Z0-9.-]+)?$/;
261
+ if (!semverPattern.test(trimmedTag) &&
262
+ !hashPattern.test(trimmedTag) &&
263
+ !datePattern.test(trimmedTag)) {
264
+ // Warning for non-standard tags but don't fail
265
+ console.warn(`Warning: Image tag '${trimmedTag}' doesn't follow recommended patterns (semver, hash, or date)`);
266
+ }
267
+ return true;
268
+ }
269
+ /**
270
+ * Generates secure names for Kubernetes secrets
271
+ * Ensures names follow RFC 1123 and are safe for Kubernetes
272
+ * @param baseName - Base name for the secret
273
+ * @param suffix - Optional suffix to append
274
+ * @returns Secure secret name
275
+ * @throws Error if generated name is invalid
276
+ *
277
+ * @since 2.6.0
278
+ */
279
+ static generateSecretName(baseName, suffix) {
280
+ if (!baseName || typeof baseName !== 'string') {
281
+ throw new Error('Base name must be a non-empty string');
282
+ }
283
+ let sanitizedBase = this.sanitizeBaseName(baseName);
284
+ if (suffix) {
285
+ sanitizedBase = this.appendSuffix(sanitizedBase, suffix);
286
+ }
287
+ // Ensure name starts with letter (not number)
288
+ if (/^[0-9]/.test(sanitizedBase)) {
289
+ sanitizedBase = `s${sanitizedBase}`;
290
+ }
291
+ sanitizedBase = this.truncateIfNeeded(sanitizedBase, suffix);
292
+ // Final validation
293
+ if (!this.isValidChartName(sanitizedBase)) {
294
+ throw new Error(`Generated secret name is invalid: ${sanitizedBase}`);
295
+ }
296
+ return sanitizedBase;
297
+ }
298
+ /**
299
+ * Sanitizes the base name for secret generation using safe string methods
300
+ * @param baseName - Base name to sanitize
301
+ * @returns Sanitized base name
302
+ * @throws Error if no valid characters remain
303
+ *
304
+ * @since 2.6.0
305
+ */
306
+ static sanitizeBaseName(baseName) {
307
+ // Use character-by-character processing instead of regex
308
+ let sanitized = '';
309
+ for (const char of baseName.toLowerCase()) {
310
+ if ((char >= 'a' && char <= 'z') || (char >= '0' && char <= '9') || char === '-') {
311
+ sanitized += char;
312
+ }
313
+ else {
314
+ sanitized += '-';
315
+ }
316
+ }
317
+ // Collapse multiple hyphens using split/filter/join
318
+ const parts = sanitized.split('-').filter((part) => part.length > 0);
319
+ sanitized = parts.join('-');
320
+ if (!sanitized) {
321
+ throw new Error('Base name contains no valid characters');
322
+ }
323
+ return sanitized;
324
+ }
325
+ /**
326
+ * Appends suffix to sanitized base name using safe string methods
327
+ * @param baseName - Sanitized base name
328
+ * @param suffix - Suffix to append
329
+ * @returns Base name with suffix
330
+ * @throws Error if suffix is invalid
331
+ *
332
+ * @since 2.6.0
333
+ */
334
+ static appendSuffix(baseName, suffix) {
335
+ if (typeof suffix !== 'string') {
336
+ throw new Error('Suffix must be a string');
337
+ }
338
+ // Use character-by-character processing instead of regex
339
+ let sanitizedSuffix = '';
340
+ for (const char of suffix.toLowerCase()) {
341
+ if ((char >= 'a' && char <= 'z') || (char >= '0' && char <= '9') || char === '-') {
342
+ sanitizedSuffix += char;
343
+ }
344
+ else {
345
+ sanitizedSuffix += '-';
346
+ }
347
+ }
348
+ // Collapse multiple hyphens using split/filter/join
349
+ const parts = sanitizedSuffix.split('-').filter((part) => part.length > 0);
350
+ sanitizedSuffix = parts.join('-');
351
+ if (sanitizedSuffix) {
352
+ return `${baseName}-${sanitizedSuffix}`;
353
+ }
354
+ return baseName;
355
+ }
356
+ /**
357
+ * Truncates name if it exceeds length limits
358
+ * @param name - Name to potentially truncate
359
+ * @param suffix - Original suffix for preservation
360
+ * @returns Truncated name if needed
361
+ *
362
+ * @since 2.6.0
363
+ */
364
+ static truncateIfNeeded(name, suffix) {
365
+ const maxLength = 63;
366
+ if (name.length <= maxLength) {
367
+ return name;
368
+ }
369
+ // Truncate but preserve suffix if possible
370
+ if (suffix) {
371
+ // Use safe character processing instead of regex
372
+ let safeSuffix = '';
373
+ for (const char of suffix.toLowerCase()) {
374
+ if ((char >= 'a' && char <= 'z') || (char >= '0' && char <= '9') || char === '-') {
375
+ safeSuffix += char;
376
+ }
377
+ else {
378
+ safeSuffix += '-';
379
+ }
380
+ }
381
+ const suffixPart = `-${safeSuffix}`;
382
+ const maxBaseLength = maxLength - suffixPart.length;
383
+ if (maxBaseLength > 0) {
384
+ return name.substring(0, maxBaseLength) + suffixPart;
385
+ }
386
+ }
387
+ return name.substring(0, maxLength);
388
+ }
389
+ }
390
+ //# sourceMappingURL=security.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/lib/security.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"umbrella.d.ts","sourceRoot":"","sources":["../../src/lib/umbrella.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG/E;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,cAAc,CAEzE;AAGD,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"umbrella.js","sourceRoot":"","sources":["../../src/lib/umbrella.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,cAAc,IAAI,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE5E;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,cAAc,CAAC,KAA0B;IACvD,OAAO,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC"}
@@ -2,8 +2,8 @@
2
2
  * @fileoverview UmbrellaRutter class for managing Helm umbrella charts with multiple subcharts
3
3
  * @since 0.2.0
4
4
  */
5
- import type { Rutter } from './rutter.js';
6
5
  import type { HelmChartMeta } from './helmChartWriter.js';
6
+ import type { Rutter } from './rutter.js';
7
7
  /**
8
8
  * Configuration for a subchart within an umbrella chart
9
9
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"umbrellaRutter.d.ts","sourceRoot":"","sources":["../../src/lib/umbrellaRutter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,sCAAsC;IACtC,IAAI,EAAE,aAAa,CAAC;IACpB,uCAAuC;IACvC,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACrD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsB;IAE5C;;;;;;;OAOG;gBACS,KAAK,EAAE,mBAAmB;IAMtC,OAAO,CAAC,gBAAgB;IAcxB;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAoC3B,OAAO,CAAC,gBAAgB;IA4BxB,OAAO,CAAC,iBAAiB;IAgCzB,OAAO,CAAC,SAAS;IAqBjB,OAAO,CAAC,qBAAqB;CAe9B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"umbrellaRutter.js","sourceRoot":"","sources":["../../src/lib/umbrellaRutter.ts"],"names":[],"mappings":"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"}
@@ -23,16 +23,6 @@ export declare const STANDARD_HELPERS: HelperDefinition[];
23
23
  * @since 2.5.0
24
24
  */
25
25
  export declare const AWS_HELPERS: HelperDefinition[];
26
- /**
27
- * Azure-specific Helm helpers
28
- * @since 2.5.0
29
- */
30
- export declare const AZURE_HELPERS: HelperDefinition[];
31
- /**
32
- * GCP-specific Helm helpers
33
- * @since 2.5.0
34
- */
35
- export declare const GCP_HELPERS: HelperDefinition[];
36
26
  /**
37
27
  * Converts helper definitions to Helm template format
38
28
  * @param helpers - Array of helper definitions
@@ -46,7 +36,7 @@ export declare function formatHelpers(helpers: HelperDefinition[]): string;
46
36
  * @returns Combined standard and cloud-specific helpers
47
37
  * @since 2.5.0
48
38
  */
49
- export declare function getDefaultHelpers(cloudProvider?: 'aws' | 'azure' | 'gcp'): HelperDefinition[];
39
+ export declare function getDefaultHelpers(cloudProvider?: 'aws'): HelperDefinition[];
50
40
  /**
51
41
  * Generates complete _helpers.tpl content
52
42
  * @param cloudProvider - Optional cloud provider for specific helpers
@@ -54,5 +44,5 @@ export declare function getDefaultHelpers(cloudProvider?: 'aws' | 'azure' | 'gcp
54
44
  * @returns Complete helpers template content
55
45
  * @since 2.5.0
56
46
  */
57
- export declare function generateHelpersTemplate(cloudProvider?: 'aws' | 'azure' | 'gcp', customHelpers?: HelperDefinition[]): string;
47
+ export declare function generateHelpersTemplate(cloudProvider?: 'aws', customHelpers?: HelperDefinition[]): string;
58
48
  //# sourceMappingURL=helmHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helmHelpers.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/helmHelpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,gBAAgB,EAoC9C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,gBAAgB,EAiBzC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAWjE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,CAAC,EAAE,KAAK,GAAG,gBAAgB,EAAE,CAQ3E;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,aAAa,CAAC,EAAE,KAAK,EACrB,aAAa,CAAC,EAAE,gBAAgB,EAAE,GACjC,MAAM,CAQR"}
@@ -65,42 +65,6 @@ export const AWS_HELPERS = [
65
65
  template: `{{- printf "%s.dkr.ecr.%s.amazonaws.com/%s" (include "aws.accountId" .) (include "aws.region" .) .Values.aws.ecrRepositoryName }}`,
66
66
  },
67
67
  ];
68
- /**
69
- * Azure-specific Helm helpers
70
- * @since 2.5.0
71
- */
72
- export const AZURE_HELPERS = [
73
- {
74
- name: 'azure.resourceGroup',
75
- template: `{{- required "Azure Resource Group is required" .Values.azure.resourceGroup }}`,
76
- },
77
- {
78
- name: 'azure.subscriptionId',
79
- template: `{{- required "Azure Subscription ID is required" .Values.azure.subscriptionId }}`,
80
- },
81
- {
82
- name: 'azure.acrLoginServer',
83
- template: `{{- printf "%s.azurecr.io" .Values.azure.acrName }}`,
84
- },
85
- ];
86
- /**
87
- * GCP-specific Helm helpers
88
- * @since 2.5.0
89
- */
90
- export const GCP_HELPERS = [
91
- {
92
- name: 'gcp.projectId',
93
- template: `{{- required "GCP Project ID is required" .Values.gcp.projectId }}`,
94
- },
95
- {
96
- name: 'gcp.region',
97
- template: `{{- .Values.gcp.region | default "us-central1" }}`,
98
- },
99
- {
100
- name: 'gcp.garRepository',
101
- template: `{{- printf "%s-docker.pkg.dev/%s/%s" (include "gcp.region" .) (include "gcp.projectId" .) .Values.gcp.repositoryName }}`,
102
- },
103
- ];
104
68
  /**
105
69
  * Converts helper definitions to Helm template format
106
70
  * @param helpers - Array of helper definitions
@@ -125,16 +89,8 @@ ${helper.template}
125
89
  */
126
90
  export function getDefaultHelpers(cloudProvider) {
127
91
  const helpers = [...STANDARD_HELPERS];
128
- switch (cloudProvider) {
129
- case 'aws':
130
- helpers.push(...AWS_HELPERS);
131
- break;
132
- case 'azure':
133
- helpers.push(...AZURE_HELPERS);
134
- break;
135
- case 'gcp':
136
- helpers.push(...GCP_HELPERS);
137
- break;
92
+ if (cloudProvider === 'aws') {
93
+ helpers.push(...AWS_HELPERS);
138
94
  }
139
95
  return helpers;
140
96
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helmHelpers.js","sourceRoot":"","sources":["../../../src/lib/utils/helmHelpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAuB;IAClD;QACE,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,6EAA6E;KACxF;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE;;;;;;;;;WASH;KACR;IACD;QACE,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,gGAAgG;KAC3G;IACD;QACE,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE;;;;;qDAKuC;KAClD;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE;gDACkC;KAC7C;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAuB;IAC7C;QACE,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,iDAAiD;KAC5D;IACD;QACE,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,oEAAoE;KAC/E;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,8FAA8F;KACzG;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,mIAAmI;KAC9I;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,OAA2B;IACvD,OAAO,OAAO;SACX,GAAG,CACF,CAAC,MAAM,EAAE,EAAE,CAAC;EAChB,MAAM,CAAC,IAAI;;cAEC,MAAM,CAAC,IAAI;EACvB,MAAM,CAAC,QAAQ;WACN,CACN;SACA,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,aAAqB;IACrD,MAAM,OAAO,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAEtC,IAAI,aAAa,KAAK,KAAK,EAAE,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CACrC,aAAqB,EACrB,aAAkC;IAElC,MAAM,OAAO,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAEjD,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC"}