merge: IT-628 RabbitMQ worker, contracts, usage UI in channels screen #16

Closed
agrynco wants to merge 51 commits from feature/it-1115-html-template-escaping into IT-628
Owner
No description provided.
agrynco added 51 commits 2026-08-19 23:05:50 +03:00
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add PackageId, Authors, Description, PackageTags, RepositoryUrl
- Matches metadata pattern from HrynCo.Common and HrynCo.RabbitMq

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Base compose: explicit internal network, named volumes with VOLUME_PREFIX
- docker-compose.prod.yml: production images, ports, restart policies, hrynco-services external network on rabbitmq
- docker-compose.Development.yml: cleaned up orphan volumes, named dev volumes

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add pg_isready healthcheck to db service (5s interval, 10 retries)
- Change migrator depends_on condition: service_started -> service_healthy
- Prevents migrator connection failure on fresh postgres startup

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- migrator, api, worker were missing 'networks: - internal'
- db and rabbitmq are only on internal network, so services couldn't reach them
- also changed api depends_on db condition to service_healthy

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- EF model had a pending HasOne/WithMany relationship not in migrations
- Adds FK_email_channel_usage_email_channels_provider_id with cascade delete

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Aligns compose service name with the image name (hrynco.notification-service.web)
- Rename API_PORT env var to WEB_PORT for consistency

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add TestSmtpCommand and TestSmtpHandler for ad-hoc smtp testing without saving
- Add POST /admin/channels/test-smtp endpoint accepting raw smtp settings
- Show Test button on both Create and Edit forms
- Test reads current form values so channel can be tested before saving
- Worker logs tagged as 'hrynco-notification-service-worker'
- Web logs tagged as 'hrynco-notification-service-web'

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove duplicate IEntity, Entity, ITransaction, IUnitOfWork, EfRepository,
EfUnitOfWork, EfTransactionAdapter — now consumed from HrynCo.DAL.Abstract
and HrynCo.DAL.EF packages (1.0.1).

Ref: IT-0
- Upgrade EF Core packages to 10.0.x and HrynCo.DAL.Abstract to 1.0.10
- Refactor TransactionBehavior to simplify transaction handling logic
- Introduce preview panel to edit form for rendering subject, HTML, and text with sample values.
- Add support for real-time updates using JavaScript.
- Include supporting styles for preview panel in admin CSS.
- Add optional `Scripts` section rendering to `_EditorLayout`.
- Create `.env.Development` for better development environment configuration.
Reviewed-on: https://gitea.grynco.com.ua/hrynco/hrynco-notification-service/pulls/4
Reviewed-on: https://gitea.grynco.com.ua/hrynco/hrynco-notification-service/pulls/5
- Consolidate unit of work implementation with NotificationUnitOfWork.
- Refactor repositories to use NotificationBaseRepository for consistency.
- Simplify request handlers by removing IUnitOfWork dependency.
- Update related tests and service registration.
- Switch `.template-preview-variables` to grid layout for better responsiveness.
- Adjust form label font size and spacing for consistency.
- Enhance styles of `.form-control-sm` for improved usability.
Reviewed-on: https://gitea.grynco.com.ua/hrynco/hrynco-notification-service/pulls/6
- Add null check and fetch entity before updating fields.
- Replace the direct property assignment with detailed updates.
- Ensure changes are saved using SaveChangesAsync.
Reviewed-on: https://gitea.grynco.com.ua/hrynco/hrynco-notification-service/pulls/7
- Extract email template handling, rendering, and sending code into `Worker.Services` project.
- Introduce `EmailTemplateService`, `EmailTemplateRenderingService`, and `SendEmailService`.
- Simplify consumer logic by delegating to scoped services.
- Update project dependencies and package references accordingly.
Reviewed-on: https://gitea.grynco.com.ua/hrynco/hrynco-notification-service/pulls/8
Reviewed-on: https://gitea.grynco.com.ua/hrynco/hrynco-notification-service/pulls/9
Reviewed-on: https://gitea.grynco.com.ua/hrynco/hrynco-notification-service/pulls/10
Reviewed-on: https://gitea.grynco.com.ua/hrynco/hrynco-notification-service/pulls/11
Reviewed-on: https://gitea.grynco.com.ua/hrynco/hrynco-notification-service/pulls/12
Add contract validation, SMTP delivery results, terminal failure context, neutral development seeding, and local Docker setup.

Ref: IT-1033
Record the main-based branch and delivery rules for future changes.

Ref: IT-1033
Reviewed-on: https://gitea.grynco.com.ua/hrynco/hrynco-notification-service/pulls/13
Reviewed-on: https://gitea.grynco.com.ua/hrynco/hrynco-notification-service/pulls/14
Use explicit Razor interpolation for create and edit URLs and cover the rendered link syntax with a regression test.

Ref: IT-1039
Reviewed-on: https://gitea.grynco.com.ua/hrynco/hrynco-notification-service/pulls/15
Encode template variables in HTML bodies while preserving text and subjects.

Ref: IT-1115
agrynco closed this pull request 2026-08-19 23:07:24 +03:00

Pull request closed

Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: hrynco/hrynco-notification-service#16