Skip to content

A - API Foundations #1025

Description

@MitchellShiell

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions