You can pass a different AWS profile when using the CLI

This commit is contained in:
Matt Aitken
2022-12-29 19:15:59 +00:00
parent 1ed5f2e7fc
commit a513ea4b41
4 changed files with 96 additions and 5 deletions
+6
View File
@@ -59,3 +59,9 @@ Pass the base url for Pizzly, defaults to `http://localhost:3004`.
`-s` or `--pizzlysecretkey`
Pass the secret key for Pizzly, defaults to undefined which will work locally in the default configuration.
## AWS profile
`-a` or `--awsprofile`
Pass the AWS profile to use, defaults to `default`.
+1
View File
@@ -5,6 +5,7 @@
"description": "An internal CLI, used to run scripts",
"devDependencies": {
"@aws-sdk/client-secrets-manager": "^3.238.0",
"@aws-sdk/credential-providers": "^3.238.0",
"@trigger.dev/tsconfig": "workspace:*",
"@types/node": "^18.11.9",
"commander": "^9.4.1",
+8 -5
View File
@@ -3,15 +3,11 @@ import * as fs from "node:fs";
import { z } from "zod";
import invariant from "tiny-invariant";
import { getCatalog } from "internal-catalog";
import { fromIni } from "@aws-sdk/credential-providers";
import {
SecretsManagerClient,
GetSecretValueCommand,
} from "@aws-sdk/client-secrets-manager";
import { stringify } from "node:querystring";
const client = new SecretsManagerClient({
region: "us-east-1",
});
const program = new Command();
@@ -25,6 +21,7 @@ program
.option("-e, --environment <environment>", "The environment to update")
.option("-p, --pizzlyhost <pizzly_host>", "Pizzly host")
.option("-s, --pizzlysecretkey <pizzly_secret_key>", "Pizzly secret key")
.option("-a, --awsprofile <aws_profile>", "AWS profile name")
.action(
async (
integration_file_path: string,
@@ -32,6 +29,7 @@ program
environment?: string;
pizzly_host?: string;
pizzly_secret_key?: string;
aws_profile?: string;
}
) => {
if (!integration_file_path) {
@@ -48,6 +46,11 @@ program
const file = fs.readFileSync(integration_file_path, "utf8");
const catalog = getCatalog(file);
const client = new SecretsManagerClient({
region: "us-east-1",
credentials: fromIni({ profile: options.aws_profile ?? "default" }),
});
const promises = catalog.map(async (integration) => {
const environmentClientId =
integration.environments[environment!].oauth.client_id;
+81
View File
@@ -511,6 +511,7 @@ importers:
packages/internal-cli:
specifiers:
'@aws-sdk/client-secrets-manager': ^3.238.0
'@aws-sdk/credential-providers': ^3.238.0
'@trigger.dev/tsconfig': workspace:*
'@types/node': ^18.11.9
commander: ^9.4.1
@@ -520,6 +521,7 @@ importers:
zod: ^3.20.2
devDependencies:
'@aws-sdk/client-secrets-manager': 3.238.0
'@aws-sdk/credential-providers': 3.238.0
'@trigger.dev/tsconfig': link:../../config-packages/tsconfig
'@types/node': 18.11.15
commander: 9.4.1
@@ -717,6 +719,50 @@ packages:
tslib: 2.4.1
dev: false
/@aws-sdk/client-cognito-identity/3.238.0:
resolution: {integrity: sha512-vjIVFzlkcUX9YT7pqg9NrvOTuqqsdYSesFgMLTCSWXBE5rPjWEK5ljIVOZtGn8MJQgwqS+Lqc8oB1vIfE+EaSA==}
engines: {node: '>=14.0.0'}
dependencies:
'@aws-crypto/sha256-browser': 2.0.0
'@aws-crypto/sha256-js': 2.0.0
'@aws-sdk/client-sts': 3.238.0
'@aws-sdk/config-resolver': 3.234.0
'@aws-sdk/credential-provider-node': 3.238.0
'@aws-sdk/fetch-http-handler': 3.226.0
'@aws-sdk/hash-node': 3.226.0
'@aws-sdk/invalid-dependency': 3.226.0
'@aws-sdk/middleware-content-length': 3.226.0
'@aws-sdk/middleware-endpoint': 3.226.0
'@aws-sdk/middleware-host-header': 3.226.0
'@aws-sdk/middleware-logger': 3.226.0
'@aws-sdk/middleware-recursion-detection': 3.226.0
'@aws-sdk/middleware-retry': 3.235.0
'@aws-sdk/middleware-serde': 3.226.0
'@aws-sdk/middleware-signing': 3.226.0
'@aws-sdk/middleware-stack': 3.226.0
'@aws-sdk/middleware-user-agent': 3.226.0
'@aws-sdk/node-config-provider': 3.226.0
'@aws-sdk/node-http-handler': 3.226.0
'@aws-sdk/protocol-http': 3.226.0
'@aws-sdk/smithy-client': 3.234.0
'@aws-sdk/types': 3.226.0
'@aws-sdk/url-parser': 3.226.0
'@aws-sdk/util-base64': 3.208.0
'@aws-sdk/util-body-length-browser': 3.188.0
'@aws-sdk/util-body-length-node': 3.208.0
'@aws-sdk/util-defaults-mode-browser': 3.234.0
'@aws-sdk/util-defaults-mode-node': 3.234.0
'@aws-sdk/util-endpoints': 3.226.0
'@aws-sdk/util-retry': 3.229.0
'@aws-sdk/util-user-agent-browser': 3.226.0
'@aws-sdk/util-user-agent-node': 3.226.0
'@aws-sdk/util-utf8-browser': 3.188.0
'@aws-sdk/util-utf8-node': 3.208.0
tslib: 2.4.1
transitivePeerDependencies:
- aws-crt
dev: true
/@aws-sdk/client-s3/3.226.0:
resolution: {integrity: sha512-N8S0i5txBqlTY30IHaWgi15HUPzdWpQVX01zfYoHU80HmxKBRhqrefIrmCbn/121br0B+MysgpgdfiSfhyHkLw==}
engines: {node: '>=14.0.0'}
@@ -1098,6 +1144,18 @@ packages:
tslib: 2.4.1
dev: true
/@aws-sdk/credential-provider-cognito-identity/3.238.0:
resolution: {integrity: sha512-FGVXGtGn7t/XacBdCKgqzxJNvorjCIar+F0oRsGq8aH09L/H8uGZ7qXvYvi9I94Qv7ay0Dy/KpGcMB53zt41UA==}
engines: {node: '>=14.0.0'}
dependencies:
'@aws-sdk/client-cognito-identity': 3.238.0
'@aws-sdk/property-provider': 3.226.0
'@aws-sdk/types': 3.226.0
tslib: 2.4.1
transitivePeerDependencies:
- aws-crt
dev: true
/@aws-sdk/credential-provider-env/3.226.0:
resolution: {integrity: sha512-sd8uK1ojbXxaZXlthzw/VXZwCPUtU3PjObOfr3Evj7MPIM2IH8h29foOlggx939MdLQGboJf9gKvLlvKDWtJRA==}
engines: {node: '>=14.0.0'}
@@ -1230,6 +1288,29 @@ packages:
'@aws-sdk/types': 3.226.0
tslib: 2.4.1
/@aws-sdk/credential-providers/3.238.0:
resolution: {integrity: sha512-wqj88z9UCbqxnd9XoaKrI+7oSN/13f1AP7cZWYKrzdvb3Ae5QmXmgMKXJdsQlWtPijchpPOQNGhd1rVogycgiA==}
engines: {node: '>=14.0.0'}
dependencies:
'@aws-sdk/client-cognito-identity': 3.238.0
'@aws-sdk/client-sso': 3.238.0
'@aws-sdk/client-sts': 3.238.0
'@aws-sdk/credential-provider-cognito-identity': 3.238.0
'@aws-sdk/credential-provider-env': 3.226.0
'@aws-sdk/credential-provider-imds': 3.226.0
'@aws-sdk/credential-provider-ini': 3.238.0
'@aws-sdk/credential-provider-node': 3.238.0
'@aws-sdk/credential-provider-process': 3.226.0
'@aws-sdk/credential-provider-sso': 3.238.0
'@aws-sdk/credential-provider-web-identity': 3.226.0
'@aws-sdk/property-provider': 3.226.0
'@aws-sdk/shared-ini-file-loader': 3.226.0
'@aws-sdk/types': 3.226.0
tslib: 2.4.1
transitivePeerDependencies:
- aws-crt
dev: true
/@aws-sdk/eventstream-codec/3.226.0:
resolution: {integrity: sha512-6uPtR8vSwz3fqoZk9hrb6qBYdp3PJ22+JxV5Wimdesvow4kJXSgDQXIxEkxbv6SxB9tNRB4uJHD84RetHEi15Q==}
dependencies: