@aws-amplify/backend-output-storage 0.1.1-alpha.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.
package/lib/index.d.ts
ADDED
package/lib/index.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './stack_metadata_output_storage_strategy.js';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2Q0FBNkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3RhY2tfbWV0YWRhdGFfb3V0cHV0X3N0b3JhZ2Vfc3RyYXRlZ3kuanMnO1xuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { BackendOutputEntry, BackendOutputStorageStrategy } from '@aws-amplify/plugin-types';
|
|
2
|
+
import { Stack } from 'aws-cdk-lib';
|
|
3
|
+
/**
|
|
4
|
+
* Implementation of BackendOutputStorageStrategy that stores config data in stack metadata and outputs
|
|
5
|
+
*/
|
|
6
|
+
export declare class StackMetadataBackendOutputStorageStrategy implements BackendOutputStorageStrategy<BackendOutputEntry> {
|
|
7
|
+
private readonly stack;
|
|
8
|
+
/**
|
|
9
|
+
* Initialize the instance with a stack.
|
|
10
|
+
*
|
|
11
|
+
* If the stack is an AmplifyStack, set a parameter in SSM so the stack can be identified later by the project environment
|
|
12
|
+
*/
|
|
13
|
+
constructor(stack: Stack);
|
|
14
|
+
/**
|
|
15
|
+
* Store construct output as stack output and add pending metadata to the metadata object.
|
|
16
|
+
*
|
|
17
|
+
* Metadata is not written to the stack until flush() is called
|
|
18
|
+
*/
|
|
19
|
+
addBackendOutputEntry: (keyName: string, backendOutputEntry: BackendOutputEntry) => void;
|
|
20
|
+
/**
|
|
21
|
+
* Persists the metadata object to the stack metadata
|
|
22
|
+
*/
|
|
23
|
+
flush: () => void;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=stack_metadata_output_storage_strategy.d.ts.map
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { CfnOutput } from 'aws-cdk-lib';
|
|
2
|
+
import { graphqlOutputKey } from '@aws-amplify/backend-output-schemas';
|
|
3
|
+
/**
|
|
4
|
+
* Implementation of BackendOutputStorageStrategy that stores config data in stack metadata and outputs
|
|
5
|
+
*/
|
|
6
|
+
export class StackMetadataBackendOutputStorageStrategy {
|
|
7
|
+
stack;
|
|
8
|
+
/**
|
|
9
|
+
* Initialize the instance with a stack.
|
|
10
|
+
*
|
|
11
|
+
* If the stack is an AmplifyStack, set a parameter in SSM so the stack can be identified later by the project environment
|
|
12
|
+
*/
|
|
13
|
+
constructor(stack) {
|
|
14
|
+
this.stack = stack;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Store construct output as stack output and add pending metadata to the metadata object.
|
|
18
|
+
*
|
|
19
|
+
* Metadata is not written to the stack until flush() is called
|
|
20
|
+
*/
|
|
21
|
+
addBackendOutputEntry = (keyName, backendOutputEntry) => {
|
|
22
|
+
// add all the data values as stack outputs
|
|
23
|
+
Object.entries(backendOutputEntry.payload).forEach(([key, value]) => {
|
|
24
|
+
new CfnOutput(this.stack, key, { value });
|
|
25
|
+
});
|
|
26
|
+
// TODO https://github.com/aws-amplify/samsara-cli/issues/252
|
|
27
|
+
// temporary hack to work around the fact that the gql construct has hard-coded a duplicate of this key in their codebase
|
|
28
|
+
// once this hard-coding is removed and they are depending on the shared packages, this can be removed
|
|
29
|
+
const mappedKeyName = keyName === 'graphqlOutput' ? graphqlOutputKey : keyName;
|
|
30
|
+
this.stack.addMetadata(mappedKeyName, {
|
|
31
|
+
version: backendOutputEntry.version,
|
|
32
|
+
stackOutputs: Object.keys(backendOutputEntry.payload),
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Persists the metadata object to the stack metadata
|
|
37
|
+
*/
|
|
38
|
+
flush = () => {
|
|
39
|
+
// TODO https://github.com/aws-amplify/samsara-cli/issues/252
|
|
40
|
+
// NOOP until the duplicate BackendOutputStorageStrategy type in the gql construct can be removed
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2tfbWV0YWRhdGFfb3V0cHV0X3N0b3JhZ2Vfc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3RhY2tfbWV0YWRhdGFfb3V0cHV0X3N0b3JhZ2Vfc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLFNBQVMsRUFBUyxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV2RTs7R0FFRztBQUNILE1BQU0sT0FBTyx5Q0FBeUM7SUFRdkI7SUFMN0I7Ozs7T0FJRztJQUNILFlBQTZCLEtBQVk7UUFBWixVQUFLLEdBQUwsS0FBSyxDQUFPO0lBQUcsQ0FBQztJQUU3Qzs7OztPQUlHO0lBQ0gscUJBQXFCLEdBQUcsQ0FDdEIsT0FBZSxFQUNmLGtCQUFzQyxFQUNoQyxFQUFFO1FBQ1IsMkNBQTJDO1FBQzNDLE1BQU0sQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUNsRSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7UUFFSCw2REFBNkQ7UUFDN0QseUhBQXlIO1FBQ3pILHNHQUFzRztRQUN0RyxNQUFNLGFBQWEsR0FDakIsT0FBTyxLQUFLLGVBQWUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUUzRCxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUU7WUFDcEMsT0FBTyxFQUFFLGtCQUFrQixDQUFDLE9BQU87WUFDbkMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDO1NBQ3RELENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsS0FBSyxHQUFHLEdBQVMsRUFBRTtRQUNqQiw2REFBNkQ7UUFDN0QsaUdBQWlHO0lBQ25HLENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFja2VuZE91dHB1dEVudHJ5LFxuICBCYWNrZW5kT3V0cHV0U3RvcmFnZVN0cmF0ZWd5LFxufSBmcm9tICdAYXdzLWFtcGxpZnkvcGx1Z2luLXR5cGVzJztcbmltcG9ydCB7IENmbk91dHB1dCwgU3RhY2sgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBncmFwaHFsT3V0cHV0S2V5IH0gZnJvbSAnQGF3cy1hbXBsaWZ5L2JhY2tlbmQtb3V0cHV0LXNjaGVtYXMnO1xuXG4vKipcbiAqIEltcGxlbWVudGF0aW9uIG9mIEJhY2tlbmRPdXRwdXRTdG9yYWdlU3RyYXRlZ3kgdGhhdCBzdG9yZXMgY29uZmlnIGRhdGEgaW4gc3RhY2sgbWV0YWRhdGEgYW5kIG91dHB1dHNcbiAqL1xuZXhwb3J0IGNsYXNzIFN0YWNrTWV0YWRhdGFCYWNrZW5kT3V0cHV0U3RvcmFnZVN0cmF0ZWd5XG4gIGltcGxlbWVudHMgQmFja2VuZE91dHB1dFN0b3JhZ2VTdHJhdGVneTxCYWNrZW5kT3V0cHV0RW50cnk+XG57XG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSBpbnN0YW5jZSB3aXRoIGEgc3RhY2suXG4gICAqXG4gICAqIElmIHRoZSBzdGFjayBpcyBhbiBBbXBsaWZ5U3RhY2ssIHNldCBhIHBhcmFtZXRlciBpbiBTU00gc28gdGhlIHN0YWNrIGNhbiBiZSBpZGVudGlmaWVkIGxhdGVyIGJ5IHRoZSBwcm9qZWN0IGVudmlyb25tZW50XG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHN0YWNrOiBTdGFjaykge31cblxuICAvKipcbiAgICogU3RvcmUgY29uc3RydWN0IG91dHB1dCBhcyBzdGFjayBvdXRwdXQgYW5kIGFkZCBwZW5kaW5nIG1ldGFkYXRhIHRvIHRoZSBtZXRhZGF0YSBvYmplY3QuXG4gICAqXG4gICAqIE1ldGFkYXRhIGlzIG5vdCB3cml0dGVuIHRvIHRoZSBzdGFjayB1bnRpbCBmbHVzaCgpIGlzIGNhbGxlZFxuICAgKi9cbiAgYWRkQmFja2VuZE91dHB1dEVudHJ5ID0gKFxuICAgIGtleU5hbWU6IHN0cmluZyxcbiAgICBiYWNrZW5kT3V0cHV0RW50cnk6IEJhY2tlbmRPdXRwdXRFbnRyeVxuICApOiB2b2lkID0+IHtcbiAgICAvLyBhZGQgYWxsIHRoZSBkYXRhIHZhbHVlcyBhcyBzdGFjayBvdXRwdXRzXG4gICAgT2JqZWN0LmVudHJpZXMoYmFja2VuZE91dHB1dEVudHJ5LnBheWxvYWQpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgbmV3IENmbk91dHB1dCh0aGlzLnN0YWNrLCBrZXksIHsgdmFsdWUgfSk7XG4gICAgfSk7XG5cbiAgICAvLyBUT0RPIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MtYW1wbGlmeS9zYW1zYXJhLWNsaS9pc3N1ZXMvMjUyXG4gICAgLy8gdGVtcG9yYXJ5IGhhY2sgdG8gd29yayBhcm91bmQgdGhlIGZhY3QgdGhhdCB0aGUgZ3FsIGNvbnN0cnVjdCBoYXMgaGFyZC1jb2RlZCBhIGR1cGxpY2F0ZSBvZiB0aGlzIGtleSBpbiB0aGVpciBjb2RlYmFzZVxuICAgIC8vIG9uY2UgdGhpcyBoYXJkLWNvZGluZyBpcyByZW1vdmVkIGFuZCB0aGV5IGFyZSBkZXBlbmRpbmcgb24gdGhlIHNoYXJlZCBwYWNrYWdlcywgdGhpcyBjYW4gYmUgcmVtb3ZlZFxuICAgIGNvbnN0IG1hcHBlZEtleU5hbWUgPVxuICAgICAga2V5TmFtZSA9PT0gJ2dyYXBocWxPdXRwdXQnID8gZ3JhcGhxbE91dHB1dEtleSA6IGtleU5hbWU7XG5cbiAgICB0aGlzLnN0YWNrLmFkZE1ldGFkYXRhKG1hcHBlZEtleU5hbWUsIHtcbiAgICAgIHZlcnNpb246IGJhY2tlbmRPdXRwdXRFbnRyeS52ZXJzaW9uLFxuICAgICAgc3RhY2tPdXRwdXRzOiBPYmplY3Qua2V5cyhiYWNrZW5kT3V0cHV0RW50cnkucGF5bG9hZCksXG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFBlcnNpc3RzIHRoZSBtZXRhZGF0YSBvYmplY3QgdG8gdGhlIHN0YWNrIG1ldGFkYXRhXG4gICAqL1xuICBmbHVzaCA9ICgpOiB2b2lkID0+IHtcbiAgICAvLyBUT0RPIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MtYW1wbGlmeS9zYW1zYXJhLWNsaS9pc3N1ZXMvMjUyXG4gICAgLy8gTk9PUCB1bnRpbCB0aGUgZHVwbGljYXRlIEJhY2tlbmRPdXRwdXRTdG9yYWdlU3RyYXRlZ3kgdHlwZSBpbiB0aGUgZ3FsIGNvbnN0cnVjdCBjYW4gYmUgcmVtb3ZlZFxuICB9O1xufVxuIl19
|
package/package.json
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@aws-amplify/backend-output-storage",
|
|
3
|
+
"version": "0.1.1-alpha.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"publishConfig": {
|
|
6
|
+
"access": "public"
|
|
7
|
+
},
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./lib/index.d.ts",
|
|
11
|
+
"import": "./lib/index.js",
|
|
12
|
+
"require": "./lib/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"main": "lib/index.js",
|
|
16
|
+
"types": "lib/index.d.ts",
|
|
17
|
+
"scripts": {
|
|
18
|
+
"update:api": "api-extractor run --local"
|
|
19
|
+
},
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"@aws-amplify/backend-output-schemas": "^0.2.0-alpha.3"
|
|
22
|
+
},
|
|
23
|
+
"peerDependencies": {
|
|
24
|
+
"aws-cdk-lib": "^2.80.0"
|
|
25
|
+
}
|
|
26
|
+
}
|