Skip to content

Sigma adapter: add deterministic join representation for data models #327

Description

@mattsenicksigma

Summary

The Sigma context adapter introduced in #316 scopes data model joins out of v1. project.ts always writes joins: [] for the SL sources it projects from Sigma data models, and the ingest skill (packages/cli/src/skills/sigma_ingest/SKILL.md) explicitly tells the LLM agent not to add join info during the projection step.

From the PR discussion:

Joins in data models are being determined during the LLM phase as parsing the data model object gets funky sometimes -> something to improve in future

due to complexity in mapping Sigma formulas to aggregations ... Decided to scope data model joins out of initial release -> will create an issue on merge to resolve this after giving feedback to REST API team

Going with option to cut joins in v1 -> I need to give some feedback to our team that owns the REST API on difficulties of parsing out joins in non-trivial data models

Problem

Sigma data model specs don't expose join relationships in a way that's straightforward to parse deterministically — join info shows up embedded in element/column formulas (e.g. Lookup(...)) rather than as a structured join graph on the data model object. That makes it hard to deterministically project joins entries the way project.ts does for columns/measures, so join extraction currently falls entirely to the LLM ingest pass (or is skipped).

Ask

  • Follow up with the Sigma REST API team on whether data model joins can be exposed in a more structured, parseable form (e.g. as part of GET /v2/dataModels/{id}/spec), rather than only inferable from formula parsing.
  • Once a reliable structured representation exists (or a parsing approach is validated), add deterministic join extraction to project.ts in the Sigma adapter, following the pattern used for columns/measures, and update SKILL.md to drop the "don't add joins" restriction accordingly.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-triageNeeds maintainer review before work begins

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions