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 insert it into the database.
This basic approach has been implemented for inventory storage. See https://issues.folio.org/browse/MODINVSTOR-216
- Define system properties 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.