Storage and retrieval - first iteration

Purpose

Present a working first iteration of decision log storage that can be used to test integration with the frontend changes.

This issue covers the first iteration of decision log persistence. It works in tandem with the CRUD API for decisions issue to deliver the first iteration of storage and retrieval end-to-end.

Scope

  • Implement the storage layer for decisions, building on the model defined in Decision data model.
  • Implement the first iteration of retrieval + storage API logic (retrieve and save), so we can start integrating with the FE changes
    • This should be done in another branch + MR so the db code can be reviewed on its own
    • Overlaps with the CRUD API issue, but we can adjust this as we iterate
  • Keep things behind the proper feature flag.
  • Keep the implementation simple while remaining flexible enough to iterate on later.
  • Ensure the result is usable for testing integration with the FE changes.
  • Present the proposed db schema to be formally reviewed by the db team

Checklist

  • Create database tables and models for decisions, decision options
  • Implement read and write APIs (GraphQL)
  • (Follow-up) support moving of decision records in the event the work item is moved/duplicated (this should be its own issue)
Edited by Richard Chan