Skip to content

Conversation

@giancarloromeo
Copy link
Contributor

@giancarloromeo giancarloromeo commented Nov 18, 2025

What do these changes do?

This PR introduces a new Notifications service to the osparc-simcore platform, implementing email notification capabilities using Celery workers. The service provides infrastructure for sending templated email notifications for various account-related events.

Key changes include:

  • Implementation of a Celery-based notification worker system with Redis task storage
  • New event models for account lifecycle notifications (request, approval, rejection)
  • Email channel infrastructure with template rendering support
  • Dual-mode service operation: REST API server or Celery worker

Related issue/s

  • resolves ITISFoundation/private-issues#228
  • relates to ITISFoundation/private-issues#227

How to test

cd services/notifications
make test-dev

Dev-ops

  • Introduced new notifications-wrk container (worker for notifications one)

@codecov
Copy link

codecov bot commented Nov 18, 2025

Codecov Report

❌ Patch coverage is 87.20930% with 22 lines in your changes missing coverage. Please review.
✅ Project coverage is 88.89%. Comparing base (0af131f) to head (86cffb9).

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #8615      +/-   ##
==========================================
+ Coverage   87.12%   88.89%   +1.77%     
==========================================
  Files        2010     1811     -199     
  Lines       79008    71420    -7588     
  Branches     1377      863     -514     
==========================================
- Hits        68832    63486    -5346     
+ Misses       9777     7715    -2062     
+ Partials      399      219     -180     
Flag Coverage Δ *Carryforward flag
integrationtests 63.86% <ø> (-0.01%) ⬇️ Carriedforward from 063fe81
unittests 87.93% <87.20%> (+1.74%) ⬆️

*This pull request uses carry forward flags. Click here to find out more.

Components Coverage Δ
pkg_aws_library 95.30% <ø> (ø)
pkg_celery_library 83.43% <ø> (ø)
pkg_dask_task_models_library 79.37% <ø> (ø)
pkg_models_library 92.90% <100.00%> (+0.06%) ⬆️
pkg_notifications_library 85.52% <100.00%> (+0.32%) ⬆️
pkg_postgres_database 88.03% <ø> (ø)
pkg_service_integration 72.76% <ø> (ø)
pkg_service_library ∅ <ø> (∅)
pkg_settings_library 90.21% <ø> (ø)
pkg_simcore_sdk 84.51% <ø> (ø)
agent 93.44% <ø> (ø)
api_server 91.37% <ø> (ø)
autoscaling 95.83% <ø> (ø)
catalog 92.06% <ø> (ø)
clusters_keeper 99.14% <ø> (ø)
dask_sidecar 91.72% <ø> (ø)
datcore_adapter 97.95% <ø> (ø)
director 75.68% <ø> (ø)
director_v2 91.18% <ø> (+0.10%) ⬆️
dynamic_scheduler 96.70% <ø> (+0.03%) ⬆️
dynamic_sidecar 82.00% <ø> (ø)
efs_guardian 89.83% <ø> (ø)
invitations 90.90% <ø> (ø)
payments 92.70% <ø> (ø)
resource_usage_tracker 92.27% <ø> (+0.15%) ⬆️
storage 86.74% <ø> (+0.11%) ⬆️
webclient ∅ <ø> (∅)
webserver 86.73% <ø> (-0.02%) ⬇️

Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0af131f...86cffb9. Read the comment docs.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@mergify
Copy link
Contributor

mergify bot commented Nov 18, 2025

🧪 CI Insights

Here's what we observed from your CI run for 86cffb9.

❌ Job Failures

Pipeline Job Health on master Retries 🔍 CI Insights 📄 Logs
CI build-test-images (frontend) / build-test-images Healthy 0 View View
unit-tests Broken 0 View View
PR CI check OAS' are up to date Unknown 0 View View

@giancarloromeo giancarloromeo added this to the Imparable milestone Nov 18, 2025
@odeimaiz odeimaiz self-requested a review November 18, 2025 16:13
Copy link
Member

@pcrespov pcrespov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thx!

Copy link
Contributor

@GitHK GitHK left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All right, looking forward for a simple interface to be used form other services.

Copy link
Contributor

@bisgaard-itis bisgaard-itis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool! Thanks a lot.
One more celery to join the family 🎉

Copy link
Member

@sanderegg sanderegg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! a few suggestions and comments

@giancarloromeo giancarloromeo added the 🤖-automerge marks PR as ready to be merged for Mergify label Nov 24, 2025
@giancarloromeo
Copy link
Contributor Author

@mergify queue

@mergify
Copy link
Contributor

mergify bot commented Nov 24, 2025

