Skip to content

Enterprise tinybird selfhosted - #10

Merged
Makisuo merged 5 commits into
mainfrom
enterprise-tinybird-selfhosted
Mar 14, 2026
Merged

Makisuo merged 5 commits into
mainfrom
enterprise-tinybird-selfhosted

Conversation

@Makisuo

@Makisuo Makisuo commented Mar 13, 2026

Copy link
Copy Markdown
Collaborator

No description provided.

@Makisuo
Makisuo merged commit 0b832f8 into main Mar 14, 2026
1 check failed
@Makisuo
Makisuo deleted the enterprise-tinybird-selfhosted branch March 14, 2026 00:32
Makisuo added a commit that referenced this pull request May 31, 2026
…67)

Fixes 11 reported failure modes in the maple-dashboard-widgets MCP surface
where dashboards looked correctly scoped but weren't, the verifier couldn't
check the hardest widgets, and writes crashed on tag-less dashboards.

whereClause (packages/query-engine query-builder):
- Auto-route bare trace keys to attr.<key> instead of silently dropping them,
  so query.context/error.type/db.system filters actually apply.
- Honor negation: !=, !contains, !exists now set `negated` instead of
  collapsing to the positive predicate (SQL layer already supported it).
- add/update/replace widget tools reject the write (nothing saved) when the
  builder reports an unhonored clause, instead of persisting a mis-scoped chart.

inspect_chart_data accuracy:
- Evaluate formulas[] server-side (evaluator lifted to @maple/query-engine and
  re-exported from web) so formula/hit-rate widgets verify end-to-end.
- reduceToValue falls back to the first numeric column like the renderer, so
  stat tiles no longer report a false reducedValue: null.
- New EMPTY_GROUPING flag when a groupBy collapses to a single "all" series.
- New METRIC_NOT_FOUND flag distinguishing a typo'd metric from an empty one.
- SUSPICIOUS_GAP is now informational and no longer downgrades the verdict.
- list_metrics no longer prints category totals next to a zero-match filter.

Write path:
- tags/description optionalKey crash hardened across all DashboardDocument /
  PortableDashboardDocument construction sites (conditional spread).
- get_dashboard always emits a tags array so JSON round-trips through writes.
- New replace_dashboard_widgets tool: atomic, validated whole-list rebuild.

Docs: corrected SKILL.md + maple://instructions (groupBy attr. prefix, the full
operator table incl. negation, legacy metric-fields) and documented the new
behaviors.

Deferred to follow-up PRs: #10 numeric-attribute aggregation (hot query path,
needs live e2e), #12 query_engine.* metric ingestion (OTLP MeterProvider).

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Makisuo added a commit that referenced this pull request May 31, 2026
…67)

Fixes 11 reported failure modes in the maple-dashboard-widgets MCP surface
where dashboards looked correctly scoped but weren't, the verifier couldn't
check the hardest widgets, and writes crashed on tag-less dashboards.

whereClause (packages/query-engine query-builder):
- Auto-route bare trace keys to attr.<key> instead of silently dropping them,
  so query.context/error.type/db.system filters actually apply.
- Honor negation: !=, !contains, !exists now set `negated` instead of
  collapsing to the positive predicate (SQL layer already supported it).
- add/update/replace widget tools reject the write (nothing saved) when the
  builder reports an unhonored clause, instead of persisting a mis-scoped chart.

inspect_chart_data accuracy:
- Evaluate formulas[] server-side (evaluator lifted to @maple/query-engine and
  re-exported from web) so formula/hit-rate widgets verify end-to-end.
- reduceToValue falls back to the first numeric column like the renderer, so
  stat tiles no longer report a false reducedValue: null.
- New EMPTY_GROUPING flag when a groupBy collapses to a single "all" series.
- New METRIC_NOT_FOUND flag distinguishing a typo'd metric from an empty one.
- SUSPICIOUS_GAP is now informational and no longer downgrades the verdict.
- list_metrics no longer prints category totals next to a zero-match filter.

Write path:
- tags/description optionalKey crash hardened across all DashboardDocument /
  PortableDashboardDocument construction sites (conditional spread).
- get_dashboard always emits a tags array so JSON round-trips through writes.
- New replace_dashboard_widgets tool: atomic, validated whole-list rebuild.

Docs: corrected SKILL.md + maple://instructions (groupBy attr. prefix, the full
operator table incl. negation, legacy metric-fields) and documented the new
behaviors.

Deferred to follow-up PRs: #10 numeric-attribute aggregation (hot query path,
needs live e2e), #12 query_engine.* metric ingestion (OTLP MeterProvider).

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Makisuo added a commit that referenced this pull request May 31, 2026
Fixes 11 reported failure modes in the maple-dashboard-widgets MCP surface
where dashboards looked correctly scoped but weren't, the verifier couldn't
check the hardest widgets, and writes crashed on tag-less dashboards.

whereClause (packages/query-engine query-builder):
- Auto-route bare trace keys to attr.<key> instead of silently dropping them,
  so query.context/error.type/db.system filters actually apply.
- Honor negation: !=, !contains, !exists now set `negated` instead of
  collapsing to the positive predicate (SQL layer already supported it).
- add/update/replace widget tools reject the write (nothing saved) when the
  builder reports an unhonored clause, instead of persisting a mis-scoped chart.

inspect_chart_data accuracy:
- Evaluate formulas[] server-side (evaluator lifted to @maple/query-engine and
  re-exported from web) so formula/hit-rate widgets verify end-to-end.
- reduceToValue falls back to the first numeric column like the renderer, so
  stat tiles no longer report a false reducedValue: null.
- New EMPTY_GROUPING flag when a groupBy collapses to a single "all" series.
- New METRIC_NOT_FOUND flag distinguishing a typo'd metric from an empty one.
- SUSPICIOUS_GAP is now informational and no longer downgrades the verdict.
- list_metrics no longer prints category totals next to a zero-match filter.

Write path:
- tags/description optionalKey crash hardened across all DashboardDocument /
  PortableDashboardDocument construction sites (conditional spread).
- get_dashboard always emits a tags array so JSON round-trips through writes.
- New replace_dashboard_widgets tool: atomic, validated whole-list rebuild.

Docs: corrected SKILL.md + maple://instructions (groupBy attr. prefix, the full
operator table incl. negation, legacy metric-fields) and documented the new
behaviors.

Deferred to follow-up PRs: #10 numeric-attribute aggregation (hot query path,
needs live e2e), #12 query_engine.* metric ingestion (OTLP MeterProvider).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant