Context
Providers need control over how their resource fields are indexed by the search operator. Currently all fields are auto-classified by heuristic.
Feature
A SearchConfig resource (one per APIResourceSchema) lives in the provider workspace and declares:
- excludedFields: not indexed
- semanticFields: vector/semantic search
- filterFields: keyword filtering
Unlisted fields default to full-text search. No SearchConfig = current heuristic behavior (backwards compatible).
Acceptance Criteria
- SearchConfig type exists in search.platform-mesh.io/v1alpha1 (cluster-scoped)
- One SearchConfig per APIResourceSchema, named identically, stored in provider workspace
- search-operator reads SearchConfig from provider workspace when creating/updating SearchIndex
- Falls back to default when no SearchConfig exists
- excludedFields are removed from default index field lists
- semanticFields map to SearchIndex.spec.semanticFields
- exactFields map to SearchIndex.spec.filterableFields
- SearchConfig changes trigger SearchIndex reconciliation (for each org that binds the workspace)
- status.conditions[SchemaValid] warns when referenced fields don't exist in schema
- searchconfigs added to search APIExport permission claims
- Document changes in new ADR
Open Questions
- Re-indexing strategy when config changes (eventual consistency vs full re-index?)
- Validation: reject invalid field refs or just warn via condition?
No response
Completion Checklist
Context
Providers need control over how their resource fields are indexed by the search operator. Currently all fields are auto-classified by heuristic.
Feature
A SearchConfig resource (one per APIResourceSchema) lives in the provider workspace and declares:
Unlisted fields default to full-text search. No SearchConfig = current heuristic behavior (backwards compatible).
Acceptance Criteria
Open Questions
No response
Completion Checklist