elastic / elastic/integrations

[AWS]: Dashboard navigation links (markdown & Vega hexmap) don't respect Kibana Spaces / break on "Copy to Space"

Open
#20,406 0 comments 0 reactions 0 assignees View on GitHub
needs:triage
Dominant language
Handlebars
Stars
333
Forks
647
Avg merge
3d 4h
Merged PRs (30d)
209

Description

### Integration Name

AWS [packages/aws]

> Note: this is a cross-package bug. The same pattern also affects `packages/amazon_security_lake`, `packages/kubernetes`, and the AWS OTel asset packages `aws_ec2_otel`, `aws_ecs_otel`, `aws_elb_metrics_otel`, `aws_lambda_otel`, `aws_rds_otel`, `aws_sqs_otel`. Filing one tracking issue against AWS since the dropdown accepts a single package.

### Dataset Name

N/A (Kibana dashboard assets)

### Integration Version

All current versions (reproduced on `main`)

### Agent Version

N/A (asset-only issue, independent of agent version)

### Agent Output Type

elasticsearch

### Elasticsearch Version

8.x and Serverless (Kibana Spaces behavior)

### OS Version and Architecture

N/A

### Software/API Version

N/A

### Error Message

HTTP 404 (link resolves to a non-existent / default-space object)

### What did you do?

Several AWS and Kubernetes dashboards navigate between sibling dashboards using **hardcoded dashboard IDs embedded in URL strings** rather than Kibana saved-object references. Two mechanisms are used:

1. **Markdown navigation panels** — e.g. `[Overview](/app/dashboards#/view/aws-…)` or `[Overview](#/view/aws-…)`.
2. **Vega `href`** in the newer AWS OTel "hexmap" visualizations — e.g. `"/app/dashboards#/view/aws_ec2_otel-45f45575-…"` and `"/app/discover#/?…dataViewId:'metrics-*'…"`.

Reproduction (markdown case):
1. Install the **AWS** integration in the Default space.
2. Open **[Logs AWS] GuardDuty Findings Overview** and confirm the "Navigation" links to the sibling GuardDuty dashboards work.
3. Stack Management → Saved Objects → search the dashboard → **Copy to Space** → select a new Space.
4. Switch to the new Space, open the copied dashboard, and click a navigation link.

Reproduction (hexmap case):
1. In a **non-default** Space, open the **AWS EC2 (OTel)** dashboard.
2. Click a hexagon → choose **Filter** or **Metrics**.

### What did you see?

- Markdown links open the **Default-space** object (or 404), because the hardcoded ID is not remapped during Copy to Space.
- Absolute `/app/...` links (GuardDuty, Network Firewall, Amazon Security Lake, all Vega hexmaps) additionally drop the `/s//` prefix, so they always target the Default space even for a normally-installed integration.

### What did you expect to see?

Navigation should respect the current Space and survive Copy to Space, the same way **Links panels** and **dashboard-to-dashboard drilldowns** do (they store saved-object references that Kibana remaps). `packages/kubernetes_otel` already does this correctly and is a good in-repo reference.

### Anything else?

Scan of AWS + Kubernetes packages (all hardcode a dashboard ID → all break on **Copy to Space**; "absolute" ones additionally break in a **non-default Space**):

| Package | Affected dashboards | Mechanism | Severity |
|---|---|---|---|
| `aws` | 7 (GuardDuty x3, Network Firewall x4) | markdown, **absolute** `/app/dashboards#/view/` | space + copy |
| `aws` | 16 (SecurityHub, Inspector, ELB/ALB/NLB, API Gateway) | markdown, **relative** `#/view/` | copy only |
| `aws` | 2 (`aws-67f8c833`, `aws-7ac8e1d0`) | already use **links panels** | OK |
| `aws_*_otel` | 6 (ec2, ecs, elb_metrics, lambda, rds, sqs) | **Vega `href`**, absolute + hardcoded id | space + copy (hard) |
| `amazon_security_lake` | 10 | markdown, **absolute** `/app/dashboards#/view/` (x10 each) | space + copy |
| `kubernetes` | 12 | markdown nav panel, **relative** `#/view/` (x12-13 each) | copy only |
| `kubernetes_otel` | 0 | already uses **links panels** | OK |

**Fix direction:**
- Markdown cases → convert to **Links panels** (reference-based), per #14002.
- **Vega hexmaps** → no reference-based fix exists for Vega `href`; needs a separate design decision (relative paths for Space-awareness at minimum, or rethinking the deep-link) and likely dashboard/Vega owner input.

**Related:** #12858, #14002, elastic/sdh-beats#7424

Contributor guide

Open the contributing guide

Research direction

Review the affected dashboard assets in packages/aws and the listed AWS, Amazon Security Lake, and Kubernetes packages, comparing their navigation with packages/kubernetes_otel and #14002. Inventory the hardcoded markdown IDs and Vega hrefs, then clarify the Vega approach with the dashboard/Vega owners. Done means navigation respects the current Space and survives Copy to Space.

Written by the indexing model from the issue text.

Assessment

Tech stack
elasticsearch
Domain
frontend
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.