In a recent discussion we've decided to pursue a different approach to loading sample data which involves overriding the default implementation of the tenant interface (POST _/tenant). This API is called by OKAPI when the module is enabled for a tenant.
- Execute the standard/default logic
- Look for one or more request parameters indicating whether or not to load sample and/or reference data. These parameters are specified in the tenantAttribute data.
- Conditionally read in data (from somewhere) and make appropriate API calls to insert the data
- The case of upgrades should be handled appropriately, e.g. if an upgrade and the data already exists, perform a PUT, otherwise, a POST will suffice.
This basic approach has been implemented for orders storage. See https://issues.folio.org/browse/MODORDSTOR-48. Much of this implementation can likely be borrowed.
- Define system properties or module arguments which would be specified at runtime indicating whether or not to load sample and reference data. This would dictate the default behavior in the case where the aforementioned flags aren't specified by OKAPI when calling the tenant API. Note that these would be applied to ALL tenants, whereas the params provided by OKAPI would be tenant specific.
See related stories for additional details.
- Run attached script to get all vendor records from folio-snapshot
- At least 13 vendor records will be returned