The important tables `xml` and `registration` were not properly set for their `CASCADE` behavior, in addiiton `XML` needed to have the `single_parent` option enabled to allow for cascading-deletes (since otherwise a single entry could be referenced by an entry and a error.
This adds `.ebextension` options to the repository that can control how the beanstalk environment is configured. The two files perform different tasks:
- `sfr-bardo-copyright-development.config` is an empty file for environment variables (empty because at present ENV variables contain secrets that cannot be committed to source control)
- `cron-linux.config` contains configuration details for a nightly cron task that checks for updates from the source git repositories
The ElasticBeanstalk application looks for an object named `application` to run with `WSGI` this was previously created with the `create_app` method and used `app` as the name for the application object.
Removes a Swagger YAML file that is not currently used. It was too difficult to maintain swagger in a set of separate YAML files, so a single one was created and loaded in the main FLask app.
Add a basic `Flask` API that responds to queries for copyright data. This includes 5 basic endpoints:
- `/search/fulltext`: queries all text fields in the Registration and Renewal records
- `/search/registration/<regnum>`: queries the collection for a specific copyright registration by registration number
- `/search/renewal/<rennum>`: queries the collection for a specific copyright renewal by renewal number
- `/registration/<uuid>`: fetches a single registration record by internally assigned UUID
- `/registration/<uuid?`: fetches a single renewal record by internally assigned UUID
The api can be run with the standard `python -m flask run` from the root of the project and by default will run in `production` mode. To set `development` run `export FLASK_ENV=development` before starting the application.
This adds a full `Claimant` object to the ElasticSearch index, including the `claimant_type` field which helps users see the specific relationship a claimant has to a renewal. It would be good to provide translations of these codes in the future, but this is not currently necessary.
Includes an initial version of the utility script used to generate
the copyright entry/renewal database along with instructions on how
to run the script and create a version of the database locally