@aws-amplify/graphql-model-transformer 1.4.0-rds.0 → 1.4.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/CHANGELOG.md +31 -1
- package/lib/definitions.d.ts.map +1 -1
- package/lib/definitions.js +28 -2
- package/lib/definitions.js.map +1 -1
- package/lib/graphql-model-transformer.d.ts.map +1 -1
- package/lib/graphql-model-transformer.js +38 -36
- package/lib/graphql-model-transformer.js.map +1 -1
- package/lib/graphql-types/common.d.ts.map +1 -1
- package/lib/graphql-types/common.js +16 -18
- package/lib/graphql-types/common.js.map +1 -1
- package/lib/graphql-types/mutation.d.ts.map +1 -1
- package/lib/graphql-types/mutation.js +12 -12
- package/lib/graphql-types/mutation.js.map +1 -1
- package/lib/graphql-types/query.d.ts.map +1 -1
- package/lib/graphql-types/query.js.map +1 -1
- package/lib/rds-lambda.zip +0 -0
- package/lib/rds-notification-lambda.zip +0 -0
- package/lib/rds-patching-lambda.zip +0 -0
- package/lib/resolvers/common.d.ts.map +1 -1
- package/lib/resolvers/common.js.map +1 -1
- package/lib/resolvers/dynamodb/mutation.d.ts.map +1 -1
- package/lib/resolvers/dynamodb/mutation.js +10 -8
- package/lib/resolvers/dynamodb/mutation.js.map +1 -1
- package/lib/resolvers/dynamodb/query.d.ts.map +1 -1
- package/lib/resolvers/dynamodb/query.js +1 -4
- package/lib/resolvers/dynamodb/query.js.map +1 -1
- package/lib/resolvers/dynamodb/subscriptions.d.ts.map +1 -1
- package/lib/resolvers/dynamodb/subscriptions.js.map +1 -1
- package/lib/resolvers/generators/dynamodb-vtl-generator.d.ts.map +1 -1
- package/lib/resolvers/generators/dynamodb-vtl-generator.js.map +1 -1
- package/lib/resolvers/generators/rds-vtl-generator.d.ts.map +1 -1
- package/lib/resolvers/generators/rds-vtl-generator.js.map +1 -1
- package/lib/resolvers/generators/vtl-generator.d.ts.map +1 -1
- package/lib/resolvers/index.d.ts.map +1 -1
- package/lib/resolvers/index.js.map +1 -1
- package/lib/resolvers/rds/mutation.d.ts.map +1 -1
- package/lib/resolvers/rds/mutation.js.map +1 -1
- package/lib/resolvers/rds/query.d.ts.map +1 -1
- package/lib/resolvers/rds/query.js.map +1 -1
- package/lib/resolvers/rds/resolver.d.ts +2 -2
- package/lib/resolvers/rds/resolver.d.ts.map +1 -1
- package/lib/resolvers/rds/resolver.js +83 -83
- package/lib/resolvers/rds/resolver.js.map +1 -1
- package/lib/resources/dynamo-model-resource-generator.d.ts +1 -1
- package/lib/resources/dynamo-model-resource-generator.d.ts.map +1 -1
- package/lib/resources/dynamo-model-resource-generator.js +2 -2
- package/lib/resources/dynamo-model-resource-generator.js.map +1 -1
- package/lib/resources/model-resource-generator.d.ts.map +1 -1
- package/lib/resources/model-resource-generator.js +15 -7
- package/lib/resources/model-resource-generator.js.map +1 -1
- package/lib/resources/rds-model-resource-generator.d.ts.map +1 -1
- package/lib/resources/rds-model-resource-generator.js +1 -1
- package/lib/resources/rds-model-resource-generator.js.map +1 -1
- package/package.json +17 -8
- package/publish-notification-lambda/node_modules/.package-lock.json +13 -13
- package/publish-notification-lambda/node_modules/@smithy/protocol-http/package.json +3 -3
- package/publish-notification-lambda/node_modules/@smithy/types/package.json +2 -2
- package/publish-notification-lambda/node_modules/@types/node/README.md +1 -1
- package/publish-notification-lambda/node_modules/@types/node/package.json +2 -2
- package/publish-notification-lambda/node_modules/tslib/package.json +1 -1
- package/publish-notification-lambda/node_modules/tslib/tslib.es6.mjs +50 -1
- package/publish-notification-lambda/package-lock.json +13 -13
- package/publish-notification-lambda/src/index.ts +2 -2
- package/publish-notification-lambda/tsconfig.json +9 -9
- package/rds-lambda/handler.ts +17 -4
- package/rds-lambda/node_modules/.package-lock.json +376 -377
- package/rds-lambda/node_modules/@babel/compat-data/README.md +1 -1
- package/rds-lambda/node_modules/@babel/compat-data/data/corejs2-built-ins.json +146 -0
- package/rds-lambda/node_modules/@babel/compat-data/data/native-modules.json +1 -1
- package/rds-lambda/node_modules/@babel/compat-data/data/plugin-bugfixes.json +17 -0
- package/rds-lambda/node_modules/@babel/compat-data/data/plugins.json +76 -9
- package/rds-lambda/node_modules/@babel/compat-data/package.json +4 -4
- package/rds-lambda/node_modules/@babel/core/README.md +1 -1
- package/rds-lambda/node_modules/@babel/core/package.json +10 -10
- package/rds-lambda/node_modules/@babel/generator/README.md +1 -1
- package/rds-lambda/node_modules/@babel/generator/package.json +4 -3
- package/rds-lambda/node_modules/@babel/helper-compilation-targets/README.md +1 -1
- package/rds-lambda/node_modules/@babel/helper-compilation-targets/package.json +5 -5
- package/rds-lambda/node_modules/@babel/helper-module-transforms/README.md +1 -1
- package/rds-lambda/node_modules/@babel/helper-module-transforms/package.json +10 -6
- package/rds-lambda/node_modules/@babel/helper-split-export-declaration/README.md +1 -1
- package/rds-lambda/node_modules/@babel/helper-split-export-declaration/package.json +1 -1
- package/rds-lambda/node_modules/@babel/helpers/README.md +1 -1
- package/rds-lambda/node_modules/@babel/helpers/package.json +3 -3
- package/rds-lambda/node_modules/@babel/parser/README.md +1 -1
- package/rds-lambda/node_modules/@babel/parser/package.json +2 -2
- package/rds-lambda/node_modules/@babel/traverse/README.md +1 -1
- package/rds-lambda/node_modules/@babel/traverse/package.json +4 -4
- package/rds-lambda/node_modules/@jest/console/package.json +6 -6
- package/rds-lambda/node_modules/@jest/core/package.json +21 -21
- package/rds-lambda/node_modules/@jest/environment/package.json +5 -5
- package/rds-lambda/node_modules/@jest/expect/package.json +6 -6
- package/rds-lambda/node_modules/@jest/expect-utils/package.json +5 -5
- package/rds-lambda/node_modules/@jest/fake-timers/package.json +7 -7
- package/rds-lambda/node_modules/@jest/globals/package.json +6 -6
- package/rds-lambda/node_modules/@jest/reporters/package.json +14 -14
- package/rds-lambda/node_modules/@jest/schemas/package.json +3 -3
- package/rds-lambda/node_modules/@jest/source-map/package.json +3 -3
- package/rds-lambda/node_modules/@jest/test-result/package.json +6 -6
- package/rds-lambda/node_modules/@jest/test-sequencer/package.json +5 -5
- package/rds-lambda/node_modules/@jest/transform/package.json +7 -7
- package/rds-lambda/node_modules/@jest/types/package.json +5 -5
- package/rds-lambda/node_modules/@sinclair/typebox/package.json +3 -8
- package/rds-lambda/node_modules/@sinclair/typebox/readme.md +487 -300
- package/rds-lambda/node_modules/@smithy/protocol-http/package.json +3 -3
- package/rds-lambda/node_modules/@smithy/types/package.json +2 -2
- package/rds-lambda/node_modules/@types/jest/README.md +1 -1
- package/rds-lambda/node_modules/@types/jest/package.json +2 -2
- package/rds-lambda/node_modules/@types/node/README.md +1 -1
- package/rds-lambda/node_modules/@types/node/package.json +2 -2
- package/rds-lambda/node_modules/babel-jest/package.json +4 -4
- package/rds-lambda/node_modules/caniuse-lite/package.json +1 -1
- package/rds-lambda/node_modules/collect-v8-coverage/CHANGELOG.md +7 -0
- package/rds-lambda/node_modules/collect-v8-coverage/package.json +18 -20
- package/rds-lambda/node_modules/commander/Readme.md +7 -2
- package/rds-lambda/node_modules/commander/package.json +17 -17
- package/rds-lambda/node_modules/electron-to-chromium/full-chromium-versions.json +1 -1
- package/rds-lambda/node_modules/electron-to-chromium/full-versions.json +1 -1
- package/rds-lambda/node_modules/electron-to-chromium/package.json +1 -1
- package/rds-lambda/node_modules/electron-to-chromium/versions.json +1 -1
- package/rds-lambda/node_modules/expect/package.json +10 -9
- package/rds-lambda/node_modules/jest/package.json +7 -7
- package/rds-lambda/node_modules/jest-circus/package.json +15 -14
- package/rds-lambda/node_modules/jest-cli/package.json +10 -9
- package/rds-lambda/node_modules/jest-config/package.json +14 -14
- package/rds-lambda/node_modules/jest-diff/package.json +4 -4
- package/rds-lambda/node_modules/jest-each/package.json +5 -5
- package/rds-lambda/node_modules/jest-environment-node/package.json +8 -8
- package/rds-lambda/node_modules/jest-haste-map/package.json +5 -5
- package/rds-lambda/node_modules/jest-leak-detector/package.json +3 -3
- package/rds-lambda/node_modules/jest-matcher-utils/package.json +5 -5
- package/rds-lambda/node_modules/jest-message-util/package.json +4 -4
- package/rds-lambda/node_modules/jest-mock/package.json +6 -6
- package/rds-lambda/node_modules/jest-resolve/package.json +7 -7
- package/rds-lambda/node_modules/jest-resolve-dependencies/package.json +8 -8
- package/rds-lambda/node_modules/jest-runner/package.json +20 -20
- package/rds-lambda/node_modules/jest-runtime/package.json +17 -17
- package/rds-lambda/node_modules/jest-snapshot/node_modules/semver/README.md +3 -1
- package/rds-lambda/node_modules/jest-snapshot/node_modules/semver/package.json +3 -3
- package/rds-lambda/node_modules/jest-snapshot/package.json +15 -17
- package/rds-lambda/node_modules/jest-util/package.json +3 -3
- package/rds-lambda/node_modules/jest-validate/package.json +4 -4
- package/rds-lambda/node_modules/jest-watcher/package.json +5 -5
- package/rds-lambda/node_modules/jest-worker/package.json +6 -6
- package/rds-lambda/node_modules/knex/CHANGELOG.md +63 -21
- package/rds-lambda/node_modules/knex/CONTRIBUTING.md +1 -1
- package/rds-lambda/node_modules/knex/LICENSE +22 -22
- package/rds-lambda/node_modules/knex/README.md +32 -31
- package/rds-lambda/node_modules/knex/UPGRADING.md +94 -82
- package/rds-lambda/node_modules/knex/knex.mjs +11 -0
- package/rds-lambda/node_modules/knex/lib/dialects/oracle/DEAD_CODE.md +3 -3
- package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/cjs.stub +15 -15
- package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/coffee.stub +13 -13
- package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/eg.stub +14 -14
- package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/js-schema.stub +22 -22
- package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/js.stub +22 -22
- package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-coffee.stub +34 -34
- package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-eg.stub +43 -43
- package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-js.stub +47 -47
- package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-ls.stub +35 -35
- package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-ts.stub +47 -47
- package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/ls.stub +14 -14
- package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/mjs.stub +23 -23
- package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/ts-schema.stub +21 -21
- package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/ts.stub +21 -21
- package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/coffee.stub +9 -9
- package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/eg.stub +11 -11
- package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/js.stub +13 -13
- package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/ls.stub +11 -11
- package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/mjs.stub +12 -12
- package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/ts.stub +13 -13
- package/rds-lambda/node_modules/knex/package.json +21 -18
- package/rds-lambda/node_modules/knex/scripts/docker-compose.yml +2 -2
- package/rds-lambda/node_modules/knex/scripts/next-release-howto.md +1 -1
- package/rds-lambda/node_modules/knex/scripts/oracledb-install-driver-libs.sh +82 -82
- package/rds-lambda/node_modules/knex/scripts/release.sh +36 -34
- package/rds-lambda/node_modules/knex/scripts/stress-test/README.txt +18 -18
- package/rds-lambda/node_modules/knex/scripts/stress-test/docker-compose.yml +16 -16
- package/rds-lambda/node_modules/node-releases/data/processed/envs.json +1 -1
- package/rds-lambda/node_modules/node-releases/package.json +1 -1
- package/rds-lambda/node_modules/pg-connection-string/package.json +2 -2
- package/rds-lambda/node_modules/pretty-format/package.json +5 -5
- package/rds-lambda/node_modules/semver/package.json +19 -9
- package/rds-lambda/node_modules/ts-jest/.ts-jest-digest +1 -1
- package/rds-lambda/node_modules/ts-jest/CHANGELOG.md +9 -0
- package/rds-lambda/node_modules/ts-jest/node_modules/semver/README.md +3 -1
- package/rds-lambda/node_modules/ts-jest/node_modules/semver/package.json +3 -3
- package/rds-lambda/node_modules/ts-jest/package.json +12 -12
- package/rds-lambda/node_modules/tslib/package.json +1 -1
- package/rds-lambda/node_modules/tslib/tslib.es6.mjs +50 -1
- package/rds-lambda/package-lock.json +376 -377
- package/rds-patching-lambda/node_modules/.package-lock.json +13 -13
- package/rds-patching-lambda/node_modules/@smithy/protocol-http/package.json +3 -3
- package/rds-patching-lambda/node_modules/@smithy/types/package.json +2 -2
- package/rds-patching-lambda/node_modules/@types/node/README.md +1 -1
- package/rds-patching-lambda/node_modules/@types/node/package.json +2 -2
- package/rds-patching-lambda/node_modules/tslib/package.json +1 -1
- package/rds-patching-lambda/node_modules/tslib/tslib.es6.mjs +50 -1
- package/rds-patching-lambda/package-lock.json +13 -13
- package/rds-patching-lambda/src/index.ts +19 -6
- package/rds-patching-lambda/tsconfig.json +9 -9
- package/src/__tests__/model-transformer.test.ts +175 -145
- package/src/__tests__/test-utils/helpers.ts +1 -1
- package/src/definitions.ts +28 -2
- package/src/graphql-model-transformer.ts +81 -75
- package/src/graphql-types/common.ts +41 -41
- package/src/graphql-types/mutation.ts +13 -13
- package/src/graphql-types/query.ts +1 -0
- package/src/index.ts +1 -0
- package/src/resolvers/common.ts +1 -12
- package/src/resolvers/dynamodb/mutation.ts +16 -13
- package/src/resolvers/dynamodb/query.ts +7 -12
- package/src/resolvers/dynamodb/subscriptions.ts +1 -3
- package/src/resolvers/generators/dynamodb-vtl-generator.ts +18 -8
- package/src/resolvers/generators/rds-vtl-generator.ts +11 -4
- package/src/resolvers/generators/vtl-generator.ts +5 -5
- package/src/resolvers/index.ts +1 -3
- package/src/resolvers/rds/mutation.ts +76 -70
- package/src/resolvers/rds/query.ts +4 -12
- package/src/resolvers/rds/resolver.ts +125 -131
- package/src/resources/dynamo-model-resource-generator.ts +14 -28
- package/src/resources/model-resource-generator.ts +65 -27
- package/src/resources/rds-model-resource-generator.ts +5 -15
- package/tsconfig.json +4 -4
- package/tsconfig.tsbuildinfo +1 -1
- package/rds-lambda/node_modules/semver/CHANGELOG.md +0 -70
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
CfnMapping,
|
|
3
|
-
Duration,
|
|
4
|
-
Fn,
|
|
5
|
-
Stack,
|
|
6
|
-
} from 'aws-cdk-lib';
|
|
1
|
+
import { CfnMapping, Duration, Fn, Stack } from 'aws-cdk-lib';
|
|
7
2
|
import {
|
|
8
3
|
Expression,
|
|
9
4
|
compoundExpression,
|
|
@@ -20,15 +15,8 @@ import {
|
|
|
20
15
|
} from 'graphql-mapping-template';
|
|
21
16
|
import { ResourceConstants } from 'graphql-transformer-common';
|
|
22
17
|
import { RDSConnectionSecrets } from '@aws-amplify/graphql-transformer-core';
|
|
23
|
-
import { GraphQLAPIProvider } from '@aws-amplify/graphql-transformer-interfaces';
|
|
24
|
-
import {
|
|
25
|
-
Effect,
|
|
26
|
-
IRole,
|
|
27
|
-
Policy,
|
|
28
|
-
PolicyStatement,
|
|
29
|
-
Role,
|
|
30
|
-
ServicePrincipal,
|
|
31
|
-
} from 'aws-cdk-lib/aws-iam';
|
|
18
|
+
import { GraphQLAPIProvider, RDSLayerMapping } from '@aws-amplify/graphql-transformer-interfaces';
|
|
19
|
+
import { Effect, IRole, Policy, PolicyStatement, Role, ServicePrincipal } from 'aws-cdk-lib/aws-iam';
|
|
32
20
|
import { IFunction, LayerVersion, Runtime } from 'aws-cdk-lib/aws-lambda';
|
|
33
21
|
import { Construct } from 'constructs';
|
|
34
22
|
import path from 'path';
|
|
@@ -47,85 +35,92 @@ const RDSLayerMappingID = 'RDSLayerResourceMapping';
|
|
|
47
35
|
* Define RDS Lambda Layer region mappings
|
|
48
36
|
* @param scope Construct
|
|
49
37
|
*/
|
|
50
|
-
export const setRDSLayerMappings = (scope: Construct): CfnMapping =>
|
|
51
|
-
scope,
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
},
|
|
105
|
-
'us-east-2': {
|
|
106
|
-
layerRegion: 'arn:aws:lambda:us-east-2:582037449441:layer:AmplifyRDSLayer:3',
|
|
107
|
-
},
|
|
108
|
-
'us-west-2': {
|
|
109
|
-
layerRegion: 'arn:aws:lambda:us-west-2:582037449441:layer:AmplifyRDSLayer:3',
|
|
110
|
-
},
|
|
111
|
-
'cn-north-1': {
|
|
112
|
-
layerRegion: 'arn:aws:lambda:cn-north-1:582037449441:layer:AmplifyRDSLayer:3',
|
|
113
|
-
},
|
|
114
|
-
'cn-northwest-1': {
|
|
115
|
-
layerRegion: 'arn:aws:lambda:cn-northwest-1:582037449441:layer:AmplifyRDSLayer:3',
|
|
116
|
-
},
|
|
117
|
-
'us-gov-west-1': {
|
|
118
|
-
layerRegion: 'arn:aws:lambda:us-gov-west-1:582037449441:layer:AmplifyRDSLayer:3',
|
|
119
|
-
},
|
|
120
|
-
'us-gov-east-1': {
|
|
121
|
-
layerRegion: 'arn:aws:lambda:us-gov-east-1:582037449441:layer:AmplifyRDSLayer:3',
|
|
122
|
-
},
|
|
123
|
-
'me-south-1': {
|
|
124
|
-
layerRegion: 'arn:aws:lambda:me-south-1:582037449441:layer:AmplifyRDSLayer:3',
|
|
125
|
-
},
|
|
126
|
-
},
|
|
38
|
+
export const setRDSLayerMappings = (scope: Construct, mapping?: RDSLayerMapping): CfnMapping =>
|
|
39
|
+
new CfnMapping(scope, RDSLayerMappingID, {
|
|
40
|
+
mapping: getLatestLayers(mapping),
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
const getLatestLayers = (latestLayers?: RDSLayerMapping): RDSLayerMapping => {
|
|
44
|
+
if (latestLayers && Object.keys(latestLayers).length > 0) {
|
|
45
|
+
return latestLayers;
|
|
46
|
+
}
|
|
47
|
+
const defaultLayerMapping = getDefaultLayerMapping();
|
|
48
|
+
return defaultLayerMapping;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
// For beta use account '956468067974', layer name 'AmplifyRDSLayerBeta' and layer version '12' as of 2023-06-20
|
|
52
|
+
// For prod use account '582037449441', layer name 'AmplifyRDSLayer' and layer version '3' as of 2023-06-20
|
|
53
|
+
const getDefaultLayerMapping = (): RDSLayerMapping => ({
|
|
54
|
+
'ap-northeast-1': {
|
|
55
|
+
layerRegion: 'arn:aws:lambda:ap-northeast-1:582037449441:layer:AmplifyRDSLayer:5',
|
|
56
|
+
},
|
|
57
|
+
'us-east-1': {
|
|
58
|
+
layerRegion: 'arn:aws:lambda:us-east-1:582037449441:layer:AmplifyRDSLayer:5',
|
|
59
|
+
},
|
|
60
|
+
'ap-southeast-1': {
|
|
61
|
+
layerRegion: 'arn:aws:lambda:ap-southeast-1:582037449441:layer:AmplifyRDSLayer:5',
|
|
62
|
+
},
|
|
63
|
+
'eu-west-1': {
|
|
64
|
+
layerRegion: 'arn:aws:lambda:eu-west-1:582037449441:layer:AmplifyRDSLayer:5',
|
|
65
|
+
},
|
|
66
|
+
'us-west-1': {
|
|
67
|
+
layerRegion: 'arn:aws:lambda:us-west-1:582037449441:layer:AmplifyRDSLayer:5',
|
|
68
|
+
},
|
|
69
|
+
'ap-east-1': {
|
|
70
|
+
layerRegion: 'arn:aws:lambda:ap-east-1:582037449441:layer:AmplifyRDSLayer:5',
|
|
71
|
+
},
|
|
72
|
+
'ap-northeast-2': {
|
|
73
|
+
layerRegion: 'arn:aws:lambda:ap-northeast-2:582037449441:layer:AmplifyRDSLayer:5',
|
|
74
|
+
},
|
|
75
|
+
'ap-northeast-3': {
|
|
76
|
+
layerRegion: 'arn:aws:lambda:ap-northeast-3:582037449441:layer:AmplifyRDSLayer:5',
|
|
77
|
+
},
|
|
78
|
+
'ap-south-1': {
|
|
79
|
+
layerRegion: 'arn:aws:lambda:ap-south-1:582037449441:layer:AmplifyRDSLayer:5',
|
|
80
|
+
},
|
|
81
|
+
'ap-southeast-2': {
|
|
82
|
+
layerRegion: 'arn:aws:lambda:ap-southeast-2:582037449441:layer:AmplifyRDSLayer:5',
|
|
83
|
+
},
|
|
84
|
+
'ca-central-1': {
|
|
85
|
+
layerRegion: 'arn:aws:lambda:ca-central-1:582037449441:layer:AmplifyRDSLayer:5',
|
|
86
|
+
},
|
|
87
|
+
'eu-central-1': {
|
|
88
|
+
layerRegion: 'arn:aws:lambda:eu-central-1:582037449441:layer:AmplifyRDSLayer:5',
|
|
89
|
+
},
|
|
90
|
+
'eu-north-1': {
|
|
91
|
+
layerRegion: 'arn:aws:lambda:eu-north-1:582037449441:layer:AmplifyRDSLayer:5',
|
|
127
92
|
},
|
|
128
|
-
|
|
93
|
+
'eu-west-2': {
|
|
94
|
+
layerRegion: 'arn:aws:lambda:eu-west-2:582037449441:layer:AmplifyRDSLayer:5',
|
|
95
|
+
},
|
|
96
|
+
'eu-west-3': {
|
|
97
|
+
layerRegion: 'arn:aws:lambda:eu-west-3:582037449441:layer:AmplifyRDSLayer:5',
|
|
98
|
+
},
|
|
99
|
+
'sa-east-1': {
|
|
100
|
+
layerRegion: 'arn:aws:lambda:sa-east-1:582037449441:layer:AmplifyRDSLayer:5',
|
|
101
|
+
},
|
|
102
|
+
'us-east-2': {
|
|
103
|
+
layerRegion: 'arn:aws:lambda:us-east-2:582037449441:layer:AmplifyRDSLayer:5',
|
|
104
|
+
},
|
|
105
|
+
'us-west-2': {
|
|
106
|
+
layerRegion: 'arn:aws:lambda:us-west-2:582037449441:layer:AmplifyRDSLayer:5',
|
|
107
|
+
},
|
|
108
|
+
'cn-north-1': {
|
|
109
|
+
layerRegion: 'arn:aws:lambda:cn-north-1:582037449441:layer:AmplifyRDSLayer:5',
|
|
110
|
+
},
|
|
111
|
+
'cn-northwest-1': {
|
|
112
|
+
layerRegion: 'arn:aws:lambda:cn-northwest-1:582037449441:layer:AmplifyRDSLayer:5',
|
|
113
|
+
},
|
|
114
|
+
'us-gov-west-1': {
|
|
115
|
+
layerRegion: 'arn:aws:lambda:us-gov-west-1:582037449441:layer:AmplifyRDSLayer:5',
|
|
116
|
+
},
|
|
117
|
+
'us-gov-east-1': {
|
|
118
|
+
layerRegion: 'arn:aws:lambda:us-gov-east-1:582037449441:layer:AmplifyRDSLayer:5',
|
|
119
|
+
},
|
|
120
|
+
'me-south-1': {
|
|
121
|
+
layerRegion: 'arn:aws:lambda:me-south-1:582037449441:layer:AmplifyRDSLayer:5',
|
|
122
|
+
},
|
|
123
|
+
});
|
|
129
124
|
|
|
130
125
|
/**
|
|
131
126
|
* Create RDS Lambda function
|
|
@@ -185,7 +180,7 @@ export const createRdsPatchingLambda = (
|
|
|
185
180
|
[],
|
|
186
181
|
lambdaRole,
|
|
187
182
|
environment,
|
|
188
|
-
Duration.
|
|
183
|
+
Duration.minutes(6), // We have an arbituary wait time of up to 5 minutes in the lambda function to avoid throttling errors
|
|
189
184
|
stack,
|
|
190
185
|
sqlLambdaVpcConfig,
|
|
191
186
|
);
|
|
@@ -226,20 +221,18 @@ export const createRdsLambdaRole = (roleName: string, stack: Construct, secretEn
|
|
|
226
221
|
);
|
|
227
222
|
}
|
|
228
223
|
|
|
229
|
-
role.attachInlinePolicy(
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
224
|
+
role.attachInlinePolicy(
|
|
225
|
+
new Policy(stack, RDSLambdaLogAccessPolicy, {
|
|
226
|
+
statements: policyStatements,
|
|
227
|
+
policyName: `${roleName}Policy`,
|
|
228
|
+
}),
|
|
229
|
+
);
|
|
233
230
|
|
|
234
231
|
role.addToPolicy(
|
|
235
232
|
new PolicyStatement({
|
|
236
233
|
effect: Effect.ALLOW,
|
|
237
234
|
resources: ['*'],
|
|
238
|
-
actions: [
|
|
239
|
-
'ec2:CreateNetworkInterface',
|
|
240
|
-
'ec2:DescribeNetworkInterfaces',
|
|
241
|
-
'ec2:DeleteNetworkInterface',
|
|
242
|
-
],
|
|
235
|
+
actions: ['ec2:CreateNetworkInterface', 'ec2:DescribeNetworkInterfaces', 'ec2:DeleteNetworkInterface'],
|
|
243
236
|
}),
|
|
244
237
|
);
|
|
245
238
|
|
|
@@ -276,20 +269,18 @@ export const createRdsPatchingLambdaRole = (roleName: string, stack: Construct,
|
|
|
276
269
|
}),
|
|
277
270
|
];
|
|
278
271
|
|
|
279
|
-
role.attachInlinePolicy(
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
272
|
+
role.attachInlinePolicy(
|
|
273
|
+
new Policy(stack, RDSPatchingLambdaLogAccessPolicy, {
|
|
274
|
+
statements: policyStatements,
|
|
275
|
+
policyName: `${roleName}Policy`,
|
|
276
|
+
}),
|
|
277
|
+
);
|
|
283
278
|
|
|
284
279
|
role.addToPolicy(
|
|
285
280
|
new PolicyStatement({
|
|
286
281
|
effect: Effect.ALLOW,
|
|
287
282
|
resources: ['*'],
|
|
288
|
-
actions: [
|
|
289
|
-
'ec2:CreateNetworkInterface',
|
|
290
|
-
'ec2:DescribeNetworkInterfaces',
|
|
291
|
-
'ec2:DeleteNetworkInterface',
|
|
292
|
-
],
|
|
283
|
+
actions: ['ec2:CreateNetworkInterface', 'ec2:DescribeNetworkInterfaces', 'ec2:DeleteNetworkInterface'],
|
|
293
284
|
}),
|
|
294
285
|
);
|
|
295
286
|
|
|
@@ -302,25 +293,28 @@ export const createRdsPatchingLambdaRole = (roleName: string, stack: Construct,
|
|
|
302
293
|
* @param operation string
|
|
303
294
|
* @param operationName string
|
|
304
295
|
*/
|
|
305
|
-
export const generateLambdaRequestTemplate = (tableName: string, operation: string, operationName: string): string =>
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
)
|
|
296
|
+
export const generateLambdaRequestTemplate = (tableName: string, operation: string, operationName: string): string =>
|
|
297
|
+
printBlock('Invoke RDS Lambda data source')(
|
|
298
|
+
compoundExpression([
|
|
299
|
+
set(ref('lambdaInput'), obj({})),
|
|
300
|
+
set(ref('lambdaInput.args'), obj({})),
|
|
301
|
+
set(ref('lambdaInput.table'), str(tableName)),
|
|
302
|
+
set(ref('lambdaInput.operation'), str(operation)),
|
|
303
|
+
set(ref('lambdaInput.operationName'), str(operationName)),
|
|
304
|
+
set(ref('lambdaInput.args.metadata'), obj({})),
|
|
305
|
+
set(ref('lambdaInput.args.metadata.keys'), list([])),
|
|
306
|
+
qref(
|
|
307
|
+
methodCall(ref('lambdaInput.args.metadata.keys.addAll'), methodCall(ref('util.defaultIfNull'), ref('ctx.stash.keys'), list([]))),
|
|
308
|
+
),
|
|
309
|
+
set(ref('lambdaInput.args.input'), methodCall(ref('util.defaultIfNull'), ref('ctx.stash.defaultValues'), obj({}))),
|
|
310
|
+
qref(methodCall(ref('lambdaInput.args.input.putAll'), methodCall(ref('util.defaultIfNull'), ref('context.arguments'), obj({})))),
|
|
311
|
+
obj({
|
|
312
|
+
version: str('2018-05-29'),
|
|
313
|
+
operation: str('Invoke'),
|
|
314
|
+
payload: methodCall(ref('util.toJson'), ref('lambdaInput')),
|
|
315
|
+
}),
|
|
316
|
+
]),
|
|
317
|
+
);
|
|
324
318
|
|
|
325
319
|
/**
|
|
326
320
|
* Generate RDS Lambda response template
|
|
@@ -1,24 +1,14 @@
|
|
|
1
1
|
import * as cdk from 'aws-cdk-lib';
|
|
2
2
|
import { TransformerContextProvider } from '@aws-amplify/graphql-transformer-interfaces';
|
|
3
|
-
import {
|
|
4
|
-
ModelResourceIDs,
|
|
5
|
-
ResourceConstants,
|
|
6
|
-
SyncResourceIDs,
|
|
7
|
-
} from 'graphql-transformer-common';
|
|
3
|
+
import { ModelResourceIDs, ResourceConstants, SyncResourceIDs } from 'graphql-transformer-common';
|
|
8
4
|
import { ObjectTypeDefinitionNode } from 'graphql';
|
|
9
5
|
import { SyncUtils, TransformerNestedStack } from '@aws-amplify/graphql-transformer-core';
|
|
10
|
-
import {
|
|
11
|
-
AttributeType,
|
|
12
|
-
CfnTable,
|
|
13
|
-
StreamViewType,
|
|
14
|
-
Table,
|
|
15
|
-
TableEncryption,
|
|
16
|
-
} from 'aws-cdk-lib/aws-dynamodb';
|
|
6
|
+
import { AttributeType, CfnTable, StreamViewType, Table, TableEncryption } from 'aws-cdk-lib/aws-dynamodb';
|
|
17
7
|
import { CfnDataSource } from 'aws-cdk-lib/aws-appsync';
|
|
18
8
|
import * as iam from 'aws-cdk-lib/aws-iam';
|
|
19
9
|
import { CfnRole } from 'aws-cdk-lib/aws-iam';
|
|
20
|
-
import { ModelResourceGenerator } from './model-resource-generator';
|
|
21
10
|
import { DynamoDBModelVTLGenerator, ModelVTLGenerator } from '../resolvers';
|
|
11
|
+
import { ModelResourceGenerator } from './model-resource-generator';
|
|
22
12
|
|
|
23
13
|
/**
|
|
24
14
|
* DynamoModelResourceGenerator is an implementation of ModelResourceGenerator,
|
|
@@ -128,7 +118,6 @@ export class DynamoModelResourceGenerator extends ModelResourceGenerator {
|
|
|
128
118
|
);
|
|
129
119
|
|
|
130
120
|
// Add conditions.
|
|
131
|
-
// eslint-disable-next-line no-new
|
|
132
121
|
new cdk.CfnCondition(stack, ResourceConstants.CONDITIONS.HasEnvironmentParameter, {
|
|
133
122
|
expression: cdk.Fn.conditionNot(cdk.Fn.conditionEquals(env, ResourceConstants.NONE)),
|
|
134
123
|
});
|
|
@@ -173,7 +162,6 @@ export class DynamoModelResourceGenerator extends ModelResourceGenerator {
|
|
|
173
162
|
};
|
|
174
163
|
|
|
175
164
|
const streamArnOutputId = `GetAtt${ModelResourceIDs.ModelTableStreamArn(def!.name.value)}`;
|
|
176
|
-
// eslint-disable-next-line no-new
|
|
177
165
|
new cdk.CfnOutput(stack, streamArnOutputId, {
|
|
178
166
|
value: cdk.Fn.getAtt(tableLogicalName, 'StreamArn').toString(),
|
|
179
167
|
description: 'Your DynamoDB table StreamArn.',
|
|
@@ -181,7 +169,6 @@ export class DynamoModelResourceGenerator extends ModelResourceGenerator {
|
|
|
181
169
|
});
|
|
182
170
|
|
|
183
171
|
const tableNameOutputId = `GetAtt${tableLogicalName}Name`;
|
|
184
|
-
// eslint-disable-next-line no-new
|
|
185
172
|
new cdk.CfnOutput(stack, tableNameOutputId, {
|
|
186
173
|
value: cdk.Fn.ref(tableLogicalName),
|
|
187
174
|
description: 'Your DynamoDB table name.',
|
|
@@ -210,7 +197,7 @@ export class DynamoModelResourceGenerator extends ModelResourceGenerator {
|
|
|
210
197
|
);
|
|
211
198
|
|
|
212
199
|
const cfnDataSource = dataSource.node.defaultChild as CfnDataSource;
|
|
213
|
-
cfnDataSource.
|
|
200
|
+
cfnDataSource.addDependency(role.node.defaultChild as CfnRole);
|
|
214
201
|
|
|
215
202
|
if (context.isProjectUsingDataStore()) {
|
|
216
203
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -224,7 +211,6 @@ export class DynamoModelResourceGenerator extends ModelResourceGenerator {
|
|
|
224
211
|
}
|
|
225
212
|
|
|
226
213
|
const datasourceOutputId = `GetAtt${datasourceRoleLogicalID}Name`;
|
|
227
|
-
// eslint-disable-next-line no-new
|
|
228
214
|
new cdk.CfnOutput(stack, datasourceOutputId, {
|
|
229
215
|
value: dataSource.ds.attrName,
|
|
230
216
|
description: 'Your model DataSource name.',
|
|
@@ -273,15 +259,15 @@ export class DynamoModelResourceGenerator extends ModelResourceGenerator {
|
|
|
273
259
|
}),
|
|
274
260
|
...(context.isProjectUsingDataStore()
|
|
275
261
|
? [
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
262
|
+
// eslint-disable-next-line no-template-curly-in-string
|
|
263
|
+
cdk.Fn.sub('arn:aws:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tablename}', {
|
|
264
|
+
tablename: amplifyDataStoreTableName,
|
|
265
|
+
}),
|
|
266
|
+
// eslint-disable-next-line no-template-curly-in-string
|
|
267
|
+
cdk.Fn.sub('arn:aws:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tablename}/*', {
|
|
268
|
+
tablename: amplifyDataStoreTableName,
|
|
269
|
+
}),
|
|
270
|
+
]
|
|
285
271
|
: []),
|
|
286
272
|
],
|
|
287
273
|
}),
|
|
@@ -297,5 +283,5 @@ export class DynamoModelResourceGenerator extends ModelResourceGenerator {
|
|
|
297
283
|
}
|
|
298
284
|
|
|
299
285
|
return role;
|
|
300
|
-
}
|
|
286
|
+
};
|
|
301
287
|
}
|
|
@@ -1,19 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
|
-
DataSourceProvider,
|
|
2
|
+
DataSourceProvider,
|
|
3
|
+
MutationFieldType,
|
|
4
|
+
QueryFieldType,
|
|
5
|
+
SubscriptionFieldType,
|
|
3
6
|
TransformerContextProvider,
|
|
4
7
|
TransformerResolverProvider,
|
|
5
8
|
} from '@aws-amplify/graphql-transformer-interfaces';
|
|
6
9
|
import { ObjectTypeDefinitionNode } from 'graphql';
|
|
7
10
|
import { MappingTemplate } from '@aws-amplify/graphql-transformer-core';
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
toCamelCase,
|
|
11
|
-
} from 'graphql-transformer-common';
|
|
12
|
-
import {
|
|
13
|
-
generateAuthExpressionForSandboxMode,
|
|
14
|
-
generateResolverKey,
|
|
15
|
-
ModelVTLGenerator,
|
|
16
|
-
} from '../resolvers';
|
|
11
|
+
import { ResolverResourceIDs, toCamelCase } from 'graphql-transformer-common';
|
|
12
|
+
import { generateAuthExpressionForSandboxMode, generateResolverKey, ModelVTLGenerator } from '../resolvers';
|
|
17
13
|
import { ModelDirectiveConfiguration, SubscriptionLevel } from '../directive';
|
|
18
14
|
import { ModelTransformerOptions } from '../types';
|
|
19
15
|
|
|
@@ -24,13 +20,21 @@ import { ModelTransformerOptions } from '../types';
|
|
|
24
20
|
*/
|
|
25
21
|
export abstract class ModelResourceGenerator {
|
|
26
22
|
protected datasourceMap: Record<string, DataSourceProvider> = {};
|
|
23
|
+
|
|
27
24
|
private resolverMap: Record<string, TransformerResolverProvider> = {};
|
|
25
|
+
|
|
28
26
|
protected generatorType = 'ModelResourceGenerator';
|
|
27
|
+
|
|
29
28
|
private enabled = false;
|
|
29
|
+
|
|
30
30
|
private provisioned = false;
|
|
31
|
+
|
|
31
32
|
private unprovisioned = false;
|
|
33
|
+
|
|
32
34
|
protected models: Array<ObjectTypeDefinitionNode> = new Array<ObjectTypeDefinitionNode>();
|
|
35
|
+
|
|
33
36
|
protected modelDirectiveMap: Map<string, ModelDirectiveConfiguration> = new Map<string, ModelDirectiveConfiguration>();
|
|
37
|
+
|
|
34
38
|
protected options: ModelTransformerOptions;
|
|
35
39
|
|
|
36
40
|
constructor(options: ModelTransformerOptions = {}) {
|
|
@@ -103,7 +107,6 @@ export abstract class ModelResourceGenerator {
|
|
|
103
107
|
|
|
104
108
|
protected generateResolvers(context: TransformerContextProvider): void {
|
|
105
109
|
this.models.forEach((def) => {
|
|
106
|
-
|
|
107
110
|
const queryFields = this.getQueryFieldNames(def);
|
|
108
111
|
queryFields.forEach((query) => {
|
|
109
112
|
let resolver;
|
|
@@ -125,7 +128,7 @@ export abstract class ModelResourceGenerator {
|
|
|
125
128
|
resolver.addToSlot(
|
|
126
129
|
'postAuth',
|
|
127
130
|
MappingTemplate.s3MappingTemplateFromString(
|
|
128
|
-
generateAuthExpressionForSandboxMode(context.sandboxModeEnabled),
|
|
131
|
+
generateAuthExpressionForSandboxMode(context.transformParameters.sandboxModeEnabled),
|
|
129
132
|
`${query.typeName}.${query.fieldName}.{slotName}.{slotIndex}.req.vtl`,
|
|
130
133
|
),
|
|
131
134
|
);
|
|
@@ -159,7 +162,7 @@ export abstract class ModelResourceGenerator {
|
|
|
159
162
|
resolver.addToSlot(
|
|
160
163
|
'postAuth',
|
|
161
164
|
MappingTemplate.s3MappingTemplateFromString(
|
|
162
|
-
generateAuthExpressionForSandboxMode(context.sandboxModeEnabled),
|
|
165
|
+
generateAuthExpressionForSandboxMode(context.transformParameters.sandboxModeEnabled),
|
|
163
166
|
`${mutation.typeName}.${mutation.fieldName}.{slotName}.{slotIndex}.req.vtl`,
|
|
164
167
|
),
|
|
165
168
|
);
|
|
@@ -205,7 +208,7 @@ export abstract class ModelResourceGenerator {
|
|
|
205
208
|
resolver.addToSlot(
|
|
206
209
|
'postAuth',
|
|
207
210
|
MappingTemplate.s3MappingTemplateFromString(
|
|
208
|
-
generateAuthExpressionForSandboxMode(context.sandboxModeEnabled),
|
|
211
|
+
generateAuthExpressionForSandboxMode(context.transformParameters.sandboxModeEnabled),
|
|
209
212
|
`${subscription.typeName}.${subscription.fieldName}.{slotName}.{slotIndex}.req.vtl`,
|
|
210
213
|
),
|
|
211
214
|
);
|
|
@@ -228,7 +231,9 @@ export abstract class ModelResourceGenerator {
|
|
|
228
231
|
const dataSource = this.datasourceMap[type.name.value];
|
|
229
232
|
const resolverKey = `Get${generateResolverKey(typeName, fieldName)}`;
|
|
230
233
|
const vtlGenerator = this.getVTLGenerator();
|
|
231
|
-
const modelIndexFields = type
|
|
234
|
+
const modelIndexFields = type
|
|
235
|
+
.fields!.filter((field) => field.directives?.some((it) => it.name.value === 'index'))
|
|
236
|
+
.map((it) => it.name.value);
|
|
232
237
|
const requestConfig = {
|
|
233
238
|
operation: 'GET',
|
|
234
239
|
operationName: fieldName,
|
|
@@ -246,8 +251,14 @@ export abstract class ModelResourceGenerator {
|
|
|
246
251
|
fieldName,
|
|
247
252
|
resolverLogicalId,
|
|
248
253
|
dataSource,
|
|
249
|
-
MappingTemplate.s3MappingTemplateFromString(
|
|
250
|
-
|
|
254
|
+
MappingTemplate.s3MappingTemplateFromString(
|
|
255
|
+
vtlGenerator.generateGetRequestTemplate(requestConfig),
|
|
256
|
+
`${typeName}.${fieldName}.req.vtl`,
|
|
257
|
+
),
|
|
258
|
+
MappingTemplate.s3MappingTemplateFromString(
|
|
259
|
+
vtlGenerator.generateGetResponseTemplate(responseConfig),
|
|
260
|
+
`${typeName}.${fieldName}.res.vtl`,
|
|
261
|
+
),
|
|
251
262
|
);
|
|
252
263
|
}
|
|
253
264
|
return this.resolverMap[resolverKey];
|
|
@@ -280,7 +291,10 @@ export abstract class ModelResourceGenerator {
|
|
|
280
291
|
fieldName,
|
|
281
292
|
resolverLogicalId,
|
|
282
293
|
dataSource,
|
|
283
|
-
MappingTemplate.s3MappingTemplateFromString(
|
|
294
|
+
MappingTemplate.s3MappingTemplateFromString(
|
|
295
|
+
vtlGenerator.generateListRequestTemplate(requestConfig),
|
|
296
|
+
`${typeName}.${fieldName}.req.vtl`,
|
|
297
|
+
),
|
|
284
298
|
MappingTemplate.s3MappingTemplateFromString(
|
|
285
299
|
vtlGenerator.generateDefaultResponseMappingTemplate(responseConfig),
|
|
286
300
|
`${typeName}.${fieldName}.res.vtl`,
|
|
@@ -301,7 +315,9 @@ export abstract class ModelResourceGenerator {
|
|
|
301
315
|
const dataSource = this.datasourceMap[type.name.value];
|
|
302
316
|
const resolverKey = `Create${generateResolverKey(typeName, fieldName)}`;
|
|
303
317
|
const vtlGenerator = this.getVTLGenerator();
|
|
304
|
-
const modelIndexFields = type
|
|
318
|
+
const modelIndexFields = type
|
|
319
|
+
.fields!.filter((field) => field.directives?.some((it) => it.name.value === 'index'))
|
|
320
|
+
.map((it) => it.name.value);
|
|
305
321
|
const requestConfig = {
|
|
306
322
|
operation: 'CREATE',
|
|
307
323
|
operationName: fieldName,
|
|
@@ -321,7 +337,10 @@ export abstract class ModelResourceGenerator {
|
|
|
321
337
|
fieldName,
|
|
322
338
|
resolverLogicalId,
|
|
323
339
|
dataSource,
|
|
324
|
-
MappingTemplate.s3MappingTemplateFromString(
|
|
340
|
+
MappingTemplate.s3MappingTemplateFromString(
|
|
341
|
+
vtlGenerator.generateCreateRequestTemplate(requestConfig),
|
|
342
|
+
`${typeName}.${fieldName}.req.vtl`,
|
|
343
|
+
),
|
|
325
344
|
MappingTemplate.s3MappingTemplateFromString(
|
|
326
345
|
vtlGenerator.generateDefaultResponseMappingTemplate(responseConfig),
|
|
327
346
|
`${typeName}.${fieldName}.res.vtl`,
|
|
@@ -357,7 +376,9 @@ export abstract class ModelResourceGenerator {
|
|
|
357
376
|
const dataSource = this.datasourceMap[type.name.value];
|
|
358
377
|
const resolverKey = `Update${generateResolverKey(typeName, fieldName)}`;
|
|
359
378
|
const vtlGenerator = this.getVTLGenerator();
|
|
360
|
-
const modelIndexFields = type
|
|
379
|
+
const modelIndexFields = type
|
|
380
|
+
.fields!.filter((field) => field.directives?.some((it) => it.name.value === 'index'))
|
|
381
|
+
.map((it) => it.name.value);
|
|
361
382
|
const requestConfig = {
|
|
362
383
|
operation: 'UPDATE',
|
|
363
384
|
operationName: fieldName,
|
|
@@ -416,7 +437,9 @@ export abstract class ModelResourceGenerator {
|
|
|
416
437
|
const dataSource = this.datasourceMap[type.name.value];
|
|
417
438
|
const resolverKey = `delete${generateResolverKey(typeName, fieldName)}`;
|
|
418
439
|
const vtlGenerator = this.getVTLGenerator();
|
|
419
|
-
const modelIndexFields = type
|
|
440
|
+
const modelIndexFields = type
|
|
441
|
+
.fields!.filter((field) => field.directives?.some((it) => it.name.value === 'index'))
|
|
442
|
+
.map((it) => it.name.value);
|
|
420
443
|
const requestConfig = {
|
|
421
444
|
operation: 'DELETE',
|
|
422
445
|
operationName: fieldName,
|
|
@@ -437,7 +460,10 @@ export abstract class ModelResourceGenerator {
|
|
|
437
460
|
fieldName,
|
|
438
461
|
resolverLogicalId,
|
|
439
462
|
dataSource,
|
|
440
|
-
MappingTemplate.s3MappingTemplateFromString(
|
|
463
|
+
MappingTemplate.s3MappingTemplateFromString(
|
|
464
|
+
vtlGenerator.generateDeleteRequestTemplate(requestConfig),
|
|
465
|
+
`${typeName}.${fieldName}.req.vtl`,
|
|
466
|
+
),
|
|
441
467
|
MappingTemplate.s3MappingTemplateFromString(
|
|
442
468
|
vtlGenerator.generateDefaultResponseMappingTemplate(responseConfig),
|
|
443
469
|
`${typeName}.${fieldName}.res.vtl`,
|
|
@@ -461,7 +487,10 @@ export abstract class ModelResourceGenerator {
|
|
|
461
487
|
fieldName,
|
|
462
488
|
resolverLogicalId,
|
|
463
489
|
MappingTemplate.s3MappingTemplateFromString(vtlGenerator.generateSubscriptionRequestTemplate(), `${typeName}.${fieldName}.req.vtl`),
|
|
464
|
-
MappingTemplate.s3MappingTemplateFromString(
|
|
490
|
+
MappingTemplate.s3MappingTemplateFromString(
|
|
491
|
+
vtlGenerator.generateSubscriptionResponseTemplate(),
|
|
492
|
+
`${typeName}.${fieldName}.res.vtl`,
|
|
493
|
+
),
|
|
465
494
|
);
|
|
466
495
|
}
|
|
467
496
|
return this.resolverMap[resolverKey];
|
|
@@ -481,7 +510,10 @@ export abstract class ModelResourceGenerator {
|
|
|
481
510
|
fieldName,
|
|
482
511
|
resolverLogicalId,
|
|
483
512
|
MappingTemplate.s3MappingTemplateFromString(vtlGenerator.generateSubscriptionRequestTemplate(), `${typeName}.${fieldName}.req.vtl`),
|
|
484
|
-
MappingTemplate.s3MappingTemplateFromString(
|
|
513
|
+
MappingTemplate.s3MappingTemplateFromString(
|
|
514
|
+
vtlGenerator.generateSubscriptionResponseTemplate(),
|
|
515
|
+
`${typeName}.${fieldName}.res.vtl`,
|
|
516
|
+
),
|
|
485
517
|
);
|
|
486
518
|
}
|
|
487
519
|
return this.resolverMap[resolverKey];
|
|
@@ -501,7 +533,10 @@ export abstract class ModelResourceGenerator {
|
|
|
501
533
|
fieldName,
|
|
502
534
|
resolverLogicalId,
|
|
503
535
|
MappingTemplate.s3MappingTemplateFromString(vtlGenerator.generateSubscriptionRequestTemplate(), `${typeName}.${fieldName}.req.vtl`),
|
|
504
|
-
MappingTemplate.s3MappingTemplateFromString(
|
|
536
|
+
MappingTemplate.s3MappingTemplateFromString(
|
|
537
|
+
vtlGenerator.generateSubscriptionResponseTemplate(),
|
|
538
|
+
`${typeName}.${fieldName}.res.vtl`,
|
|
539
|
+
),
|
|
505
540
|
);
|
|
506
541
|
}
|
|
507
542
|
return this.resolverMap[resolverKey];
|
|
@@ -535,7 +570,10 @@ export abstract class ModelResourceGenerator {
|
|
|
535
570
|
fieldName,
|
|
536
571
|
resolverLogicalId,
|
|
537
572
|
dataSource,
|
|
538
|
-
MappingTemplate.s3MappingTemplateFromString(
|
|
573
|
+
MappingTemplate.s3MappingTemplateFromString(
|
|
574
|
+
vtlGenerator.generateSyncRequestTemplate(requestConfig),
|
|
575
|
+
`${typeName}.${fieldName}.req.vtl`,
|
|
576
|
+
),
|
|
539
577
|
MappingTemplate.s3MappingTemplateFromString(
|
|
540
578
|
vtlGenerator.generateDefaultResponseMappingTemplate(responseConfig),
|
|
541
579
|
`${typeName}.${fieldName}.res.vtl`,
|