Files
zeekay bc4ddf332b chore: rebase the tree onto upstream master fa1a9a60
Mechanically re-derived: bin/debrand runs over a fresh import of
posthog/posthog@fa1a9a60d4 (2026-08-06).
The pipeline (.hanzo/workflows), the Dockerfiles and bin/docker*
entrypoints, compose files, LLM.md and the squashed initial migration
are restored from the shipped tree, same as the previous import.

The prune's import-closure guard kept 21 products the new core now
imports; dropping them is a refactor now, recorded rather than forced.
2026-08-06 01:25:36 -07:00

124 lines
6.3 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"query": {
"description": "The sparkline query to execute.",
"properties": {
"dateRange": {
"description": "Date range for the sparkline. Defaults to last hour.",
"properties": {
"date_from": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Start of the date range. Accepts ISO 8601 timestamps or relative formats: -7d, -1h, -1mStart, etc."
},
"date_to": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "End of the date range. Same format as date_from. Omit or null for \"now\"."
}
},
"type": "object"
},
"filterGroup": {
"default": [],
"description": "Property filters for the query.",
"items": {
"properties": {
"key": {
"description": "Attribute key. For type \"log\", use \"message\". For \"log_attribute\"/\"log_resource_attribute\", use the attribute key (e.g. \"k8s.container.name\").",
"type": "string"
},
"operator": {
"description": "Comparison operator.\n\n* `exact` - exact\n* `is_not` - is_not\n* `icontains` - icontains\n* `not_icontains` - not_icontains\n* `starts_with` - starts_with\n* `not_starts_with` - not_starts_with\n* `ends_with` - ends_with\n* `not_ends_with` - not_ends_with\n* `regex` - regex\n* `not_regex` - not_regex\n* `gt` - gt\n* `lt` - lt\n* `is_date_exact` - is_date_exact\n* `is_date_before` - is_date_before\n* `is_date_after` - is_date_after\n* `is_set` - is_set\n* `is_not_set` - is_not_set",
"enum": [
"exact",
"is_not",
"icontains",
"not_icontains",
"starts_with",
"not_starts_with",
"ends_with",
"not_ends_with",
"regex",
"not_regex",
"gt",
"lt",
"is_date_exact",
"is_date_before",
"is_date_after",
"is_set",
"is_not_set"
],
"type": "string"
},
"type": {
"description": "\"log\" filters the log body/message. \"log_attribute\" filters log-level attributes. \"log_resource_attribute\" filters resource-level attributes.\n\n* `log` - log\n* `log_attribute` - log_attribute\n* `log_resource_attribute` - log_resource_attribute",
"enum": ["log", "log_attribute", "log_resource_attribute"],
"type": "string"
},
"value": {
"description": "Value to compare against. String, number, or array of strings. Omit for is_set/is_not_set operators."
}
},
"required": ["key", "type", "operator"],
"type": "object"
},
"type": "array"
},
"personId": {
"description": "Scope results to one person (UUID or numeric ID). Expanded server-side to the person's distinct IDs and matched against the team's configured distinct-id log attribute keys.",
"type": "string"
},
"searchTerm": {
"description": "Full-text search term to filter log bodies.",
"type": "string"
},
"serviceNames": {
"default": [],
"description": "Filter by service names.",
"items": {
"type": "string"
},
"type": "array"
},
"severityLevels": {
"default": [],
"description": "Filter by log severity levels.",
"items": {
"description": "* `trace` - trace\n* `debug` - debug\n* `info` - info\n* `warn` - warn\n* `error` - error\n* `fatal` - fatal",
"enum": ["trace", "debug", "info", "warn", "error", "fatal"],
"type": "string"
},
"type": "array"
},
"sparklineBreakdownBy": {
"description": "Break down sparkline by \"severity\" (default) or \"service\".\n\n* `severity` - severity\n* `service` - service",
"enum": ["severity", "service"],
"type": "string"
},
"sparklineRankBy": {
"description": "Rank breakdown values by \"count\" (default) or \"bytes\" before collapsing the tail into \"other\".\n\n* `count` - count\n* `bytes` - bytes",
"enum": ["count", "bytes"],
"type": "string"
}
},
"type": "object"
}
},
"required": ["query"],
"type": "object"
}