Skip to content

Conversation

@matusdrobuliak66
Copy link
Collaborator

@matusdrobuliak66 matusdrobuliak66 commented Aug 13, 2025

What do these changes do?

  • ✨ First iteration backend for support center (πŸ—ƒοΈ)
  • introduced /conversations and /conversations/<id>/messages endpoints with focus on SUPPORT type
image

Next steps:

  • create a FogBugz case when support message is created.

Related issue/s

How to test

  • services/web/server/tests/unit/with_dbs/04/conversations/test_conversations_rest.py
  • services/web/server/tests/unit/with_dbs/04/conversations/test_conversations_messages_rest.py

Dev-ops

@matusdrobuliak66 matusdrobuliak66 self-assigned this Aug 13, 2025
@matusdrobuliak66 matusdrobuliak66 added this to the Voyager milestone Aug 13, 2025
@codecov
Copy link

codecov bot commented Aug 13, 2025

Codecov Report

❌ Patch coverage is 75.89577% with 74 lines in your changes missing coverage. Please review.
βœ… Project coverage is 89.80%. Comparing base (3472e17) to head (8a31d1a).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #8212      +/-   ##
==========================================
+ Coverage   88.09%   89.80%   +1.71%     
==========================================
  Files        1911     1625     -286     
  Lines       73543    64243    -9300     
  Branches     1299      640     -659     
==========================================
- Hits        64787    57695    -7092     
+ Misses       8366     6379    -1987     
+ Partials      390      169     -221     
Flag Coverage Ξ”
integrationtests 64.10% <47.17%> (-0.12%) ⬇️
unittests 88.24% <75.89%> (+1.51%) ⬆️
Components Coverage Ξ”
pkg_aws_library βˆ… <ΓΈ> (βˆ…)
pkg_celery_library βˆ… <ΓΈ> (βˆ…)
pkg_dask_task_models_library βˆ… <ΓΈ> (βˆ…)
pkg_models_library 93.04% <100.00%> (+<0.01%) ⬆️
pkg_notifications_library 85.26% <ΓΈ> (ΓΈ)
pkg_postgres_database 88.02% <100.00%> (+<0.01%) ⬆️
pkg_service_integration 70.19% <ΓΈ> (ΓΈ)
pkg_service_library βˆ… <ΓΈ> (βˆ…)
pkg_settings_library βˆ… <ΓΈ> (βˆ…)
pkg_simcore_sdk 85.09% <ΓΈ> (+0.05%) ⬆️
agent 93.90% <ΓΈ> (ΓΈ)
api_server 93.26% <ΓΈ> (ΓΈ)
autoscaling 95.89% <ΓΈ> (ΓΈ)
catalog 92.34% <ΓΈ> (ΓΈ)
clusters_keeper 99.13% <ΓΈ> (ΓΈ)
dask_sidecar 92.37% <ΓΈ> (+0.56%) ⬆️
datcore_adapter 97.94% <ΓΈ> (ΓΈ)
director 76.14% <ΓΈ> (ΓΈ)
director_v2 90.94% <ΓΈ> (+0.01%) ⬆️
dynamic_scheduler 96.27% <ΓΈ> (ΓΈ)
dynamic_sidecar 90.05% <ΓΈ> (ΓΈ)
efs_guardian 89.62% <ΓΈ> (ΓΈ)
invitations 91.44% <ΓΈ> (ΓΈ)
payments 92.61% <ΓΈ> (ΓΈ)
resource_usage_tracker 92.13% <ΓΈ> (ΓΈ)
storage 86.55% <ΓΈ> (-0.13%) ⬇️
webclient βˆ… <ΓΈ> (βˆ…)
webserver 88.11% <75.41%> (-0.18%) ⬇️

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 3472e17...8a31d1a. 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 Aug 13, 2025

πŸ§ͺ CI Insights

Here's what we observed from your CI run for 8a31d1a.

βœ… Passed Jobs With Interesting Signals

Pipeline Job Signal Health on base branch Retries πŸ” CI Insights πŸ“„ Logs
CI [sys] public api (3.11, ubuntu-24.04) Base branch is broken, but the job passed. Looks like this might be a real fix πŸ’ͺ Broken 0 View View
system-tests Base branch is broken, but the job passed. Looks like this might be a real fix πŸ’ͺ Broken 0 View View

Allows support conversations and messages to be created, updated, and deleted without requiring a project ID.

Prevents unnecessary notifications for support conversations by skipping events when no project ID is present.

Improves access control checks and context handling for support-type conversations.

