envilder 0.7.12 → 0.9.1
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/README.md +284 -37
- package/ROADMAP.md +81 -16
- package/docs/CHANGELOG.md +43 -101
- package/docs/SECURITY.md +26 -2
- package/lib/apps/cli/Cli.d.ts.map +1 -1
- package/lib/apps/cli/Cli.js +68 -11
- package/lib/apps/cli/Cli.js.map +1 -1
- package/lib/apps/cli/Startup.d.ts +3 -9
- package/lib/apps/cli/Startup.d.ts.map +1 -1
- package/lib/apps/cli/Startup.js +4 -54
- package/lib/apps/cli/Startup.js.map +1 -1
- package/lib/apps/gha/Gha.d.ts.map +1 -1
- package/lib/apps/gha/Gha.js +36 -19
- package/lib/apps/gha/Gha.js.map +1 -1
- package/lib/apps/gha/Startup.d.ts +3 -9
- package/lib/apps/gha/Startup.d.ts.map +1 -1
- package/lib/apps/gha/Startup.js +4 -54
- package/lib/apps/gha/Startup.js.map +1 -1
- package/lib/apps/shared/ContainerConfiguration.d.ts +7 -0
- package/lib/apps/shared/ContainerConfiguration.d.ts.map +1 -0
- package/lib/apps/shared/ContainerConfiguration.js +62 -0
- package/lib/apps/shared/ContainerConfiguration.js.map +1 -0
- package/lib/envilder/application/dispatch/DispatchActionCommand.d.ts +2 -2
- package/lib/envilder/application/dispatch/DispatchActionCommand.d.ts.map +1 -1
- package/lib/envilder/application/dispatch/DispatchActionCommand.js +6 -6
- package/lib/envilder/application/dispatch/DispatchActionCommand.js.map +1 -1
- package/lib/envilder/application/dispatch/DispatchActionCommandHandler.d.ts +3 -3
- package/lib/envilder/application/dispatch/DispatchActionCommandHandler.d.ts.map +1 -1
- package/lib/envilder/application/dispatch/DispatchActionCommandHandler.js +13 -13
- package/lib/envilder/application/dispatch/DispatchActionCommandHandler.js.map +1 -1
- package/lib/envilder/application/pullSecretsToEnv/PullSecretsToEnvCommand.d.ts +7 -0
- package/lib/envilder/application/pullSecretsToEnv/PullSecretsToEnvCommand.d.ts.map +1 -0
- package/lib/envilder/application/{pullSsmToEnv/PullSsmToEnvCommand.js → pullSecretsToEnv/PullSecretsToEnvCommand.js} +3 -3
- package/lib/envilder/application/pullSecretsToEnv/PullSecretsToEnvCommand.js.map +1 -0
- package/lib/envilder/application/{pullSsmToEnv/PullSsmToEnvCommandHandler.d.ts → pullSecretsToEnv/PullSecretsToEnvCommandHandler.d.ts} +7 -7
- package/lib/envilder/application/pullSecretsToEnv/PullSecretsToEnvCommandHandler.d.ts.map +1 -0
- package/lib/envilder/application/{pullSsmToEnv/PullSsmToEnvCommandHandler.js → pullSecretsToEnv/PullSecretsToEnvCommandHandler.js} +18 -18
- package/lib/envilder/application/pullSecretsToEnv/PullSecretsToEnvCommandHandler.js.map +1 -0
- package/lib/envilder/application/{pushEnvToSsm/PushEnvToSsmCommand.d.ts → pushEnvToSecrets/PushEnvToSecretsCommand.d.ts} +3 -3
- package/lib/envilder/application/pushEnvToSecrets/PushEnvToSecretsCommand.d.ts.map +1 -0
- package/lib/envilder/application/{pushEnvToSsm/PushEnvToSsmCommand.js → pushEnvToSecrets/PushEnvToSecretsCommand.js} +3 -3
- package/lib/envilder/application/pushEnvToSecrets/PushEnvToSecretsCommand.js.map +1 -0
- package/lib/envilder/application/pushEnvToSecrets/PushEnvToSecretsCommandHandler.d.ts +34 -0
- package/lib/envilder/application/pushEnvToSecrets/PushEnvToSecretsCommandHandler.d.ts.map +1 -0
- package/lib/envilder/application/{pushEnvToSsm/PushEnvToSsmCommandHandler.js → pushEnvToSecrets/PushEnvToSecretsCommandHandler.js} +36 -32
- package/lib/envilder/application/pushEnvToSecrets/PushEnvToSecretsCommandHandler.js.map +1 -0
- package/lib/envilder/application/pushSingle/PushSingleCommand.d.ts +3 -3
- package/lib/envilder/application/pushSingle/PushSingleCommand.d.ts.map +1 -1
- package/lib/envilder/application/pushSingle/PushSingleCommand.js +4 -4
- package/lib/envilder/application/pushSingle/PushSingleCommand.js.map +1 -1
- package/lib/envilder/application/pushSingle/PushSingleCommandHandler.d.ts +2 -2
- package/lib/envilder/application/pushSingle/PushSingleCommandHandler.d.ts.map +1 -1
- package/lib/envilder/application/pushSingle/PushSingleCommandHandler.js +6 -6
- package/lib/envilder/application/pushSingle/PushSingleCommandHandler.js.map +1 -1
- package/lib/envilder/domain/CliOptions.d.ts +3 -3
- package/lib/envilder/domain/CliOptions.d.ts.map +1 -1
- package/lib/envilder/domain/EnvironmentVariable.d.ts +5 -0
- package/lib/envilder/domain/EnvironmentVariable.d.ts.map +1 -1
- package/lib/envilder/domain/EnvironmentVariable.js +12 -3
- package/lib/envilder/domain/EnvironmentVariable.js.map +1 -1
- package/lib/envilder/domain/MapFileConfig.d.ts +10 -0
- package/lib/envilder/domain/MapFileConfig.d.ts.map +1 -0
- package/lib/envilder/domain/MapFileConfig.js +2 -0
- package/lib/envilder/domain/MapFileConfig.js.map +1 -0
- package/lib/envilder/domain/OperationMode.d.ts +2 -2
- package/lib/envilder/domain/OperationMode.d.ts.map +1 -1
- package/lib/envilder/domain/OperationMode.js +2 -2
- package/lib/envilder/domain/OperationMode.js.map +1 -1
- package/lib/envilder/domain/ports/IVariableStore.d.ts +2 -0
- package/lib/envilder/domain/ports/IVariableStore.d.ts.map +1 -1
- package/lib/envilder/infrastructure/aws/AwsSecretProviderFactory.d.ts +4 -0
- package/lib/envilder/infrastructure/aws/AwsSecretProviderFactory.d.ts.map +1 -0
- package/lib/envilder/infrastructure/aws/AwsSecretProviderFactory.js +10 -0
- package/lib/envilder/infrastructure/aws/AwsSecretProviderFactory.js.map +1 -0
- package/lib/envilder/infrastructure/aws/AwsSsmSecretProvider.d.ts.map +1 -1
- package/lib/envilder/infrastructure/aws/AwsSsmSecretProvider.js +3 -1
- package/lib/envilder/infrastructure/aws/AwsSsmSecretProvider.js.map +1 -1
- package/lib/envilder/infrastructure/azure/AzureKeyVaultSecretProvider.d.ts +17 -0
- package/lib/envilder/infrastructure/azure/AzureKeyVaultSecretProvider.d.ts.map +1 -0
- package/lib/envilder/infrastructure/azure/AzureKeyVaultSecretProvider.js +113 -0
- package/lib/envilder/infrastructure/azure/AzureKeyVaultSecretProvider.js.map +1 -0
- package/lib/envilder/infrastructure/azure/AzureSecretProviderFactory.d.ts +9 -0
- package/lib/envilder/infrastructure/azure/AzureSecretProviderFactory.d.ts.map +1 -0
- package/lib/envilder/infrastructure/azure/AzureSecretProviderFactory.js +24 -0
- package/lib/envilder/infrastructure/azure/AzureSecretProviderFactory.js.map +1 -0
- package/lib/envilder/infrastructure/azure/AzureVaultUrlValidator.d.ts +3 -0
- package/lib/envilder/infrastructure/azure/AzureVaultUrlValidator.d.ts.map +1 -0
- package/lib/envilder/infrastructure/azure/AzureVaultUrlValidator.js +28 -0
- package/lib/envilder/infrastructure/azure/AzureVaultUrlValidator.js.map +1 -0
- package/lib/envilder/infrastructure/variableStore/FileVariableStore.d.ts +4 -0
- package/lib/envilder/infrastructure/variableStore/FileVariableStore.d.ts.map +1 -1
- package/lib/envilder/infrastructure/variableStore/FileVariableStore.js +46 -0
- package/lib/envilder/infrastructure/variableStore/FileVariableStore.js.map +1 -1
- package/lib/envilder/types.d.ts +4 -4
- package/lib/envilder/types.js +2 -2
- package/lib/envilder/types.js.map +1 -1
- package/lib/iac/bin/main.d.ts +28 -0
- package/lib/iac/bin/main.d.ts.map +1 -0
- package/lib/iac/bin/main.js +201 -0
- package/lib/iac/bin/main.js.map +1 -0
- package/lib/iac/lib/core/types.d.ts +5 -0
- package/lib/iac/lib/core/types.d.ts.map +1 -0
- package/lib/iac/lib/core/types.js +9 -0
- package/lib/iac/lib/core/types.js.map +1 -0
- package/lib/iac/lib/stacks/customStack.d.ts +23 -0
- package/lib/iac/lib/stacks/customStack.d.ts.map +1 -0
- package/lib/iac/lib/stacks/customStack.js +34 -0
- package/lib/iac/lib/stacks/customStack.js.map +1 -0
- package/lib/iac/lib/stacks/staticWebsiteStack.d.ts +10 -0
- package/lib/iac/lib/stacks/staticWebsiteStack.d.ts.map +1 -0
- package/lib/iac/lib/stacks/staticWebsiteStack.js +163 -0
- package/lib/iac/lib/stacks/staticWebsiteStack.js.map +1 -0
- package/lib/iac/lib/stacks/utils.d.ts +6 -0
- package/lib/iac/lib/stacks/utils.d.ts.map +1 -0
- package/lib/iac/lib/stacks/utils.js +18 -0
- package/lib/iac/lib/stacks/utils.js.map +1 -0
- package/package.json +33 -23
- package/lib/envilder/application/pullSsmToEnv/PullSsmToEnvCommand.d.ts +0 -7
- package/lib/envilder/application/pullSsmToEnv/PullSsmToEnvCommand.d.ts.map +0 -1
- package/lib/envilder/application/pullSsmToEnv/PullSsmToEnvCommand.js.map +0 -1
- package/lib/envilder/application/pullSsmToEnv/PullSsmToEnvCommandHandler.d.ts.map +0 -1
- package/lib/envilder/application/pullSsmToEnv/PullSsmToEnvCommandHandler.js.map +0 -1
- package/lib/envilder/application/pushEnvToSsm/PushEnvToSsmCommand.d.ts.map +0 -1
- package/lib/envilder/application/pushEnvToSsm/PushEnvToSsmCommand.js.map +0 -1
- package/lib/envilder/application/pushEnvToSsm/PushEnvToSsmCommandHandler.d.ts +0 -34
- package/lib/envilder/application/pushEnvToSsm/PushEnvToSsmCommandHandler.d.ts.map +0 -1
- package/lib/envilder/application/pushEnvToSsm/PushEnvToSsmCommandHandler.js.map +0 -1
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
11
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
12
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
13
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
14
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
15
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
16
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
import { injectable } from 'inversify';
|
|
20
|
+
import { EnvironmentVariable } from '../../domain/EnvironmentVariable.js';
|
|
21
|
+
import { InvalidArgumentError, SecretOperationError, } from '../../domain/errors/DomainErrors.js';
|
|
22
|
+
let AzureKeyVaultSecretProvider = class AzureKeyVaultSecretProvider {
|
|
23
|
+
constructor(client) {
|
|
24
|
+
this.normalizedNameRegistry = new Map();
|
|
25
|
+
this.client = client;
|
|
26
|
+
}
|
|
27
|
+
getSecret(name) {
|
|
28
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
var _a;
|
|
30
|
+
const secretName = this.resolveSecretName(name);
|
|
31
|
+
try {
|
|
32
|
+
const secret = yield this.client.getSecret(secretName);
|
|
33
|
+
return (_a = secret === null || secret === void 0 ? void 0 : secret.value) !== null && _a !== void 0 ? _a : undefined;
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
if (typeof error === 'object' &&
|
|
37
|
+
error !== null &&
|
|
38
|
+
'statusCode' in error &&
|
|
39
|
+
error.statusCode === 404) {
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
43
|
+
throw new SecretOperationError(`Failed to get secret ${EnvironmentVariable.maskSecretPath(name)}: ${errorMessage}`);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
setSecret(name, value) {
|
|
48
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
+
const secretName = this.resolveSecretName(name);
|
|
50
|
+
yield this.client.setSecret(secretName, value);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Validates that the secret name meets Azure Key Vault naming constraints.
|
|
55
|
+
* @see https://learn.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#objects-identifiers-and-versioning
|
|
56
|
+
*/
|
|
57
|
+
validateSecretName(name) {
|
|
58
|
+
if (name.trim().length === 0) {
|
|
59
|
+
throw new InvalidArgumentError('Invalid secret name: name cannot be empty or whitespace-only.');
|
|
60
|
+
}
|
|
61
|
+
if (/[^a-zA-Z0-9\-_/]/.test(name)) {
|
|
62
|
+
throw new InvalidArgumentError(`Invalid secret name '${name}': contains characters not allowed` +
|
|
63
|
+
' by Azure Key Vault. Only alphanumeric characters,' +
|
|
64
|
+
' hyphens, slashes, and underscores are accepted.');
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
resolveSecretName(originalName) {
|
|
68
|
+
this.validateSecretName(originalName);
|
|
69
|
+
const normalized = this.normalizeSecretName(originalName);
|
|
70
|
+
if (normalized.length > 127) {
|
|
71
|
+
throw new InvalidArgumentError(`Invalid secret name '${originalName}': normalized name '${normalized}' exceeds the 127-character limit for Azure Key Vault.`);
|
|
72
|
+
}
|
|
73
|
+
const existing = this.normalizedNameRegistry.get(normalized);
|
|
74
|
+
if (existing !== undefined && existing !== originalName) {
|
|
75
|
+
throw new SecretOperationError(`Secret name collision: '${originalName}' and '${existing}' ` +
|
|
76
|
+
`both normalize to '${normalized}'. Use distinct ` +
|
|
77
|
+
'Key Vault-compatible names in your map file ' +
|
|
78
|
+
'when targeting Azure.');
|
|
79
|
+
}
|
|
80
|
+
this.normalizedNameRegistry.set(normalized, originalName);
|
|
81
|
+
return normalized;
|
|
82
|
+
}
|
|
83
|
+
// Azure Key Vault secret names: 1-127 chars, alphanumeric + hyphens, start with letter
|
|
84
|
+
normalizeSecretName(name) {
|
|
85
|
+
// Remove leading slashes
|
|
86
|
+
let normalized = name.replace(/^\/+/, '');
|
|
87
|
+
// Replace slashes and underscores with hyphens
|
|
88
|
+
normalized = normalized.replace(/[/_]/g, '-');
|
|
89
|
+
// Lowercase to match Azure Key Vault case-insensitivity
|
|
90
|
+
normalized = normalized.toLowerCase();
|
|
91
|
+
// Remove invalid characters
|
|
92
|
+
normalized = normalized.replace(/[^a-zA-Z0-9-]/g, '');
|
|
93
|
+
// Remove consecutive hyphens
|
|
94
|
+
normalized = normalized.replace(/-+/g, '-');
|
|
95
|
+
// Remove leading/trailing hyphens
|
|
96
|
+
normalized = normalized.replace(/^-+|-+$/g, '');
|
|
97
|
+
// Ensure starts with a letter
|
|
98
|
+
if (normalized.length > 0 && !/^[a-zA-Z]/.test(normalized)) {
|
|
99
|
+
normalized = `secret-${normalized}`;
|
|
100
|
+
}
|
|
101
|
+
// Default name if empty
|
|
102
|
+
if (normalized.length === 0) {
|
|
103
|
+
normalized = 'secret';
|
|
104
|
+
}
|
|
105
|
+
return normalized;
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
AzureKeyVaultSecretProvider = __decorate([
|
|
109
|
+
injectable(),
|
|
110
|
+
__metadata("design:paramtypes", [Function])
|
|
111
|
+
], AzureKeyVaultSecretProvider);
|
|
112
|
+
export { AzureKeyVaultSecretProvider };
|
|
113
|
+
//# sourceMappingURL=AzureKeyVaultSecretProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AzureKeyVaultSecretProvider.js","sourceRoot":"","sources":["../../../../src/envilder/infrastructure/azure/AzureKeyVaultSecretProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { MapFileConfig } from '../../domain/MapFileConfig.js';
|
|
2
|
+
import type { ISecretProvider } from '../../domain/ports/ISecretProvider.js';
|
|
3
|
+
export { DEFAULT_VAULT_HOSTS } from './AzureVaultUrlValidator.js';
|
|
4
|
+
export type AzureProviderOptions = {
|
|
5
|
+
allowedVaultHosts?: string[];
|
|
6
|
+
disableChallengeResourceVerification?: boolean;
|
|
7
|
+
};
|
|
8
|
+
export declare function createAzureSecretProvider(config: MapFileConfig, options?: AzureProviderOptions): ISecretProvider;
|
|
9
|
+
//# sourceMappingURL=AzureSecretProviderFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AzureSecretProviderFactory.d.ts","sourceRoot":"","sources":["../../../../src/envilder/infrastructure/azure/AzureSecretProviderFactory.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAO7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,MAAM,MAAM,oBAAoB,GAAG;IACjC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,oCAAoC,CAAC,EAAE,OAAO,CAAC;CAChD,CAAC;AAEF,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,eAAe,CAkBjB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { DefaultAzureCredential } from '@azure/identity';
|
|
2
|
+
import { SecretClient } from '@azure/keyvault-secrets';
|
|
3
|
+
import { DependencyMissingError } from '../../domain/errors/DomainErrors.js';
|
|
4
|
+
import { AzureKeyVaultSecretProvider } from './AzureKeyVaultSecretProvider.js';
|
|
5
|
+
import { DEFAULT_VAULT_HOSTS, validateAzureVaultUrl, } from './AzureVaultUrlValidator.js';
|
|
6
|
+
export { DEFAULT_VAULT_HOSTS } from './AzureVaultUrlValidator.js';
|
|
7
|
+
export function createAzureSecretProvider(config, options) {
|
|
8
|
+
var _a, _b;
|
|
9
|
+
const { vaultUrl } = config;
|
|
10
|
+
if (!vaultUrl) {
|
|
11
|
+
throw new DependencyMissingError('vaultUrl is required when using Azure provider.' +
|
|
12
|
+
' Set it in $config.vaultUrl in your map file' +
|
|
13
|
+
' or via --vault-url flag.');
|
|
14
|
+
}
|
|
15
|
+
const allowedVaultHosts = (_a = options === null || options === void 0 ? void 0 : options.allowedVaultHosts) !== null && _a !== void 0 ? _a : DEFAULT_VAULT_HOSTS;
|
|
16
|
+
const disableChallengeResourceVerification = (_b = options === null || options === void 0 ? void 0 : options.disableChallengeResourceVerification) !== null && _b !== void 0 ? _b : false;
|
|
17
|
+
validateAzureVaultUrl(vaultUrl, allowedVaultHosts);
|
|
18
|
+
const credential = new DefaultAzureCredential();
|
|
19
|
+
const client = new SecretClient(vaultUrl, credential, {
|
|
20
|
+
disableChallengeResourceVerification,
|
|
21
|
+
});
|
|
22
|
+
return new AzureKeyVaultSecretProvider(client);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=AzureSecretProviderFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AzureSecretProviderFactory.js","sourceRoot":"","sources":["../../../../src/envilder/infrastructure/azure/AzureSecretProviderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAG7E,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAOlE,MAAM,UAAU,yBAAyB,CACvC,MAAqB,EACrB,OAA8B;;IAE9B,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAC5B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,sBAAsB,CAC9B,iDAAiD;YAC/C,8CAA8C;YAC9C,2BAA2B,CAC9B,CAAC;IACJ,CAAC;IACD,MAAM,iBAAiB,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB,mCAAI,mBAAmB,CAAC;IAC5E,MAAM,oCAAoC,GACxC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,oCAAoC,mCAAI,KAAK,CAAC;IACzD,qBAAqB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,IAAI,sBAAsB,EAAE,CAAC;IAChD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE;QACpD,oCAAoC;KACrC,CAAC,CAAC;IACH,OAAO,IAAI,2BAA2B,CAAC,MAAM,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AzureVaultUrlValidator.d.ts","sourceRoot":"","sources":["../../../../src/envilder/infrastructure/azure/AzureVaultUrlValidator.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,UAK/B,CAAC;AAEF,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EAAE,GACrB,IAAI,CAwBN"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { InvalidArgumentError } from '../../domain/errors/DomainErrors.js';
|
|
2
|
+
export const DEFAULT_VAULT_HOSTS = [
|
|
3
|
+
'.vault.azure.net',
|
|
4
|
+
'.vault.azure.cn',
|
|
5
|
+
'.vault.usgovcloudapi.net',
|
|
6
|
+
'.vault.microsoftazure.de',
|
|
7
|
+
];
|
|
8
|
+
export function validateAzureVaultUrl(vaultUrl, allowedHosts) {
|
|
9
|
+
let url;
|
|
10
|
+
try {
|
|
11
|
+
url = new URL(vaultUrl);
|
|
12
|
+
}
|
|
13
|
+
catch (_a) {
|
|
14
|
+
throw new InvalidArgumentError('vaultUrl must be a valid URL');
|
|
15
|
+
}
|
|
16
|
+
if (url.protocol !== 'https:') {
|
|
17
|
+
throw new InvalidArgumentError('vaultUrl must use https:// protocol');
|
|
18
|
+
}
|
|
19
|
+
const isAllowedHost = allowedHosts.some((suffix) => {
|
|
20
|
+
const normalizedSuffix = suffix.startsWith('.') ? suffix.slice(1) : suffix;
|
|
21
|
+
return (url.hostname === normalizedSuffix ||
|
|
22
|
+
url.hostname.endsWith(`.${normalizedSuffix}`));
|
|
23
|
+
});
|
|
24
|
+
if (!isAllowedHost) {
|
|
25
|
+
throw new InvalidArgumentError(`vaultUrl hostname must end with one of: ${allowedHosts.join(', ')}`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=AzureVaultUrlValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AzureVaultUrlValidator.js","sourceRoot":"","sources":["../../../../src/envilder/infrastructure/azure/AzureVaultUrlValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,kBAAkB;IAClB,iBAAiB;IACjB,0BAA0B;IAC1B,0BAA0B;CAC3B,CAAC;AAEF,MAAM,UAAU,qBAAqB,CACnC,QAAgB,EAChB,YAAsB;IAEtB,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAAC,WAAM,CAAC;QACP,MAAM,IAAI,oBAAoB,CAAC,8BAA8B,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,oBAAoB,CAAC,qCAAqC,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QACjD,MAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3E,OAAO,CACL,GAAG,CAAC,QAAQ,KAAK,gBAAgB;YACjC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAC9C,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,oBAAoB,CAC5B,2CAA2C,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACrE,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
+
import type { MapFileConfig, ParsedMapFile } from '../../domain/MapFileConfig.js';
|
|
1
2
|
import type { ILogger } from '../../domain/ports/ILogger.js';
|
|
2
3
|
import type { IVariableStore } from '../../domain/ports/IVariableStore.js';
|
|
3
4
|
export declare class FileVariableStore implements IVariableStore {
|
|
4
5
|
private logger;
|
|
5
6
|
constructor(logger: ILogger);
|
|
6
7
|
getMapping(source: string): Promise<Record<string, string>>;
|
|
8
|
+
getParsedMapping(source: string): Promise<ParsedMapFile>;
|
|
9
|
+
private readJsonFile;
|
|
7
10
|
getEnvironment(source: string): Promise<Record<string, string>>;
|
|
8
11
|
saveEnvironment(destination: string, envVariables: Record<string, string>): Promise<void>;
|
|
9
12
|
private escapeEnvValue;
|
|
10
13
|
}
|
|
14
|
+
export declare function readMapFileConfig(mapPath: string): Promise<MapFileConfig>;
|
|
11
15
|
//# sourceMappingURL=FileVariableStore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileVariableStore.d.ts","sourceRoot":"","sources":["../../../../src/envilder/infrastructure/variableStore/FileVariableStore.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAG3E,qBACa,iBAAkB,YAAW,cAAc;IACtD,OAAO,CAAC,MAAM,CAAU;gBAEW,MAAM,EAAE,OAAO;IAO5C,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"FileVariableStore.d.ts","sourceRoot":"","sources":["../../../../src/envilder/infrastructure/variableStore/FileVariableStore.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACd,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAG3E,qBACa,iBAAkB,YAAW,cAAc;IACtD,OAAO,CAAC,MAAM,CAAU;gBAEW,MAAM,EAAE,OAAO;IAO5C,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAK3D,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;YAQhD,YAAY;IAmBpB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAc/D,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,OAAO,CAAC,IAAI,CAAC;IAiBhB,OAAO,CAAC,cAAc;CASvB;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,aAAa,CAAC,CAkBxB"}
|
|
@@ -19,6 +19,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
19
19
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
20
|
});
|
|
21
21
|
};
|
|
22
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
23
|
+
var t = {};
|
|
24
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
25
|
+
t[p] = s[p];
|
|
26
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
27
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
28
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
29
|
+
t[p[i]] = s[p[i]];
|
|
30
|
+
}
|
|
31
|
+
return t;
|
|
32
|
+
};
|
|
22
33
|
import * as fs from 'node:fs/promises';
|
|
23
34
|
import * as dotenv from 'dotenv';
|
|
24
35
|
import { inject, injectable } from 'inversify';
|
|
@@ -32,6 +43,20 @@ let FileVariableStore = class FileVariableStore {
|
|
|
32
43
|
this.logger = logger;
|
|
33
44
|
}
|
|
34
45
|
getMapping(source) {
|
|
46
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
+
const { mappings } = yield this.getParsedMapping(source);
|
|
48
|
+
return mappings;
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
getParsedMapping(source) {
|
|
52
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
53
|
+
const raw = yield this.readJsonFile(source);
|
|
54
|
+
const { $config } = raw, rest = __rest(raw, ["$config"]);
|
|
55
|
+
const config = $config && typeof $config === 'object' ? $config : {};
|
|
56
|
+
return { config, mappings: rest };
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
readJsonFile(source) {
|
|
35
60
|
return __awaiter(this, void 0, void 0, function* () {
|
|
36
61
|
try {
|
|
37
62
|
const content = yield fs.readFile(source, 'utf-8');
|
|
@@ -97,4 +122,25 @@ FileVariableStore = __decorate([
|
|
|
97
122
|
__metadata("design:paramtypes", [Object])
|
|
98
123
|
], FileVariableStore);
|
|
99
124
|
export { FileVariableStore };
|
|
125
|
+
export function readMapFileConfig(mapPath) {
|
|
126
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
127
|
+
try {
|
|
128
|
+
const content = yield fs.readFile(mapPath, 'utf-8');
|
|
129
|
+
try {
|
|
130
|
+
const raw = JSON.parse(content);
|
|
131
|
+
const config = raw.$config;
|
|
132
|
+
return config && typeof config === 'object' ? config : {};
|
|
133
|
+
}
|
|
134
|
+
catch (_a) {
|
|
135
|
+
throw new EnvironmentFileError(`Invalid JSON in parameter map file: ${mapPath}`);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
catch (error) {
|
|
139
|
+
if (error instanceof EnvironmentFileError) {
|
|
140
|
+
throw error;
|
|
141
|
+
}
|
|
142
|
+
throw new EnvironmentFileError(`Failed to read map file: ${mapPath}`);
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
}
|
|
100
146
|
//# sourceMappingURL=FileVariableStore.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileVariableStore.js","sourceRoot":"","sources":["../../../../src/envilder/infrastructure/variableStore/FileVariableStore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FileVariableStore.js","sourceRoot":"","sources":["../../../../src/envilder/infrastructure/variableStore/FileVariableStore.ts"],"names":[],"mappings":"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"}
|
package/lib/envilder/types.d.ts
CHANGED
|
@@ -4,15 +4,15 @@ export declare const DOMAIN: {
|
|
|
4
4
|
IVariableStore: symbol;
|
|
5
5
|
};
|
|
6
6
|
export declare const APPLICATION: {
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
PullSecretsToEnvCommandHandler: symbol;
|
|
8
|
+
PushEnvToSecretsCommandHandler: symbol;
|
|
9
9
|
PushSingleCommandHandler: symbol;
|
|
10
10
|
DispatchActionCommandHandler: symbol;
|
|
11
11
|
};
|
|
12
12
|
export declare const INFRASTRUCTURE: {};
|
|
13
13
|
export declare const TYPES: {
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
PullSecretsToEnvCommandHandler: symbol;
|
|
15
|
+
PushEnvToSecretsCommandHandler: symbol;
|
|
16
16
|
PushSingleCommandHandler: symbol;
|
|
17
17
|
DispatchActionCommandHandler: symbol;
|
|
18
18
|
ILogger: symbol;
|
package/lib/envilder/types.js
CHANGED
|
@@ -4,8 +4,8 @@ export const DOMAIN = {
|
|
|
4
4
|
IVariableStore: Symbol.for('IVariableStore'),
|
|
5
5
|
};
|
|
6
6
|
export const APPLICATION = {
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
PullSecretsToEnvCommandHandler: Symbol.for('PullSecretsToEnvCommandHandler'),
|
|
8
|
+
PushEnvToSecretsCommandHandler: Symbol.for('PushEnvToSecretsCommandHandler'),
|
|
9
9
|
PushSingleCommandHandler: Symbol.for('PushSingleCommandHandler'),
|
|
10
10
|
DispatchActionCommandHandler: Symbol.for('DispatchActionCommandHandler'),
|
|
11
11
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/envilder/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAC9C,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC;CAC7C,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/envilder/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAC9C,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC;CAC7C,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,8BAA8B,EAAE,MAAM,CAAC,GAAG,CAAC,gCAAgC,CAAC;IAC5E,8BAA8B,EAAE,MAAM,CAAC,GAAG,CAAC,gCAAgC,CAAC;IAC5E,wBAAwB,EAAE,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC;IAChE,4BAA4B,EAAE,MAAM,CAAC,GAAG,CAAC,8BAA8B,CAAC;CACzE,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG;AAC5B,2DAA2D;AAC3D,sDAAsD;CACvD,CAAC;AAEF,+FAA+F;AAC/F,MAAM,CAAC,MAAM,KAAK,iDACb,MAAM,GACN,WAAW,GACX,cAAc,CAClB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import type { Stack } from "aws-cdk-lib";
|
|
3
|
+
import { AppEnvironment } from "../lib/core/types";
|
|
4
|
+
interface StaticWebsiteConfig {
|
|
5
|
+
name: string;
|
|
6
|
+
projectPath: string;
|
|
7
|
+
subdomain?: string;
|
|
8
|
+
}
|
|
9
|
+
interface DeploymentConfig {
|
|
10
|
+
repoName: string;
|
|
11
|
+
branch: string;
|
|
12
|
+
environment: AppEnvironment;
|
|
13
|
+
domain: {
|
|
14
|
+
name: string;
|
|
15
|
+
certificateId: string;
|
|
16
|
+
hostedZoneId: string;
|
|
17
|
+
};
|
|
18
|
+
stacks: {
|
|
19
|
+
frontend: {
|
|
20
|
+
staticWebsites: readonly StaticWebsiteConfig[];
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
rootPath?: string;
|
|
24
|
+
}
|
|
25
|
+
export declare function validateConfig(config: DeploymentConfig): void;
|
|
26
|
+
export declare function deploy(configOverride?: DeploymentConfig): Stack[];
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=main.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../src/iac/bin/main.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAe,KAAK,EAAE,MAAM,aAAa,CAAC;AAKtD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAOnD,UAAU,mBAAmB;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,gBAAgB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,cAAc,CAAC;IAC5B,MAAM,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,MAAM,EAAE;QACP,QAAQ,EAAE;YACT,cAAc,EAAE,SAAS,mBAAmB,EAAE,CAAC;SAC/C,CAAC;KACF,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAmFD,wBAAgB,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CA8D7D;AAMD,wBAAgB,MAAM,CAAC,cAAc,CAAC,EAAE,gBAAgB,GAAG,KAAK,EAAE,CA+EjE"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.validateConfig = validateConfig;
|
|
8
|
+
exports.deploy = deploy;
|
|
9
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
+
/**
|
|
11
|
+
* CDK Infrastructure Deployment Entry Point
|
|
12
|
+
*/
|
|
13
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
14
|
+
const types_1 = require("../lib/core/types");
|
|
15
|
+
const staticWebsiteStack_1 = require("../lib/stacks/staticWebsiteStack");
|
|
16
|
+
// ============================================================================
|
|
17
|
+
// Configuration
|
|
18
|
+
// ============================================================================
|
|
19
|
+
const config = {
|
|
20
|
+
repoName: "envilder",
|
|
21
|
+
branch: "main",
|
|
22
|
+
environment: types_1.AppEnvironment.Production,
|
|
23
|
+
domain: {
|
|
24
|
+
name: "envilder.com",
|
|
25
|
+
certificateId: "e04983fe-1561-4ebe-9166-83f77789964a",
|
|
26
|
+
hostedZoneId: "Z0718467FEEOZ35UNCTO",
|
|
27
|
+
},
|
|
28
|
+
stacks: {
|
|
29
|
+
frontend: {
|
|
30
|
+
staticWebsites: [
|
|
31
|
+
{
|
|
32
|
+
name: "Website",
|
|
33
|
+
projectPath: "envilder/src/apps/website/dist",
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
// ============================================================================
|
|
40
|
+
// Utils
|
|
41
|
+
// ============================================================================
|
|
42
|
+
function getRootPath(rootPath) {
|
|
43
|
+
return rootPath !== null && rootPath !== void 0 ? rootPath : node_path_1.default.join(process.cwd(), "../../../");
|
|
44
|
+
}
|
|
45
|
+
function resolveFullPath(rootPath, relativePath) {
|
|
46
|
+
return node_path_1.default.join(rootPath, relativePath);
|
|
47
|
+
}
|
|
48
|
+
function logInfo(message) {
|
|
49
|
+
process.stderr.write(`${message}\x1b[E\n`);
|
|
50
|
+
}
|
|
51
|
+
function logError(error) {
|
|
52
|
+
process.stderr.write(`\x1b[31m❌ Error: ${error.message}\x1b[0m\x1b[E\n`);
|
|
53
|
+
if (error.stack) {
|
|
54
|
+
process.stderr.write(`${error.stack}\x1b[E\n`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
function logTable(entries) {
|
|
58
|
+
const MAX_VALUE_WIDTH = 40;
|
|
59
|
+
const truncate = (s) => s.length > MAX_VALUE_WIDTH ? `…${s.slice(-(MAX_VALUE_WIDTH - 1))}` : s;
|
|
60
|
+
const rows = entries.map(({ label, value }) => ({
|
|
61
|
+
label,
|
|
62
|
+
value: truncate(value),
|
|
63
|
+
}));
|
|
64
|
+
const maxLabel = Math.max(...rows.map((e) => e.label.length));
|
|
65
|
+
const maxValue = Math.max(...rows.map((e) => e.value.length));
|
|
66
|
+
const header = " 📁 Deployment Info ";
|
|
67
|
+
const innerWidth = maxLabel + maxValue + 4;
|
|
68
|
+
const padding = Math.max(0, innerWidth - header.length);
|
|
69
|
+
const nl = "\x1b[E\n";
|
|
70
|
+
process.stderr.write(nl);
|
|
71
|
+
process.stderr.write(`╭─${header}${"─".repeat(padding)}╮${nl}`);
|
|
72
|
+
for (const { label, value } of rows) {
|
|
73
|
+
process.stderr.write(`│ ${label.padEnd(maxLabel)} │ ${value.padEnd(maxValue)} │${nl}`);
|
|
74
|
+
}
|
|
75
|
+
process.stderr.write(`╰${"─".repeat(maxLabel + 2)}┴${"─".repeat(maxValue + 2)}╯${nl}`);
|
|
76
|
+
process.stderr.write(nl);
|
|
77
|
+
}
|
|
78
|
+
function validateConfig(config) {
|
|
79
|
+
const errors = [];
|
|
80
|
+
if (!config.repoName || config.repoName.trim() === "") {
|
|
81
|
+
errors.push("repoName is required and cannot be empty");
|
|
82
|
+
}
|
|
83
|
+
if (!config.branch || config.branch.trim() === "") {
|
|
84
|
+
errors.push("branch is required and cannot be empty");
|
|
85
|
+
}
|
|
86
|
+
if (config.environment === undefined || config.environment === null) {
|
|
87
|
+
errors.push("environment is required and cannot be empty");
|
|
88
|
+
}
|
|
89
|
+
if (!config.domain) {
|
|
90
|
+
errors.push("domain configuration is required");
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
if (!config.domain.name || config.domain.name.trim() === "") {
|
|
94
|
+
errors.push("domain.name is required and cannot be empty");
|
|
95
|
+
}
|
|
96
|
+
if (!config.domain.certificateId ||
|
|
97
|
+
config.domain.certificateId.trim() === "") {
|
|
98
|
+
errors.push("domain.certificateId is required and cannot be empty");
|
|
99
|
+
}
|
|
100
|
+
if (!config.domain.hostedZoneId ||
|
|
101
|
+
config.domain.hostedZoneId.trim() === "") {
|
|
102
|
+
errors.push("domain.hostedZoneId is required and cannot be empty");
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (!config.stacks) {
|
|
106
|
+
errors.push("stacks configuration is required");
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
if (!config.stacks.frontend) {
|
|
110
|
+
errors.push("stacks.frontend is required");
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
const { staticWebsites } = config.stacks.frontend;
|
|
114
|
+
if (staticWebsites) {
|
|
115
|
+
for (const [index, website] of staticWebsites.entries()) {
|
|
116
|
+
if (!website.name || website.name.trim() === "") {
|
|
117
|
+
errors.push(`frontend.staticWebsites[${index}].name is required`);
|
|
118
|
+
}
|
|
119
|
+
if (!website.projectPath || website.projectPath.trim() === "") {
|
|
120
|
+
errors.push(`frontend.staticWebsites[${index}].projectPath is required`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
if (errors.length > 0) {
|
|
127
|
+
throw new Error(`Configuration validation failed with ${errors.length} error(s):\n${errors.join("\n")}`);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// ============================================================================
|
|
131
|
+
// Deployment
|
|
132
|
+
// ============================================================================
|
|
133
|
+
function deploy(configOverride) {
|
|
134
|
+
const effectiveConfig = configOverride !== null && configOverride !== void 0 ? configOverride : config;
|
|
135
|
+
const rootPath = getRootPath(effectiveConfig.rootPath);
|
|
136
|
+
try {
|
|
137
|
+
validateConfig(effectiveConfig);
|
|
138
|
+
// Log deployment info
|
|
139
|
+
const entries = [
|
|
140
|
+
{ label: "Repository", value: effectiveConfig.repoName },
|
|
141
|
+
{ label: "Branch", value: effectiveConfig.branch },
|
|
142
|
+
{ label: "Environment", value: String(effectiveConfig.environment) },
|
|
143
|
+
];
|
|
144
|
+
if (process.env.CDK_DEFAULT_REGION) {
|
|
145
|
+
entries.push({ label: "Region", value: process.env.CDK_DEFAULT_REGION });
|
|
146
|
+
}
|
|
147
|
+
if (process.env.CDK_DEFAULT_ACCOUNT) {
|
|
148
|
+
entries.push({
|
|
149
|
+
label: "Account",
|
|
150
|
+
value: `***${process.env.CDK_DEFAULT_ACCOUNT.slice(-4)}`,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
entries.push({ label: "Root Path", value: rootPath });
|
|
154
|
+
for (const ws of effectiveConfig.stacks.frontend.staticWebsites) {
|
|
155
|
+
entries.push({
|
|
156
|
+
label: ws.name,
|
|
157
|
+
value: resolveFullPath(rootPath, ws.projectPath),
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
logTable(entries);
|
|
161
|
+
logInfo("🎯 Requested stacks:");
|
|
162
|
+
const app = new aws_cdk_lib_1.App();
|
|
163
|
+
const envFromCli = {
|
|
164
|
+
account: process.env.CDK_DEFAULT_ACCOUNT,
|
|
165
|
+
region: process.env.CDK_DEFAULT_REGION,
|
|
166
|
+
};
|
|
167
|
+
const stacks = [];
|
|
168
|
+
for (const websiteConfig of effectiveConfig.stacks.frontend
|
|
169
|
+
.staticWebsites) {
|
|
170
|
+
const distFolderPath = resolveFullPath(rootPath, websiteConfig.projectPath);
|
|
171
|
+
const stack = new staticWebsiteStack_1.StaticWebsiteStack(app, {
|
|
172
|
+
env: envFromCli,
|
|
173
|
+
name: websiteConfig.name,
|
|
174
|
+
domains: [
|
|
175
|
+
{
|
|
176
|
+
subdomain: websiteConfig.subdomain,
|
|
177
|
+
domainName: effectiveConfig.domain.name,
|
|
178
|
+
certificateId: effectiveConfig.domain.certificateId,
|
|
179
|
+
hostedZoneId: effectiveConfig.domain.hostedZoneId,
|
|
180
|
+
},
|
|
181
|
+
],
|
|
182
|
+
distFolderPath,
|
|
183
|
+
envName: effectiveConfig.environment,
|
|
184
|
+
githubRepo: effectiveConfig.repoName,
|
|
185
|
+
stackName: `${effectiveConfig.repoName}-${websiteConfig.name}`,
|
|
186
|
+
});
|
|
187
|
+
stacks.push(stack);
|
|
188
|
+
}
|
|
189
|
+
return stacks;
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
if (error instanceof Error) {
|
|
193
|
+
logError(error);
|
|
194
|
+
}
|
|
195
|
+
throw error;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
if (!process.env.VITEST) {
|
|
199
|
+
deploy();
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=main.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/iac/bin/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/iac/lib/core/types.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IACzB,UAAU,eAAe;IACzB,WAAW,gBAAgB;CAC3B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AppEnvironment = void 0;
|
|
4
|
+
var AppEnvironment;
|
|
5
|
+
(function (AppEnvironment) {
|
|
6
|
+
AppEnvironment["Production"] = "Production";
|
|
7
|
+
AppEnvironment["Development"] = "Development";
|
|
8
|
+
})(AppEnvironment || (exports.AppEnvironment = AppEnvironment = {}));
|
|
9
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/iac/lib/core/types.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAGX;AAHD,WAAY,cAAc;IACzB,2CAAyB,CAAA;IACzB,6CAA2B,CAAA;AAC5B,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB"}
|