Skip to content

Links Panel Configuration

The links panel type is used to display a collection of hyperlinks on your dashboard. These links can point to other Kibana dashboards or external web URLs. This panel is useful for creating navigation hubs or providing quick access to related resources.

A Poem for the Portal Keepers

For those who build the bridges between dashboards:

Portals to dashboards near and far—
Links will take you where they are.
Horizontal rows or vertical stacks,
Teleporting users through the cracks.

Dashboard links with time preserved,
Filters carried, context preserved.
External URLs in tabs brand new,
Wiki pages, docs to pull you through.

"with_time: true" keeps your clock alive,
"with_filters" helps context survive.
What you selected stays in place
As you traverse from space to space.

From the ops hub to service views,
Your links provide the crucial clues.
No more wandering, lost and stressed—
Click once, arrive. You know the rest.

Represents a Links panel configuration.

Links panels are used to display a collection of links to other dashboards, saved objects, or external URLs.

Examples:

Linking to another Dashboard:

dashboards:
  - name: "Main Overview"
    panels:
      - title: "Navigate to User Details"
        size: { w: 24, h: 2 }
        links:
          items:
            - label: "View User Activity Dashboard"
              dashboard: "user-activity-dashboard-id"

Linking to an External URL:

dashboards:
  - name: "Main Overview"
    panels:
      - title: "External Resources"
        size: { w: 24, h: 2 }
        links:
          items:
            - label: "Project Documentation"
              url: "https://docs.example.com/project-alpha"
              new_tab: true

Complex configuration with multiple link types:

dashboards:
  - name: "Operations Hub"
    panels:
      - title: "Quick Access"
        size: { w: 48, h: 3 }
        links:
          layout: "vertical"
          items:
          - label: "Service Health Dashboard"
            dashboard: "service-health-monitor-v2"
          - label: "Runbook Wiki"
            url: "https://internal.wiki/ops/runbooks"
            new_tab: true

Attributes:

Name Type Description
links_config LinksPanelConfig

Links panel configuration.

Show JSON schema:
{
  "$defs": {
    "DashboardDrilldown": {
      "additionalProperties": false,
      "description": "Dashboard-to-dashboard drilldown configuration.",
      "properties": {
        "id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional unique identifier for the drilldown. If not provided, one will be generated.",
          "title": "Id"
        },
        "name": {
          "description": "Display name for the drilldown.",
          "title": "Name",
          "type": "string"
        },
        "triggers": {
          "description": "List of triggers that activate this drilldown. Defaults to ['click'].",
          "items": {
            "$ref": "#/$defs/DrilldownTrigger"
          },
          "title": "Triggers",
          "type": "array"
        },
        "dashboard": {
          "description": "Target dashboard ID or friendly identifier.",
          "title": "Dashboard",
          "type": "string"
        },
        "with_filters": {
          "default": true,
          "description": "Whether to carry over current filters to the target dashboard. Defaults to True.",
          "title": "With Filters",
          "type": "boolean"
        },
        "with_time": {
          "default": true,
          "description": "Whether to carry over current time range to the target dashboard. Defaults to True.",
          "title": "With Time",
          "type": "boolean"
        }
      },
      "required": [
        "name",
        "dashboard"
      ],
      "title": "DashboardDrilldown",
      "type": "object"
    },
    "DashboardLink": {
      "additionalProperties": false,
      "description": "Represents a link to another dashboard within a Links panel.",
      "properties": {
        "id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "An optional unique identifier for the link. Not normally required.",
          "title": "Id"
        },
        "label": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The text that will be displayed for the link. Kibana defaults to showing the URL if not set.",
          "title": "Label"
        },
        "dashboard": {
          "description": "The ID of the dashboard that the link points to.",
          "title": "Dashboard",
          "type": "string"
        },
        "new_tab": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "If `true`, links will open in a new browser tab. Kibana defaults to `false` if not set.",
          "title": "New Tab"
        },
        "with_time": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "If `true`, the links will inherit the time range from the dashboard. Kibana defaults to `True` if not set.",
          "title": "With Time"
        },
        "with_filters": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "If `true`, the links will inherit the filters from the dashboard. Kibana defaults to `True` if not set.",
          "title": "With Filters"
        }
      },
      "required": [
        "dashboard"
      ],
      "title": "DashboardLink",
      "type": "object"
    },
    "DrilldownTrigger": {
      "description": "User-facing drilldown trigger types.",
      "enum": [
        "click",
        "filter",
        "range"
      ],
      "title": "DrilldownTrigger",
      "type": "string"
    },
    "DrilldownTypes": {
      "anyOf": [
        {
          "$ref": "#/$defs/DashboardDrilldown"
        },
        {
          "$ref": "#/$defs/UrlDrilldown"
        }
      ]
    },
    "LinkTypes": {
      "oneOf": [
        {
          "$ref": "#/$defs/DashboardLink"
        },
        {
          "$ref": "#/$defs/UrlLink"
        }
      ]
    },
    "LinksPanelConfig": {
      "additionalProperties": false,
      "description": "Configuration specific to Links panels.",
      "properties": {
        "layout": {
          "anyOf": [
            {
              "enum": [
                "horizontal",
                "vertical"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The layout of the links in the panel, either 'horizontal' or 'vertical'. Kibana defaults to 'horizontal' if not set.",
          "title": "Layout"
        },
        "items": {
          "description": "A list of link objects to be displayed in the panel.",
          "items": {
            "$ref": "#/$defs/LinkTypes"
          },
          "title": "Items",
          "type": "array"
        }
      },
      "title": "LinksPanelConfig",
      "type": "object"
    },
    "Position": {
      "additionalProperties": false,
      "description": "Panel position configuration.\n\nDetermines the x/y coordinates of a panel on the dashboard grid.\nIf not specified, the panel will be auto-positioned.",
      "properties": {
        "x": {
          "anyOf": [
            {
              "maximum": 48,
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The horizontal starting position of the panel on the grid (0-based). If None, position will be auto-calculated.",
          "title": "X"
        },
        "y": {
          "anyOf": [
            {
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The vertical starting position of the panel on the grid (0-based). If None, position will be auto-calculated.",
          "title": "Y"
        }
      },
      "title": "Position",
      "type": "object"
    },
    "Size": {
      "additionalProperties": false,
      "description": "Panel size configuration.\n\nDetermines the width and height of a panel on the dashboard grid.\nWidth accepts semantic values ('whole', 'half', etc.) or integers.",
      "properties": {
        "w": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "enum": [
                "whole",
                "half",
                "third",
                "quarter",
                "sixth",
                "eighth"
              ],
              "type": "string"
            }
          ],
          "default": 12,
          "description": "The width of the panel in grid units.\n\nDefaults to 12 (quarter width). Accepts semantic values ('whole', 'half', 'third', 'quarter', 'sixth', 'eighth') or integers (1-48).",
          "title": "W"
        },
        "h": {
          "default": 8,
          "description": "The height of the panel in grid units. Defaults to 8.",
          "exclusiveMinimum": 0,
          "title": "H",
          "type": "integer"
        }
      },
      "title": "Size",
      "type": "object"
    },
    "UrlDrilldown": {
      "additionalProperties": false,
      "description": "URL drilldown configuration.",
      "properties": {
        "id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional unique identifier for the drilldown. If not provided, one will be generated.",
          "title": "Id"
        },
        "name": {
          "description": "Display name for the drilldown.",
          "title": "Name",
          "type": "string"
        },
        "triggers": {
          "description": "List of triggers that activate this drilldown. Defaults to ['click'].",
          "items": {
            "$ref": "#/$defs/DrilldownTrigger"
          },
          "title": "Triggers",
          "type": "array"
        },
        "url": {
          "description": "Target URL template. Can include Kibana template variables.",
          "title": "Url",
          "type": "string"
        },
        "new_tab": {
          "default": false,
          "description": "Whether to open the URL in a new tab. Defaults to False.",
          "title": "New Tab",
          "type": "boolean"
        },
        "encode_url": {
          "default": true,
          "description": "Whether to URL-encode the template variables. Defaults to True.",
          "title": "Encode Url",
          "type": "boolean"
        }
      },
      "required": [
        "name",
        "url"
      ],
      "title": "UrlDrilldown",
      "type": "object"
    },
    "UrlLink": {
      "additionalProperties": false,
      "description": "Represents a link to an external URL within a Links panel.",
      "properties": {
        "id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "An optional unique identifier for the link. Not normally required.",
          "title": "Id"
        },
        "label": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The text that will be displayed for the link. Kibana defaults to showing the URL if not set.",
          "title": "Label"
        },
        "url": {
          "description": "The Web URL that the link points to.",
          "title": "Url",
          "type": "string"
        },
        "encode": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "If `true`, the URL will be URL-encoded. Kibana defaults to `True` if not set.",
          "title": "Encode"
        },
        "new_tab": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "If `true`, the link will open in a new browser tab. Kibana defaults to `false` if not set.",
          "title": "New Tab"
        }
      },
      "required": [
        "url"
      ],
      "title": "UrlLink",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "description": "Represents a Links panel configuration.\n\nLinks panels are used to display a collection of links to other dashboards,\nsaved objects, or external URLs.\n\nExamples:\n    Linking to another Dashboard:\n    ```yaml\n    dashboards:\n      - name: \"Main Overview\"\n        panels:\n          - title: \"Navigate to User Details\"\n            size: { w: 24, h: 2 }\n            links:\n              items:\n                - label: \"View User Activity Dashboard\"\n                  dashboard: \"user-activity-dashboard-id\"\n    ```\n\n    Linking to an External URL:\n    ```yaml\n    dashboards:\n      - name: \"Main Overview\"\n        panels:\n          - title: \"External Resources\"\n            size: { w: 24, h: 2 }\n            links:\n              items:\n                - label: \"Project Documentation\"\n                  url: \"https://docs.example.com/project-alpha\"\n                  new_tab: true\n    ```\n\n    Complex configuration with multiple link types:\n    ```yaml\n    dashboards:\n      - name: \"Operations Hub\"\n        panels:\n          - title: \"Quick Access\"\n            size: { w: 48, h: 3 }\n            links:\n              layout: \"vertical\"\n              items:\n              - label: \"Service Health Dashboard\"\n                dashboard: \"service-health-monitor-v2\"\n              - label: \"Runbook Wiki\"\n                url: \"https://internal.wiki/ops/runbooks\"\n                new_tab: true\n    ```",
  "properties": {
    "id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "A unique identifier for the panel. If not provided, one may be generated during compilation.",
      "title": "Id"
    },
    "title": {
      "default": "",
      "description": "The title displayed on the panel header. Can be an empty string.",
      "title": "Title",
      "type": "string"
    },
    "hide_title": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "If `true`, the panel title will be hidden. Defaults to `false` (title is shown).",
      "title": "Hide Title"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "A brief description of the panel's content or purpose. Defaults to an empty string.",
      "title": "Description"
    },
    "size": {
      "$ref": "#/$defs/Size",
      "description": "Defines the panel's size on the dashboard grid."
    },
    "position": {
      "$ref": "#/$defs/Position",
      "description": "Defines the panel's position on the dashboard grid. If not specified, position will be auto-calculated."
    },
    "drilldowns": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/DrilldownTypes"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional list of drilldowns to attach to this panel.",
      "title": "Drilldowns"
    },
    "links": {
      "$ref": "#/$defs/LinksPanelConfig",
      "description": "Links panel configuration."
    }
  },
  "required": [
    "links"
  ],
  "title": "LinksPanel",
  "type": "object"
}

Configuration specific to Links panels.

Attributes:

Name Type Description
layout Literal['horizontal', 'vertical'] | None

The layout of the links in the panel, either 'horizontal' or 'vertical'. Kibana defaults to 'horizontal' if not set.

items list[LinkTypes]

A list of link objects to be displayed in the panel.

Show JSON schema:
{
  "$defs": {
    "DashboardLink": {
      "additionalProperties": false,
      "description": "Represents a link to another dashboard within a Links panel.",
      "properties": {
        "id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "An optional unique identifier for the link. Not normally required.",
          "title": "Id"
        },
        "label": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The text that will be displayed for the link. Kibana defaults to showing the URL if not set.",
          "title": "Label"
        },
        "dashboard": {
          "description": "The ID of the dashboard that the link points to.",
          "title": "Dashboard",
          "type": "string"
        },
        "new_tab": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "If `true`, links will open in a new browser tab. Kibana defaults to `false` if not set.",
          "title": "New Tab"
        },
        "with_time": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "If `true`, the links will inherit the time range from the dashboard. Kibana defaults to `True` if not set.",
          "title": "With Time"
        },
        "with_filters": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "If `true`, the links will inherit the filters from the dashboard. Kibana defaults to `True` if not set.",
          "title": "With Filters"
        }
      },
      "required": [
        "dashboard"
      ],
      "title": "DashboardLink",
      "type": "object"
    },
    "LinkTypes": {
      "oneOf": [
        {
          "$ref": "#/$defs/DashboardLink"
        },
        {
          "$ref": "#/$defs/UrlLink"
        }
      ]
    },
    "UrlLink": {
      "additionalProperties": false,
      "description": "Represents a link to an external URL within a Links panel.",
      "properties": {
        "id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "An optional unique identifier for the link. Not normally required.",
          "title": "Id"
        },
        "label": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The text that will be displayed for the link. Kibana defaults to showing the URL if not set.",
          "title": "Label"
        },
        "url": {
          "description": "The Web URL that the link points to.",
          "title": "Url",
          "type": "string"
        },
        "encode": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "If `true`, the URL will be URL-encoded. Kibana defaults to `True` if not set.",
          "title": "Encode"
        },
        "new_tab": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "If `true`, the link will open in a new browser tab. Kibana defaults to `false` if not set.",
          "title": "New Tab"
        }
      },
      "required": [
        "url"
      ],
      "title": "UrlLink",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "description": "Configuration specific to Links panels.",
  "properties": {
    "layout": {
      "anyOf": [
        {
          "enum": [
            "horizontal",
            "vertical"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The layout of the links in the panel, either 'horizontal' or 'vertical'. Kibana defaults to 'horizontal' if not set.",
      "title": "Layout"
    },
    "items": {
      "description": "A list of link objects to be displayed in the panel.",
      "items": {
        "$ref": "#/$defs/LinkTypes"
      },
      "title": "Items",
      "type": "array"
    }
  },
  "title": "LinksPanelConfig",
  "type": "object"
}

Represents a link to another dashboard within a Links panel.

Attributes:

Name Type Description
dashboard str

The ID of the dashboard that the link points to.

new_tab bool | None

If true, links will open in a new browser tab. Kibana defaults to false if not set.

with_time bool | None

If true, the links will inherit the time range from the dashboard. Kibana defaults to True if not set.

with_filters bool | None

If true, the links will inherit the filters from the dashboard. Kibana defaults to True if not set.

Show JSON schema:
{
  "additionalProperties": false,
  "description": "Represents a link to another dashboard within a Links panel.",
  "properties": {
    "id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "An optional unique identifier for the link. Not normally required.",
      "title": "Id"
    },
    "label": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The text that will be displayed for the link. Kibana defaults to showing the URL if not set.",
      "title": "Label"
    },
    "dashboard": {
      "description": "The ID of the dashboard that the link points to.",
      "title": "Dashboard",
      "type": "string"
    },
    "new_tab": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "If `true`, links will open in a new browser tab. Kibana defaults to `false` if not set.",
      "title": "New Tab"
    },
    "with_time": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "If `true`, the links will inherit the time range from the dashboard. Kibana defaults to `True` if not set.",
      "title": "With Time"
    },
    "with_filters": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "If `true`, the links will inherit the filters from the dashboard. Kibana defaults to `True` if not set.",
      "title": "With Filters"
    }
  },
  "required": [
    "dashboard"
  ],
  "title": "DashboardLink",
  "type": "object"
}

Represents a link to an external URL within a Links panel.

Attributes:

Name Type Description
url str

The Web URL that the link points to.

encode bool | None

If true, the URL will be URL-encoded. Kibana defaults to True if not set.

new_tab bool | None

If true, the link will open in a new browser tab. Kibana defaults to false if not set.

Show JSON schema:
{
  "additionalProperties": false,
  "description": "Represents a link to an external URL within a Links panel.",
  "properties": {
    "id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "An optional unique identifier for the link. Not normally required.",
      "title": "Id"
    },
    "label": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The text that will be displayed for the link. Kibana defaults to showing the URL if not set.",
      "title": "Label"
    },
    "url": {
      "description": "The Web URL that the link points to.",
      "title": "Url",
      "type": "string"
    },
    "encode": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "If `true`, the URL will be URL-encoded. Kibana defaults to `True` if not set.",
      "title": "Encode"
    },
    "new_tab": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "If `true`, the link will open in a new browser tab. Kibana defaults to `false` if not set.",
      "title": "New Tab"
    }
  },
  "required": [
    "url"
  ],
  "title": "UrlLink",
  "type": "object"
}