| id |
title |
status |
assignee |
created_date |
labels |
dependencies |
references |
priority |
| TASK-105 |
Listmonk newsletter integration with EncryptID auth |
Done |
|
2026-03-10 19:26 |
| rsocials |
| listmonk |
| auth |
| integration |
|
|
| modules/rsocials/mod.ts |
| modules/rsocials/lib/listmonk-proxy.ts |
| modules/rsocials/components/folk-newsletter-manager.ts |
|
medium |
Description
Replace the raw Listmonk iframe on the rSocials newsletter-list page with a custom newsletter manager UI backed by API proxy routes. Per-space Listmonk credentials are stored in module settings and injected server-side via Basic Auth. All API routes are gated by EncryptID auth + space role checks (moderator+ for reads, admin for campaign creation).
Acceptance Criteria
Final Summary
Changes\n\n### Modified files\n- shared/module.ts — Added 'password' to ModuleSettingType union\n- shared/components/rstack-space-switcher.ts — Added password input branch in settings renderer\n- modules/rsocials/mod.ts — Added Listmonk settings schema, auth helper, 6 newsletter API proxy routes, replaced iframe route with component\n- vite.config.ts — Added build entry for folk-newsletter-manager.js + CSS copy\n\n### New files\n- modules/rsocials/lib/listmonk-proxy.ts — getListmonkConfig() + listmonkFetch() helpers\n- modules/rsocials/components/folk-newsletter-manager.ts — Web component with 3 tabs, auth-gated UI\n- modules/rsocials/components/newsletter.css — Component styles\n\nCommit: c92ca0f