queue

🟠 Waiting for conditions to match

  • any of: [🔀 queue conditions]
    • all of: [📌 queue conditions of queue default]
      • any of: [🛡 GitHub branch protection]
        • check-neutral = unit-tests
        • check-skipped = unit-tests
        • check-success = unit-tests
      • any of: [🛡 GitHub branch protection]
        • check-neutral = check OAS' are up to date
        • check-skipped = check OAS' are up to date
        • check-success = check OAS' are up to date
      • any of: [🛡 GitHub branch protection]
        • check-neutral = build-test-images (frontend) / build-test-images
        • check-skipped = build-test-images (frontend) / build-test-images
        • check-success = build-test-images (frontend) / build-test-images
      • #approved-reviews-by >= 2 [🛡 GitHub branch protection]
      • #approved-reviews-by>=2
      • #changes-requested-reviews-by = 0 [🛡 GitHub branch protection]
      • #changes-requested-reviews-by=0
      • #review-threads-unresolved = 0 [🛡 GitHub branch protection]
      • #review-threads-unresolved=0
      • -conflict
      • -draft
      • base=master
      • branch-protection-review-decision = APPROVED [🛡 GitHub branch protection]
      • label!=🤖-do-not-merge
      • label=🤖-automerge
      • any of: [🛡 GitHub branch protection]
        • check-skipped = deploy to dockerhub
        • check-neutral = deploy to dockerhub
        • check-success = deploy to dockerhub
      • any of: [🛡 GitHub branch protection]
        • check-success = system-tests
        • check-neutral = system-tests
        • check-skipped = system-tests
      • any of: [🛡 GitHub branch protection]
        • check-success = integration-tests
        • check-neutral = integration-tests
        • check-skipped = integration-tests
      • any of: [🛡 GitHub branch protection]
        • check-success = SonarCloud Code Analysis
        • check-neutral = SonarCloud Code Analysis
        • check-skipped = SonarCloud Code Analysis
  • -closed [📌 queue requirement]
  • -conflict [📌 queue requirement]
  • -draft [📌 queue requirement]
  • any of: [📌 queue -> configuration change requirements]
    • -mergify-configuration-changed
    • check-success = Configuration changed

@mergify
Copy link
Contributor

mergify bot commented Nov 24, 2025

Merge Queue Status Beta

🟠 Waiting for queue conditions

Required conditions to enter a queue
  • any of [🔀 queue conditions]:
    • all of [📌 queue conditions of queue default]:
      • any of [🛡 GitHub branch protection]:
        • check-neutral = unit-tests
        • check-skipped = unit-tests
        • check-success = unit-tests
      • any of [🛡 GitHub branch protection]:
        • check-neutral = check OAS' are up to date
        • check-skipped = check OAS' are up to date
        • check-success = check OAS' are up to date
      • any of [🛡 GitHub branch protection]:
        • check-neutral = build-test-images (frontend) / build-test-images
        • check-skipped = build-test-images (frontend) / build-test-images
        • check-success = build-test-images (frontend) / build-test-images
      • #approved-reviews-by >= 2 [🛡 GitHub branch protection]
      • #approved-reviews-by>=2
      • #changes-requested-reviews-by = 0 [🛡 GitHub branch protection]
      • #changes-requested-reviews-by=0
      • #review-threads-unresolved = 0 [🛡 GitHub branch protection]
      • #review-threads-unresolved=0
      • -conflict
      • -draft
      • base=master
      • branch-protection-review-decision = APPROVED [🛡 GitHub branch protection]
      • label!=🤖-do-not-merge
      • label=🤖-automerge
      • any of [🛡 GitHub branch protection]:
        • check-skipped = deploy to dockerhub
        • check-neutral = deploy to dockerhub
        • check-success = deploy to dockerhub
      • any of [🛡 GitHub branch protection]:
        • check-success = system-tests
        • check-neutral = system-tests
        • check-skipped = system-tests
      • any of [🛡 GitHub branch protection]:
        • check-success = integration-tests
        • check-neutral = integration-tests
        • check-skipped = integration-tests
      • any of [🛡 GitHub branch protection]:
        • check-success = SonarCloud Code Analysis
        • check-neutral = SonarCloud Code Analysis
        • check-skipped = SonarCloud Code Analysis
  • -closed [📌 queue requirement]
  • -conflict [📌 queue requirement]
  • -draft [📌 queue requirement]
  • any of [📌 queue -> configuration change requirements]:
    • -mergify-configuration-changed
    • check-success = Configuration changed

@sonarqubecloud
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🤖-automerge marks PR as ready to be merged for Mergify a:notifications

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants