agrynco
50033a5bd4
fix: escape html notification variables
...
Encode template variables in HTML bodies while preserving text and subjects.
Ref: IT-1115
2026-08-19 23:04:15 +03:00
agrynco
01c622038d
Merge pull request 'fix: correct notification template filter links' ( #15 ) from bugfix/it-1039-template-filter-links into main
...
Reviewed-on: #15
2026-08-04 21:02:59 +03:00
agrynco
1ceb71b9a2
fix: correct notification template filter links
...
Use explicit Razor interpolation for create and edit URLs and cover the rendered link syntax with a regression test.
Ref: IT-1039
2026-08-04 21:01:46 +03:00
agrynco
bb0de0f2c1
Merge pull request 'feat: consume transactional email notifications' ( #14 ) from development into main
...
Reviewed-on: #14
2026-08-04 13:39:28 +03:00
agrynco
d5a2e538f0
Merge pull request 'Merge pull request 'chore: update package versions and refactor TransactionBehavior' ( #4 ) from development into main' ( #13 ) from IT-1033 into development
...
Reviewed-on: #13
2026-08-04 13:39:04 +03:00
agrynco
9d6b0717e6
docs: document repository git workflow
...
Record the main-based branch and delivery rules for future changes.
Ref: IT-1033
2026-08-04 12:32:28 +03:00
agrynco
2757869176
feat: consume transactional email notifications
...
Add contract validation, SMTP delivery results, terminal failure context, neutral development seeding, and local Docker setup.
Ref: IT-1033
2026-08-04 12:32:28 +03:00
agrynco
b8435ac07b
Merge pull request 'feat: add persistence and restoration of email template filters in UI and backend' ( #12 ) from development into main
...
Reviewed-on: #12
2026-05-17 13:53:58 +03:00
agrynco
cc3857a409
feat: add persistence and restoration of email template filters in UI and backend
2026-05-17 13:53:37 +03:00
agrynco
94f0d45aaf
Merge pull request 'feat: add filtering by ServiceName and Key in email templates query and UI' ( #11 ) from development into main
...
Reviewed-on: #11
2026-05-17 11:43:55 +03:00
agrynco
07f536938f
feat: add filtering by ServiceName and Key in email templates query and UI
2026-05-17 11:43:25 +03:00
agrynco
e7d3953747
Merge pull request 'refactor: add ordering by ServiceName and Key in GetAllAsync method' ( #10 ) from development into main
...
Reviewed-on: #10
2026-05-17 11:34:15 +03:00
agrynco
3381fcc2f8
refactor: add ordering by ServiceName and Key in GetAllAsync method
2026-05-17 11:31:44 +03:00
agrynco
3bd952ef9e
Merge pull request 'refactor: simplify Program.cs and clean up NuGet.Config' ( #9 ) from development into main
...
Reviewed-on: #9
2026-05-17 11:18:43 +03:00
agrynco
285cc6abb7
refactor: simplify Program.cs and clean up NuGet.Config
2026-05-17 11:18:05 +03:00
agrynco
9589095760
Merge pull request 'refactor: modularize email processing logic and improve service structure' ( #8 ) from development into main
...
Reviewed-on: #8
2026-05-14 22:21:30 +03:00
Anatolii Grynchuk
25fb48ccf0
refactor: modularize email processing logic and improve service structure
...
- 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.
2026-05-14 22:15:15 +03:00
agrynco
ab042c7617
Merge pull request 'refactor: improve UpdateAsync in EmailTemplateRepository for better entity handling' ( #7 ) from development into main
...
Reviewed-on: #7
2026-05-13 03:40:31 +03:00
Anatolii Grynchuk
0861e18cec
refactor: improve UpdateAsync in EmailTemplateRepository for better entity handling
...
- Add null check and fetch entity before updating fields.
- Replace the direct property assignment with detailed updates.
- Ensure changes are saved using SaveChangesAsync.
2026-05-13 03:39:44 +03:00
agrynco
dfa097eb43
Merge pull request 'refactor: replace internal UnitOfWork with NotificationUnitOfWork and NotificationBaseRepository' ( #6 ) from development into main
...
Reviewed-on: #6
2026-05-13 02:12:35 +03:00
Anatolii Grynchuk
c18f0b7fb1
refactor: update admin CSS for improved layout and readability
...
- 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.
2026-05-13 02:11:59 +03:00
Anatolii Grynchuk
50828d23ec
refactor: replace internal UnitOfWork with NotificationUnitOfWork and NotificationBaseRepository
...
- 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.
2026-05-13 02:08:43 +03:00
agrynco
f3966705ad
Merge pull request 'refactor: use AsNoTracking for email template queries to improve performance' ( #5 ) from development into main
...
Reviewed-on: #5
2026-05-12 22:21:32 +03:00
Anatolii Grynchuk
b4d8497ea7
refactor: use AsNoTracking for email template queries to improve performance
2026-05-12 22:21:00 +03:00
agrynco
7b77062aa7
Merge pull request 'chore: update package versions and refactor TransactionBehavior' ( #4 ) from development into main
...
Reviewed-on: #4
2026-05-12 21:58:57 +03:00
Anatolii Grynchuk
9490718c04
feat: add real-time email template preview with variable interpolation
...
- 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.
2026-05-12 21:56:50 +03:00
Anatolii Grynchuk
0d1aa4f6be
chore: update package versions and refactor TransactionBehavior
...
- Upgrade EF Core packages to 10.0.x and HrynCo.DAL.Abstract to 1.0.10
- Refactor TransactionBehavior to simplify transaction handling logic
2026-05-12 21:37:38 +03:00
agrynco
637af06a9c
Merge pull request 'refactor: replace local DAL abstractions with hrynco-ef packages' ( #3 ) from development into main
2026-05-05 20:40:15 +03:00
agrynco
334bf2a567
Merge pull request 'refactor: replace local DAL abstractions with hrynco-ef packages' ( #2 ) from use-hrynco-ef-packages into development
2026-05-05 20:40:07 +03:00
Anatolii Grynchuk
ee4c988a0d
refactor: replace local dal abstractions with hrynco-ef packages
...
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
2026-05-05 20:39:06 +03:00
agrynco
9c2edd4712
Merge pull request 'release: development -> main' ( #1 ) from development into main
2026-05-02 23:48:34 +03:00
Anatolii Grynchuk
49982fc27f
chore: add Application property to Serilog for log filtering
...
- 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 >
2026-05-02 23:47:48 +03:00
Anatolii Grynchuk
5c7b5f7b10
Merge branch 'development'
2026-05-02 19:53:26 +03:00
Anatolii Grynchuk
6302a07178
feat: add test button to create channel form using ad-hoc smtp test endpoint
...
- 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
2026-05-02 19:53:20 +03:00
Anatolii Grynchuk
b07cd06477
Merge branch 'development'
2026-05-02 18:50:17 +03:00
Anatolii Grynchuk
3e1cc696c1
fix: rename api service to web in all docker-compose files
...
- 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 >
2026-05-02 18:50:16 +03:00
Anatolii Grynchuk
9a0aaf629b
Merge branch 'development'
2026-05-02 18:43:21 +03:00
Anatolii Grynchuk
d71c3513a5
fix: add missing FK migration for EmailChannelUsage -> EmailChannel
...
- 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 >
2026-05-02 18:43:20 +03:00
Anatolii Grynchuk
859ae0b50d
Merge branch 'development'
2026-05-02 18:31:36 +03:00
Anatolii Grynchuk
c5528b253d
fix: add internal network to migrator, api, worker services
...
- 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 >
2026-05-02 18:31:34 +03:00
Anatolii Grynchuk
09c3985fad
Merge branch 'development'
2026-05-02 16:38:10 +03:00
Anatolii Grynchuk
166b1a6103
fix: wait for postgres healthcheck before running migrator
...
- 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 >
2026-05-02 16:38:09 +03:00
Anatolii Grynchuk
8dab3c0dc0
Merge branch 'development'
2026-05-02 15:40:13 +03:00
Anatolii Grynchuk
c88511ce3b
chore: update package versions and formatting in Directory.Packages.props
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-02 15:40:12 +03:00
Anatolii Grynchuk
a6f9a0a530
Merge branch 'development'
2026-05-02 15:25:10 +03:00
Anatolii Grynchuk
ae119d1a3d
feat: add production docker-compose with hrynco-services network
...
- 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 >
2026-05-02 15:25:09 +03:00
Anatolii Grynchuk
c303514414
Merge branch 'development'
2026-05-02 14:40:07 +03:00
Anatolii Grynchuk
74211f0a4a
chore: add NuGet metadata to Contracts project
...
- 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 >
2026-05-02 14:40:01 +03:00
Anatolii Grynchuk
18f7981ccc
merge: development -> main
2026-05-02 14:23:18 +03:00
Anatolii Grynchuk
5003ab8764
fix: move ManagePackageVersionsCentrally to Directory.Packages.props
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-02 14:23:17 +03:00
Anatolii Grynchuk
4a431ec6c6
merge: IT-628 RabbitMQ worker, contracts, usage UI in channels screen
2026-05-02 14:01:04 +03:00