From ebff73ef35b5c43e419ab92d2d3e58569256bf04 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 17 Jun 2026 21:18:39 +0000 Subject: [PATCH] chore: bump main to 0.20.0, preview to 1.0.0-preview.14 --- CHANGELOG.md | 25 ++ package.json | 2 +- preview-version.json | 2 +- schemas/agentcore.schema.v1.json | 730 +++++++++++++++++++++++++++---- 4 files changed, 671 insertions(+), 88 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 77083d68b..97d2d17ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,31 @@ All notable changes to this project will be documented in this file. +## [0.20.0] - 2026-06-17 + +### Added +- feat: upgrade agent inspector to v0.6.0 (#1546) (d2f22e37) +- feat: send model config to agent inspector (#1516) (3097e031) +- feat(e2e): enable gemini tests (#1503) (c3d7565a) +- feat(ci): clean up stale stacks with global vitest setup hook (#1499) (9966e9d2) +- feat(ci): shard integ tests for faster runs. (#1484) (9f755cb4) +- feat(ci): add hourly canary for smoke test (#1486) (6c57e789) + +### Fixed +- fix(harness): surface managed-memory heads-up on dev deploy + validate session storage path in TUI (#1555) (23d6ef22) +- fix(ci): avoid running pr reviewer on closed prs (#1536) (ef1e0667) +- fix(assets): prevent multi-gateway tool-name collisions across HTTP frameworks (#1518) (c217b169) +- fix(e2e): add harness tests to e2e workflow (#1515) (0d93b006) +- fix(ci): make /security-review fail loudly when the model never runs (#1482) (202eed9c) +- fix(e2e): wire up payments env vars for full test suite (#1505) (ea2df09f) +- fix(scripts): avoid overwriting git local config in e2e script (#1501) (f62329b0) + +### Other Changes +- chore: ungate web-search commands (#1558) (6bb2ca45) +- chore(policy): ungate guardrail policy form (#1552) (d5745af0) +- release: nys summit (#1547) (845c1bdb) +- script: bundle agent inspector (#1529) (2166bd87) + ## [0.19.0] - 2026-06-09 ### Added diff --git a/package.json b/package.json index 71761a679..932941a66 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@aws/agentcore", - "version": "0.19.0", + "version": "0.20.0", "description": "CLI for Amazon Bedrock AgentCore", "license": "Apache-2.0", "repository": { diff --git a/preview-version.json b/preview-version.json index 39507f9f2..59ae9bc42 100644 --- a/preview-version.json +++ b/preview-version.json @@ -1,3 +1,3 @@ { - "version": "1.0.0-preview.13" + "version": "1.0.0-preview.14" } diff --git a/schemas/agentcore.schema.v1.json b/schemas/agentcore.schema.v1.json index 36e417528..dedc5b64e 100644 --- a/schemas/agentcore.schema.v1.json +++ b/schemas/agentcore.schema.v1.json @@ -186,7 +186,9 @@ "type": "array", "items": { "type": "string", - "minLength": 1 + "minLength": 1, + "maxLength": 255, + "pattern": "^[\\x21\\x23-\\x5B\\x5D-\\x7E]+$" } }, "customClaims": { @@ -243,6 +245,160 @@ "required": ["inboundTokenClaimName", "inboundTokenClaimValueType", "authorizingClaimMatchValue"], "additionalProperties": false } + }, + "privateEndpoint": { + "type": "object", + "properties": { + "selfManagedLatticeResource": { + "type": "object", + "properties": { + "resourceConfigurationIdentifier": { + "type": "string", + "minLength": 20, + "maxLength": 2048, + "pattern": "^((rcfg-[0-9a-z]{17})|(arn:[a-z0-9-]+:vpc-lattice:[a-zA-Z0-9-]+:\\d{12}:resourceconfiguration\\/rcfg-[0-9a-z]{17}))$" + } + }, + "required": ["resourceConfigurationIdentifier"], + "additionalProperties": false + }, + "managedVpcResource": { + "type": "object", + "properties": { + "vpcIdentifier": { + "type": "string", + "pattern": "^vpc-(([0-9a-z]{8})|([0-9a-z]{17}))$" + }, + "subnetIds": { + "minItems": 1, + "type": "array", + "items": { + "type": "string", + "pattern": "^subnet-[0-9a-zA-Z]{8,17}$" + } + }, + "endpointIpAddressType": { + "type": "string", + "enum": ["IPV4", "IPV6"] + }, + "securityGroupIds": { + "maxItems": 5, + "type": "array", + "items": { + "type": "string", + "pattern": "^sg-(([0-9a-z]{8})|([0-9a-z]{17}))$" + } + }, + "tags": { + "type": "object", + "propertyNames": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "pattern": "^[\\p{L}\\p{N}\\s_.:/=+\\-@]*$" + }, + "additionalProperties": { + "type": "string", + "maxLength": 256, + "pattern": "^[\\p{L}\\p{N}\\s_.:/=+\\-@]*$" + } + }, + "routingDomain": { + "type": "string", + "minLength": 3, + "maxLength": 255 + } + }, + "required": ["vpcIdentifier", "subnetIds", "endpointIpAddressType"], + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "privateEndpointOverrides": { + "maxItems": 5, + "type": "array", + "items": { + "type": "object", + "properties": { + "domain": { + "type": "string", + "minLength": 1, + "maxLength": 253 + }, + "privateEndpoint": { + "type": "object", + "properties": { + "selfManagedLatticeResource": { + "type": "object", + "properties": { + "resourceConfigurationIdentifier": { + "type": "string", + "minLength": 20, + "maxLength": 2048, + "pattern": "^((rcfg-[0-9a-z]{17})|(arn:[a-z0-9-]+:vpc-lattice:[a-zA-Z0-9-]+:\\d{12}:resourceconfiguration\\/rcfg-[0-9a-z]{17}))$" + } + }, + "required": ["resourceConfigurationIdentifier"], + "additionalProperties": false + }, + "managedVpcResource": { + "type": "object", + "properties": { + "vpcIdentifier": { + "type": "string", + "pattern": "^vpc-(([0-9a-z]{8})|([0-9a-z]{17}))$" + }, + "subnetIds": { + "minItems": 1, + "type": "array", + "items": { + "type": "string", + "pattern": "^subnet-[0-9a-zA-Z]{8,17}$" + } + }, + "endpointIpAddressType": { + "type": "string", + "enum": ["IPV4", "IPV6"] + }, + "securityGroupIds": { + "maxItems": 5, + "type": "array", + "items": { + "type": "string", + "pattern": "^sg-(([0-9a-z]{8})|([0-9a-z]{17}))$" + } + }, + "tags": { + "type": "object", + "propertyNames": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "pattern": "^[\\p{L}\\p{N}\\s_.:/=+\\-@]*$" + }, + "additionalProperties": { + "type": "string", + "maxLength": 256, + "pattern": "^[\\p{L}\\p{N}\\s_.:/=+\\-@]*$" + } + }, + "routingDomain": { + "type": "string", + "minLength": 3, + "maxLength": 255 + } + }, + "required": ["vpcIdentifier", "subnetIds", "endpointIpAddressType"], + "additionalProperties": false + } + }, + "additionalProperties": false + } + }, + "required": ["domain", "privateEndpoint"], + "additionalProperties": false + } } }, "required": ["discoveryUrl"], @@ -545,6 +701,74 @@ "additionalProperties": false } }, + "knowledgeBases": { + "default": [], + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "default": "AgentCoreKnowledgeBase", + "type": "string", + "const": "AgentCoreKnowledgeBase" + }, + "name": { + "type": "string", + "minLength": 1, + "maxLength": 48, + "pattern": "^[a-zA-Z][a-zA-Z0-9_-]{0,47}$" + }, + "description": { + "type": "string", + "maxLength": 2048 + }, + "dataSources": { + "minItems": 1, + "type": "array", + "items": { + "oneOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "S3" + }, + "uri": { + "type": "string", + "minLength": 1 + } + }, + "required": ["type", "uri"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["WEB", "CONFLUENCE", "SHAREPOINT", "ONEDRIVE", "GOOGLEDRIVE"] + }, + "connectorConfigFile": { + "type": "string", + "minLength": 1 + } + }, + "required": ["type", "connectorConfigFile"], + "additionalProperties": false + } + ] + } + }, + "gateway": { + "type": "string", + "minLength": 1 + } + }, + "required": ["name", "dataSources"], + "additionalProperties": false + } + }, "credentials": { "default": [], "type": "array", @@ -806,14 +1030,53 @@ "type": "string", "minLength": 1 }, - "evaluators": { + "logGroupNames": { "minItems": 1, + "maxItems": 5, "type": "array", "items": { "type": "string", "minLength": 1 } }, + "serviceNames": { + "minItems": 1, + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "evaluators": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "insights": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "clusteringConfig": { + "type": "object", + "properties": { + "frequencies": { + "minItems": 1, + "maxItems": 3, + "type": "array", + "items": { + "type": "string", + "enum": ["DAILY", "WEEKLY", "MONTHLY"] + } + } + }, + "required": ["frequencies"], + "additionalProperties": false + }, "samplingRate": { "type": "number", "minimum": 0.01, @@ -841,7 +1104,7 @@ } } }, - "required": ["name", "agent", "evaluators", "samplingRate"], + "required": ["name", "samplingRate"], "additionalProperties": false } }, @@ -863,6 +1126,10 @@ "maxLength": 100, "pattern": "^[0-9a-zA-Z](?:[0-9a-zA-Z-]*[0-9a-zA-Z])?$" }, + "protocolType": { + "type": "string", + "enum": ["MCP", "None"] + }, "description": { "type": "string" }, @@ -877,7 +1144,18 @@ }, "targetType": { "type": "string", - "enum": ["lambda", "mcpServer", "openApiSchema", "smithyModel", "apiGateway", "lambdaFunctionArn"] + "enum": [ + "lambda", + "mcpServer", + "openApiSchema", + "smithyModel", + "apiGateway", + "lambdaFunctionArn", + "httpRuntime", + "connector", + "passthrough", + "webSearch" + ] }, "toolDefinitions": { "type": "array", @@ -1076,7 +1354,7 @@ "type": { "default": "NONE", "type": "string", - "enum": ["OAUTH", "API_KEY", "NONE"] + "enum": ["OAUTH", "API_KEY", "NONE", "GATEWAY_IAM_ROLE", "JWT_PASSTHROUGH"] }, "credentialName": { "type": "string", @@ -1087,6 +1365,16 @@ "items": { "type": "string" } + }, + "service": { + "type": "string", + "minLength": 1, + "maxLength": 64 + }, + "region": { + "type": "string", + "minLength": 1, + "maxLength": 32 } }, "additionalProperties": false @@ -1220,6 +1508,83 @@ }, "required": ["lambdaArn", "toolSchemaFile"], "additionalProperties": false + }, + "httpRuntime": { + "type": "object", + "properties": { + "runtime": { + "type": "string", + "minLength": 1 + }, + "runtimeEndpoint": { + "type": "string", + "minLength": 1 + } + }, + "required": ["runtime"], + "additionalProperties": false + }, + "connectorId": { + "type": "string", + "enum": ["bedrock-knowledge-bases", "bedrock-agentic-retrieve"] + }, + "knowledgeBaseId": { + "type": "string", + "minLength": 1, + "maxLength": 48, + "pattern": "^[a-zA-Z0-9_-]+$" + }, + "knowledgeBaseIds": { + "minItems": 1, + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 48, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "passthrough": { + "type": "object", + "properties": { + "endpoint": { + "type": "string", + "minLength": 1, + "pattern": "^https:\\/\\/[a-zA-Z0-9\\-.]+(:[0-9]{1,5})?(\\/.*)?$" + }, + "protocolType": { + "default": "CUSTOM", + "type": "string", + "enum": ["MCP", "A2A", "INFERENCE", "CUSTOM"] + }, + "stickinessConfiguration": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "minLength": 1, + "maxLength": 256 + }, + "timeout": { + "type": "integer", + "minimum": 1, + "maximum": 86400 + } + }, + "required": ["identifier"], + "additionalProperties": false + } + }, + "required": ["endpoint"], + "additionalProperties": false + }, + "excludeDomains": { + "minItems": 1, + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } } }, "required": ["name", "targetType"], @@ -1259,7 +1624,9 @@ "type": "array", "items": { "type": "string", - "minLength": 1 + "minLength": 1, + "maxLength": 255, + "pattern": "^[\\x21\\x23-\\x5B\\x5D-\\x7E]+$" } }, "customClaims": { @@ -1316,6 +1683,160 @@ "required": ["inboundTokenClaimName", "inboundTokenClaimValueType", "authorizingClaimMatchValue"], "additionalProperties": false } + }, + "privateEndpoint": { + "type": "object", + "properties": { + "selfManagedLatticeResource": { + "type": "object", + "properties": { + "resourceConfigurationIdentifier": { + "type": "string", + "minLength": 20, + "maxLength": 2048, + "pattern": "^((rcfg-[0-9a-z]{17})|(arn:[a-z0-9-]+:vpc-lattice:[a-zA-Z0-9-]+:\\d{12}:resourceconfiguration\\/rcfg-[0-9a-z]{17}))$" + } + }, + "required": ["resourceConfigurationIdentifier"], + "additionalProperties": false + }, + "managedVpcResource": { + "type": "object", + "properties": { + "vpcIdentifier": { + "type": "string", + "pattern": "^vpc-(([0-9a-z]{8})|([0-9a-z]{17}))$" + }, + "subnetIds": { + "minItems": 1, + "type": "array", + "items": { + "type": "string", + "pattern": "^subnet-[0-9a-zA-Z]{8,17}$" + } + }, + "endpointIpAddressType": { + "type": "string", + "enum": ["IPV4", "IPV6"] + }, + "securityGroupIds": { + "maxItems": 5, + "type": "array", + "items": { + "type": "string", + "pattern": "^sg-(([0-9a-z]{8})|([0-9a-z]{17}))$" + } + }, + "tags": { + "type": "object", + "propertyNames": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "pattern": "^[\\p{L}\\p{N}\\s_.:/=+\\-@]*$" + }, + "additionalProperties": { + "type": "string", + "maxLength": 256, + "pattern": "^[\\p{L}\\p{N}\\s_.:/=+\\-@]*$" + } + }, + "routingDomain": { + "type": "string", + "minLength": 3, + "maxLength": 255 + } + }, + "required": ["vpcIdentifier", "subnetIds", "endpointIpAddressType"], + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "privateEndpointOverrides": { + "maxItems": 5, + "type": "array", + "items": { + "type": "object", + "properties": { + "domain": { + "type": "string", + "minLength": 1, + "maxLength": 253 + }, + "privateEndpoint": { + "type": "object", + "properties": { + "selfManagedLatticeResource": { + "type": "object", + "properties": { + "resourceConfigurationIdentifier": { + "type": "string", + "minLength": 20, + "maxLength": 2048, + "pattern": "^((rcfg-[0-9a-z]{17})|(arn:[a-z0-9-]+:vpc-lattice:[a-zA-Z0-9-]+:\\d{12}:resourceconfiguration\\/rcfg-[0-9a-z]{17}))$" + } + }, + "required": ["resourceConfigurationIdentifier"], + "additionalProperties": false + }, + "managedVpcResource": { + "type": "object", + "properties": { + "vpcIdentifier": { + "type": "string", + "pattern": "^vpc-(([0-9a-z]{8})|([0-9a-z]{17}))$" + }, + "subnetIds": { + "minItems": 1, + "type": "array", + "items": { + "type": "string", + "pattern": "^subnet-[0-9a-zA-Z]{8,17}$" + } + }, + "endpointIpAddressType": { + "type": "string", + "enum": ["IPV4", "IPV6"] + }, + "securityGroupIds": { + "maxItems": 5, + "type": "array", + "items": { + "type": "string", + "pattern": "^sg-(([0-9a-z]{8})|([0-9a-z]{17}))$" + } + }, + "tags": { + "type": "object", + "propertyNames": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "pattern": "^[\\p{L}\\p{N}\\s_.:/=+\\-@]*$" + }, + "additionalProperties": { + "type": "string", + "maxLength": 256, + "pattern": "^[\\p{L}\\p{N}\\s_.:/=+\\-@]*$" + } + }, + "routingDomain": { + "type": "string", + "minLength": 3, + "maxLength": 255 + } + }, + "required": ["vpcIdentifier", "subnetIds", "endpointIpAddressType"], + "additionalProperties": false + } + }, + "additionalProperties": false + } + }, + "required": ["domain", "privateEndpoint"], + "additionalProperties": false + } } }, "required": ["discoveryUrl"], @@ -1535,7 +2056,18 @@ }, "targetType": { "type": "string", - "enum": ["lambda", "mcpServer", "openApiSchema", "smithyModel", "apiGateway", "lambdaFunctionArn"] + "enum": [ + "lambda", + "mcpServer", + "openApiSchema", + "smithyModel", + "apiGateway", + "lambdaFunctionArn", + "httpRuntime", + "connector", + "passthrough", + "webSearch" + ] }, "toolDefinitions": { "type": "array", @@ -1734,7 +2266,7 @@ "type": { "default": "NONE", "type": "string", - "enum": ["OAUTH", "API_KEY", "NONE"] + "enum": ["OAUTH", "API_KEY", "NONE", "GATEWAY_IAM_ROLE", "JWT_PASSTHROUGH"] }, "credentialName": { "type": "string", @@ -1745,6 +2277,16 @@ "items": { "type": "string" } + }, + "service": { + "type": "string", + "minLength": 1, + "maxLength": 64 + }, + "region": { + "type": "string", + "minLength": 1, + "maxLength": 32 } }, "additionalProperties": false @@ -1878,6 +2420,83 @@ }, "required": ["lambdaArn", "toolSchemaFile"], "additionalProperties": false + }, + "httpRuntime": { + "type": "object", + "properties": { + "runtime": { + "type": "string", + "minLength": 1 + }, + "runtimeEndpoint": { + "type": "string", + "minLength": 1 + } + }, + "required": ["runtime"], + "additionalProperties": false + }, + "connectorId": { + "type": "string", + "enum": ["bedrock-knowledge-bases", "bedrock-agentic-retrieve"] + }, + "knowledgeBaseId": { + "type": "string", + "minLength": 1, + "maxLength": 48, + "pattern": "^[a-zA-Z0-9_-]+$" + }, + "knowledgeBaseIds": { + "minItems": 1, + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 48, + "pattern": "^[a-zA-Z0-9_-]+$" + } + }, + "passthrough": { + "type": "object", + "properties": { + "endpoint": { + "type": "string", + "minLength": 1, + "pattern": "^https:\\/\\/[a-zA-Z0-9\\-.]+(:[0-9]{1,5})?(\\/.*)?$" + }, + "protocolType": { + "default": "CUSTOM", + "type": "string", + "enum": ["MCP", "A2A", "INFERENCE", "CUSTOM"] + }, + "stickinessConfiguration": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "minLength": 1, + "maxLength": 256 + }, + "timeout": { + "type": "integer", + "minimum": 1, + "maximum": 86400 + } + }, + "required": ["identifier"], + "additionalProperties": false + } + }, + "required": ["endpoint"], + "additionalProperties": false + }, + "excludeDomains": { + "minItems": 1, + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } } }, "required": ["name", "targetType"], @@ -1946,6 +2565,16 @@ "default": "FAIL_ON_ANY_FINDINGS", "type": "string", "enum": ["FAIL_ON_ANY_FINDINGS", "IGNORE_ALL_FINDINGS"] + }, + "enforcementMode": { + "default": "ACTIVE", + "type": "string", + "enum": ["ACTIVE", "LOG_ONLY"] + }, + "authorizationPhase": { + "default": "INITIATE", + "type": "string", + "enum": ["INITIATE", "RETURN_OUTPUT"] } }, "required": ["name", "statement"], @@ -2172,29 +2801,6 @@ "required": ["targetPaths"], "additionalProperties": false }, - "trafficAllocationConfig": { - "type": "object", - "properties": { - "routeOnHeader": { - "type": "object", - "properties": { - "headerName": { - "type": "string", - "minLength": 1 - } - }, - "required": ["headerName"], - "additionalProperties": false - } - }, - "required": ["routeOnHeader"], - "additionalProperties": false - }, - "maxDurationDays": { - "type": "integer", - "minimum": 1, - "maximum": 90 - }, "enableOnCreate": { "type": "boolean" }, @@ -2206,59 +2812,6 @@ "additionalProperties": false } }, - "httpGateways": { - "default": [], - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 1, - "pattern": "^[a-zA-Z][a-zA-Z0-9-]*$" - }, - "description": { - "type": "string", - "minLength": 1, - "maxLength": 200 - }, - "runtimeRef": { - "type": "string", - "minLength": 1 - }, - "roleArn": { - "type": "string", - "minLength": 1 - }, - "targets": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 1, - "maxLength": 100 - }, - "runtimeRef": { - "type": "string", - "minLength": 1 - }, - "qualifier": { - "default": "DEFAULT", - "type": "string", - "minLength": 1 - } - }, - "required": ["name", "runtimeRef"], - "additionalProperties": false - } - } - }, - "required": ["name", "runtimeRef"], - "additionalProperties": false - } - }, "harnesses": { "default": [], "type": "array", @@ -2268,8 +2821,8 @@ "name": { "type": "string", "minLength": 1, - "maxLength": 48, - "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,47}$" + "maxLength": 40, + "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,39}$" }, "path": { "type": "string", @@ -2326,6 +2879,11 @@ "additionalProperties": false } }, + "httpGateways": { + "maxItems": 0, + "type": "array", + "items": {} + }, "payments": { "type": "array", "items": {