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
Summary
The Sigma context adapter introduced in #316 scopes data model joins out of v1.
project.tsalways writesjoins: []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:
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 projectjoinsentries the wayproject.tsdoes for columns/measures, so join extraction currently falls entirely to the LLM ingest pass (or is skipped).Ask
GET /v2/dataModels/{id}/spec), rather than only inferable from formula parsing.project.tsin the Sigma adapter, following the pattern used for columns/measures, and updateSKILL.mdto drop the "don't add joins" restriction accordingly.Related