v0.5.12
[0.5.12]
Added
-
Test Studio: Abort running test runs — Test runs with status
QUEUEDorRUNNINGcan now be aborted from both the Web UI and CLI. The abort operation stops all pending document processing workflows, preserves results from already-completed documents, and updates the test run status toABORTED. Metrics are automatically calculated for completed documents. The Web UI displays an "Abort" button next to running tests, and the CLI provides anidp-cli abort-test-runcommand with confirmation prompts. Aborted test runs show accurate completion counts (e.g., "48/50 files processed") and allow viewing partial results including evaluation metrics and cost breakdowns for successfully processed documents. -
Optional
{CLASS_AND_ATTRIBUTE_NAMES_AND_DESCRIPTIONS}placeholder for classification prompts (#262) — Pattern 2 classificationtask_prompttemplates can opt in to a new placeholder that expands, per document type, to the class name, description, and schema attribute names. Renders as XML formultimodalPageLevelClassificationand as a markdown table fortextbasedHolisticClassification. Cost-neutral by default — only materialized when the template references it, with per-class attribute counts capped (default 50) to keep prompt cost predictable. Useful for schema-rich domains where similarly-named classes have very different extraction schemas. The Web UI Prompt Preview tab renders the substituted attributes for inspection. Seedocs/classification.md. -
Cross-account Bedrock invocation via STS AssumeRole (#305) — IDP processing Lambdas can now route all Bedrock traffic through a centralized "hub" AWS account. Set the new optional
BedrockHubRoleArnparameter (with optional external-id / session-name) and the stack conditionally addssts:AssumeRoleto each Lambda's execution role. STS credentials auto-refresh viaDeferredRefreshableCredentialsso warm Lambdas survive past the 1-hour STS session. Covers the entire pipeline plus discovery, embeddings, Chat with Document, and Agent Companion (incl. Strands sub-agents). Fully additive — leaving the parameter empty preserves prior same-account behavior. Out of scope: BDA runtime, Bedrock Knowledge Bases, andmodel_finetuning/. Seedocs/cross-account-bedrock.md. -
Distinguish MISSING pages from BLANK fields in extraction output (#317) — for sparsely-populated multi-section forms where pages may be legitimately omitted, extraction can now distinguish fields whose source page was present but empty (BLANK) from those whose source page was not submitted (MISSING). Two new optional schema extensions,
x-aws-idp-page-typesandx-aws-idp-source-page-types, declare named page sub-types and which page types each property sources from. A regex-based resolver detects present page types, annotates the LLM prompt with--- PAGE N [PageType] ---markers, and (when enabled) post-processes the JSON to drop/null fields whose source pages are absent. Output gains optionalpage_type_resolutionandmissing_fields_report. Fully additive; the Document Schema editor adds form widgets for both extensions. Seedocs/missing-page-handling.mdand the demo notebook. -
Private (VPC-only) deployment — browser uploads route through the S3 Interface VPC Endpoint — when
WebUIHosting=ALB, the ALB nested stack provisions an S3 Interface VPC Endpoint and exposes its regional DNS name as a newS3VPCEndpointDnsNameoutput. Web UI presigner Lambdas,ApiHandlerFunction, and config/dataset custom resources receive anS3_ENDPOINT_URLenv var and use virtual-host addressing so SigV4 matches the VPCE DNS. Browser uploads and Lambda S3 traffic stay on the AWS backbone with zero public-internet egress. -
Bring-Your-Own S3 VPC endpoint — two new top-level parameters (
S3VpcEndpointIdOverride,S3VpcEndpointDnsNameOverride) let customers with a central network account reuse an existing endpoint instead of having the IDP stack provision one. Both must be set together; CloudFormationRulesenforce the pairing. -
monitoring(CloudWatch) Interface VPC Endpoint —scripts/vpc-endpoints.yamlnow provisions a CloudWatch Interface VPC Endpoint, gated by the newCreateMonitoringEndpointparameter (defaulttrue). Required for theDashboardMergercustom resource to succeed in private mode.scripts/check-vpc-endpoints.shupdated to detect and skip pre-existing endpoints. -
LambdaSecurityGroupIdparameter on the ALB nested stack — when supplied, the ALB S3 VPC Endpoint security group allows inbound 443 from the app Lambda SG so VPC-resident Lambdas can reach S3 through the same endpoint as ALB. Fixes a 5-minute hang inConfigurationCopyFunctioncaused by SG mismatch.
Changed
-
ALB nested stack S3 VPC endpoint policy scoped to same-account operations — the endpoint policy allows a finite set of S3 actions on
arn:${AWS::Partition}:s3:::*conditioned onaws:PrincipalAccount/aws:ResourceAccountmatching the deployment account. Wildcard resource is necessary to avoid cyclic dependencies on parent-stack buckets; authorization is additionally enforced at the network (SG) and IAM (role + bucket policy) layers. Seedocs/deployment-private-network.md. -
scripts/generate_self_signed_cert.shuses a short fixed CommonName (idp-self-signed) with the full ALB hostname insubjectAltName— internal ALB DNS names often exceed the X.509 64-char CN limit, causing openssl to abort. Modern browsers validate only against SAN, so this is RFC-correct and removes the silent failure.
Fixed
-
Agentic extraction now supports
:1mmodel IDs (1M context window) (#312) — agentic extraction with:1mmodel ids (e.g.us.anthropic.claude-opus-4-7:1m) previously failed at ConverseStream withValidationExceptionbecause the agentic path forwarded the raw id to Strands'BedrockModel._build_model_confignow strips:1mand forwards theanthropic_betaheader via Strands'additional_request_fields, matching the traditional Bedrock path. All:1mvariants now work. -
Bedrock Knowledge Base nested stack no longer left in
DELETE_FAILEDon update/delete (#315) — two reliability fixes innested/bedrockkb/template.yaml:- Reliable
AWS::Bedrock::DataSourcedeletion during sync — the Delete handler now stops in-progress ingestion jobs and polls until terminal status (12-min deadline) before signalling SUCCESS, so CFN can delete the data source cleanly. Always reports SUCCESS on Delete (logs warnings) so a stuck job never blocks stack delete. IAM gainsStop/Get/ListIngestionJobs, timeout is 15 min, and ingestion functionsDependsOntheir schedulers to avoid races. - Helper IAM roles now
DeletionPolicy: Retain—DataSourceSchedulerRoleandStartIngestionJobFunctionRoleare ephemeral helpers; marking themRetaindecouples nested-stack delete from the deploying principal'siam:DeleteRolepermission. Defensive fix for session policies that denyiam:DeleteRole. Retained roles are inert and can be deleted manually after the stack is gone.
- Reliable
Templates
- us-west-2:
https://s3.us-west-2.amazonaws.com/aws-ml-blog-us-west-2/artifacts/genai-idp/idp-main_0.5.12.yaml - us-east-1:
https://s3.us-east-1.amazonaws.com/aws-ml-blog-us-east-1/artifacts/genai-idp/idp-main_0.5.12.yaml - eu-central-1:
https://s3.eu-central-1.amazonaws.com/aws-ml-blog-eu-central-1/artifacts/genai-idp/idp-main_0.5.12.yaml