Skip to content

feat(aws-lambda): Add frontend pipeline steps for AWS Lambda integration setup#112736

Merged
evanpurkhiser merged 1 commit intomasterfrom
evanpurkhiser/feat-aws-lambda-add-frontend-pipeline-steps-for-aws-lambda-integration-setup
Apr 13, 2026
Merged

feat(aws-lambda): Add frontend pipeline steps for AWS Lambda integration setup#112736
evanpurkhiser merged 1 commit intomasterfrom
evanpurkhiser/feat-aws-lambda-add-frontend-pipeline-steps-for-aws-lambda-integration-setup

Conversation

@evanpurkhiser
Copy link
Copy Markdown
Member

@evanpurkhiser evanpurkhiser commented Apr 10, 2026

Three-step React frontend for the API-driven AWS Lambda integration
pipeline: project selection, CloudFormation stack creation with AWS
account verification, and Lambda function instrumentation with
selectable function cards and success/failure result tags.

Registers the pipeline in the frontend registry behind the
integration-api-pipeline-aws-lambda feature flag.

Screen.Recording.2026-04-13.at.10.38.41.mov

Fixes VDY-70

@evanpurkhiser evanpurkhiser requested review from a team as code owners April 10, 2026 20:11
@linear-code
Copy link
Copy Markdown

linear-code bot commented Apr 10, 2026

@github-actions github-actions bot added the Scope: Frontend Automatically applied to PRs that change frontend components label Apr 10, 2026
@evanpurkhiser evanpurkhiser requested review from a team and removed request for a team April 10, 2026 20:15
Copy link
Copy Markdown
Contributor

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Autofix Details

Bugbot Autofix prepared fixes for both issues found in the latest run.

  • ✅ Fixed: Missing minimum length validation on awsExternalId field
    • Added .min(1, t('External ID is required')) validation to the awsExternalId field in cloudFormationSchema to match legacy component behavior and prevent empty string submission.
  • ✅ Fixed: Enabled functions derived from stale state object
    • Changed enabledFunctions submission to filter from current stepData.functions array instead of iterating stale enabled state, ensuring only valid functions are submitted.

Create PR

Or push these changes by commenting:

@cursor push e16b04dbc2
Preview (e16b04dbc2)
diff --git a/static/app/components/pipeline/pipelineIntegrationAwsLambda.tsx b/static/app/components/pipeline/pipelineIntegrationAwsLambda.tsx
--- a/static/app/components/pipeline/pipelineIntegrationAwsLambda.tsx
+++ b/static/app/components/pipeline/pipelineIntegrationAwsLambda.tsx
@@ -122,7 +122,7 @@
     .min(1, t('AWS Account Number is required'))
     .regex(/^\d{12}$/, t('Must be a 12-digit AWS account number')),
   region: z.string().min(1, t('Region is required')),
-  awsExternalId: z.string(),
+  awsExternalId: z.string().min(1, t('External ID is required')),
 });
 
 function CloudFormationStep({
@@ -413,9 +413,9 @@
           size="sm"
           disabled={isAdvancing || enabledCount === 0}
           onClick={() => {
-            const enabledFunctions = Object.entries(enabled)
-              .filter(([_, v]) => v)
-              .map(([name]) => name);
+            const enabledFunctions = functions
+              .filter(fn => enabled[fn.name])
+              .map(fn => fn.name);
             advance({enabledFunctions});
           }}
         >

This Bugbot Autofix run was free. To enable autofix for future PRs, go to the Cursor dashboard.

Comment thread static/app/components/pipeline/pipelineIntegrationAwsLambda.tsx Outdated
Comment thread static/app/components/pipeline/pipelineIntegrationAwsLambda.tsx
@evanpurkhiser evanpurkhiser force-pushed the evanpurkhiser/feat-aws-lambda-add-frontend-pipeline-steps-for-aws-lambda-integration-setup branch from 044b74c to 29cdb63 Compare April 13, 2026 15:01
Copy link
Copy Markdown
Member

@leeandher leeandher left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔥

Comment on lines +452 to +459
const CardButton = styled('button')`
appearance: none;
background: transparent;
border: none;
padding: 0;
text-align: left;
cursor: pointer;
`;
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could this be replaced with a scraps <Button />? also appearance: none is interesting, TIL

Comment thread static/app/components/pipeline/pipelineIntegrationAwsLambda.tsx Outdated
Comment thread static/app/components/pipeline/pipelineIntegrationAwsLambda.tsx Outdated
@evanpurkhiser evanpurkhiser force-pushed the evanpurkhiser/feat-aws-lambda-add-frontend-pipeline-steps-for-aws-lambda-integration-setup branch from 29cdb63 to a7cfa81 Compare April 13, 2026 18:22
Comment thread static/app/components/pipeline/pipelineIntegrationAwsLambda.tsx Outdated
…ion setup

Three-step React frontend for the API-driven AWS Lambda integration
pipeline: project selection, CloudFormation stack creation with AWS
account verification, and Lambda function instrumentation with
selectable function cards and success/failure result tags.

Registers the pipeline in the frontend registry behind the
`integration-api-pipeline-aws-lambda` feature flag.

Fixes [VDY-70](https://linear.app/getsentry/issue/VDY-70/aws-lambda-api-driven-integration-setup)
@evanpurkhiser evanpurkhiser force-pushed the evanpurkhiser/feat-aws-lambda-add-frontend-pipeline-steps-for-aws-lambda-integration-setup branch from a7cfa81 to ec55233 Compare April 13, 2026 19:26
@evanpurkhiser evanpurkhiser enabled auto-merge (squash) April 13, 2026 19:32
@evanpurkhiser evanpurkhiser merged commit 67683c6 into master Apr 13, 2026
65 checks passed
@evanpurkhiser evanpurkhiser deleted the evanpurkhiser/feat-aws-lambda-add-frontend-pipeline-steps-for-aws-lambda-integration-setup branch April 13, 2026 19:32
Copy link
Copy Markdown
Contributor

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit ec55233. Configure here.

});
},
200
);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Single debounced function swallows analytics for different fields

Low Severity

debouncedTrackInputChange is a single module-level debounced function shared across all three fields (accountNumber, region, awsExternalId). Since lodash/debounce cancels pending invocations when called again within the wait period, changing different fields within 200ms causes earlier fields' analytics events to be silently dropped — only the last field's event fires. Each field needs its own debounced instance (e.g., a map keyed by field name) to track independently.

Additional Locations (2)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit ec55233. Configure here.

wedamija pushed a commit that referenced this pull request Apr 13, 2026
…ion setup (#112736)

Three-step React frontend for the API-driven AWS Lambda integration
pipeline: project selection, CloudFormation stack creation with AWS
account verification, and Lambda function instrumentation with
selectable function cards and success/failure result tags.

Registers the pipeline in the frontend registry behind the
`integration-api-pipeline-aws-lambda` feature flag.


https://github.com/user-attachments/assets/009e2b74-9775-46b9-9c56-1cbc992e0871

Fixes
[VDY-70](https://linear.app/getsentry/issue/VDY-70/aws-lambda-api-driven-integration-setup)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Frontend Automatically applied to PRs that change frontend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants