Documentation
¶
Overview ¶
Package catalogsemantic is the platform's semantic.Provider over its own catalog (#1919): table and column context, glossary terms, dataset search, curated query counts and lineage, all read from the catalog store. It is the only provider on a deployment with a database; the consumers of semantic.Provider are unchanged.
A dataset belongs to the connection that sees it, and a semantic.TableIdentifier names no connection. The provider takes the connection from the call being enriched when there is one, and otherwise reads the first connection that catalogs a table at that path. A dataset is named by its mcp:dataset reference; any other form is not found.
Index ¶
- Constants
- type DefinitionLister
- type InstanceOf
- type Option
- type Provider
- func (*Provider) Close() error
- func (p *Provider) GetColumnContext(ctx context.Context, column semantic.ColumnIdentifier) (*semantic.ColumnContext, error)
- func (p *Provider) GetColumnsContext(ctx context.Context, table semantic.TableIdentifier) (map[string]*semantic.ColumnContext, error)
- func (p *Provider) GetCuratedQueryCount(ctx context.Context, urn string) (int, error)
- func (p *Provider) GetGlossaryTerm(ctx context.Context, urn string) (*semantic.GlossaryTerm, error)
- func (p *Provider) GetLineage(ctx context.Context, table semantic.TableIdentifier, ...) (*semantic.LineageInfo, error)
- func (p *Provider) GetTableContext(ctx context.Context, table semantic.TableIdentifier) (*semantic.TableContext, error)
- func (p *Provider) ListDomains(ctx context.Context) ([]semantic.EntityRef, error)
- func (*Provider) Name() string
- func (p *Provider) SearchDataProducts(ctx context.Context, query string, limit int) ([]semantic.EntityRef, error)
- func (p *Provider) SearchGlossaryTerms(ctx context.Context, query string, limit int) ([]semantic.EntityRef, error)
- func (p *Provider) SearchGlossaryTermsCounted(ctx context.Context, query string, limit int) ([]semantic.EntityRef, int, error)
- func (p *Provider) SearchTables(ctx context.Context, filter semantic.SearchFilter) ([]semantic.TableSearchResult, error)
- func (p *Provider) SearchTablesCounted(ctx context.Context, filter semantic.SearchFilter) ([]semantic.TableSearchResult, int, error)
- type Reach
- type Reader
Constants ¶
const Name = "catalog"
Name is the provider's name.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DefinitionLister ¶
type DefinitionLister interface {
ListDefinitions(ctx context.Context, q catalog.DefinitionQuery) ([]catalog.DefinitionSummary, error)
}
DefinitionLister lists the catalog's definitions; the catalog store implements it. A store without it picks nothing.
type InstanceOf ¶
InstanceOf returns the instance name of the Trino connection a call bound by name, and false when no live connection has that name.
type Option ¶ added in v1.147.0
type Option func(*Provider)
Option configures a Provider.
func WithInheritance ¶ added in v1.147.0
WithInheritance turns lineage inheritance on. A nil reach lends from every upstream dataset.
type Provider ¶
type Provider struct {
// contains filtered or unexported fields
}
Provider is the native semantic provider. The curation it returns is written by people and by agents, and reaches a model in tool results, so every context read passes through the semantic sanitizer first.
func New ¶
func New(store Reader, instance InstanceOf, opts ...Option) *Provider
New builds the provider. A nil instance lookup uses the bound name as the instance.
func (*Provider) GetColumnContext ¶
func (p *Provider) GetColumnContext(ctx context.Context, column semantic.ColumnIdentifier) (*semantic.ColumnContext, error)
GetColumnContext returns one column's curation.
func (*Provider) GetColumnsContext ¶
func (p *Provider) GetColumnsContext(ctx context.Context, table semantic.TableIdentifier) (map[string]*semantic.ColumnContext, error)
GetColumnsContext returns every column's curation, by column name. With lineage inheritance on, a column lacking a description or glossary terms shows what the nearest upstream column of its name has (inherit.go).
func (*Provider) GetCuratedQueryCount ¶
GetCuratedQueryCount counts a dataset's curated queries. A dataset the catalog does not hold has none.
func (*Provider) GetGlossaryTerm ¶
GetGlossaryTerm reads a glossary term by its reference.
func (*Provider) GetLineage ¶
func (p *Provider) GetLineage( ctx context.Context, table semantic.TableIdentifier, direction semantic.LineageDirection, maxDepth int, ) (*semantic.LineageInfo, error)
GetLineage walks a table's lineage edges.
func (*Provider) GetTableContext ¶
func (p *Provider) GetTableContext(ctx context.Context, table semantic.TableIdentifier) (*semantic.TableContext, error)
GetTableContext returns a table's curation.
func (*Provider) ListDomains ¶
ListDomains returns every domain.
func (*Provider) SearchDataProducts ¶
func (p *Provider) SearchDataProducts(ctx context.Context, query string, limit int) ([]semantic.EntityRef, error)
SearchDataProducts finds data products the same way.
func (*Provider) SearchGlossaryTerms ¶
func (p *Provider) SearchGlossaryTerms(ctx context.Context, query string, limit int) ([]semantic.EntityRef, error)
SearchGlossaryTerms finds glossary terms whose name, slug or description holds the query; an empty query lists them.
func (*Provider) SearchGlossaryTermsCounted ¶
func (p *Provider) SearchGlossaryTermsCounted(ctx context.Context, query string, limit int) ([]semantic.EntityRef, int, error)
SearchGlossaryTermsCounted runs SearchGlossaryTerms and reports the total the same way.
func (*Provider) SearchTables ¶
func (p *Provider) SearchTables(ctx context.Context, filter semantic.SearchFilter) ([]semantic.TableSearchResult, error)
SearchTables finds datasets. Query "*" lists them.
func (*Provider) SearchTablesCounted ¶
func (p *Provider) SearchTablesCounted(ctx context.Context, filter semantic.SearchFilter) ([]semantic.TableSearchResult, int, error)
SearchTablesCounted runs SearchTables and reports the total: a page shorter than the limit asked for is every match, because the catalog returns exactly the page it is asked for; a full page leaves the total unknown.
type Reach ¶ added in v1.147.0
Reach reports whether the call in ctx may see a dataset reference. An upstream dataset it does not reach lends nothing.
type Reader ¶
type Reader interface {
GetDataset(ctx context.Context, ref catalog.Ref) (*catalog.Dataset, error)
GetDefinition(ctx context.Context, ref catalog.Ref) (*catalog.Definition, error)
DatasetsByPath(ctx context.Context, connectionKind, path string) ([]string, error)
SearchDatasets(ctx context.Context, q catalog.DatasetQuery) ([]catalog.DatasetSummary, error)
Lineage(ctx context.Context, ref string, direction catalog.Direction, maxDepth int) ([]catalog.Hop, error)
}
Reader is what the provider reads from the catalog store.