Skip to content

Add graph limit modal and SNS notification infrastructure#51

Merged
jfrench9 merged 1 commit intomainfrom
feature/improved-graph-provisioning-flow
Feb 28, 2026
Merged

Add graph limit modal and SNS notification infrastructure#51
jfrench9 merged 1 commit intomainfrom
feature/improved-graph-provisioning-flow

Conversation

@jfrench9
Copy link
Member

Summary

This PR introduces a graph provisioning limit flow that gates users when creating new graphs, along with supporting backend infrastructure for SNS email notifications and secret management. The feature adds a modal-based UI to inform users when they've reached their graph limit and provides a form to request limit increases.

Changes

Infrastructure & CI/CD

  • SNS Notification Email: Added SNS_NOTIFICATION_EMAIL parameter propagation through deploy-app.yml, prod.yml, and staging.yml workflows to support email-based alerting
  • RoboSystems Secret ARN: Added ROBOSYSTEMS_SECRET_ARN handling in the deployment workflow for secure secret management
  • CloudFormation Template: Extended cloudformation/template.yaml with ~79 lines of new resource definitions, likely including SNS topic/subscription resources and related IAM permissions for notification delivery

Frontend — Graph Limit Flow

  • GraphLimitModal.tsx (new): A modal component that surfaces when users hit their graph creation limit, providing clear feedback and a pathway to request increases
  • GraphLimitForm.tsx (new, 277 lines): A comprehensive form component for users to submit graph limit increase requests, likely including validation, form fields for justification, and submission handling
  • graphs/new/content.tsx (modified): Integrated the new limit check logic into the graph creation flow, conditionally rendering the limit modal/form instead of or alongside the existing creation UI (~115 lines modified, net +91)

Key UI/UX Improvements

  • Users are now clearly informed when they've reached their graph provisioning limit rather than encountering an opaque error
  • A structured form allows users to request limit increases directly within the app flow
  • Modal pattern keeps users in context without navigating away from the graph creation page

Breaking Changes

  • Environment Configuration Required: Deployments now require SNS_NOTIFICATION_EMAIL to be set in the workflow environment/secrets for prod and staging. Missing configuration may cause deployment failures.
  • CloudFormation Stack Update: The template changes will trigger a stack update — ensure proper change set review before deploying to production.

Testing Notes for Reviewers

  • Verify the graph limit modal appears when a user has reached their max graph count
  • Test the limit increase form submission — confirm validation, error states, and successful submission behavior
  • Test the happy path where users are under the limit and can create graphs normally (no regression)
  • Confirm SNS email subscription is created and confirmation email is sent upon stack deployment
  • Verify the ROBOSYSTEMS_SECRET_ARN is correctly resolved and accessible in the deployed environment
  • Test modal dismiss/close behavior and ensure users can navigate back cleanly
  • Check form accessibility: keyboard navigation, focus management within the modal, screen reader announcements

Browser Compatibility Considerations

  • Modal component should be tested across Chrome, Firefox, Safari, and Edge for proper overlay rendering and scroll locking behavior
  • Form validation UX (inline errors, focus management) should be verified on mobile browsers (iOS Safari, Chrome Android)
  • Ensure the modal backdrop and z-index layering doesn't conflict with existing UI elements like navigation or toast notifications

🤖 Generated with Claude Code

Branch Info:

  • Source: feature/improved-graph-provisioning-flow
  • Target: main
  • Type: feature

Co-Authored-By: Claude noreply@anthropic.com

…andling in deployment workflows

- Introduced `notification_email` input for admin notifications in `deploy-app.yml`, `prod.yml`, and `staging.yml`.
- Added logic to retrieve and pass the RoboSystems secret ARN in the CloudFormation template.
- Implemented SNS topic and subscription for contact form notifications in the CloudFormation template.
- Enhanced the NewGraphContent component to manage user graph creation limits and display a modal for contact requests when limits are reached.
@jfrench9 jfrench9 merged commit b3e245b into main Feb 28, 2026
3 checks passed
@jfrench9 jfrench9 deleted the feature/improved-graph-provisioning-flow branch February 28, 2026 20:52
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