Skip to content

Commit e5da97e

Browse files
authored
feat: initial implementation for function secret access (#845)
* move parameter path methods to BackendIdentifierConversions * initial function secret implementation * update api * make resolveToPath required * add banner and policy to resolve secrets * add unit test * update test and translateEnvironmentProp * move parameter path methods to ParameterPathConversions * update API * move banner code to separate file with tests, narrow down resource scope, limit getParameters arguments * update e2e test for function secret access * move eslint comment * poke ci * update package-lock * fix tests * maybe this works * test * try this * try to see if error is from the snippet * try this * try this * try this * try that * try that * try that * poke ci * test * test again * test * poke ci * whoops * test * what * maybe this works * maybe this * slowly getting there * test * try this * disable test cleanup * Revert "disable test cleanup" This reverts commit 9ff2224. * replace os EOL with specific characters * lint fix * rename resolveToPath to resolvePath * rename secret in e2e test * move client-ssm to devDependencies * update secret path storage and getting code snippet * nit fixes * rename function to resolve secrets * add FunctionEnvironmentTranslator class * update e2e test * remove source map from code snippet
1 parent 6a1c252 commit e5da97e

File tree

23 files changed

+507
-140
lines changed

23 files changed

+507
-140
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
'@aws-amplify/backend-function': minor
3+
'@aws-amplify/plugin-types': minor
4+
'@aws-amplify/backend': minor
5+
---
6+
7+
Implement function secret access

.changeset/young-rings-do.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@aws-amplify/backend-secret': patch
3+
'@aws-amplify/platform-core': patch
4+
---
5+
6+
Move parameter path methods to ParameterPathConversions

package-lock.json

Lines changed: 44 additions & 43 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/backend-auth/src/translate_auth_props.test.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { AuthProps, PhoneNumberLogin } from '@aws-amplify/auth-construct-alpha';
1010
import { SecretValue } from 'aws-cdk-lib';
1111
import assert from 'node:assert';
1212
import { translateToAuthConstructLoginWith } from './translate_auth_props.js';
13+
import { ParameterPathConversions } from '@aws-amplify/platform-core';
1314

1415
const phone: PhoneNumberLogin = {
1516
verificationMessage: (code: string) => `text${code}text2`,
@@ -43,12 +44,21 @@ class TestBackendSecret implements BackendSecret {
4344
resolve = (): SecretValue => {
4445
return SecretValue.unsafePlainText(this.secretName);
4546
};
47+
resolvePath = (): string => {
48+
return ParameterPathConversions.toParameterFullPath(
49+
testBackendIdentifier,
50+
this.secretName
51+
);
52+
};
4653
}
4754

4855
class TestBackendSecretResolver implements BackendSecretResolver {
4956
resolveSecret = (backendSecret: BackendSecret): SecretValue => {
5057
return backendSecret.resolve(testStack, testBackendIdentifier);
5158
};
59+
resolvePath = (backendSecret: BackendSecret): string => {
60+
return backendSecret.resolvePath(testBackendIdentifier);
61+
};
5262
}
5363

5464
void describe('translateToAuthConstructLoginWith', () => {

packages/backend-function/API.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
55
```ts
66

7+
import { BackendSecret } from '@aws-amplify/plugin-types';
78
import { ConstructFactory } from '@aws-amplify/plugin-types';
89
import { FunctionResources } from '@aws-amplify/plugin-types';
910
import { ResourceProvider } from '@aws-amplify/plugin-types';
@@ -17,7 +18,7 @@ export type FunctionProps = {
1718
entry?: string;
1819
timeoutSeconds?: number;
1920
memoryMB?: number;
20-
environment?: Record<string, string>;
21+
environment?: Record<string, string | BackendSecret>;
2122
runtime?: NodeVersion;
2223
};
2324

packages/backend-function/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
"devDependencies": {
2626
"@aws-amplify/backend-platform-test-stubs": "^0.3.1",
2727
"@aws-amplify/platform-core": "^0.3.3",
28+
"@aws-sdk/client-ssm": "^3.398.0",
2829
"uuid": "^9.0.1"
2930
},
3031
"peerDependencies": {

0 commit comments

Comments
 (0)