Description
This is a follow-up task for the proposal outlined in loopbackio/loopback-next#2712.
Implement a helper functions in base Connector
class to process index and foreign-key definitions in an unified way and convert them into data suitable for consumption by connector implementations. The helpers should gather both model-level and property-level definitions, apply database/connector-specific options, merge keys/properties fields in index definitions, etc. and produce a final definition that can be directly mapped to database commands.
See _SPIKE_.md
in loopbackio/loopback-next#2712 for the full description of index/PK definition syntax.
This is a prerequisite for implementation of indexes & foreign keys in other connectors, most notably memory connector (loopbackio/loopback-next#2333) and SqlConnector
(https://github.com/strongloop/loopback-connector-rest/issues/135)
Acceptance criteria
- Implement a helper to process INDEX definitions, include tests and API docs
- Implement a helper to process FOREIGN KEY definitions, include tests and API docs
- Deprecate ModelDefinition.prototype.indexes() API in favor of this new Connector method.
- Create follow-up tasks to leverage the new helper in our NoSQL connectors and thus let the connectors understand the new FK/INDEX definition syntax. One GH issue per connector please.
- MongoDB
- CouchDB
- Cloudant
- Cassandra