feat(secrets-manager): add AWS Secrets Manager integration#3866
feat(secrets-manager): add AWS Secrets Manager integration#3866waleedlatif1 merged 3 commits intostagingfrom
Conversation
PR SummaryHigh Risk Overview Updates docs and UI metadata to surface the integration (new Written by Cursor Bugbot for commit cb3a6af. Configure here. |
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
ed47ae1 to
1ab6da7
Compare
Greptile SummaryThis PR adds a full AWS Secrets Manager integration with five operations (get, list, create, update, delete), following the established tool → API route → AWS SDK pattern already used by S3, SQS, and similar blocks. The structure is consistent with the rest of the codebase: typed params/response interfaces in Previous review concerns (binary-secret silent empty return, incorrect force-delete log message) have been correctly addressed. The remaining findings are both style-level:
Confidence Score: 5/5Safe to merge; all remaining findings are P2 style/UX suggestions with no runtime impact. Previously flagged P1 issues (binary secret detection, force-delete message correctness) have both been resolved. The only remaining items are a misleading-but-unreachable fallback string and an unmasked UI input — neither affects correctness or data integrity at runtime. apps/sim/blocks/blocks/secrets_manager.ts (secretValue masking) and apps/sim/tools/secrets_manager/delete_secret.ts (fallback message) Important Files Changed
Sequence DiagramsequenceDiagram
participant UI as Block UI
participant Block as secrets_manager.ts (block)
participant Tool as ToolConfig (tools/secrets_manager/*)
participant Route as /api/tools/secrets_manager/*
participant Utils as utils.ts
participant AWS as AWS Secrets Manager
UI->>Block: User selects operation + fills params
Block->>Tool: config.tool(params) → tool ID<br/>config.params(params) → cleaned params
Tool->>Route: POST (region, accessKeyId, secretAccessKey, …)
Route->>Route: checkInternalAuth()
Route->>Route: ZodSchema.parse(body)
Route->>Utils: createSecretsManagerClient(config)
Utils-->>Route: SecretsManagerClient
Route->>Utils: getSecretValue / listSecrets / createSecret / updateSecretValue / deleteSecret
Utils->>AWS: SDK Command (GetSecretValueCommand, etc.)
AWS-->>Utils: Response
Utils-->>Route: Typed result object
Route->>Route: client.destroy()
Route-->>Tool: NextResponse.json(result)
Tool->>Tool: transformResponse() → { success, output }
Tool-->>Block: output fields (name, secretValue, arn, …)
Block-->>UI: Workflow outputs
Reviews (3): Last reviewed commit: "fix(secrets-manager): handle boolean for..." | Re-trigger Greptile |
- Conditional delete message based on forceDelete flag - Add binary secret detection in getSecretValue
|
@greptile |
|
@cursor review |
… inputs - Accept both string 'true' and boolean true for forceDelete - Guard parseInt results with isNaN check for maxResults and recoveryWindowInDays
|
@greptile |
|
@cursor review |
Summary
@aws-sdk/client-secrets-managerSDK withUpdateSecretCommandfor proper description supportType of Change
Testing
Tested manually
Checklist