Skip to content

feat: SMS Gateway Interceptor module#318

Merged
butschster merged 3 commits intomasterfrom
feature/sms-gateway
Mar 28, 2026
Merged

feat: SMS Gateway Interceptor module#318
butschster merged 3 commits intomasterfrom
feature/sms-gateway

Conversation

@butschster
Copy link
Copy Markdown
Member

@butschster butschster commented Mar 28, 2026

Summary

  • Add Sms module that acts as a fake SMS gateway — captures SMS payloads from 40+ providers and displays them in the UI
  • Config-driven FieldMapGateway pattern: adding a new provider = adding one line in the bootloader
  • Auto-detects provider by payload fields (MessageSid → Twilio, api_key+api_secret → Vonage, etc.)
  • Explicit provider URL (/sms/twilio) validates required fields, returns 422 on missing fields, but still captures the event with warnings
  • 40 unit + feature tests

Providers supported

Twilio, Vonage, Plivo, Sinch, Infobip, MessageBird, Telnyx, Bandwidth, Brevo, Termii, Clickatell, MessageMedia, Lox24, Unifonic, Yunpian, Octopush, GatewayApi, SevenIo, SmsFactor, Redlink, OvhCloud, Smsc, 46elks, Mobyt, Smsapi, Sendberry, TurboSms, SimpleTextin, Isendpro, RingCentral, ClickSend, SMS.ru, SMS Aero, Devino, IQSms, MTS, Beeline, Megafon + generic fallback.

Files changed

  • app/modules/Sms/ — Domain DTO, Gateway layer, HTTP handler, EventTypeMapper, Bootloader
  • app/src/Application/Kernel.php — register SmsBootloader
  • app/src/Application/Bootloader/AppBootloader.php — add sms to CLIENT_SUPPORTED_EVENTS
  • docker-compose.yaml — add sms to events list, switch examples to SQLite
  • tests/ — 40 tests (unit + feature)

Related

  • Frontend PR: see feature/sms-gateway branch in buggregator/frontend

Test plan

  • Unit tests for SmsMessage, FieldMapGateway, GatewayRegistry, EventTypeMapper
  • Feature tests for SmsHandler (Twilio, Vonage, Plivo, Generic, project routing, explicit gateway, validation warnings, pass-through)
  • Manual test: send SMS payloads via curl/examples app and verify events appear in UI

🤖 Generated with Claude Code

Capture SMS messages from 40+ providers (Twilio, Vonage, Plivo, Sinch,
Infobip, MessageBird, and more). Auto-detects provider by payload fields
or uses explicit URL segment (/sms/twilio) with field validation.
Events with missing fields return 422 but are still captured with
warnings visible in the UI.

- Config-driven FieldMapGateway: add new provider = add array
- SmsHandler middleware with auto-detect and explicit provider routing
- 40 unit + feature tests
- SmsBootloader with 40+ provider field mappings
- EventTypeMapper for preview and search

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
butschster and others added 2 commits March 28, 2026 19:24
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Automated rector changes: instanceof checks, remove unused variables,
simplify method calls.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@butschster butschster merged commit 49e134c into master Mar 28, 2026
2 of 7 checks passed
@butschster butschster deleted the feature/sms-gateway branch March 28, 2026 15:49
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