- Ensure that managers (e.g., the Product Owner) can declare a prioritization order for TAP_SCHEMA "schemas" after the schema content has been defined in Felis and without editing the individual Felis files. I.e., we need to be able to override any schema_index values as part of a global decision on the order in which schemas are presented in the API and in user interfaces.
Background and strategic fit
Fundamentally it is none of any particular schema description's business to declare its priority with respect to other schemas. It doesn't know what they are, nor can it predict the future. Requiring the individual schema descriptions to be modified every time such a change is needed breaks separation of concerns.
schema_index is conceptually different from
column_index in that the latter two can be specified entirely internally to a single Felis file, without reference to any others, and so can be curated at a per-file level.
schema_index crosses the entire ensemble of data provided through a TAP service and so has to be managed globally. (The same issue could arise witih
table_index in the future if different tables in the same schema were represented by different Felis files; currently we don't do this, so it hasn't come up.)
Related subsystem issues
schema_index concept is not directly represented in the database itself, but is layered on top of the actual databases via Felis-based annotations.
FULL SUPPORT - Firefly already respects
schema_index (as well as
User interaction and design
Below is a list of questions to be addressed as a result of this requirements document: