Skip to content

feat(calm-hub-ui): Deeplinks within CalmHub#1853

Merged
aidanm3341 merged 22 commits intofinos:mainfrom
aamanrebello:deeplink
Mar 9, 2026
Merged

feat(calm-hub-ui): Deeplinks within CalmHub#1853
aidanm3341 merged 22 commits intofinos:mainfrom
aamanrebello:deeplink

Conversation

@aamanrebello
Copy link
Contributor

@aamanrebello aamanrebello commented Nov 25, 2025

Description

Examples:

image image

Even when you refresh the page, the same thing should come back based on the deeplink.

Type of Change

  • 🐛 Bug fix (non-breaking change which fixes an issue)
  • ✨ New feature (non-breaking change which adds functionality)
  • 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • 📚 Documentation update
  • 🎨 Code style/formatting changes
  • ♻️ Refactoring (no functional changes)
  • ⚡ Performance improvements
  • ✅ Test additions or updates
  • 🔧 Chore (maintenance, dependencies, CI, etc.)

Affected Components

  • CLI (cli/)
  • Shared (shared/)
  • CALM Widgets (calm-widgets/)
  • CALM Hub (calm-hub/)
  • CALM Hub UI (calm-hub-ui/)
  • Documentation (docs/)
  • VS Code Extension (calm-plugins/vscode/)
  • Dependencies
  • CI/CD

Commit Message Format ✅

Testing

  • I have tested my changes locally
  • I have added/updated unit tests
  • All existing tests pass

Checklist

  • My commits follow the conventional commit format
  • I have updated documentation if necessary
  • I have added tests for my changes (if applicable)
  • My changes follow the project's coding standards

@aamanrebello aamanrebello requested a review from a team as a code owner November 25, 2025 16:11
@rocketstack-matt rocketstack-matt marked this pull request as draft November 27, 2025 15:40
@aamanrebello aamanrebello marked this pull request as ready for review December 3, 2025 23:38
@aamanrebello aamanrebello changed the title feat(calm-hub-ui): Deep linking without tests feat(calm-hub-ui): Deeplinks within CalmHub Dec 3, 2025
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds deeplink functionality to CalmHub UI, enabling users to navigate directly to specific resources via URL parameters and maintain their navigation state across page refreshes.

Key Changes:

  • Added URL parameter-based routing for namespace, resource type, resource ID, and version
  • Refactored TreeNavigation component to initialize state from URL parameters and update the URL on user interactions
  • Added comprehensive test coverage for deeplink scenarios

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 8 comments.

File Description
calm-hub-ui/src/visualizer/contracts/contracts.ts Defines HubParams type for URL parameter structure
calm-hub-ui/src/App.tsx Adds parameterized route /artifacts/:namespace?/:type?/:id?/:version? for deeplink support
calm-hub-ui/src/hub/components/tree-navigation/TreeNavigation.tsx Implements deeplink handling by initializing state from URL params, extracting helper functions for loading resources, and calling navigate() on user interactions
calm-hub-ui/src/hub/components/tree-navigation/TreeNavigation.test.tsx Adds test cases for deeplink scenarios and wraps tests with MemoryRouter for routing support

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@YoofiTT96
Copy link
Member

Currently only concerned with the use of any for the typing. Besides that looks good

@aamanrebello
Copy link
Contributor Author

Currently only concerned with the use of any for the typing. Besides that looks good

Yes I think I have avoided any now. Please let me know if it's still in there and I will update.

@markscott-ms markscott-ms added this to the CalmHub MVP milestone Feb 14, 2026
@rocketstack-matt
Copy link
Member

@willosborne are we happy this PR would resolve #1243 ?

@aamanrebello
Copy link
Contributor Author

Action points based on discussion with Aidan:

  • Clicking on a non-resource i.e. a sub-title in the side menu should not update the URL (no navigation) - we only want links to resources like pattern/architecture JSONs.
  • All parts of the URL path should be mandatory as a result of the above
  • No need to have "artifacts" in the path
  • No need to capitalize things like "Architectures" in the URL.

@aamanrebello aamanrebello marked this pull request as ready for review March 9, 2026 01:10
@aamanrebello
Copy link
Contributor Author

Action points based on discussion with Aidan:

  • Clicking on a non-resource i.e. a sub-title in the side menu should not update the URL (no navigation) - we only want links to resources like pattern/architecture JSONs.
  • All parts of the URL path should be mandatory as a result of the above
  • No need to have "artifacts" in the path
  • No need to capitalize things like "Architectures" in the URL.

As of 09/03/26, all these points have been resolved.

@aidanm3341 aidanm3341 dismissed rocketstack-matt’s stale review March 9, 2026 10:09

requested changes have been addressed

@aidanm3341 aidanm3341 merged commit e772ed9 into finos:main Mar 9, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants