Makes Arranger self-describing by formalizing the SQON query language and exposing field metadata, catalogue structure, and operator grammar through REST introspection endpoints.
| Feature |
Description |
| A1: SQON Canonical Types Module |
Standalone @overture-stack/sqon package defining SQON as a Zod schema with JSON Schema export; eliminates ambiguity about valid query structures and is consumed by both the introspection endpoints and the MCP server's query tool. |
| A2: GET /introspection Endpoints |
Four REST endpoints forming the data layer the MCP server reads to prevent LLM hallucination about non-existent fields or invalid operators: GET /introspection (catalogue directory), GET /introspection/sqon (SQON grammar, operators, and aliases), GET /introspection/:catalogId (full field metadata for a specific catalogue), and GET /introspection/fields (single-catalogue alias). |
| A3: Field Descriptions in ExtendedConfig |
Optional human-readable description per field, set by integrators in extended.json and surfaced in field metadata responses; improves LLM understanding of data semantics. |
| A4: Catalogue Metadata & Field Value Enrichment |
Adds dataRelease and dataIndexedAt to catalogue listings, and categorical value arrays with numeric/date range statistics to field metadata; gives the LLM richer grounding for generating accurate filter values. |
| A5: Multi-Catalogue Server Support |
Folder-based configuration discovery enabling a single Arranger instance to serve multiple independent catalogues, each with its own /{catalogId}/graphql endpoint. |
| A6: Tests and Documentation |
Validated endpoint behavior with integration tests and a dedicated field introspection endpoint reference for developer adoption. Depends on A3, A4, and A5. |
Makes Arranger self-describing by formalizing the SQON query language and exposing field metadata, catalogue structure, and operator grammar through REST introspection endpoints.
@overture-stack/sqonpackage defining SQON as a Zod schema with JSON Schema export; eliminates ambiguity about valid query structures and is consumed by both the introspection endpoints and the MCP server's query tool.GET /introspection(catalogue directory),GET /introspection/sqon(SQON grammar, operators, and aliases),GET /introspection/:catalogId(full field metadata for a specific catalogue), andGET /introspection/fields(single-catalogue alias).descriptionper field, set by integrators inextended.jsonand surfaced in field metadata responses; improves LLM understanding of data semantics.dataReleaseanddataIndexedAtto catalogue listings, and categorical value arrays with numeric/date range statistics to field metadata; gives the LLM richer grounding for generating accurate filter values./{catalogId}/graphqlendpoint.