Skip to content

fix(hex): build dashboard source URLs that resolve in the Hex UI - #36335

Merged
ulixius9 merged 4 commits into
mainfrom
ulixius9/pylon-access
Oct 28, 2026
Merged

ulixius9 merged 4 commits into
mainfrom
ulixius9/pylon-access

Conversation

@ulixius9

@ulixius9 ulixius9 commented Oct 27, 2026 •

Copy link
Copy Markdown
Member

Describe your changes:

Hex dashboard sourceUrls were built as {hostPort}/app/projects/{id}, which isn't a route Hex serves — every "View in Hex" link from OpenMetadata was a dead link.

Real Hex project URLs are scoped by the workspace (org) UUID: {hostPort}/{workspaceId}/app/{projectId} for the published app and {hostPort}/{workspaceId}/hex/{projectId} for the notebook. No project endpoint returns the workspace id, so:

  • HexApiClient.workspace_id resolves it once per run from GET /users/me (org.id), cached via cached_property.
  • Published projects (lastPublishedAt set) link to /app, which viewers can open; unpublished ones link to the notebook (/hex), since there is no app to open.
  • If the workspace id can't be fetched, a warning is logged and dashboards are ingested without a sourceUrl rather than with a broken one (previously a None URL would have failed the whole dashboard).

Type of change:

  • Bug fix

High-level design:

N/A — small change.

Tests:

Use cases covered

  • Unpublished project → notebook URL under the workspace
  • Published project → app URL under the workspace
  • Workspace id is fetched once per run, not per project
  • /users/me failure → no URL, dashboard still ingested
  • Non-default host (e.g. eu.hex.tech) with a trailing slash

Unit tests

  • I added unit tests for the new/changed logic.
  • Files updated: ingestion/tests/unit/topology/dashboard/test_hex.py, ingestion/tests/unit/topology/dashboard/test_hex_client.py — 46 passed

Backend integration tests

  • Not applicable (no backend API changes).

Ingestion integration tests

  • Not applicable — the Hex connector has no integration test suite; covered by unit tests.

Playwright (UI) tests

  • Not applicable (no UI changes).

UI screen recording:

Not applicable — ingestion-only fix.

Checklist:

  • I have read the CONTRIBUTING document.
  • I have commented on my code, particularly in hard-to-understand areas.

🤖 Generated with Claude Code

RetriggerView in GreptileConfidence Score: 5/5

The PR appears safe to merge; no actionable issues were found.

Summary

Hex dashboard links now include the workspace ID and open the published app or unpublished notebook.

  • Hex dashboard links open the right project page.

Reviews (3) · Last reviewed commit: "Merge commit 'f58cfd6a26447521fd6e2b22c8..." · Reviewed by Greptile

Hex app URLs are scoped by the workspace UUID, which no project endpoint
returns. Resolve it once per run from /users/me and link published projects
to /app (viewable by everyone) and unpublished ones to the notebook (/hex).
If the workspace can't be resolved, ingest the dashboard without a link
instead of a broken one.
@ulixius9
ulixius9 requested a review from a team as a code owner October 27, 2026 09:41
@ulixius9
ulixius9 requested review from harshsoni2024 and a balanced review from Copilot October 27, 2026 09:41

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

@github-actions

Copy link
Copy Markdown
Contributor

❌ PR checklist incomplete

This PR cannot be merged until the following are addressed on its linked issue:

  • No GitHub issue is linked. Link an issue in the Development section of the PR (or add Fixes #12345 to the description). For a same-org cross-repo issue, add Fixes open-metadata/<repo>#123 to the description.

The fields live on the linked issue in the Shipping project (open the issue → right sidebar → Projects). After you set them, re-run this check (or push a commit) — issue/project changes do not re-trigger it automatically.

Maintainers can bypass this check by adding the skip-pr-checks label.

@github-actions github-actions Bot added Ingestion safe to test Add this label to run secure Github workflows on PRs labels Oct 27, 2026
Copilot AI balanced review requested due to automatic review settings October 28, 2026 05:37

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

Copilot AI balanced review requested due to automatic review settings October 28, 2026 06:55

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

@gitar-bot

gitar-bot Bot commented Oct 28, 2026

Copy link
Copy Markdown
Code Review ✅ Approved

🟡 Medium risk · Fetching workspace IDs and choosing Hex app or notebook URLs changes dashboard links; unavailable or malformed identity data could omit those links.

Builds Hex dashboard source URLs scoped by workspace ID, fetched once per run from /users/me, so "View in Hex" links resolve to published /app or unpublished /hex project pages. Dashboards without a resolvable workspace ID are ingested without a sourceUrl. No issues found.

Verification

Rules No rules evaluated

Functional validation Not enabled

Set up

Auto-approval Not enabled

Set up

For more verification details, comment gitar display:verbose.

Options

Display: compact → Showing compact verification results.

Comment with these commands to change the behavior for this request:

Compact
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Powered by Gitar — free for open source

@sonarqubecloud

Copy link
Copy Markdown

@ulixius9
ulixius9 added this pull request to the merge queue Oct 28, 2026
Merged via the queue into main with commit 33530af Oct 28, 2026
82 of 84 checks passed
@ulixius9
ulixius9 deleted the ulixius9/pylon-access branch October 28, 2026 13:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Ingestion safe to test Add this label to run secure Github workflows on PRs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants