Skip to main content

Health

The health column type displays health status with color-coded indicators. Supports three states: healthy (green), warning (yellow), and unhealthy/critical (red).

FieldDescriptionScheme
name*

Column name (must be a valid SQL identifier)

string

type*

Data type that controls formatting and visualization

string | number | boolean | datetime | duration | health | status | gauge | bytes | decimal | millicore | config_item | labels | badge

badge

Badge styling configuration. Use color.auto for heuristic coloring or color.map for explicit value-to-color mappings.

BadgeConfig

card.position

Where this column appears in the card layout: title, subtitle, deck, body, footer, or headerRight

string

card.useForAccent

Set to true to use this column's value as the accent color for the card (typically used on health or status columns)

boolean

description

Human-readable help text for the column

string

filter

Enable server-side filtering for this column. Set filter.type: multiselect to let users include or exclude values without re-running the query.

object

hidden

Hide the column from the table view (default: false)

boolean

icon

CEL expression that resolves to an icon name per row (e.g. row.type)

string

primaryKey

Whether this column is part of the primary key (default: false). At least one column must be marked as primary key.

boolean

unit

Unit label appended to the displayed value (e.g. %, MB, pods)

string

url

Link to a config, another view, or a custom URL using CEL / Go templates

ColumnURL

width

Display width, e.g. 150px or a flex weight like 2

string

Example

ingress.yaml
apiVersion: mission-control.flanksource.com/v1
kind: View
metadata:
name: ingresses
namespace: default
spec:
description: Ingress view with card rendering support
display:
title: Ingresses
icon: ingress
sidebar: true
card:
columns: 2
default: true
queries:
ingress:
configs:
search: "@order=name"
types:
- Kubernetes::Ingress
columns:
- name: id
type: string
primaryKey: true
hidden: true
- name: name
type: config_item
card:
position: title
- name: namespace
type: string
card:
position: subtitle
- name: status
type: status
icon: row.health
card:
position: subtitle
filter:
type: multiselect
- name: health
type: health
hidden: true
card:
useForAccent: true
filter:
type: multiselect
- name: hosts
type: string
card:
position: body
- name: class
type: string
card:
position: body
- name: address
type: string
card:
position: body
- name: created
type: datetime
card:
position: body
mapping:
namespace: row.tags.namespace
hosts: >
has(row.config.spec.rules) && size(row.config.spec.rules) > 0
? row.config.spec.rules.map(r, has(r.host) ? r.host : "").join(", ")
: "N/A"
class: >
has(row.config.spec.ingressClassName) ? row.config.spec.ingressClassName : "default"
address: >
has(row.config.status.loadBalancer.ingress) && size(row.config.status.loadBalancer.ingress) > 0
? row.config.status.loadBalancer.ingress.map(i, has(i.ip) ? i.ip : has(i.hostname) ? i.hostname : "").join(", ")
: "N/A"
created: row.created_at