Health
The health column type displays health status with color-coded indicators. Supports three states: healthy (green), warning (yellow), and unhealthy/critical (red).
| Field | Description | Scheme |
|---|---|---|
name* | Column name (must be a valid SQL identifier) |
|
type* | Data type that controls formatting and visualization |
|
badge | Badge styling configuration. Use | |
card.position | Where this column appears in the card layout: |
|
card.useForAccent | Set to |
|
description | Human-readable help text for the column |
|
filter | Enable server-side filtering for this column. Set | object |
hidden | Hide the column from the table view (default: false) |
|
icon | CEL expression that resolves to an icon name per row (e.g. |
|
primaryKey | Whether this column is part of the primary key (default: false). At least one column must be marked as primary key. |
|
unit | Unit label appended to the displayed value (e.g. |
|
url | Link to a config, another view, or a custom URL using CEL / Go templates | |
width | Display width, e.g. |
|
Example
ingress.yamlapiVersion: 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