feat(push): add service-owned firebase channels and delivery
Add push contracts, provider delivery and channel diagnostics. Link email channels to services and document migration and validation. Ref: IT-1074
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
# Supported incoming message types
|
||||
|
||||
The Worker uses `SupportedMessageType` for its two incoming commands:
|
||||
|
||||
| AMQP MessageType (unchanged) | Public enum | Consumer queue |
|
||||
| --- | --- | --- |
|
||||
| `Notification.SendEmail.v1` | `SendEmailV1` | `notification.send-email` |
|
||||
| `Notification.SendPush.v1` | `SendPushV1` | `notification.send-push` |
|
||||
|
||||
`SupportedMessageTypeParser` maps the transport string at the validation boundary.
|
||||
Matching is exact and case-sensitive. Unknown versions, missing values, whitespace
|
||||
variants, enum names and numeric strings return no enum value and are rejected.
|
||||
Each consumer's delivery validator accepts only its own enum member; a supported
|
||||
command sent to the other consumer is also rejected before delivery.
|
||||
|
||||
The public enum lives in `HrynCo.NotificationService.Contracts/Messages/SupportedMessageType.cs`,
|
||||
in namespace `HrynCo.NotificationService.Contracts.Messages`, and is included in the existing
|
||||
`HrynCo.NotificationService.Contracts` package. The Worker parser remains internal and all
|
||||
consumers, validators and tests reference this single Contracts enum. It does not change RabbitMQ headers, serialized
|
||||
payloads, queues, producers or the shared RabbitMQ library. Result messages are not
|
||||
incoming delivery commands and are outside this enum's scope. Existing payload and
|
||||
correlation validation remains unchanged.
|
||||
|
||||
The Push Channels change removes the draft Firebase project/access-token fields from
|
||||
SendPushMessageData. The enum and AMQP header stay unchanged; see
|
||||
[push channels](android-push.md) for producer compatibility and rollout order.
|
||||
Reference in New Issue
Block a user