Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrate db migrations #144

Closed
wants to merge 49 commits into from
Closed

Integrate db migrations #144

wants to merge 49 commits into from

Conversation

steventux
Copy link
Contributor

Description

Context

Type of changes

  • Refactoring (non-breaking change)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would change existing functionality)
  • Bug fix (non-breaking change which fixes an issue)

Checklist

  • I am familiar with the contributing guidelines
  • I have followed the code style of the project
  • I have added tests to cover my changes
  • I have updated the documentation accordingly
  • This PR is a result of pair or mob programming

Sensitive Information Declaration

To ensure the utmost confidentiality and protect your and others privacy, we kindly ask you to NOT including PII (Personal Identifiable Information) / PID (Personal Identifiable Data) or any other sensitive data in this PR (Pull Request) and the codebase changes. We will remove any PR that do contain any sensitive information. We really appreciate your cooperation in this matter.

  • I confirm that neither PII/PID nor sensitive data are included in this PR and the codebase changes.

steventux and others added 30 commits January 6, 2025 18:28
We all love a bar chart
Uses HMAC signature validation to verify expected headers with a request body.
The actual implementation is abstracted from requests themselves so we deal with strings, dictionaries and booleans as inputs and outputs.
Flask titlecases the keys in Headers, make sure we lowercase before attempting access.
Use the OAS file provided by NHS Notify to validate the incoming POST body.
Make healthcheck a top level endpoint, it should not be nested in the
sttaus/ route.
When the status callback endpoint receives requests the post body will be saved to the database to record the channel and message status depending on the payload type.
This commit adds the datastore and service module which handles this persistence.
There's good support for composition of SQL in psycopg2 so use it.
We do this in test setup quite a few times so make it a utility.
steventux and others added 19 commits January 16, 2025 15:38
We now have local dev and test dbs so improve tests by asserting persistence has worked as expected.
WIP - [DTOSS-6505] DB migrations
We will be sending messages using NHS Notify's message batch endpoint, this means a revision of how we store incoming data and the success of the requests to Notify.
We will be archiving existing data from the pilot, likely by renaming the existing tables so it is fine to start the migration revisions with the intended schema.
This was a temporary measure and a good thing that we are removing it to replace with database migrations.
@steventux
Copy link
Contributor Author

Closing wrong base branch

@steventux steventux closed this Jan 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants