Skip to content

feat(ui): support deep links for composite kind details#224

Open
danieldides wants to merge 1 commit intocrossplane-contrib:mainfrom
danieldides:main
Open

feat(ui): support deep links for composite kind details#224
danieldides wants to merge 1 commit intocrossplane-contrib:mainfrom
danieldides:main

Conversation

@danieldides
Copy link
Copy Markdown

@danieldides danieldides commented Apr 9, 2026

This PR adds the ability to deeplink to any Crossplane composite resource by name on the composite-resources tab. We're deploying Crossview alongside a proprietary application that allows users to create resources and want to be able to provide links from our application to Crossview that allows users to jump straight to their provisioned resources to view more information on them. I tried to make the change as minimal and non-invasive as possible, not creating any new views.

Examples

Setup

  1. Create a fresh kind cluster:

    kind create cluster --name crossview-feat
    kubectl create namespace crossplane-system
    helm repo add crossplane-stable https://charts.crossplane.io/stable
    helm repo update crossplane-stable
    helm install crossplane crossplane-stable/crossplane \
      --namespace crossplane-system \
      --version 2.1.4 \
      --create-namespace

Next Steps (Demo Flow)

  1. Install the function required by k8s/crossplane-example/compositions.yaml:

    kubectl apply -f - <<'EOF'
    apiVersion: pkg.crossplane.io/v1
    kind: Function
    metadata:
      name: function-patch-and-transform
    spec:
      package: xpkg.crossplane.io/crossplane-contrib/function-patch-and-transform:v0.8.2
    EOF
  2. Create a few more claims in the existing file and then apply the existing demo manifests from this repo:

    kubectl apply -f k8s/crossplane-example/xrds.yaml
    kubectl apply -f k8s/crossplane-example/compositions.yaml
    kubectl apply -f k8s/crossplane-example/claims.yaml
Screenshot 2026-04-09 at 17 33 19
  1. Verify row-click URL sync on an existing composite kind:
    • Open http://localhost:5173/composite-resources/XNginx
    • Click any row in the table
    • Confirm URL updates to ?name=<selected-resource-name>
Screenshot 2026-04-09 at 17 34 19
  1. Verify deep-link and reload behavior:

    • Copy the URL generated from step 6 and open it in a new tab
    • Confirm the details panel opens automatically for that resource
  2. Verify close behavior:

    • Close the details panel and confirm query params are removed.
    • Refresh the deep-link URL and confirm details remain open.

Signed-off-by: Daniel Dides <ddides@bridgephase.com>
@MoeidHeidari
Copy link
Copy Markdown
Collaborator

Hi @danieldides . Thanks for the contribution. that is a great feature. I have went through the code. All looks fine to me. just please change the target branch to pre-release instead of main so that we can have a release candidate and then once we do the merge with main we have the release containing all other changes as well.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants