@aws/nx-plugin 0.91.0 → 0.93.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/LICENSE-THIRD-PARTY +115 -2
- package/package.json +1 -1
- package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +31 -8
- package/src/py/mcp-server/generator.js +3 -0
- package/src/py/mcp-server/generator.js.map +1 -1
- package/src/py/mcp-server/schema.d.ts +3 -0
- package/src/py/mcp-server/schema.json +8 -0
- package/src/py/strands-agent/__snapshots__/generator.spec.ts.snap +31 -8
- package/src/py/strands-agent/generator.js +3 -0
- package/src/py/strands-agent/generator.js.map +1 -1
- package/src/py/strands-agent/mcp-connection/generator.js +3 -0
- package/src/py/strands-agent/mcp-connection/generator.js.map +1 -1
- package/src/py/strands-agent/schema.d.ts +3 -0
- package/src/py/strands-agent/schema.json +8 -0
- package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +31 -8
- package/src/ts/mcp-server/generator.js +3 -0
- package/src/ts/mcp-server/generator.js.map +1 -1
- package/src/ts/mcp-server/schema.d.ts +3 -0
- package/src/ts/mcp-server/schema.json +8 -0
- package/src/ts/strands-agent/__snapshots__/generator.spec.ts.snap +31 -8
- package/src/ts/strands-agent/generator.js +3 -1
- package/src/ts/strands-agent/generator.js.map +1 -1
- package/src/ts/strands-agent/mcp-connection/generator.js +3 -0
- package/src/ts/strands-agent/mcp-connection/generator.js.map +1 -1
- package/src/ts/strands-agent/schema.d.ts +3 -0
- package/src/ts/strands-agent/schema.json +8 -0
- package/src/utils/agent-core-constructs/agent-core-constructs.d.ts +4 -0
- package/src/utils/agent-core-constructs/agent-core-constructs.js +2 -0
- package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
- package/src/utils/agent-core-constructs/files/cdk/app/agent-core/__nameKebabCase__/__nameKebabCase__.ts.template +74 -3
- package/src/utils/agent-core-constructs/files/terraform/app/agent-core/__nameKebabCase__/__nameKebabCase__.tf.template +26 -6
package/LICENSE-THIRD-PARTY
CHANGED
|
@@ -960,6 +960,31 @@ THE SOFTWARE.
|
|
|
960
960
|
|
|
961
961
|
---
|
|
962
962
|
|
|
963
|
+
The following software may be included in this product: @babel/parser (7.29.2)
|
|
964
|
+
This software contains the following license and notice below:
|
|
965
|
+
|
|
966
|
+
Copyright (C) 2012-2014 by various contributors (see AUTHORS)
|
|
967
|
+
|
|
968
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
969
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
970
|
+
in the Software without restriction, including without limitation the rights
|
|
971
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
972
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
973
|
+
furnished to do so, subject to the following conditions:
|
|
974
|
+
|
|
975
|
+
The above copyright notice and this permission notice shall be included in
|
|
976
|
+
all copies or substantial portions of the Software.
|
|
977
|
+
|
|
978
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
979
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
980
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
981
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
982
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
983
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
984
|
+
THE SOFTWARE.
|
|
985
|
+
|
|
986
|
+
---
|
|
987
|
+
|
|
963
988
|
The following software may be included in this product: @babel/plugin-bugfix-firefox-class-in-computed-class-key (7.27.1)
|
|
964
989
|
This software contains the following license and notice below:
|
|
965
990
|
|
|
@@ -14968,7 +14993,7 @@ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR I
|
|
|
14968
14993
|
|
|
14969
14994
|
---
|
|
14970
14995
|
|
|
14971
|
-
The following software may be included in this product: immutable (4.3.
|
|
14996
|
+
The following software may be included in this product: immutable (4.3.8)
|
|
14972
14997
|
This software contains the following license and notice below:
|
|
14973
14998
|
|
|
14974
14999
|
MIT License
|
|
@@ -18430,7 +18455,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
18430
18455
|
|
|
18431
18456
|
---
|
|
18432
18457
|
|
|
18433
|
-
The following software may be included in this product: needle (3.
|
|
18458
|
+
The following software may be included in this product: needle (3.5.0)
|
|
18434
18459
|
This software contains the following license and notice below:
|
|
18435
18460
|
|
|
18436
18461
|
Copyright (c) Fork, Ltd.
|
|
@@ -20019,6 +20044,33 @@ THE SOFTWARE.
|
|
|
20019
20044
|
|
|
20020
20045
|
---
|
|
20021
20046
|
|
|
20047
|
+
The following software may be included in this product: picomatch (4.0.4)
|
|
20048
|
+
This software contains the following license and notice below:
|
|
20049
|
+
|
|
20050
|
+
The MIT License (MIT)
|
|
20051
|
+
|
|
20052
|
+
Copyright (c) 2017-present, Jon Schlinkert.
|
|
20053
|
+
|
|
20054
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
20055
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
20056
|
+
in the Software without restriction, including without limitation the rights
|
|
20057
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
20058
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
20059
|
+
furnished to do so, subject to the following conditions:
|
|
20060
|
+
|
|
20061
|
+
The above copyright notice and this permission notice shall be included in
|
|
20062
|
+
all copies or substantial portions of the Software.
|
|
20063
|
+
|
|
20064
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
20065
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
20066
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20067
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20068
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20069
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
20070
|
+
THE SOFTWARE.
|
|
20071
|
+
|
|
20072
|
+
---
|
|
20073
|
+
|
|
20022
20074
|
The following software may be included in this product: pify (3.0.0)
|
|
20023
20075
|
This software contains the following license and notice below:
|
|
20024
20076
|
|
|
@@ -40626,6 +40678,67 @@ software or this license, under any kind of legal claim.***
|
|
|
40626
40678
|
|
|
40627
40679
|
---
|
|
40628
40680
|
|
|
40681
|
+
The following software may be included in this product: sax (1.6.0)
|
|
40682
|
+
This software contains the following license and notice below:
|
|
40683
|
+
|
|
40684
|
+
# Blue Oak Model License
|
|
40685
|
+
|
|
40686
|
+
Version 1.0.0
|
|
40687
|
+
|
|
40688
|
+
## Purpose
|
|
40689
|
+
|
|
40690
|
+
This license gives everyone as much permission to work with
|
|
40691
|
+
this software as possible, while protecting contributors
|
|
40692
|
+
from liability.
|
|
40693
|
+
|
|
40694
|
+
## Acceptance
|
|
40695
|
+
|
|
40696
|
+
In order to receive this license, you must agree to its
|
|
40697
|
+
rules. The rules of this license are both obligations
|
|
40698
|
+
under that agreement and conditions to your license.
|
|
40699
|
+
You must not do anything with this software that triggers
|
|
40700
|
+
a rule that you cannot or will not follow.
|
|
40701
|
+
|
|
40702
|
+
## Copyright
|
|
40703
|
+
|
|
40704
|
+
Each contributor licenses you to do everything with this
|
|
40705
|
+
software that would otherwise infringe that contributor's
|
|
40706
|
+
copyright in it.
|
|
40707
|
+
|
|
40708
|
+
## Notices
|
|
40709
|
+
|
|
40710
|
+
You must ensure that everyone who gets a copy of
|
|
40711
|
+
any part of this software from you, with or without
|
|
40712
|
+
changes, also gets the text of this license or a link to
|
|
40713
|
+
<https://blueoakcouncil.org/license/1.0.0>.
|
|
40714
|
+
|
|
40715
|
+
## Excuse
|
|
40716
|
+
|
|
40717
|
+
If anyone notifies you in writing that you have not
|
|
40718
|
+
complied with [Notices](#notices), you can keep your
|
|
40719
|
+
license by taking all practical steps to comply within 30
|
|
40720
|
+
days after the notice. If you do not do so, your license
|
|
40721
|
+
ends immediately.
|
|
40722
|
+
|
|
40723
|
+
## Patent
|
|
40724
|
+
|
|
40725
|
+
Each contributor licenses you to do everything with this
|
|
40726
|
+
software that would otherwise infringe any patent claims
|
|
40727
|
+
they can license or become able to license.
|
|
40728
|
+
|
|
40729
|
+
## Reliability
|
|
40730
|
+
|
|
40731
|
+
No contributor can revoke this license.
|
|
40732
|
+
|
|
40733
|
+
## No Liability
|
|
40734
|
+
|
|
40735
|
+
***As far as the law allows, this software comes as is,
|
|
40736
|
+
without any warranty or condition, and no contributor
|
|
40737
|
+
will be liable to anyone for any damages related to this
|
|
40738
|
+
software or this license, under any kind of legal claim.***
|
|
40739
|
+
|
|
40740
|
+
---
|
|
40741
|
+
|
|
40629
40742
|
The following software may be included in this product: json-schema (0.4.0)
|
|
40630
40743
|
This software contains the following license and notice below:
|
|
40631
40744
|
|
package/package.json
CHANGED
|
@@ -25,14 +25,18 @@ import {
|
|
|
25
25
|
Runtime,
|
|
26
26
|
RuntimeProps,
|
|
27
27
|
} from '@aws-cdk/aws-bedrock-agentcore-alpha';
|
|
28
|
+
import { IGrantable, IPrincipal, Grant } from 'aws-cdk-lib/aws-iam';
|
|
28
29
|
import { RuntimeConfig } from '../../../core/runtime-config.js';
|
|
29
30
|
|
|
30
31
|
export type SnapshotBedrockServerProps = Omit<
|
|
31
32
|
RuntimeProps,
|
|
32
|
-
|
|
33
|
+
| 'runtimeName'
|
|
34
|
+
| 'protocolConfiguration'
|
|
35
|
+
| 'agentRuntimeArtifact'
|
|
36
|
+
| 'authorizerConfiguration'
|
|
33
37
|
>;
|
|
34
38
|
|
|
35
|
-
export class SnapshotBedrockServer extends Construct {
|
|
39
|
+
export class SnapshotBedrockServer extends Construct implements IGrantable {
|
|
36
40
|
public readonly dockerImage: AgentRuntimeArtifact;
|
|
37
41
|
public readonly agentCoreRuntime: Runtime;
|
|
38
42
|
|
|
@@ -77,6 +81,31 @@ export class SnapshotBedrockServer extends Construct {
|
|
|
77
81
|
SnapshotBedrockServer: this.agentCoreRuntime.agentRuntimeArn,
|
|
78
82
|
});
|
|
79
83
|
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* The principal to grant permissions to.
|
|
87
|
+
*/
|
|
88
|
+
public get grantPrincipal(): IPrincipal {
|
|
89
|
+
return this.agentCoreRuntime.grantPrincipal;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Grants IAM permissions to invoke this agent runtime.
|
|
94
|
+
*
|
|
95
|
+
* @param grantee - The IAM principal to grant permissions to
|
|
96
|
+
*/
|
|
97
|
+
public grantInvokeAccess(grantee: IGrantable) {
|
|
98
|
+
this.agentCoreRuntime.grantInvoke(grantee);
|
|
99
|
+
|
|
100
|
+
Grant.addToPrincipal({
|
|
101
|
+
grantee,
|
|
102
|
+
actions: ['bedrock-agentcore:InvokeAgentRuntimeWithWebSocketStream'],
|
|
103
|
+
resourceArns: [
|
|
104
|
+
this.agentCoreRuntime.agentRuntimeArn,
|
|
105
|
+
\`\${this.agentCoreRuntime.agentRuntimeArn}/*\`,
|
|
106
|
+
],
|
|
107
|
+
});
|
|
108
|
+
}
|
|
80
109
|
}
|
|
81
110
|
"
|
|
82
111
|
`;
|
|
@@ -491,12 +520,6 @@ module "agent_core_runtime" {
|
|
|
491
520
|
agent_runtime_name = "TerraformSnapshotServer"
|
|
492
521
|
docker_image_tag = "proj-terraform-snapshot-server:latest"
|
|
493
522
|
server_protocol = "MCP"
|
|
494
|
-
# authorizer_configuration = {
|
|
495
|
-
# custom_jwt_authorizer = {
|
|
496
|
-
# discovery_url = "https://xxx/.well-known/openid-configuration"
|
|
497
|
-
# allowed_clients = [ "xxx" ]
|
|
498
|
-
# }
|
|
499
|
-
# }
|
|
500
523
|
|
|
501
524
|
env = merge({
|
|
502
525
|
RUNTIME_CONFIG_APP_ID = module.appconfig.application_id
|
|
@@ -40,6 +40,7 @@ const pyMcpServerGenerator = async (tree, options) => {
|
|
|
40
40
|
const mcpServerNameClassName = (0, names_1.toClassName)(name);
|
|
41
41
|
const targetSourceDir = (0, devkit_1.joinPathFragments)(project.sourceRoot, mcpServerNameSnakeCase);
|
|
42
42
|
const computeType = options.computeType ?? 'BedrockAgentCoreRuntime';
|
|
43
|
+
const auth = options.auth ?? 'IAM';
|
|
43
44
|
// Generate example server
|
|
44
45
|
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'app'), targetSourceDir, {
|
|
45
46
|
name,
|
|
@@ -102,6 +103,7 @@ const pyMcpServerGenerator = async (tree, options) => {
|
|
|
102
103
|
projectName: project.name,
|
|
103
104
|
dockerImageTag,
|
|
104
105
|
iacProvider,
|
|
106
|
+
auth,
|
|
105
107
|
});
|
|
106
108
|
}
|
|
107
109
|
const localDevPort = (0, port_1.assignPort)(tree, project, 8000);
|
|
@@ -161,6 +163,7 @@ const pyMcpServerGenerator = async (tree, options) => {
|
|
|
161
163
|
(0, nx_1.addComponentGeneratorMetadata)(tree, project.name, exports.PY_MCP_SERVER_GENERATOR_INFO, (0, paths_1.toProjectRelativePath)(project, targetSourceDir), mcpTargetPrefix, {
|
|
162
164
|
port: localDevPort,
|
|
163
165
|
rc: mcpServerNameClassName,
|
|
166
|
+
auth,
|
|
164
167
|
});
|
|
165
168
|
await (0, metrics_1.addGeneratorMetricsIfApplicable)(tree, [exports.PY_MCP_SERVER_GENERATOR_INFO]);
|
|
166
169
|
await (0, format_1.formatFilesInSubtree)(tree);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/mcp-server/generator.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCASoB;AAEpB,uCAKwB;AACxB,iDAAsE;AACtE,+CAA0D;AAC1D,6CAAwE;AACxE,uCAAgE;AAChE,qDAAoD;AACpD,mGAA4F;
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/mcp-server/generator.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCASoB;AAEpB,uCAKwB;AACxB,iDAAsE;AACtE,+CAA0D;AAC1D,6CAAwE;AACxE,uCAAgE;AAChE,qDAAoD;AACpD,mGAA4F;AAE5F,qEAA0E;AAC1E,sDAAkE;AAClE,mDAAoD;AACpD,yDAA6D;AAC7D,yCAAqD;AACrD,2CAA8C;AAC9C,6CAA0D;AAE7C,QAAA,4BAA4B,GACvC,IAAA,qBAAgB,EAAC,UAAU,CAAC,CAAC;AAExB,MAAM,oBAAoB,GAAG,KAAK,EACvC,IAAU,EACV,OAAmC,EACP,EAAE;IAC9B,MAAM,OAAO,GAAG,IAAA,wCAAmC,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3E,MAAM,aAAa,GAAG,IAAA,0BAAiB,EAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAExE,iDAAiD;IACjD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,uBAAuB,OAAO,CAAC,OAAO,qDAAqD,CAC5F,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,gIAAgI,CACjI,CAAC;IACJ,CAAC;IAED,mDAAmD;IACnD,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEvD,MAAM,IAAI,GAAG,IAAA,iBAAS,EACpB,OAAO,CAAC,IAAI,IAAI,GAAG,IAAA,iBAAS,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,aAAa,CACzE,CAAC;IACF,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;IAE3D,MAAM,sBAAsB,GAAG,IAAA,mBAAW,EAAC,OAAO,CAAC,IAAI,IAAI,YAAY,CAAC,CAAC;IACzE,MAAM,sBAAsB,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,CAAC;IAEjD,MAAM,eAAe,GAAG,IAAA,0BAAiB,EACvC,OAAO,CAAC,UAAU,EAClB,sBAAsB,CACvB,CAAC;IAEF,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,yBAAyB,CAAC;IACrE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC;IAEnC,0BAA0B;IAC1B,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,EAC5C,eAAe,EACf;QACE,IAAI;QACJ,sBAAsB;QACtB,sBAAsB;QACtB,UAAU;KACX,EACD,EAAE,iBAAiB,EAAE,0BAAiB,CAAC,YAAY,EAAE,CACtD,CAAC;IAEF,IAAA,mCAA8B,EAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;QACjD,uBAAuB;QACvB,KAAK;QACL,SAAS;QACT,OAAO;QACP,0BAA0B;KAC3B,CAAC,CAAC;IAEH,IAAI,WAAW,KAAK,yBAAyB,EAAE,CAAC;QAC9C,MAAM,cAAc,GAAG,GAAG,IAAA,uBAAW,EAAC,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC;QAE7D,oBAAoB;QACpB,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAAG,IAAA,8BAAqB,EACjE,OAAO,EACP;YACE,cAAc,EAAE,uBAAuB;SACxC,CACF,CAAC;QAEF,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,EAC/C,eAAe,EACf;YACE,sBAAsB;YACtB,UAAU;YACV,eAAe;SAChB,EACD,EAAE,iBAAiB,EAAE,0BAAiB,CAAC,YAAY,EAAE,CACtD,CAAC;QAEF,MAAM,gBAAgB,GAAG,GAAG,eAAe,SAAS,CAAC;QAErD,kDAAkD;QAClD,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG;YAClC,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,iBAAiB;YAC3B,OAAO,EAAE;gBACP,QAAQ,EAAE;oBACR,0CAA0C,cAAc,IAAI,eAAe,8BAA8B;iBAC1G;gBACD,QAAQ,EAAE,KAAK;aAChB;YACD,SAAS,EAAE,CAAC,gBAAgB,CAAC;SAC9B,CAAC;QAEF,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG;YACvB,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM;YACzB,SAAS,EAAE;gBACT,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,CACjD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,gBAAgB,CAC9B;gBACD,gBAAgB;aACjB;SACF,CAAC;QAEF,OAAO,CAAC,OAAO,CAAC,KAAK,GAAG;YACtB,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK;YACxB,SAAS,EAAE;gBACT,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,CAChD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CACtB;gBACD,QAAQ;aACT;SACF,CAAC;QAEF,wBAAwB;QACxB,MAAM,WAAW,GAAG,MAAM,IAAA,wBAAkB,EAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QACxE,MAAM,IAAA,6CAAyB,EAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAEvD,6CAA6C;QAC7C,MAAM,IAAA,yCAAiB,EAAC,IAAI,EAAE;YAC5B,sBAAsB,EAAE,IAAI;YAC5B,sBAAsB;YACtB,WAAW,EAAE,OAAO,CAAC,IAAI;YACzB,cAAc;YACd,WAAW;YACX,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED,MAAM,YAAY,GAAG,IAAA,iBAAU,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAErD,IAAA,mCAA0B,EAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;QAC7C,GAAG,OAAO;QACV,OAAO,EAAE;YACP,GAAG,OAAO,CAAC,OAAO;YAClB,yCAAyC;YACzC,CAAC,GAAG,eAAe,cAAc,CAAC,EAAE;gBAClC,QAAQ,EAAE,iBAAiB;gBAC3B,OAAO,EAAE;oBACP,QAAQ,EAAE,CAAC,aAAa,UAAU,IAAI,sBAAsB,QAAQ,CAAC;oBACrE,GAAG,EAAE,eAAe;iBACrB;gBACD,UAAU,EAAE,IAAI;aACjB;YACD,CAAC,GAAG,eAAe,QAAQ,CAAC,EAAE;gBAC5B,QAAQ,EAAE,iBAAiB;gBAC3B,OAAO,EAAE;oBACP,QAAQ,EAAE;wBACR,2BAA2B,UAAU,IAAI,sBAAsB,mCAAmC,YAAY,EAAE;qBACjH;oBACD,GAAG,EAAE,eAAe;oBACpB,GAAG,EAAE;wBACH,IAAI,EAAE,GAAG,YAAY,EAAE;qBACxB;iBACF;gBACD,UAAU,EAAE,IAAI;aACjB;YACD,CAAC,GAAG,eAAe,cAAc,CAAC,EAAE;gBAClC,QAAQ,EAAE,iBAAiB;gBAC3B,OAAO,EAAE;oBACP,QAAQ,EAAE;wBACR,2BAA2B,UAAU,IAAI,sBAAsB,mCAAmC,YAAY,EAAE;qBACjH;oBACD,GAAG,EAAE,eAAe;oBACpB,GAAG,EAAE;wBACH,IAAI,EAAE,GAAG,YAAY,EAAE;wBACvB,WAAW,EAAE,MAAM;qBACpB;iBACF;gBACD,UAAU,EAAE,IAAI;aACjB;YACD,CAAC,GAAG,eAAe,UAAU,CAAC,EAAE;gBAC9B,QAAQ,EAAE,iBAAiB;gBAC3B,OAAO,EAAE;oBACP,QAAQ,EAAE;wBACR,8BAA8B,UAAU,IAAI,sBAAsB,QAAQ;qBAC3E;oBACD,GAAG,EAAE,eAAe;iBACrB;gBACD,UAAU,EAAE,IAAI;aACjB;SACF;KACF,CAAC,CAAC;IAEH,IAAA,qCAA4B,EAC1B,IAAI,EACJ,EAAE,EACF,IAAA,uBAAY,EAAC,CAAC,iCAAiC,CAAC,CAAC,CAClD,CAAC;IAEF,IAAA,kCAA6B,EAC3B,IAAI,EACJ,OAAO,CAAC,IAAI,EACZ,oCAA4B,EAC5B,IAAA,6BAAqB,EAAC,OAAO,EAAE,eAAe,CAAC,EAC/C,eAAe,EACf;QACE,IAAI,EAAE,YAAY;QAClB,EAAE,EAAE,sBAAsB;QAC1B,IAAI;KACL,CACF,CAAC;IAEF,MAAM,IAAA,yCAA+B,EAAC,IAAI,EAAE,CAAC,oCAA4B,CAAC,CAAC,CAAC;IAE5E,MAAM,IAAA,6BAAoB,EAAC,IAAI,CAAC,CAAC;IACjC,OAAO,KAAK,IAAI,EAAE;QAChB,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,IAAI,wBAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,oBAAM,EAAE,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;IAChE,CAAC,CAAC;AACJ,CAAC,CAAC;AAzNW,QAAA,oBAAoB,wBAyN/B;AAEF,kBAAe,4BAAoB,CAAC"}
|
|
@@ -7,6 +7,8 @@ import { IacProviderOption } from '../../utils/iac';
|
|
|
7
7
|
|
|
8
8
|
export type PyMcpServerComputeType = 'None' | 'BedrockAgentCoreRuntime';
|
|
9
9
|
|
|
10
|
+
export type PyMcpServerAuth = 'IAM' | 'Cognito';
|
|
11
|
+
|
|
10
12
|
/**
|
|
11
13
|
* TypeScript types for options defined in schema.json
|
|
12
14
|
* Update this to match schema.json if you make changes.
|
|
@@ -15,5 +17,6 @@ export interface PyMcpServerGeneratorSchema {
|
|
|
15
17
|
project: string;
|
|
16
18
|
name?: string;
|
|
17
19
|
computeType?: PyMcpServerComputeType;
|
|
20
|
+
auth?: PyMcpServerAuth;
|
|
18
21
|
iacProvider: IacProviderOption;
|
|
19
22
|
}
|
|
@@ -28,6 +28,14 @@
|
|
|
28
28
|
"description": "The name of your MCP server (default: mcp-server)",
|
|
29
29
|
"x-prompt": "What would you like to call your MCP server? (default: mcp-server)"
|
|
30
30
|
},
|
|
31
|
+
"auth": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"description": "The method used to authenticate with your MCP server. Choose between IAM (default) or Cognito.",
|
|
34
|
+
"default": "IAM",
|
|
35
|
+
"enum": ["IAM", "Cognito"],
|
|
36
|
+
"x-prompt": "How would you like to authenticate with your MCP server?",
|
|
37
|
+
"x-priority": "important"
|
|
38
|
+
},
|
|
31
39
|
"iacProvider": {
|
|
32
40
|
"type": "string",
|
|
33
41
|
"description": "The preferred IaC provider. By default this is inherited from your initial selection.",
|
|
@@ -31,14 +31,18 @@ import {
|
|
|
31
31
|
Runtime,
|
|
32
32
|
RuntimeProps,
|
|
33
33
|
} from '@aws-cdk/aws-bedrock-agentcore-alpha';
|
|
34
|
+
import { IGrantable, IPrincipal, Grant } from 'aws-cdk-lib/aws-iam';
|
|
34
35
|
import { RuntimeConfig } from '../../../core/runtime-config.js';
|
|
35
36
|
|
|
36
37
|
export type SnapshotBedrockAgentProps = Omit<
|
|
37
38
|
RuntimeProps,
|
|
38
|
-
|
|
39
|
+
| 'runtimeName'
|
|
40
|
+
| 'protocolConfiguration'
|
|
41
|
+
| 'agentRuntimeArtifact'
|
|
42
|
+
| 'authorizerConfiguration'
|
|
39
43
|
>;
|
|
40
44
|
|
|
41
|
-
export class SnapshotBedrockAgent extends Construct {
|
|
45
|
+
export class SnapshotBedrockAgent extends Construct implements IGrantable {
|
|
42
46
|
public readonly dockerImage: AgentRuntimeArtifact;
|
|
43
47
|
public readonly agentCoreRuntime: Runtime;
|
|
44
48
|
|
|
@@ -79,6 +83,31 @@ export class SnapshotBedrockAgent extends Construct {
|
|
|
79
83
|
SnapshotBedrockAgent: this.agentCoreRuntime.agentRuntimeArn,
|
|
80
84
|
});
|
|
81
85
|
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* The principal to grant permissions to.
|
|
89
|
+
*/
|
|
90
|
+
public get grantPrincipal(): IPrincipal {
|
|
91
|
+
return this.agentCoreRuntime.grantPrincipal;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Grants IAM permissions to invoke this agent runtime.
|
|
96
|
+
*
|
|
97
|
+
* @param grantee - The IAM principal to grant permissions to
|
|
98
|
+
*/
|
|
99
|
+
public grantInvokeAccess(grantee: IGrantable) {
|
|
100
|
+
this.agentCoreRuntime.grantInvoke(grantee);
|
|
101
|
+
|
|
102
|
+
Grant.addToPrincipal({
|
|
103
|
+
grantee,
|
|
104
|
+
actions: ['bedrock-agentcore:InvokeAgentRuntimeWithWebSocketStream'],
|
|
105
|
+
resourceArns: [
|
|
106
|
+
this.agentCoreRuntime.agentRuntimeArn,
|
|
107
|
+
\`\${this.agentCoreRuntime.agentRuntimeArn}/*\`,
|
|
108
|
+
],
|
|
109
|
+
});
|
|
110
|
+
}
|
|
82
111
|
}
|
|
83
112
|
"
|
|
84
113
|
`;
|
|
@@ -134,12 +163,6 @@ module "agent_core_runtime" {
|
|
|
134
163
|
agent_runtime_name = "TerraformSnapshotAgent"
|
|
135
164
|
docker_image_tag = "proj-terraform-snapshot-agent:latest"
|
|
136
165
|
server_protocol = "HTTP"
|
|
137
|
-
# authorizer_configuration = {
|
|
138
|
-
# custom_jwt_authorizer = {
|
|
139
|
-
# discovery_url = "https://xxx/.well-known/openid-configuration"
|
|
140
|
-
# allowed_clients = [ "xxx" ]
|
|
141
|
-
# }
|
|
142
|
-
# }
|
|
143
166
|
|
|
144
167
|
env = merge({
|
|
145
168
|
RUNTIME_CONFIG_APP_ID = module.appconfig.application_id
|
|
@@ -39,6 +39,7 @@ const pyStrandsAgentGenerator = async (tree, options) => {
|
|
|
39
39
|
const agentNameClassName = (0, names_1.toClassName)(name);
|
|
40
40
|
const targetSourceDir = (0, devkit_1.joinPathFragments)(project.sourceRoot, agentNameSnakeCase);
|
|
41
41
|
const computeType = options.computeType ?? 'BedrockAgentCoreRuntime';
|
|
42
|
+
const auth = options.auth ?? 'IAM';
|
|
42
43
|
// Generate example agent
|
|
43
44
|
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'app'), targetSourceDir, {
|
|
44
45
|
name,
|
|
@@ -97,6 +98,7 @@ const pyStrandsAgentGenerator = async (tree, options) => {
|
|
|
97
98
|
dockerImageTag,
|
|
98
99
|
iacProvider,
|
|
99
100
|
projectName: project.name,
|
|
101
|
+
auth,
|
|
100
102
|
});
|
|
101
103
|
}
|
|
102
104
|
// NB: we assign the local dev port from 8081 as 8080 is used by vscode server, and so conflicts
|
|
@@ -135,6 +137,7 @@ const pyStrandsAgentGenerator = async (tree, options) => {
|
|
|
135
137
|
(0, nx_1.addComponentGeneratorMetadata)(tree, project.name, exports.PY_STRANDS_AGENT_GENERATOR_INFO, (0, paths_1.toProjectRelativePath)(project, targetSourceDir), agentTargetPrefix, {
|
|
136
138
|
port: localDevPort,
|
|
137
139
|
rc: agentNameClassName,
|
|
140
|
+
auth,
|
|
138
141
|
});
|
|
139
142
|
await (0, metrics_1.addGeneratorMetricsIfApplicable)(tree, [
|
|
140
143
|
exports.PY_STRANDS_AGENT_GENERATOR_INFO,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/strands-agent/generator.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCAQoB;AAEpB,uCAMwB;AACxB,iDAAsE;AACtE,+CAA0D;AAC1D,6CAAwE;AACxE,uCAGwB;AACxB,mGAAwF;
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/strands-agent/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,9 @@ const pyStrandsAgentMcpConnectionGenerator = async (tree, options) => {
|
|
|
24
24
|
if (!agentComponent || !mcpComponent) {
|
|
25
25
|
throw new Error('Both sourceComponent and targetComponent must be provided for py#strands-agent -> mcp connections');
|
|
26
26
|
}
|
|
27
|
+
if (mcpComponent.auth && mcpComponent.auth !== 'IAM') {
|
|
28
|
+
throw new Error(`MCP server connection currently only supports IAM authentication, but '${mcpComponent.name}' uses '${mcpComponent.auth}' authentication.`);
|
|
29
|
+
}
|
|
27
30
|
const mcpComponentName = mcpComponent.name ?? 'mcp-server';
|
|
28
31
|
const mcpServerClassName = mcpComponent.rc;
|
|
29
32
|
const mcpServerSnakeCase = (0, names_1.snakeCase)(mcpServerClassName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/py/strands-agent/mcp-connection/generator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/py/strands-agent/mcp-connection/generator.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCAQoB;AAEpB,0CAI2B;AAC3B,oDAAyE;AACzE,kDAA6D;AAC7D,gDAAiD;AACjD,0CAG2B;AAC3B,uFAM0D;AAC1D,4CAA8D;AAE9D,qDAAqD;AACrD,MAAM,EAAE,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,oBAAoB,OAAO,EAAE,CAAC;AAEjD,QAAA,8CAA8C,GACzD,IAAA,qBAAgB,EAAC,UAAU,CAAC,CAAC;AAExB,MAAM,oCAAoC,GAAG,KAAK,EACvD,IAAU,EACV,OAAmD,EACvB,EAAE;IAC9B,MAAM,aAAa,GAAG,IAAA,wCAAmC,EACvD,IAAI,EACJ,OAAO,CAAC,aAAa,CACtB,CAAC;IACF,MAAM,aAAa,GAAG,IAAA,wCAAmC,EACvD,IAAI,EACJ,OAAO,CAAC,aAAa,CACtB,CAAC;IAEF,MAAM,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAC/C,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC;IAE7C,IAAI,CAAC,cAAc,IAAI,CAAC,YAAY,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,mGAAmG,CACpG,CAAC;IACJ,CAAC;IAED,IAAI,YAAY,CAAC,IAAI,IAAI,YAAY,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CACb,0EAA0E,YAAY,CAAC,IAAI,WAAW,YAAY,CAAC,IAAI,mBAAmB,CAC3I,CAAC;IACJ,CAAC;IAED,MAAM,gBAAgB,GAAG,YAAY,CAAC,IAAI,IAAI,YAAY,CAAC;IAC3D,MAAM,kBAAkB,GAAG,YAAY,CAAC,EAAY,CAAC;IACrD,MAAM,kBAAkB,GAAG,IAAA,iBAAS,EAAC,kBAAkB,CAAC,CAAC;IACzD,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,IAAI,IAAI,CAAC;IAEhD,8DAA8D;IAC9D,MAAM,IAAA,qDAAkC,EAAC,IAAI,CAAC,CAAC;IAE/C,MAAM,yBAAyB,GAAG,IAAA,qDAAkC,EAAC,IAAI,CAAC,CAAC;IAC3E,MAAM,yBAAyB,GAAG,IAAA,qDAAkC,EAAC,IAAI,CAAC,CAAC;IAC3E,MAAM,0BAA0B,GAAG,IAAA,sDAAmC,EAAC,IAAI,CAAC,CAAC;IAE7E,iFAAiF;IACjF,MAAM,MAAM,GAAG,IAAA,0BAAiB,EAC9B,yBAAyB,EACzB,yBAAyB,EACzB,KAAK,CACN,CAAC;IACF,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EAAC,SAAS,EAAE,OAAO,EAAE,kBAAkB,EAAE,KAAK,CAAC,EAChE,MAAM,EACN;QACE,kBAAkB;QAClB,kBAAkB;QAClB,aAAa;QACb,yBAAyB;KAC1B,EACD,EAAE,iBAAiB,EAAE,0BAAiB,CAAC,YAAY,EAAE,CACtD,CAAC;IAEF,gCAAgC;IAChC,MAAM,WAAW,GAAG,IAAA,0BAAiB,EAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC7D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,sCAAsC;IACtC,MAAM,cAAc,GAAG,IAAA,0BAAiB,EACtC,yBAAyB,EACzB,yBAAyB,EACzB,aAAa,CACd,CAAC;IACF,MAAM,IAAA,oCAAiB,EACrB,IAAI,EACJ,cAAc,EACd,QAAQ,kBAAkB,SAAS,EACnC,GAAG,kBAAkB,QAAQ,CAC9B,CAAC;IAEF,uEAAuE;IACvE,IAAA,mCAA8B,EAAC,IAAI,EAAE,yBAAyB,EAAE;QAC9D,uBAAuB;KACxB,CAAC,CAAC;IAEH,2DAA2D;IAC3D,MAAM,cAAc,GAAG,IAAA,0BAAiB,EACtC,aAAa,CAAC,IAAI,EAClB,cAAc,CAAC,IAAI,IAAI,KAAK,CAC7B,CAAC;IACF,MAAM,aAAa,GAAG,IAAA,0BAAiB,EAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IAEpE,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/B,MAAM,eAAe,GAAG,GAAG,kBAAkB,QAAQ,CAAC;QACtD,MAAM,aAAa,GAAG,kBAAkB,CAAC;QAEzC,MAAM,oBAAoB,CACxB,IAAI,EACJ,aAAa,EACb,yBAAyB,EACzB,eAAe,CAChB,CAAC;QACF,MAAM,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;QAC7D,MAAM,sBAAsB,CAC1B,IAAI,EACJ,aAAa,EACb,eAAe,EACf,aAAa,CACd,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,IAAA,sCAAiC,EAC/B,IAAI,EACJ,aAAa,CAAC,IAAI,EAClB,0BAA0B,CAC3B,CAAC;IAEF,4CAA4C;IAC5C,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,IAAI,OAAO,CAAC;IACjD,MAAM,oBAAoB,GAAG,GAAG,SAAS,cAAc,CAAC;IACxD,MAAM,uBAAuB,GAAG,GAAG,gBAAgB,cAAc,CAAC;IAElE,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAC3D,MAAM,CAAC,SAAS,GAAG;YACjB,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;YAC3B;gBACE,QAAQ,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC;gBAC9B,MAAM,EAAE,uBAAuB;aAChC;SACF,CAAC;QACF,IAAA,mCAA0B,EAAC,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,IAAA,yCAA+B,EAAC,IAAI,EAAE;QAC1C,sDAA8C;KAC/C,CAAC,CAAC;IAEH,MAAM,IAAA,6BAAoB,EAAC,IAAI,CAAC,CAAC;IACjC,OAAO,GAAG,EAAE;QACV,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC;AACJ,CAAC,CAAC;AA7IW,QAAA,oCAAoC,wCA6I/C;AAEF;;;;;;GAMG;AACH,MAAM,oBAAoB,GAAG,KAAK,EAChC,IAAU,EACV,QAAgB,EAChB,yBAAiC,EACjC,eAAuB,EACR,EAAE;IACjB,IAAI,MAAM,IAAA,iBAAW,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,eAAe,IAAI,CAAC,EAAE,CAAC;QAChE,OAAO;IACT,CAAC;IAED,iEAAiE;IACjE,MAAM,QAAQ,GAAG,MAAM,IAAA,iBAAW,EAChC,IAAI,EACJ,QAAQ,EACR,EAAE,CACA,UAAU,yBAAyB,0CAA0C,eAAe,MAAM,CACnG,CACF,CAAC;IAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,6DAA6D;QAC7D,+CAA+C;QAC/C,MAAM,IAAA,iBAAW,EACf,IAAI,EACJ,QAAQ,EACR,EAAE,CACA,qEAAqE,yBAAyB,WAAW,eAAe,IAAI,CAC7H,CACF,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,KAAK,EAC9B,IAAU,EACV,QAAgB,EAChB,aAAqB,EACN,EAAE;IACjB,IACE,MAAM,IAAA,iBAAW,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,aAAa,sBAAsB,CAAC,EAC3E,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,IAAA,iBAAW,EACf,IAAI,EACJ,QAAQ,EACR,EAAE,CAAC;2BACoB,aAAa;;kBAEtB,aAAa;;kDAEmB,aAAa;;EAE7D,CAAC,CACA,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,sBAAsB,GAAG,KAAK,EAClC,IAAU,EACV,QAAgB,EAChB,eAAuB,EACvB,aAAqB,EACN,EAAE;IACjB,IAAI,MAAM,IAAA,iBAAW,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,eAAe,eAAe,CAAC,EAAE,CAAC;QAC3E,OAAO;IACT,CAAC;IAED,sDAAsD;IACtD,6EAA6E;IAC7E,MAAM,WAAW,GAAG,MAAM,IAAA,iBAAW,EACnC,IAAI,EACJ,QAAQ,EACR,EAAE,CAAC;6BACsB,aAAa;kBACxB,aAAa;EAC7B,CAAC,CACA,CAAC;IAEF,IAAI,WAAW,EAAE,CAAC;QAChB,wEAAwE;QACxE,MAAM,IAAA,iBAAW,EACf,IAAI,EACJ,QAAQ,EACR,EAAE,CAAC;+BACsB,eAAe;iBAC7B,aAAa,MAAM,eAAe;EACjD,CAAC,CACE,CAAC;QACF,OAAO;IACT,CAAC;IAED,0EAA0E;IAC1E,uEAAuE;IACvE,uEAAuE;IACvE,MAAM,IAAA,iBAAW,EACf,IAAI,EACJ,QAAQ,EACR,EAAE,CAAC;;;;;MAKD,aAAa,MAAM,eAAe;;UAE9B,aAAa;;gBAEP,CAAC,CACd,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,4CAAoC,CAAC"}
|
|
@@ -7,9 +7,12 @@ import { IacProviderOption } from '../../utils/iac';
|
|
|
7
7
|
|
|
8
8
|
export type PyStrandsAgentComputeType = 'BedrockAgentCoreRuntime' | 'None';
|
|
9
9
|
|
|
10
|
+
export type PyStrandsAgentAuth = 'IAM' | 'Cognito';
|
|
11
|
+
|
|
10
12
|
export interface PyStrandsAgentGeneratorSchema {
|
|
11
13
|
project: string;
|
|
12
14
|
name?: string;
|
|
13
15
|
computeType?: PyStrandsAgentComputeType;
|
|
16
|
+
auth?: PyStrandsAgentAuth;
|
|
14
17
|
iacProvider: IacProviderOption;
|
|
15
18
|
}
|
|
@@ -28,6 +28,14 @@
|
|
|
28
28
|
"description": "The name of your Strands Agent (default: agent)",
|
|
29
29
|
"x-prompt": "What would you like to call your Strands Agent? (default: agent)"
|
|
30
30
|
},
|
|
31
|
+
"auth": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"description": "The method used to authenticate with your Strands Agent. Choose between IAM (default) or Cognito.",
|
|
34
|
+
"default": "IAM",
|
|
35
|
+
"enum": ["IAM", "Cognito"],
|
|
36
|
+
"x-prompt": "How would you like to authenticate with your Strands Agent?",
|
|
37
|
+
"x-priority": "important"
|
|
38
|
+
},
|
|
31
39
|
"iacProvider": {
|
|
32
40
|
"type": "string",
|
|
33
41
|
"description": "The preferred IaC provider. By default this is inherited from your initial selection.",
|
|
@@ -25,14 +25,18 @@ import {
|
|
|
25
25
|
Runtime,
|
|
26
26
|
RuntimeProps,
|
|
27
27
|
} from '@aws-cdk/aws-bedrock-agentcore-alpha';
|
|
28
|
+
import { IGrantable, IPrincipal, Grant } from 'aws-cdk-lib/aws-iam';
|
|
28
29
|
import { RuntimeConfig } from '../../../core/runtime-config.js';
|
|
29
30
|
|
|
30
31
|
export type SnapshotBedrockServerProps = Omit<
|
|
31
32
|
RuntimeProps,
|
|
32
|
-
|
|
33
|
+
| 'runtimeName'
|
|
34
|
+
| 'protocolConfiguration'
|
|
35
|
+
| 'agentRuntimeArtifact'
|
|
36
|
+
| 'authorizerConfiguration'
|
|
33
37
|
>;
|
|
34
38
|
|
|
35
|
-
export class SnapshotBedrockServer extends Construct {
|
|
39
|
+
export class SnapshotBedrockServer extends Construct implements IGrantable {
|
|
36
40
|
public readonly dockerImage: AgentRuntimeArtifact;
|
|
37
41
|
public readonly agentCoreRuntime: Runtime;
|
|
38
42
|
|
|
@@ -77,6 +81,31 @@ export class SnapshotBedrockServer extends Construct {
|
|
|
77
81
|
SnapshotBedrockServer: this.agentCoreRuntime.agentRuntimeArn,
|
|
78
82
|
});
|
|
79
83
|
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* The principal to grant permissions to.
|
|
87
|
+
*/
|
|
88
|
+
public get grantPrincipal(): IPrincipal {
|
|
89
|
+
return this.agentCoreRuntime.grantPrincipal;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Grants IAM permissions to invoke this agent runtime.
|
|
94
|
+
*
|
|
95
|
+
* @param grantee - The IAM principal to grant permissions to
|
|
96
|
+
*/
|
|
97
|
+
public grantInvokeAccess(grantee: IGrantable) {
|
|
98
|
+
this.agentCoreRuntime.grantInvoke(grantee);
|
|
99
|
+
|
|
100
|
+
Grant.addToPrincipal({
|
|
101
|
+
grantee,
|
|
102
|
+
actions: ['bedrock-agentcore:InvokeAgentRuntimeWithWebSocketStream'],
|
|
103
|
+
resourceArns: [
|
|
104
|
+
this.agentCoreRuntime.agentRuntimeArn,
|
|
105
|
+
\`\${this.agentCoreRuntime.agentRuntimeArn}/*\`,
|
|
106
|
+
],
|
|
107
|
+
});
|
|
108
|
+
}
|
|
80
109
|
}
|
|
81
110
|
"
|
|
82
111
|
`;
|
|
@@ -491,12 +520,6 @@ module "agent_core_runtime" {
|
|
|
491
520
|
agent_runtime_name = "TerraformSnapshotServer"
|
|
492
521
|
docker_image_tag = "proj-terraform-snapshot-server:latest"
|
|
493
522
|
server_protocol = "MCP"
|
|
494
|
-
# authorizer_configuration = {
|
|
495
|
-
# custom_jwt_authorizer = {
|
|
496
|
-
# discovery_url = "https://xxx/.well-known/openid-configuration"
|
|
497
|
-
# allowed_clients = [ "xxx" ]
|
|
498
|
-
# }
|
|
499
|
-
# }
|
|
500
523
|
|
|
501
524
|
env = merge({
|
|
502
525
|
RUNTIME_CONFIG_APP_ID = module.appconfig.application_id
|
|
@@ -32,6 +32,7 @@ const tsMcpServerGenerator = async (tree, options) => {
|
|
|
32
32
|
const relativeSourceDir = targetSourceDir.replace(project.root + '/', './');
|
|
33
33
|
const distDir = (0, devkit_1.joinPathFragments)('dist', project.root);
|
|
34
34
|
const computeType = options.computeType ?? 'BedrockAgentCoreRuntime';
|
|
35
|
+
const auth = options.auth ?? 'IAM';
|
|
35
36
|
// Create a package.json if one doesn't exist, since we want to add the server as a bin target
|
|
36
37
|
const projectPackageJsonPath = (0, devkit_1.joinPathFragments)(project.root, 'package.json');
|
|
37
38
|
if (!tree.exists(projectPackageJsonPath)) {
|
|
@@ -102,6 +103,7 @@ const tsMcpServerGenerator = async (tree, options) => {
|
|
|
102
103
|
projectName: project.name,
|
|
103
104
|
dockerImageTag,
|
|
104
105
|
iacProvider,
|
|
106
|
+
auth,
|
|
105
107
|
});
|
|
106
108
|
}
|
|
107
109
|
else {
|
|
@@ -162,6 +164,7 @@ const tsMcpServerGenerator = async (tree, options) => {
|
|
|
162
164
|
(0, nx_1.addComponentGeneratorMetadata)(tree, project.name, exports.TS_MCP_SERVER_GENERATOR_INFO, targetSourceDirRelativeToProjectRoot, mcpTargetPrefix, {
|
|
163
165
|
port: localDevPort,
|
|
164
166
|
rc: mcpServerNameClassName,
|
|
167
|
+
auth,
|
|
165
168
|
});
|
|
166
169
|
await (0, metrics_1.addGeneratorMetricsIfApplicable)(tree, [exports.TS_MCP_SERVER_GENERATOR_INFO]);
|
|
167
170
|
await (0, format_1.formatFilesInSubtree)(tree);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/mcp-server/generator.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCAYoB;AAEpB,uCAMwB;AACxB,iDAAsE;AACtE,+CAA0D;AAC1D,mDAAiE;AACjE,6CAA2D;AAC3D,qEAA0E;AAC1E,mGAA4F;
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/mcp-server/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,8 @@ import { IacProviderOption } from '../../utils/iac';
|
|
|
7
7
|
|
|
8
8
|
export type TsMcpServerComputeType = 'None' | 'BedrockAgentCoreRuntime';
|
|
9
9
|
|
|
10
|
+
export type TsMcpServerAuth = 'IAM' | 'Cognito';
|
|
11
|
+
|
|
10
12
|
/**
|
|
11
13
|
* TypeScript types for options defined in schema.json
|
|
12
14
|
* Update this to match schema.json if you make changes.
|
|
@@ -15,5 +17,6 @@ export interface TsMcpServerGeneratorSchema {
|
|
|
15
17
|
project: string;
|
|
16
18
|
name?: string;
|
|
17
19
|
computeType?: TsMcpServerComputeType;
|
|
20
|
+
auth?: TsMcpServerAuth;
|
|
18
21
|
iacProvider: IacProviderOption;
|
|
19
22
|
}
|
|
@@ -28,6 +28,14 @@
|
|
|
28
28
|
"description": "The name of your MCP server (default: mcp-server)",
|
|
29
29
|
"x-prompt": "What would you like to call your MCP server? (default: mcp-server)"
|
|
30
30
|
},
|
|
31
|
+
"auth": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"description": "The method used to authenticate with your MCP server. Choose between IAM (default) or Cognito.",
|
|
34
|
+
"default": "IAM",
|
|
35
|
+
"enum": ["IAM", "Cognito"],
|
|
36
|
+
"x-prompt": "How would you like to authenticate with your MCP server?",
|
|
37
|
+
"x-priority": "important"
|
|
38
|
+
},
|
|
31
39
|
"iacProvider": {
|
|
32
40
|
"type": "string",
|
|
33
41
|
"description": "The preferred IaC provider. By default this is inherited from your initial selection.",
|
|
@@ -33,14 +33,18 @@ import {
|
|
|
33
33
|
Runtime,
|
|
34
34
|
RuntimeProps,
|
|
35
35
|
} from '@aws-cdk/aws-bedrock-agentcore-alpha';
|
|
36
|
+
import { IGrantable, IPrincipal, Grant } from 'aws-cdk-lib/aws-iam';
|
|
36
37
|
import { RuntimeConfig } from '../../../core/runtime-config.js';
|
|
37
38
|
|
|
38
39
|
export type SnapshotBedrockAgentProps = Omit<
|
|
39
40
|
RuntimeProps,
|
|
40
|
-
|
|
41
|
+
| 'runtimeName'
|
|
42
|
+
| 'protocolConfiguration'
|
|
43
|
+
| 'agentRuntimeArtifact'
|
|
44
|
+
| 'authorizerConfiguration'
|
|
41
45
|
>;
|
|
42
46
|
|
|
43
|
-
export class SnapshotBedrockAgent extends Construct {
|
|
47
|
+
export class SnapshotBedrockAgent extends Construct implements IGrantable {
|
|
44
48
|
public readonly dockerImage: AgentRuntimeArtifact;
|
|
45
49
|
public readonly agentCoreRuntime: Runtime;
|
|
46
50
|
|
|
@@ -81,6 +85,31 @@ export class SnapshotBedrockAgent extends Construct {
|
|
|
81
85
|
SnapshotBedrockAgent: this.agentCoreRuntime.agentRuntimeArn,
|
|
82
86
|
});
|
|
83
87
|
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* The principal to grant permissions to.
|
|
91
|
+
*/
|
|
92
|
+
public get grantPrincipal(): IPrincipal {
|
|
93
|
+
return this.agentCoreRuntime.grantPrincipal;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Grants IAM permissions to invoke this agent runtime.
|
|
98
|
+
*
|
|
99
|
+
* @param grantee - The IAM principal to grant permissions to
|
|
100
|
+
*/
|
|
101
|
+
public grantInvokeAccess(grantee: IGrantable) {
|
|
102
|
+
this.agentCoreRuntime.grantInvoke(grantee);
|
|
103
|
+
|
|
104
|
+
Grant.addToPrincipal({
|
|
105
|
+
grantee,
|
|
106
|
+
actions: ['bedrock-agentcore:InvokeAgentRuntimeWithWebSocketStream'],
|
|
107
|
+
resourceArns: [
|
|
108
|
+
this.agentCoreRuntime.agentRuntimeArn,
|
|
109
|
+
\`\${this.agentCoreRuntime.agentRuntimeArn}/*\`,
|
|
110
|
+
],
|
|
111
|
+
});
|
|
112
|
+
}
|
|
84
113
|
}
|
|
85
114
|
"
|
|
86
115
|
`;
|
|
@@ -136,12 +165,6 @@ module "agent_core_runtime" {
|
|
|
136
165
|
agent_runtime_name = "TerraformSnapshotAgent"
|
|
137
166
|
docker_image_tag = "proj-terraform-snapshot-agent:latest"
|
|
138
167
|
server_protocol = "HTTP"
|
|
139
|
-
# authorizer_configuration = {
|
|
140
|
-
# custom_jwt_authorizer = {
|
|
141
|
-
# discovery_url = "https://xxx/.well-known/openid-configuration"
|
|
142
|
-
# allowed_clients = [ "xxx" ]
|
|
143
|
-
# }
|
|
144
|
-
# }
|
|
145
168
|
|
|
146
169
|
env = merge({
|
|
147
170
|
RUNTIME_CONFIG_APP_ID = module.appconfig.application_id
|
|
@@ -32,6 +32,7 @@ const tsStrandsAgentGenerator = async (tree, options) => {
|
|
|
32
32
|
const relativeSourceDir = targetSourceDir.replace(project.root + '/', './');
|
|
33
33
|
const distDir = (0, devkit_1.joinPathFragments)('dist', project.root);
|
|
34
34
|
const computeType = options.computeType ?? 'BedrockAgentCoreRuntime';
|
|
35
|
+
const auth = options.auth ?? 'IAM';
|
|
35
36
|
// Generate example agent
|
|
36
37
|
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'app'), targetSourceDir, {
|
|
37
38
|
name,
|
|
@@ -71,6 +72,7 @@ const tsStrandsAgentGenerator = async (tree, options) => {
|
|
|
71
72
|
projectName: project.name,
|
|
72
73
|
dockerImageTag,
|
|
73
74
|
iacProvider,
|
|
75
|
+
auth,
|
|
74
76
|
});
|
|
75
77
|
}
|
|
76
78
|
// Add dependencies
|
|
@@ -120,7 +122,7 @@ const tsStrandsAgentGenerator = async (tree, options) => {
|
|
|
120
122
|
},
|
|
121
123
|
},
|
|
122
124
|
});
|
|
123
|
-
(0, nx_1.addComponentGeneratorMetadata)(tree, project.name, exports.TS_STRANDS_AGENT_GENERATOR_INFO, targetSourceDirRelativeToProjectRoot, agentTargetPrefix, { port: localDevPort, rc: agentNameClassName });
|
|
125
|
+
(0, nx_1.addComponentGeneratorMetadata)(tree, project.name, exports.TS_STRANDS_AGENT_GENERATOR_INFO, targetSourceDirRelativeToProjectRoot, agentTargetPrefix, { port: localDevPort, rc: agentNameClassName, auth });
|
|
124
126
|
await (0, metrics_1.addGeneratorMetricsIfApplicable)(tree, [
|
|
125
127
|
exports.TS_STRANDS_AGENT_GENERATOR_INFO,
|
|
126
128
|
]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/strands-agent/generator.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCASoB;AAEpB,uCAMwB;AACxB,iDAAsE;AACtE,+CAA0D;AAC1D,6CAA2D;AAC3D,mDAAiE;AACjE,qDAAoD;AACpD,sDAAsE;AACtE,yCAAqD;AACrD,qEAA0E;AAC1E,mGAAwF;
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/strands-agent/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,9 @@ const tsStrandsAgentMcpConnectionGenerator = async (tree, options) => {
|
|
|
23
23
|
if (!agentComponent || !mcpComponent) {
|
|
24
24
|
throw new Error('Both sourceComponent and targetComponent must be provided for ts#strands-agent -> mcp connections');
|
|
25
25
|
}
|
|
26
|
+
if (mcpComponent.auth && mcpComponent.auth !== 'IAM') {
|
|
27
|
+
throw new Error(`MCP server connection currently only supports IAM authentication, but '${mcpComponent.name}' uses '${mcpComponent.auth}' authentication.`);
|
|
28
|
+
}
|
|
26
29
|
const mcpComponentName = mcpComponent.name ?? 'mcp-server';
|
|
27
30
|
const mcpServerClassName = mcpComponent.rc;
|
|
28
31
|
const mcpServerKebabCase = (0, names_1.kebabCase)(mcpServerClassName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/ts/strands-agent/mcp-connection/generator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/ts/strands-agent/mcp-connection/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,9 +7,12 @@ import { IacProviderOption } from '../../utils/iac';
|
|
|
7
7
|
|
|
8
8
|
export type TsStrandsAgentComputeType = 'BedrockAgentCoreRuntime' | 'None';
|
|
9
9
|
|
|
10
|
+
export type TsStrandsAgentAuth = 'IAM' | 'Cognito';
|
|
11
|
+
|
|
10
12
|
export interface TsStrandsAgentGeneratorSchema {
|
|
11
13
|
project: string;
|
|
12
14
|
name?: string;
|
|
13
15
|
computeType?: TsStrandsAgentComputeType;
|
|
16
|
+
auth?: TsStrandsAgentAuth;
|
|
14
17
|
iacProvider: IacProviderOption;
|
|
15
18
|
}
|
|
@@ -28,6 +28,14 @@
|
|
|
28
28
|
"description": "The name of your Strands Agent (default: agent)",
|
|
29
29
|
"x-prompt": "What would you like to call your Strands Agent? (default: agent)"
|
|
30
30
|
},
|
|
31
|
+
"auth": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"description": "The method used to authenticate with your Strands Agent. Choose between IAM (default) or Cognito.",
|
|
34
|
+
"default": "IAM",
|
|
35
|
+
"enum": ["IAM", "Cognito"],
|
|
36
|
+
"x-prompt": "How would you like to authenticate with your Strands Agent?",
|
|
37
|
+
"x-priority": "important"
|
|
38
|
+
},
|
|
31
39
|
"iacProvider": {
|
|
32
40
|
"type": "string",
|
|
33
41
|
"description": "The preferred IaC provider. By default this is inherited from your initial selection.",
|
|
@@ -7,6 +7,7 @@ import { IacProvider } from '../iac';
|
|
|
7
7
|
type IACProvider = {
|
|
8
8
|
iacProvider: IacProvider;
|
|
9
9
|
};
|
|
10
|
+
export type AgentCoreAuth = 'IAM' | 'Cognito';
|
|
10
11
|
export interface AddAgentCoreInfraProps {
|
|
11
12
|
nameClassName: string;
|
|
12
13
|
nameKebabCase: string;
|
|
@@ -14,12 +15,14 @@ export interface AddAgentCoreInfraProps {
|
|
|
14
15
|
dockerImageTag: string;
|
|
15
16
|
appDirectory: string;
|
|
16
17
|
serverProtocol: 'MCP' | 'HTTP';
|
|
18
|
+
auth: AgentCoreAuth;
|
|
17
19
|
}
|
|
18
20
|
export interface AddMcpServerInfraProps {
|
|
19
21
|
mcpServerNameClassName: string;
|
|
20
22
|
mcpServerNameKebabCase: string;
|
|
21
23
|
projectName: string;
|
|
22
24
|
dockerImageTag: string;
|
|
25
|
+
auth: AgentCoreAuth;
|
|
23
26
|
}
|
|
24
27
|
/**
|
|
25
28
|
* Add an MCP server CDK construct
|
|
@@ -30,6 +33,7 @@ export interface AddAgentInfraProps {
|
|
|
30
33
|
agentNameKebabCase: string;
|
|
31
34
|
projectName: string;
|
|
32
35
|
dockerImageTag: string;
|
|
36
|
+
auth: AgentCoreAuth;
|
|
33
37
|
}
|
|
34
38
|
/**
|
|
35
39
|
* Add an MCP server CDK construct
|
|
@@ -68,6 +68,7 @@ const addMcpServerInfra = async (tree, options) => {
|
|
|
68
68
|
appDirectory: 'mcp-servers',
|
|
69
69
|
serverProtocol: 'MCP',
|
|
70
70
|
iacProvider: options.iacProvider,
|
|
71
|
+
auth: options.auth,
|
|
71
72
|
});
|
|
72
73
|
};
|
|
73
74
|
exports.addMcpServerInfra = addMcpServerInfra;
|
|
@@ -83,6 +84,7 @@ const addAgentInfra = async (tree, options) => {
|
|
|
83
84
|
appDirectory: 'agents',
|
|
84
85
|
serverProtocol: 'HTTP',
|
|
85
86
|
iacProvider: options.iacProvider,
|
|
87
|
+
auth: options.auth,
|
|
86
88
|
});
|
|
87
89
|
};
|
|
88
90
|
exports.addAgentInfra = addAgentInfra;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-core-constructs.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/utils/agent-core-constructs/agent-core-constructs.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCAQoB;AACpB,gFAIwC;AACxC,gCAAuC;AAEvC,0CAA2C;
|
|
1
|
+
{"version":3,"file":"agent-core-constructs.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/utils/agent-core-constructs/agent-core-constructs.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,19 +9,47 @@ import {
|
|
|
9
9
|
ProtocolType,
|
|
10
10
|
Runtime,
|
|
11
11
|
RuntimeProps,
|
|
12
|
+
<%_ if (auth === 'Cognito') { _%>
|
|
13
|
+
RuntimeAuthorizerConfiguration,
|
|
14
|
+
<%_ } _%>
|
|
12
15
|
} from '@aws-cdk/aws-bedrock-agentcore-alpha';
|
|
16
|
+
import { IGrantable, IPrincipal<%_ if (auth === 'IAM') { _%>, Grant<%_ } _%> } from 'aws-cdk-lib/aws-iam';
|
|
17
|
+
<%_ if (auth === 'Cognito') { _%>
|
|
18
|
+
import { IUserPool, IUserPoolClient } from 'aws-cdk-lib/aws-cognito';
|
|
19
|
+
<%_ } _%>
|
|
13
20
|
import { RuntimeConfig } from '../../../core/runtime-config.js';
|
|
14
21
|
|
|
22
|
+
<%_ if (auth === 'IAM') { _%>
|
|
15
23
|
export type <%- nameClassName %>Props = Omit<
|
|
16
24
|
RuntimeProps,
|
|
17
|
-
|
|
25
|
+
| 'runtimeName'
|
|
26
|
+
| 'protocolConfiguration'
|
|
27
|
+
| 'agentRuntimeArtifact'
|
|
28
|
+
| 'authorizerConfiguration'
|
|
18
29
|
>;
|
|
30
|
+
<%_ } else if (auth === 'Cognito') { _%>
|
|
31
|
+
export type <%- nameClassName %>Props = Omit<
|
|
32
|
+
RuntimeProps,
|
|
33
|
+
| 'runtimeName'
|
|
34
|
+
| 'protocolConfiguration'
|
|
35
|
+
| 'agentRuntimeArtifact'
|
|
36
|
+
| 'authorizerConfiguration'
|
|
37
|
+
> & {
|
|
38
|
+
/**
|
|
39
|
+
* Identity details for Cognito Authentication
|
|
40
|
+
*/
|
|
41
|
+
identity: {
|
|
42
|
+
userPool: IUserPool;
|
|
43
|
+
userPoolClient: IUserPoolClient;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
<%_ } _%>
|
|
19
47
|
|
|
20
|
-
export class <%- nameClassName %> extends Construct {
|
|
48
|
+
export class <%- nameClassName %> extends Construct implements IGrantable {
|
|
21
49
|
public readonly dockerImage: AgentRuntimeArtifact;
|
|
22
50
|
public readonly agentCoreRuntime: Runtime;
|
|
23
51
|
|
|
24
|
-
constructor(scope: Construct, id: string, props
|
|
52
|
+
constructor(scope: Construct, id: string, props<%_ if (auth !== 'Cognito') { _%>?<%_ } _%>: <%- nameClassName %>Props) {
|
|
25
53
|
super(scope, id);
|
|
26
54
|
|
|
27
55
|
const rc = RuntimeConfig.ensure(this);
|
|
@@ -37,6 +65,10 @@ export class <%- nameClassName %> extends Construct {
|
|
|
37
65
|
},
|
|
38
66
|
);
|
|
39
67
|
|
|
68
|
+
<%_ if (auth === 'Cognito') { _%>
|
|
69
|
+
const { identity, ...restProps } = props;
|
|
70
|
+
|
|
71
|
+
<%_ } _%>
|
|
40
72
|
this.agentCoreRuntime = new Runtime(this, '<%- nameClassName %>', {
|
|
41
73
|
runtimeName: Lazy.string({
|
|
42
74
|
produce: () =>
|
|
@@ -44,10 +76,22 @@ export class <%- nameClassName %> extends Construct {
|
|
|
44
76
|
}),
|
|
45
77
|
protocolConfiguration: ProtocolType.<%- serverProtocol %>,
|
|
46
78
|
agentRuntimeArtifact: this.dockerImage,
|
|
79
|
+
<%_ if (auth === 'Cognito') { _%>
|
|
80
|
+
authorizerConfiguration: RuntimeAuthorizerConfiguration.usingCognito(
|
|
81
|
+
identity.userPool,
|
|
82
|
+
[identity.userPoolClient],
|
|
83
|
+
),
|
|
84
|
+
...restProps,
|
|
85
|
+
<%_ } else { _%>
|
|
47
86
|
...props,
|
|
87
|
+
<%_ } _%>
|
|
48
88
|
environmentVariables: {
|
|
49
89
|
RUNTIME_CONFIG_APP_ID: rc.appConfigApplicationId,
|
|
90
|
+
<%_ if (auth === 'Cognito') { _%>
|
|
91
|
+
...restProps?.environmentVariables,
|
|
92
|
+
<%_ } else { _%>
|
|
50
93
|
...props?.environmentVariables,
|
|
94
|
+
<%_ } _%>
|
|
51
95
|
},
|
|
52
96
|
});
|
|
53
97
|
|
|
@@ -58,4 +102,31 @@ export class <%- nameClassName %> extends Construct {
|
|
|
58
102
|
<%- nameClassName %>: this.agentCoreRuntime.agentRuntimeArn,
|
|
59
103
|
});
|
|
60
104
|
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* The principal to grant permissions to.
|
|
108
|
+
*/
|
|
109
|
+
public get grantPrincipal(): IPrincipal {
|
|
110
|
+
return this.agentCoreRuntime.grantPrincipal;
|
|
111
|
+
}
|
|
112
|
+
<%_ if (auth === 'IAM') { _%>
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Grants IAM permissions to invoke this agent runtime.
|
|
116
|
+
*
|
|
117
|
+
* @param grantee - The IAM principal to grant permissions to
|
|
118
|
+
*/
|
|
119
|
+
public grantInvokeAccess(grantee: IGrantable) {
|
|
120
|
+
this.agentCoreRuntime.grantInvoke(grantee);
|
|
121
|
+
|
|
122
|
+
Grant.addToPrincipal({
|
|
123
|
+
grantee,
|
|
124
|
+
actions: ['bedrock-agentcore:InvokeAgentRuntimeWithWebSocketStream'],
|
|
125
|
+
resourceArns: [
|
|
126
|
+
this.agentCoreRuntime.agentRuntimeArn,
|
|
127
|
+
`${this.agentCoreRuntime.agentRuntimeArn}/*`,
|
|
128
|
+
],
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
<%_ } _%>
|
|
61
132
|
}
|
|
@@ -20,6 +20,24 @@ variable "tags" {
|
|
|
20
20
|
default = {}
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
<%_ if (auth === 'Cognito') { _%>
|
|
24
|
+
variable "user_pool_id" {
|
|
25
|
+
description = "ID of the user pool for cognito authentication"
|
|
26
|
+
type = string
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
variable "user_pool_client_ids" {
|
|
30
|
+
description = "IDs of the user pool clients for cognito authentication"
|
|
31
|
+
type = list(string)
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
data "aws_region" "current" {}
|
|
35
|
+
|
|
36
|
+
locals {
|
|
37
|
+
aws_region = data.aws_region.current.id
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
<%_ } _%>
|
|
23
41
|
module "appconfig" {
|
|
24
42
|
source = "../../../core/runtime-config/appconfig"
|
|
25
43
|
|
|
@@ -31,12 +49,14 @@ module "agent_core_runtime" {
|
|
|
31
49
|
agent_runtime_name = "<%= nameClassName %>"
|
|
32
50
|
docker_image_tag = "<%= dockerImageTag %>"
|
|
33
51
|
server_protocol = "<%= serverProtocol %>"
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
52
|
+
<%_ if (auth === 'Cognito') { _%>
|
|
53
|
+
authorizer_configuration = {
|
|
54
|
+
custom_jwt_authorizer = {
|
|
55
|
+
discovery_url = "https://cognito-idp.${local.aws_region}.amazonaws.com/${var.user_pool_id}/.well-known/openid-configuration"
|
|
56
|
+
allowed_clients = var.user_pool_client_ids
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
<%_ } _%>
|
|
40
60
|
|
|
41
61
|
env = merge({
|
|
42
62
|
RUNTIME_CONFIG_APP_ID = module.appconfig.application_id
|