Skip to content

feat(aws): Kendra indexes + data sources - #1255

Merged
NitinKumar004 merged 1 commit into
developmentfrom
feat/aws-kendra
Sep 7, 2026
Merged

feat(aws): Kendra indexes + data sources#1255
NitinKumar004 merged 1 commit into
developmentfrom
feat/aws-kendra

Conversation

@NitinKumar004

Copy link
Copy Markdown
Collaborator

Summary

Greenfield Amazon Kendra control-plane emulation (Track-1): a drift-free real AWS API for Terraform/SDK clients. Adds aws_kendra_index and aws_kendra_data_source parity. No data plane (no real search/indexing).

Kendra speaks AWS JSON 1.1 dispatched on the X-Amz-Target prefix AWSKendraFrontendService., registered in authzgate.jsonRPCServiceByTarget (so the JSON-RPC gate does not fail closed) — mirroring the aoss template.

Features

  • Indexes: CreateIndex, DescribeIndex, UpdateIndex, DeleteIndex, ListIndices
  • Data sources: CreateDataSource, DescribeDataSource, UpdateDataSource, DeleteDataSource, ListDataSources
  • Resource tags: TagResource, UntagResource, ListTagsForResource (index and data-source ARNs)

Enhancement

  • Index (and data source) created synchronously in the ACTIVE state so a Terraform status waiter completes instead of hanging on real Kendra's ~30-minute provisioning.
  • Computed fields (index id / data source id / status / createdAt) minted once at create and stored, stable across every Describe/List and after Update. Kendra's API returns no ARN; Terraform derives it from the id, so id stability keeps the arn attribute drift-free.
  • Rich nested blocks (server-side encryption, capacity units, document metadata, data source Configuration / VpcConfiguration / CustomDocumentEnrichmentConfiguration) round-trip verbatim as raw JSON so a deeply nested block cannot drift a plan.
  • Deleting an index cascades to its data source connectors; a data source requires its parent index (404 otherwise). CUSTOM data sources reject Configuration/RoleArn/Schedule per the real ValidationException rules.
  • Snapshottable (identity-preserving) for persistence; generated coverage docs regenerated.

Live e2e (Terraform, hashicorp/aws, kendra endpoint override, port 18059)

  • apply: aws_kendra_index DEVELOPER_EDITION + aws_kendra_data_source type=CUSTOM created; index status ACTIVE (no hang, 0s)
  • plan -detailed-exitcode: exit 0, no drift on id/arn/status/created_at + config blocks
  • update index description: applied in-place, id stable; subsequent plan clean
  • destroy: both destroyed; DescribeIndex → ResourceNotFoundException

@NitinKumar004
NitinKumar004 merged commit b657ddc into development Sep 7, 2026
23 checks passed
@NitinKumar004
NitinKumar004 deleted the feat/aws-kendra branch September 7, 2026 06:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant