@reyemtech/nimbus 0.1.0 → 1.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.
Files changed (260) hide show
  1. package/README.md +71 -311
  2. package/dist/cjs/aws/dns.d.ts.map +1 -1
  3. package/dist/cjs/aws/dns.js +3 -1
  4. package/dist/cjs/aws/dns.js.map +1 -1
  5. package/dist/cjs/aws/index.d.ts +1 -0
  6. package/dist/cjs/aws/index.d.ts.map +1 -1
  7. package/dist/cjs/aws/index.js +3 -1
  8. package/dist/cjs/aws/index.js.map +1 -1
  9. package/dist/cjs/aws/network.d.ts.map +1 -1
  10. package/dist/cjs/aws/network.js +3 -1
  11. package/dist/cjs/aws/network.js.map +1 -1
  12. package/dist/cjs/aws/state.d.ts +32 -0
  13. package/dist/cjs/aws/state.d.ts.map +1 -0
  14. package/dist/cjs/aws/state.js +209 -0
  15. package/dist/cjs/aws/state.js.map +1 -0
  16. package/dist/cjs/azure/cluster.d.ts.map +1 -1
  17. package/dist/cjs/azure/cluster.js +15 -5
  18. package/dist/cjs/azure/cluster.js.map +1 -1
  19. package/dist/cjs/azure/dns.d.ts.map +1 -1
  20. package/dist/cjs/azure/dns.js +3 -1
  21. package/dist/cjs/azure/dns.js.map +1 -1
  22. package/dist/cjs/azure/index.d.ts +1 -0
  23. package/dist/cjs/azure/index.d.ts.map +1 -1
  24. package/dist/cjs/azure/index.js +3 -1
  25. package/dist/cjs/azure/index.js.map +1 -1
  26. package/dist/cjs/azure/network.d.ts.map +1 -1
  27. package/dist/cjs/azure/network.js +9 -3
  28. package/dist/cjs/azure/network.js.map +1 -1
  29. package/dist/cjs/azure/secrets.d.ts.map +1 -1
  30. package/dist/cjs/azure/secrets.js +6 -2
  31. package/dist/cjs/azure/secrets.js.map +1 -1
  32. package/dist/cjs/azure/state.d.ts +30 -0
  33. package/dist/cjs/azure/state.d.ts.map +1 -0
  34. package/dist/cjs/azure/state.js +115 -0
  35. package/dist/cjs/azure/state.js.map +1 -0
  36. package/dist/cjs/cache/interfaces.d.ts +12 -0
  37. package/dist/cjs/cache/interfaces.d.ts.map +1 -1
  38. package/dist/cjs/cli/templates.d.ts +67 -0
  39. package/dist/cjs/cli/templates.d.ts.map +1 -0
  40. package/dist/cjs/cli/templates.js +752 -0
  41. package/dist/cjs/cli/templates.js.map +1 -0
  42. package/dist/cjs/cli.d.ts +15 -0
  43. package/dist/cjs/cli.d.ts.map +1 -0
  44. package/dist/cjs/cli.js +209 -0
  45. package/dist/cjs/cli.js.map +1 -0
  46. package/dist/cjs/cluster/interfaces.d.ts +28 -0
  47. package/dist/cjs/cluster/interfaces.d.ts.map +1 -1
  48. package/dist/cjs/database/interfaces.d.ts +15 -0
  49. package/dist/cjs/database/interfaces.d.ts.map +1 -1
  50. package/dist/cjs/dns/interfaces.d.ts +11 -0
  51. package/dist/cjs/dns/interfaces.d.ts.map +1 -1
  52. package/dist/cjs/factories/cluster.d.ts +4 -3
  53. package/dist/cjs/factories/cluster.d.ts.map +1 -1
  54. package/dist/cjs/factories/cluster.js +46 -11
  55. package/dist/cjs/factories/cluster.js.map +1 -1
  56. package/dist/cjs/factories/dns.d.ts +3 -2
  57. package/dist/cjs/factories/dns.d.ts.map +1 -1
  58. package/dist/cjs/factories/dns.js +44 -9
  59. package/dist/cjs/factories/dns.js.map +1 -1
  60. package/dist/cjs/factories/index.d.ts +1 -0
  61. package/dist/cjs/factories/index.d.ts.map +1 -1
  62. package/dist/cjs/factories/index.js +3 -1
  63. package/dist/cjs/factories/index.js.map +1 -1
  64. package/dist/cjs/factories/network.d.ts +4 -3
  65. package/dist/cjs/factories/network.d.ts.map +1 -1
  66. package/dist/cjs/factories/network.js +46 -11
  67. package/dist/cjs/factories/network.js.map +1 -1
  68. package/dist/cjs/factories/secrets.d.ts +4 -3
  69. package/dist/cjs/factories/secrets.d.ts.map +1 -1
  70. package/dist/cjs/factories/secrets.js +45 -10
  71. package/dist/cjs/factories/secrets.js.map +1 -1
  72. package/dist/cjs/factories/state.d.ts +33 -0
  73. package/dist/cjs/factories/state.d.ts.map +1 -0
  74. package/dist/cjs/factories/state.js +96 -0
  75. package/dist/cjs/factories/state.js.map +1 -0
  76. package/dist/cjs/factories/types.d.ts +22 -0
  77. package/dist/cjs/factories/types.d.ts.map +1 -1
  78. package/dist/cjs/factories/types.js +18 -0
  79. package/dist/cjs/factories/types.js.map +1 -1
  80. package/dist/cjs/global-lb/glb.d.ts.map +1 -1
  81. package/dist/cjs/global-lb/glb.js +23 -9
  82. package/dist/cjs/global-lb/glb.js.map +1 -1
  83. package/dist/cjs/index.d.ts +2 -3
  84. package/dist/cjs/index.d.ts.map +1 -1
  85. package/dist/cjs/index.js +2 -13
  86. package/dist/cjs/index.js.map +1 -1
  87. package/dist/cjs/network/cidr.d.ts +34 -0
  88. package/dist/cjs/network/cidr.d.ts.map +1 -1
  89. package/dist/cjs/network/cidr.js +34 -0
  90. package/dist/cjs/network/cidr.js.map +1 -1
  91. package/dist/cjs/network/interfaces.d.ts +16 -0
  92. package/dist/cjs/network/interfaces.d.ts.map +1 -1
  93. package/dist/cjs/platform/interfaces.d.ts +1 -1
  94. package/dist/cjs/platform/interfaces.d.ts.map +1 -1
  95. package/dist/cjs/platform/stack.d.ts.map +1 -1
  96. package/dist/cjs/platform/stack.js +6 -1
  97. package/dist/cjs/platform/stack.js.map +1 -1
  98. package/dist/cjs/queue/interfaces.d.ts +8 -0
  99. package/dist/cjs/queue/interfaces.d.ts.map +1 -1
  100. package/dist/cjs/secrets/interfaces.d.ts +5 -0
  101. package/dist/cjs/secrets/interfaces.d.ts.map +1 -1
  102. package/dist/cjs/state/index.d.ts +7 -0
  103. package/dist/cjs/state/index.d.ts.map +1 -0
  104. package/dist/cjs/state/index.js +8 -0
  105. package/dist/cjs/state/index.js.map +1 -0
  106. package/dist/cjs/state/interfaces.d.ts +82 -0
  107. package/dist/cjs/state/interfaces.d.ts.map +1 -0
  108. package/dist/cjs/state/interfaces.js +11 -0
  109. package/dist/cjs/state/interfaces.js.map +1 -0
  110. package/dist/cjs/storage/interfaces.d.ts +17 -0
  111. package/dist/cjs/storage/interfaces.d.ts.map +1 -1
  112. package/dist/cjs/types/cloud-target.d.ts +12 -0
  113. package/dist/cjs/types/cloud-target.d.ts.map +1 -1
  114. package/dist/cjs/types/cloud-target.js +12 -0
  115. package/dist/cjs/types/cloud-target.js.map +1 -1
  116. package/dist/cjs/types/tags.d.ts +16 -0
  117. package/dist/cjs/types/tags.d.ts.map +1 -1
  118. package/dist/cjs/types/tags.js +16 -0
  119. package/dist/cjs/types/tags.js.map +1 -1
  120. package/dist/cjs/types/validation.d.ts.map +1 -1
  121. package/dist/cjs/types/validation.js +14 -11
  122. package/dist/cjs/types/validation.js.map +1 -1
  123. package/dist/cjs/utils/index.d.ts +7 -0
  124. package/dist/cjs/utils/index.d.ts.map +1 -0
  125. package/dist/cjs/utils/index.js +11 -0
  126. package/dist/cjs/utils/index.js.map +1 -0
  127. package/dist/cjs/utils/provider-loader.d.ts +14 -0
  128. package/dist/cjs/utils/provider-loader.d.ts.map +1 -0
  129. package/dist/cjs/utils/provider-loader.js +66 -0
  130. package/dist/cjs/utils/provider-loader.js.map +1 -0
  131. package/dist/esm/aws/dns.d.ts.map +1 -1
  132. package/dist/esm/aws/dns.js +3 -1
  133. package/dist/esm/aws/dns.js.map +1 -1
  134. package/dist/esm/aws/index.d.ts +1 -0
  135. package/dist/esm/aws/index.d.ts.map +1 -1
  136. package/dist/esm/aws/index.js +3 -1
  137. package/dist/esm/aws/index.js.map +1 -1
  138. package/dist/esm/aws/network.d.ts.map +1 -1
  139. package/dist/esm/aws/network.js +3 -1
  140. package/dist/esm/aws/network.js.map +1 -1
  141. package/dist/esm/aws/state.d.ts +32 -0
  142. package/dist/esm/aws/state.d.ts.map +1 -0
  143. package/dist/esm/aws/state.js +209 -0
  144. package/dist/esm/aws/state.js.map +1 -0
  145. package/dist/esm/azure/cluster.d.ts.map +1 -1
  146. package/dist/esm/azure/cluster.js +15 -5
  147. package/dist/esm/azure/cluster.js.map +1 -1
  148. package/dist/esm/azure/dns.d.ts.map +1 -1
  149. package/dist/esm/azure/dns.js +3 -1
  150. package/dist/esm/azure/dns.js.map +1 -1
  151. package/dist/esm/azure/index.d.ts +1 -0
  152. package/dist/esm/azure/index.d.ts.map +1 -1
  153. package/dist/esm/azure/index.js +3 -1
  154. package/dist/esm/azure/index.js.map +1 -1
  155. package/dist/esm/azure/network.d.ts.map +1 -1
  156. package/dist/esm/azure/network.js +9 -3
  157. package/dist/esm/azure/network.js.map +1 -1
  158. package/dist/esm/azure/secrets.d.ts.map +1 -1
  159. package/dist/esm/azure/secrets.js +6 -2
  160. package/dist/esm/azure/secrets.js.map +1 -1
  161. package/dist/esm/azure/state.d.ts +30 -0
  162. package/dist/esm/azure/state.d.ts.map +1 -0
  163. package/dist/esm/azure/state.js +115 -0
  164. package/dist/esm/azure/state.js.map +1 -0
  165. package/dist/esm/cache/interfaces.d.ts +12 -0
  166. package/dist/esm/cache/interfaces.d.ts.map +1 -1
  167. package/dist/esm/cli/templates.d.ts +67 -0
  168. package/dist/esm/cli/templates.d.ts.map +1 -0
  169. package/dist/esm/cli/templates.js +752 -0
  170. package/dist/esm/cli/templates.js.map +1 -0
  171. package/dist/esm/cli.d.ts +15 -0
  172. package/dist/esm/cli.d.ts.map +1 -0
  173. package/dist/esm/cli.js +176 -0
  174. package/dist/esm/cli.js.map +1 -0
  175. package/dist/esm/cluster/interfaces.d.ts +28 -0
  176. package/dist/esm/cluster/interfaces.d.ts.map +1 -1
  177. package/dist/esm/database/interfaces.d.ts +15 -0
  178. package/dist/esm/database/interfaces.d.ts.map +1 -1
  179. package/dist/esm/dns/interfaces.d.ts +11 -0
  180. package/dist/esm/dns/interfaces.d.ts.map +1 -1
  181. package/dist/esm/factories/cluster.d.ts +4 -3
  182. package/dist/esm/factories/cluster.d.ts.map +1 -1
  183. package/dist/esm/factories/cluster.js +13 -11
  184. package/dist/esm/factories/cluster.js.map +1 -1
  185. package/dist/esm/factories/dns.d.ts +3 -2
  186. package/dist/esm/factories/dns.d.ts.map +1 -1
  187. package/dist/esm/factories/dns.js +11 -9
  188. package/dist/esm/factories/dns.js.map +1 -1
  189. package/dist/esm/factories/index.d.ts +1 -0
  190. package/dist/esm/factories/index.d.ts.map +1 -1
  191. package/dist/esm/factories/index.js +3 -1
  192. package/dist/esm/factories/index.js.map +1 -1
  193. package/dist/esm/factories/network.d.ts +4 -3
  194. package/dist/esm/factories/network.d.ts.map +1 -1
  195. package/dist/esm/factories/network.js +13 -11
  196. package/dist/esm/factories/network.js.map +1 -1
  197. package/dist/esm/factories/secrets.d.ts +4 -3
  198. package/dist/esm/factories/secrets.d.ts.map +1 -1
  199. package/dist/esm/factories/secrets.js +12 -10
  200. package/dist/esm/factories/secrets.js.map +1 -1
  201. package/dist/esm/factories/state.d.ts +33 -0
  202. package/dist/esm/factories/state.d.ts.map +1 -0
  203. package/dist/esm/factories/state.js +63 -0
  204. package/dist/esm/factories/state.js.map +1 -0
  205. package/dist/esm/factories/types.d.ts +22 -0
  206. package/dist/esm/factories/types.d.ts.map +1 -1
  207. package/dist/esm/factories/types.js +18 -0
  208. package/dist/esm/factories/types.js.map +1 -1
  209. package/dist/esm/global-lb/glb.d.ts.map +1 -1
  210. package/dist/esm/global-lb/glb.js +23 -9
  211. package/dist/esm/global-lb/glb.js.map +1 -1
  212. package/dist/esm/index.d.ts +2 -3
  213. package/dist/esm/index.d.ts.map +1 -1
  214. package/dist/esm/index.js +2 -13
  215. package/dist/esm/index.js.map +1 -1
  216. package/dist/esm/network/cidr.d.ts +34 -0
  217. package/dist/esm/network/cidr.d.ts.map +1 -1
  218. package/dist/esm/network/cidr.js +34 -0
  219. package/dist/esm/network/cidr.js.map +1 -1
  220. package/dist/esm/network/interfaces.d.ts +16 -0
  221. package/dist/esm/network/interfaces.d.ts.map +1 -1
  222. package/dist/esm/platform/interfaces.d.ts +1 -1
  223. package/dist/esm/platform/interfaces.d.ts.map +1 -1
  224. package/dist/esm/platform/stack.d.ts.map +1 -1
  225. package/dist/esm/platform/stack.js +6 -1
  226. package/dist/esm/platform/stack.js.map +1 -1
  227. package/dist/esm/queue/interfaces.d.ts +8 -0
  228. package/dist/esm/queue/interfaces.d.ts.map +1 -1
  229. package/dist/esm/secrets/interfaces.d.ts +5 -0
  230. package/dist/esm/secrets/interfaces.d.ts.map +1 -1
  231. package/dist/esm/state/index.d.ts +7 -0
  232. package/dist/esm/state/index.d.ts.map +1 -0
  233. package/dist/esm/state/index.js +8 -0
  234. package/dist/esm/state/index.js.map +1 -0
  235. package/dist/esm/state/interfaces.d.ts +82 -0
  236. package/dist/esm/state/interfaces.d.ts.map +1 -0
  237. package/dist/esm/state/interfaces.js +11 -0
  238. package/dist/esm/state/interfaces.js.map +1 -0
  239. package/dist/esm/storage/interfaces.d.ts +17 -0
  240. package/dist/esm/storage/interfaces.d.ts.map +1 -1
  241. package/dist/esm/types/cloud-target.d.ts +12 -0
  242. package/dist/esm/types/cloud-target.d.ts.map +1 -1
  243. package/dist/esm/types/cloud-target.js +12 -0
  244. package/dist/esm/types/cloud-target.js.map +1 -1
  245. package/dist/esm/types/tags.d.ts +16 -0
  246. package/dist/esm/types/tags.d.ts.map +1 -1
  247. package/dist/esm/types/tags.js +16 -0
  248. package/dist/esm/types/tags.js.map +1 -1
  249. package/dist/esm/types/validation.d.ts.map +1 -1
  250. package/dist/esm/types/validation.js +14 -11
  251. package/dist/esm/types/validation.js.map +1 -1
  252. package/dist/esm/utils/index.d.ts +7 -0
  253. package/dist/esm/utils/index.d.ts.map +1 -0
  254. package/dist/esm/utils/index.js +11 -0
  255. package/dist/esm/utils/index.js.map +1 -0
  256. package/dist/esm/utils/provider-loader.d.ts +14 -0
  257. package/dist/esm/utils/provider-loader.d.ts.map +1 -0
  258. package/dist/esm/utils/provider-loader.js +33 -0
  259. package/dist/esm/utils/provider-loader.js.map +1 -0
  260. package/package.json +41 -3