Enhances code clarity and robustness for support workflows.
Moves REST endpoints for conversation messages into a separate controller for improved modularity and maintainability. Refactors logic to better support support-type conversations, removing unnecessary project_id handling and redundant code. Enhances separation between conversation and message operations.
Replaces ad-hoc exception handling with a centralized decorator,
introducing custom exceptions for unsupported conversation types.
Improves code clarity, reduces duplication, and ensures more
consistent HTTP error responses across conversation APIs.
Enables richer data storage for conversations by introducing a JSONB field for extra context.
Links products to support groups, improving flexibility in product support management via a new nullable foreign key.
Facilitates future enhancements in conversation and product handling.
@matusdrobuliak66 matusdrobuliak66 added the a:webserver webserver's codebase. Assigning the area is particularly useful for bugs label Aug 14, 2025
matusdrobuliak66 and others added 10 commits August 14, 2025 17:23
Introduces new RESTful routes and OpenAPI specs to manage conversations
and their messages, supporting create, list, update, delete, and retrieve
operations. Refactors common path parameter logic for improved code reuse.
Extends conversation types and schema definitions to enable more flexible
conversational features.
Updates parameter names from 'type' to 'type_' in conversation-related functions to avoid shadowing built-in names and improve code readability.
Updates comments to more accurately describe API entrypoints,
improving readability and maintainability by aligning section
headers with their actual functionality.
Replaces ambiguous parameter name with a more explicit one to prevent confusion with the Python built-in type and improve code clarity.
Replaces use of 'in' operator with SQLAlchemy's 'in_' method
to ensure correct filtering of conversation types in queries.
Prevents potential logical errors and improves query reliability.
Clarifies validation error when a non-support conversation type
is provided, making the exception message more descriptive for
better debugging and user feedback.
Introduces the SUPPORT value to conversation types and updates REST API error handling for unsupported types.
Renames REST controller modules for consistency and registers their routes in the plugin.
Adds comprehensive unit tests for conversation endpoints, covering access control, validation, pagination, and error handling.
Facilitates future extension of conversation types and improves API reliability.

Relates to ITISFoundation/private-issues#51
@matusdrobuliak66 matusdrobuliak66 changed the title ✨ First iteration backend for support center ✨ First iteration backend for support center (πŸ—ƒοΈ) Aug 15, 2025
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.

Thanks

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.

Thanks a lot for the effort. Just a few suggestions from my side

Copy link
Member

@odeimaiz odeimaiz left a comment

Choose a reason for hiding this comment

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

Thanks!

Switches to using a query parameter utility for improved validation
and simplifies endpoint signatures. Updates OpenAPI spec to clarify
request body requirements and relaxes query param constraints to
offer greater flexibility in API usage.
@matusdrobuliak66 matusdrobuliak66 enabled auto-merge (squash) August 18, 2025 12:56
@matusdrobuliak66
Copy link
Collaborator Author

@mergify queue

@mergify
Copy link
Contributor

mergify bot commented Aug 18, 2025

queue

🟠 Waiting for conditions to match

  • -closed [πŸ“Œ queue requirement]
  • -conflict [πŸ“Œ queue requirement]
  • -draft [πŸ“Œ queue requirement]
  • any of: [πŸ“Œ queue -> configuration change requirements]
    • -mergify-configuration-changed
    • check-success = Configuration changed
  • any of: [πŸ”€ queue conditions]
    • all of: [πŸ“Œ queue conditions of queue default]
      • #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 = unit-tests
        • check-neutral = unit-tests
        • check-skipped = unit-tests
      • any of: [πŸ›‘ GitHub branch protection]
        • check-success = check OAS' are up to date
        • check-neutral = check OAS' are up to date
        • check-skipped = check OAS' are up to date
      • any of: [πŸ›‘ GitHub branch protection]
        • check-success = integration-tests
        • check-neutral = integration-tests
        • check-skipped = integration-tests
      • any of: [πŸ›‘ GitHub branch protection]
        • check-success = build-test-images (frontend) / build-test-images
        • check-neutral = build-test-images (frontend) / build-test-images
        • check-skipped = build-test-images (frontend) / build-test-images
      • any of: [πŸ›‘ GitHub branch protection]
        • check-success = SonarCloud Code Analysis
        • check-neutral = SonarCloud Code Analysis
        • check-skipped = SonarCloud Code Analysis

@matusdrobuliak66 matusdrobuliak66 added the πŸ€–-automerge marks PR as ready to be merged for Mergify label Aug 18, 2025
@sonarqubecloud
Copy link

@matusdrobuliak66 matusdrobuliak66 merged commit 133458b into ITISFoundation:master Aug 18, 2025
93 of 95 checks passed
@matusdrobuliak66 matusdrobuliak66 mentioned this pull request Sep 2, 2025
61 tasks
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:webserver webserver's codebase. Assigning the area is particularly useful for bugs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants