Merge pull request 'fix(notification): enable web smtp test with saved password' (#25) from fix/notification-web-smtp-test into main

This commit was merged in pull request #25.
This commit is contained in:
2026-10-18 00:20:41 +03:00
9 changed files with 260 additions and 5 deletions
@@ -80,6 +80,17 @@ published, accepted by the Gmail SMTP channel, acknowledged as delivery successe
Invemory Outbox, and confirmed in the recipient's Gmail conversation. Today's channel
usage increased by two. Both queues ended with zero ready and unacknowledged messages.
### Administrative SMTP test from Web — 2026-10-18
The channel editor's **Send Test Email** action sends directly from Web through SMTP;
it does not use the Worker or RabbitMQ. Its TCP 587 connection timed out while the
production network policy allowed external SMTP only from Worker. The additive
`web-to-external-smtp` policy in `production-network.yaml` grants Web the same public
IPv4 TCP 587 egress as Worker, with the same private and cluster address exclusions.
Apply this production overlay separately from the sandbox-only `notification.py`
render. No SMTP credentials, channel settings, templates, or workload restart are
required for this network change.
The activation helper also persists the production user, queue and expanded Worker ACL
in the `rabbit-definitions` Secret. The private password and matching RabbitMQ hash
are saved with mode `0600`; updated `notification.py` reproduces that Secret during
@@ -83,3 +83,32 @@ spec:
ports:
- protocol: TCP
port: 587
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: web-to-external-smtp
namespace: shared-notification
spec:
podSelector:
matchLabels:
app.kubernetes.io/component: web
app.kubernetes.io/name: hrynco-shared-notification
app.kubernetes.io/managed-by: hrynco-shared-notification
policyTypes: [Egress]
egress:
- to:
- ipBlock:
cidr: 0.0.0.0/0
except:
- 10.0.0.0/8
- 100.64.0.0/10
- 127.0.0.0/8
- 169.254.0.0/16
- 172.16.0.0/12
- 192.168.0.0/16
- 224.0.0.0/4
- 240.0.0.0/4
ports:
- protocol: TCP
port: 587