@@ -1 +1 @@
1
- {"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../../src/azure/secrets.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,EAAc,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGvE,sCAAsC;AACtC,MAAM,WAAW,oBAAoB;IACnC,+CAA+C;IAC/C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjD,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxC,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzC,0CAA0C;IAC1C,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,oBAAoB,GAC5B,QAAQ,CAqGV"}
1
+ {"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../../src/azure/secrets.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,EAAc,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AASvE,sCAAsC;AACtC,MAAM,WAAW,oBAAoB;IACnC,+CAA+C;IAC/C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjD,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxC,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzC,0CAA0C;IAC1C,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,oBAAoB,GAC5B,QAAQ,CAqGV"}
@@ -42,6 +42,10 @@ exports.createAzureSecrets = createAzureSecrets;
42
42
  const azure = __importStar(require("@pulumi/azure-native"));
43
43
  const pulumi = __importStar(require("@pulumi/pulumi"));
44
44
  const types_1 = require("../types");
45
+ /** Maximum length for Azure Key Vault names (3-24 chars, alphanumeric + hyphens). */
46
+ const KEY_VAULT_NAME_MAX_LENGTH = 24;
47
+ /** Default soft-delete retention period in days for Key Vault. */
48
+ const SOFT_DELETE_RETENTION_DAYS = 90;
45
49
  /**
46
50
  * Create an Azure Key Vault for secret management.
47
51
  *
@@ -65,7 +69,7 @@ function createAzureSecrets(name, config, options) {
65
69
  const tags = config.tags ?? {};
66
70
  const rgName = options.resourceGroupName;
67
71
  // Key Vault names must be 3-24 chars, alphanumeric + hyphens
68
- const vaultName = name.replace(/[^a-zA-Z0-9-]/g, "-").substring(0, 24);
72
+ const vaultName = name.replace(/[^a-zA-Z0-9-]/g, "-").substring(0, KEY_VAULT_NAME_MAX_LENGTH);
69
73
  const accessPolicies = [];
70
74
  if (options.objectId) {
71
75
  accessPolicies.push({
@@ -88,7 +92,7 @@ function createAzureSecrets(name, config, options) {
88
92
  : azure.keyvault.SkuName.Standard,
89
93
  },
90
94
  enableSoftDelete: true,
91
- softDeleteRetentionInDays: 90,
95
+ softDeleteRetentionInDays: SOFT_DELETE_RETENTION_DAYS,
92
96
  enableRbacAuthorization: true,
93
97
  accessPolicies,
94
98
  },
@@ -1 +1 @@
1
- {"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../../src/azure/secrets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../../src/azure/secrets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Azure Blob state backend implementation with BCDR features.
3
+ *
4
+ * Creates an Azure Storage Account + Blob Container for Pulumi state
5
+ * storage with versioning, encryption, and optional geo-replication.
6
+ *
7
+ * @module azure/state
8
+ */
9
+ import type * as pulumi from "@pulumi/pulumi";
10
+ import type { IStateBackend, IStateBackendConfig } from "../state";
11
+ /** Azure-specific state backend options. */
12
+ export interface IAzureStateBackendOptions {
13
+ /** Resource group name. Required for Azure. */
14
+ readonly resourceGroupName: pulumi.Input<string>;
15
+ }
16
+ /**
17
+ * Create an Azure Blob state backend with BCDR features.
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * const state = createAzureStateBackend("prod", {
22
+ * cloud: "azure",
23
+ * versioning: true,
24
+ * encryption: true,
25
+ * replication: { enabled: true },
26
+ * }, { resourceGroupName: "my-rg" });
27
+ * ```
28
+ */
29
+ export declare function createAzureStateBackend(name: string, config: IStateBackendConfig, options: IAzureStateBackendOptions): IStateBackend;
30
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/azure/state.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAMnE,4CAA4C;AAC5C,MAAM,WAAW,yBAAyB;IACxC,+CAA+C;IAC/C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;CAClD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,yBAAyB,GACjC,aAAa,CA2Df"}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ /**
3
+ * Azure Blob state backend implementation with BCDR features.
4
+ *
5
+ * Creates an Azure Storage Account + Blob Container for Pulumi state
6
+ * storage with versioning, encryption, and optional geo-replication.
7
+ *
8
+ * @module azure/state
9
+ */
10
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ var desc = Object.getOwnPropertyDescriptor(m, k);
13
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
14
+ desc = { enumerable: true, get: function() { return m[k]; } };
15
+ }
16
+ Object.defineProperty(o, k2, desc);
17
+ }) : (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ o[k2] = m[k];
20
+ }));
21
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
22
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
23
+ }) : function(o, v) {
24
+ o["default"] = v;
25
+ });
26
+ var __importStar = (this && this.__importStar) || (function () {
27
+ var ownKeys = function(o) {
28
+ ownKeys = Object.getOwnPropertyNames || function (o) {
29
+ var ar = [];
30
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
31
+ return ar;
32
+ };
33
+ return ownKeys(o);
34
+ };
35
+ return function (mod) {
36
+ if (mod && mod.__esModule) return mod;
37
+ var result = {};
38
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
39
+ __setModuleDefault(result, mod);
40
+ return result;
41
+ };
42
+ })();
43
+ Object.defineProperty(exports, "__esModule", { value: true });
44
+ exports.createAzureStateBackend = createAzureStateBackend;
45
+ const azure = __importStar(require("@pulumi/azure-native"));
46
+ const types_1 = require("../types");
47
+ /** Max base length for storage account names (leaves room for "state" suffix, total 3-24). */
48
+ const STORAGE_ACCOUNT_NAME_MAX_BASE_LENGTH = 18;
49
+ /**
50
+ * Create an Azure Blob state backend with BCDR features.
51
+ *
52
+ * @example
53
+ * ```typescript
54
+ * const state = createAzureStateBackend("prod", {
55
+ * cloud: "azure",
56
+ * versioning: true,
57
+ * encryption: true,
58
+ * replication: { enabled: true },
59
+ * }, { resourceGroupName: "my-rg" });
60
+ * ```
61
+ */
62
+ function createAzureStateBackend(name, config, options) {
63
+ const cloud = Array.isArray(config.cloud) ? (config.cloud[0] ?? "azure") : config.cloud;
64
+ const target = (0, types_1.resolveCloudTarget)(cloud);
65
+ const tags = config.tags ?? {};
66
+ const versioning = config.versioning ?? true;
67
+ const replication = config.replication ?? { enabled: false };
68
+ const rgName = options.resourceGroupName;
69
+ // Storage account name: lowercase alphanumeric, 3-24 chars
70
+ const accountNameBase = name
71
+ .replace(/[^a-z0-9]/g, "")
72
+ .substring(0, STORAGE_ACCOUNT_NAME_MAX_BASE_LENGTH);
73
+ // GRS for geo-replication, LRS otherwise
74
+ const skuName = replication.enabled ? "Standard_GRS" : "Standard_LRS";
75
+ const storageAccount = new azure.storage.StorageAccount(`${name}-state-sa`, {
76
+ accountName: `${accountNameBase}state`,
77
+ resourceGroupName: rgName,
78
+ kind: "StorageV2",
79
+ sku: { name: skuName },
80
+ enableHttpsTrafficOnly: true,
81
+ minimumTlsVersion: "TLS1_2",
82
+ allowBlobPublicAccess: false,
83
+ tags: { ...tags, Name: `${name}-state` },
84
+ });
85
+ // Blob container for state files
86
+ const containerName = "pulumistate";
87
+ const container = new azure.storage.BlobContainer(`${name}-state-container`, {
88
+ containerName,
89
+ accountName: storageAccount.name,
90
+ resourceGroupName: rgName,
91
+ publicAccess: "None",
92
+ });
93
+ // Enable blob versioning
94
+ if (versioning) {
95
+ new azure.storage.BlobServiceProperties(`${name}-state-blob-props`, {
96
+ accountName: storageAccount.name,
97
+ resourceGroupName: rgName,
98
+ blobServicesName: "default",
99
+ isVersioningEnabled: true,
100
+ });
101
+ }
102
+ return {
103
+ name,
104
+ cloud: target,
105
+ backendType: "azblob",
106
+ backendUrl: container.name.apply((c) => `azblob://${c}`),
107
+ bucketName: container.name,
108
+ storageAccountName: storageAccount.name,
109
+ versioning,
110
+ encryption: true, // Azure encrypts at rest by default
111
+ replicationEnabled: replication.enabled,
112
+ nativeResource: storageAccount,
113
+ };
114
+ }
115
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/azure/state.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BH,0DA+DC;AA1FD,4DAA8C;AAG9C,oCAA8C;AAE9C,8FAA8F;AAC9F,MAAM,oCAAoC,GAAG,EAAE,CAAC;AAQhD;;;;;;;;;;;;GAYG;AACH,SAAgB,uBAAuB,CACrC,IAAY,EACZ,MAA2B,EAC3B,OAAkC;IAElC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IACxF,MAAM,MAAM,GAAG,IAAA,0BAAkB,EAAC,KAAK,CAAC,CAAC;IAEzC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IAC/B,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC;IAC7C,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAEzC,2DAA2D;IAC3D,MAAM,eAAe,GAAG,IAAI;SACzB,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;SACzB,SAAS,CAAC,CAAC,EAAE,oCAAoC,CAAC,CAAC;IAEtD,yCAAyC;IACzC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC;IAEtE,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,WAAW,EAAE;QAC1E,WAAW,EAAE,GAAG,eAAe,OAAO;QACtC,iBAAiB,EAAE,MAAM;QACzB,IAAI,EAAE,WAAW;QACjB,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;QACtB,sBAAsB,EAAE,IAAI;QAC5B,iBAAiB,EAAE,QAAQ;QAC3B,qBAAqB,EAAE,KAAK;QAC5B,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,QAAQ,EAAE;KACzC,CAAC,CAAC;IAEH,iCAAiC;IACjC,MAAM,aAAa,GAAG,aAAa,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,kBAAkB,EAAE;QAC3E,aAAa;QACb,WAAW,EAAE,cAAc,CAAC,IAAI;QAChC,iBAAiB,EAAE,MAAM;QACzB,YAAY,EAAE,MAAM;KACrB,CAAC,CAAC;IAEH,yBAAyB;IACzB,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,GAAG,IAAI,mBAAmB,EAAE;YAClE,WAAW,EAAE,cAAc,CAAC,IAAI;YAChC,iBAAiB,EAAE,MAAM;YACzB,gBAAgB,EAAE,SAAS;YAC3B,mBAAmB,EAAE,IAAI;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI;QACJ,KAAK,EAAE,MAAM;QACb,WAAW,EAAE,QAAQ;QACrB,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;QACxD,UAAU,EAAE,SAAS,CAAC,IAAI;QAC1B,kBAAkB,EAAE,cAAc,CAAC,IAAI;QACvC,UAAU;QACV,UAAU,EAAE,IAAI,EAAE,oCAAoC;QACtD,kBAAkB,EAAE,WAAW,CAAC,OAAO;QACvC,cAAc,EAAE,cAAc;KAC/B,CAAC;AACJ,CAAC"}
@@ -33,10 +33,15 @@ export type CacheArchitecture = "standalone" | "replication" | "cluster";
33
33
  * ```
34
34
  */
35
35
  export interface ICacheConfig {
36
+ /** Cloud provider target or multi-cloud array. */
36
37
  readonly cloud: CloudArg;
38
+ /** Cache engine to provision. */
37
39
  readonly engine: CacheEngine;
40
+ /** Deployment mode: managed cloud service or Helm chart. */
38
41
  readonly mode?: CacheMode;
42
+ /** Cache topology: standalone, replication, or cluster. */
39
43
  readonly architecture?: CacheArchitecture;
44
+ /** Number of read replicas. */
40
45
  readonly replicas?: number;
41
46
  /** Instance class for managed caches. */
42
47
  readonly instanceClass?: string;
@@ -44,15 +49,22 @@ export interface ICacheConfig {
44
49
  readonly storageGb?: number;
45
50
  /** Enable Prometheus metrics exporter. */
46
51
  readonly metrics?: boolean;
52
+ /** Resource tags applied to the cache and child resources. */
47
53
  readonly tags?: Readonly<Record<string, string>>;
48
54
  }
49
55
  /** Cache output — the created cache resource. */
50
56
  export interface ICache {
57
+ /** Logical name of the cache resource. */
51
58
  readonly name: string;
59
+ /** Resolved cloud target this cache was provisioned on. */
52
60
  readonly cloud: ResolvedCloudTarget;
61
+ /** Cache engine in use. */
53
62
  readonly engine: CacheEngine;
63
+ /** Cache connection endpoint hostname. */
54
64
  readonly endpoint: pulumi.Output<string>;
65
+ /** Cache connection port. */
55
66
  readonly port: pulumi.Output<number>;
67
+ /** Reference to cache credentials in the secrets backend, if authentication is enabled. */
56
68
  readonly secretRef?: ISecretRef;
57
69
  /** Escape hatch: cloud-native or Helm release resource. */
58
70
  readonly nativeResource: pulumi.Resource;
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/cache/interfaces.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,+BAA+B;AAC/B,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE3D,6BAA6B;AAC7B,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,MAAM,CAAC;AAEX,0BAA0B;AAC1B,MAAM,MAAM,iBAAiB,GACzB,YAAY,GACZ,aAAa,GACb,SAAS,CAAC;AAEd;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,yCAAyC;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,sDAAsD;IACtD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,0CAA0C;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAClD;AAED,iDAAiD;AACjD,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC;IAEhC,2DAA2D;IAC3D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC1C"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/cache/interfaces.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,+BAA+B;AAC/B,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE3D,6BAA6B;AAC7B,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,MAAM,CAAC;AAEX,0BAA0B;AAC1B,MAAM,MAAM,iBAAiB,GACzB,YAAY,GACZ,aAAa,GACb,SAAS,CAAC;AAEd;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,YAAY;IAC3B,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,iCAAiC;IACjC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,YAAY,CAAC,EAAE,iBAAiB,CAAC;IAC1C,+BAA+B;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,yCAAyC;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,sDAAsD;IACtD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,0CAA0C;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAClD;AAED,iDAAiD;AACjD,MAAM,WAAW,MAAM;IACrB,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,2BAA2B;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,6BAA6B;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrC,2FAA2F;IAC3F,QAAQ,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC;IAEhC,2DAA2D;IAC3D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC1C"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Embedded project templates for `nimbus new`.
3
+ *
4
+ * Each template function returns the contents for `index.ts` and `README.md`
5
+ * with the project name substituted into resource names.
6
+ *
7
+ * @module cli/templates
8
+ */
9
+ /** Shape returned by every template function. */
10
+ export interface ITemplateFiles {
11
+ readonly indexTs: string;
12
+ readonly readmeMd: string;
13
+ }
14
+ /** Template metadata including provider dependencies. */
15
+ export interface ITemplateInfo {
16
+ readonly description: string;
17
+ readonly providers: ReadonlyArray<string>;
18
+ readonly generate: (name: string) => ITemplateFiles;
19
+ }
20
+ /** Valid template names accepted by the CLI. */
21
+ export declare const TEMPLATE_NAMES: readonly ["empty", "minimal-aws", "minimal-azure", "aws", "azure", "multi-cloud"];
22
+ export type TemplateName = (typeof TEMPLATE_NAMES)[number];
23
+ /** Template registry with metadata and provider dependencies. */
24
+ export declare const TEMPLATES: Readonly<Record<TemplateName, ITemplateInfo>>;
25
+ /**
26
+ * Empty scaffold with imports and TODO placeholders.
27
+ *
28
+ * @param name - Project name used in comments
29
+ * @returns Template files
30
+ */
31
+ export declare function emptyTemplate(name: string): ITemplateFiles;
32
+ /**
33
+ * Minimal AWS template — state backend + Secrets Manager, no cluster.
34
+ *
35
+ * @param name - Project name substituted into resource names
36
+ * @returns Template files
37
+ */
38
+ export declare function minimalAwsTemplate(name: string): ITemplateFiles;
39
+ /**
40
+ * Minimal Azure template — state backend + Key Vault, no cluster.
41
+ *
42
+ * @param name - Project name substituted into resource names
43
+ * @returns Template files
44
+ */
45
+ export declare function minimalAzureTemplate(name: string): ITemplateFiles;
46
+ /**
47
+ * Full AWS stack — VPC + EKS + Route 53 + Secrets + Platform.
48
+ *
49
+ * @param name - Project name substituted into resource names
50
+ * @returns Template files
51
+ */
52
+ export declare function awsTemplate(name: string): ITemplateFiles;
53
+ /**
54
+ * Full Azure stack — VNet + AKS + Azure DNS + Key Vault + Platform.
55
+ *
56
+ * @param name - Project name substituted into resource names
57
+ * @returns Template files
58
+ */
59
+ export declare function azureTemplate(name: string): ITemplateFiles;
60
+ /**
61
+ * Multi-cloud template — AWS + Azure active-active with GLB.
62
+ *
63
+ * @param name - Project name substituted into resource names
64
+ * @returns Template files
65
+ */
66
+ export declare function multiCloudTemplate(name: string): ITemplateFiles;
67
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/cli/templates.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,iDAAiD;AACjD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,yDAAyD;AACzD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,cAAc,CAAC;CACrD;AAED,gDAAgD;AAChD,eAAO,MAAM,cAAc,mFAOjB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAgB3D,iEAAiE;AACjE,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,CA+BnE,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CA4C1D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAiE/D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAwEjE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CA8IxD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CA+J1D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAuK/D"}