feat(integrations): add AWS AppConfig integration with tools, block, and docs#4928
Conversation
|
@cursor review |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
@greptile |
PR SummaryMedium Risk Overview Backend: Authenticated POST routes under Product surface: A workflow block with an operation dropdown (25 operations), conditional fields, and param coercion (e.g. Docs/UI: New Reviewed by Cursor Bugbot for commit 34fa181. Configure here. |
Greptile SummaryThis PR adds a comprehensive AWS AppConfig integration with 26 routes covering the full management plane (
Confidence Score: 5/5Safe to merge — all 26 routes correctly validate inputs via Zod contracts, manage AWS SDK client lifecycle, and gate on internal auth. No data loss, credential leak, or destructive race conditions introduced. The integration is a net-new addition with no changes to existing functionality. Every route follows the established safe pattern (auth gate → contract parse → finally client.destroy()), credentials use user-only visibility, the previously flagged latestVersionNumber zero-handling bug has been fixed, and Zod contracts enforce range constraints at the route boundary before any AWS call is made. No files require special attention. The utils.ts and blocks/blocks/appconfig.ts carry the most logic but both are straightforward and consistent with existing integrations. Important Files Changed
Sequence DiagramsequenceDiagram
participant UI as Block UI / LLM Tool
participant Route as Next.js Route /api/tools/appconfig/*
participant Auth as checkInternalAuth
participant Contract as Zod Contract
participant Util as utils.ts
participant AWS as AWS SDK (AppConfig / AppConfigData)
UI->>Route: POST (credentials + params)
Route->>Auth: verify internal token
Auth-->>Route: "{success, userId}"
Route->>Contract: parseToolRequest(contract, request)
Contract-->>Route: "{success, data.body} or error response"
Route->>Util: createAppConfig[Data]Client(config)
Util-->>Route: client
Route->>AWS: client.send(Command)
AWS-->>Route: response
Route->>Util: client.destroy() [finally]
Route-->>UI: NextResponse.json(result)
Reviews (8): Last reviewed commit: "feat(appconfig): add full CRUD for appli..." | Re-trigger Greptile |
…nUri type in AppConfig
Greptile SummaryThis PR adds a comprehensive AWS AppConfig integration with 14 tools covering the full control-plane and data-plane lifecycle: listing/creating applications, environments, profiles, and hosted configuration versions; starting/monitoring/stopping deployments; and retrieving live configuration via the AppConfigData plane.
Confidence Score: 4/5The integration is well-structured and safe to merge; the only notable gap is a loose TypeScript interface type that is compensated by runtime Zod validation. All 14 routes follow the same auth-validate-execute-destroy pattern. AWS credentials are properly scoped with user-only visibility, the data-plane session/fetch flow is correct, numeric inputs are explicitly coerced, and each operation's required fields are consistently enforced in both the block UI and the server-side contract. The single gap — locationUri typed as optional in AppConfigCreateConfigurationProfileParams while every concrete usage site treats it as required — is caught at runtime by Zod, so no bad data reaches AWS. apps/sim/tools/appconfig/types.ts — the locationUri optionality mismatch. Important Files Changed
Sequence DiagramsequenceDiagram
participant Client as Workflow Block
participant Route as Next.js API Route
participant Auth as checkInternalAuth
participant Zod as Zod Contract
participant SDK as AWS SDK
Note over Client,SDK: Get Configuration (data-plane)
Client->>Route: POST /api/tools/appconfig/get-configuration
Route->>Auth: checkInternalAuth(request)
Auth-->>Route: "{ success, userId }"
Route->>Zod: parseToolRequest(contract, request)
Zod-->>Route: "{ success, data.body }"
Route->>SDK: AppConfigDataClient.StartConfigurationSession
SDK-->>Route: "{ InitialConfigurationToken }"
Route->>SDK: AppConfigDataClient.GetLatestConfiguration(token)
SDK-->>Route: "{ Configuration, ContentType, VersionLabel }"
Route-->>Client: "{ configuration, contentType, versionLabel }"
Note over Client,SDK: Deploy Configuration (control-plane)
Client->>Route: POST /api/tools/appconfig/create-hosted-configuration-version
Route->>Auth: checkInternalAuth(request)
Route->>Zod: parseToolRequest(contract, request)
Route->>SDK: AppConfigClient.CreateHostedConfigurationVersion
SDK-->>Route: "{ VersionNumber, ApplicationId, ... }"
Route-->>Client: "{ message, versionNumber, ... }"
Client->>Route: POST /api/tools/appconfig/start-deployment
Route->>Auth: checkInternalAuth(request)
Route->>Zod: parseToolRequest(contract, request)
Route->>SDK: AppConfigClient.StartDeployment
SDK-->>Route: "{ DeploymentNumber, State, ... }"
Route-->>Client: "{ message, deploymentNumber, state }"
Reviews (2): Last reviewed commit: "fix(integrations): preserve latestVersio..." | Re-trigger Greptile |
|
@cursor review |
|
@greptile |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 05807bb. Configure here.
|
@cursor review |
|
@greptile |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit cd186f8. Configure here.
|
@greptile review |
|
@greptile review |
|
@cursor review |
|
@greptile |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 7f5dcf1. Configure here.
…nfiguration profiles Adds get/update/delete for applications, environments, and configuration profiles, plus delete_hosted_configuration_version — 10 tools rounding out the integration to management-grade CRUD completeness.
|
@cursor review |
|
@greptile |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 34fa181. Configure here.
Staging's new AWS AppConfig integration (simstudioai#4928) generated its docs into the old tools/ layout; re-homed to integrations/appconfig.mdx (Actions heading, meta entry) via the generator. tools/ stays deleted. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Summary
Type of Change
Testing
Tested manually — `tsc` clean, `bun run lint` clean, `bun run check:api-validation` passes, docs regenerated
Checklist