Skip to content

feat: SQS batch operations and queue management (#72)#106

Merged
DaviReisVieira merged 16 commits intomainfrom
feat/sqs-batch-operations-and-queue-management
Apr 25, 2026
Merged

feat: SQS batch operations and queue management (#72)#106
DaviReisVieira merged 16 commits intomainfrom
feat/sqs-batch-operations-and-queue-management

Conversation

@DaviReisVieira
Copy link
Copy Markdown
Owner

Summary

Implements full SQS queue management in StackPort — create/delete queues (Standard & FIFO), batch message operations (send/delete), queue attributes editing, DLQ auto-creation, favorites system, and a polished custom UI. Compatible with LocalStack, MiniStack, Moto, or any AWS-compatible endpoint.

Closes #72. Supersedes #96 (cross-fork PR had stale CI targeting).

What changed

Backend

  • 12 SQS endpoints in backend/routes/sqs.py: full CRUD for queues, messages (single + batch), purge, attributes, redrive policy
  • Pydantic schemas extracted into backend/schemas/ package (sqs, s3, dynamodb, tags) — prepares for future OpenAPI typing
  • Multi-endpoint support: all write endpoints accept ?endpoint= query param via Depends(get_endpoint_url)
  • FIFO auto-append, DLQ auto-creation, encryption (SSE/KMS), tagging

Frontend

  • Redesigned SQS browser: compact row-style queue list, action dropdown menu, polished message/favorites tables
  • Component extraction: monolithic SQSBrowser split into sqs/ sub-components (QueueCard, CreateQueueSheet, EditSettingsSheet, BatchSendSheet, ConfirmSheets, etc.)
  • Multi-endpoint wiring: all 7 API call sites pass activeEndpoint from useEndpoint hook
  • Favorites system with localStorage persistence, resend, batch support

Tests

  • 34 backend tests covering all SQS endpoints, FIFO behavior, batch limits, DLQ, encryption, error handling

Test plan

  • Run emulator + StackPort, navigate to SQS
  • Create Standard and FIFO queues (verify .fifo auto-append)
  • Enable DLQ on creation, verify auto-created DLQ
  • Send single + batch messages, peek/receive, bulk delete
  • Save message as favorite, resend from favorites tab
  • Edit queue settings, purge, delete queues
  • Switch endpoints — verify all operations target correct endpoint
  • pytest tests/test_sqs_routes.py -v (34 tests)
  • cd ui && npx tsc -b (zero errors)

alancoosta and others added 16 commits April 21, 2026 23:37
- Fix DLQ ARN bug: fetch ARN via get_queue_attributes after create_queue
- Remove redundant get_queue_url call in DLQ existence check
- Fix EditSettingsSheet copy-paste corruption (leaked deleteSQSMessage code)
- Fix null redrive policy causing 400 when DLQ disabled
- Replace window.confirm/prompt with Sheet-based confirmation dialogs
- Pass FIFO params (messageGroupId, deduplicationId) through batch send
- Remove redundant .filter() on paginatedQueues
- Fix missing TagIcon import
- Add 3 DLQ auto-creation tests (standard, FIFO, existing DLQ reuse)
- Update existing create_queue tests for new get_queue_attributes flow
Move all request/response models from route files into dedicated
per-service schema modules (sqs, s3, dynamodb, tags). Route files
now import schemas instead of defining them inline, preparing for
OpenAPI typing across all services.
Split SQSBrowser.tsx (3100 lines) into 12 focused sub-components
under sqs/ directory: sheets, confirm dialogs, queue card, badges,
pagination, and shared utilities. Deduplicate queue card JSX into
a single QueueCard component with showExtendedStats prop.
Replace multi-column card grid with single-column rows matching
the S3 browser pattern. Each queue shows icon, name, badges on
the left and stats (messages, in-flight, retention) with a
chevron on the right. Favorite star is always visible.
- Collapse 5 action buttons into 2 primary + dropdown overflow menu
- Messages table: border wrapper, hover rows, Checkbox component
- Favorites table: icon-only buttons with tooltips
- Configuration tab: description-list style with dividers
- Single-column queue list layout matching S3 browser
Add missing endpoint_url dependency injection to 6 backend
endpoints (create, delete, update, batch send/delete, redrive)
and propagate activeEndpoint through all frontend API calls and
sub-components. Fixes multi-endpoint support for SQS writes.
- Filter favorite messages by sourceQueue so each queue shows only its own
- Pass queueName to CreateFavoriteSheet so new favorites get sourceQueue set
- Clear selectedMessages on peek to prevent stale selection buttons
- Remove deleted message from selectedMessages when deleted via viewer
@DaviReisVieira DaviReisVieira merged commit e77d3f9 into main Apr 25, 2026
2 checks passed
@DaviReisVieira DaviReisVieira deleted the feat/sqs-batch-operations-and-queue-management branch April 25, 2026 14:37
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.

SQS — Batch operations and queue management

2 participants