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

chore: fix audit entries and setup Slack notifications for production S3 + Power Automate submissions #3439

Merged
merged 5 commits into from
Jul 19, 2024

Conversation

jessicamcinchak
Copy link
Member

@jessicamcinchak jessicamcinchak commented Jul 18, 2024

Two key changes here:

  • Fixes a previous error where the S3 send events were failing because of a circular async/await error (Kev was still getting webhook notification fine, but we were failing to populate our audit table).
  • Adds a Slack notification on new row insert to s3_applications audit table following existing pattern so we can keep a basic pulse on production integration activity

Notes on testing:

  • The Slack notification is only called on prod, so the "correct" response in the Hasura event triggers tab here is "Skipping because not production"
  • As for the audit table entry, please note that the all of our Planx environments are sending to the same Power Automate webhook URL on Barnet's side (eg Kev does not have a staging versus production distinction in Power Automate).
    • While the notification message will say which Planx env the application is coming from, I'm not entirely sure how Kev is handling these (eg if he's saving all tests to same S3 folder as prod apps or filtering/ignoring them etc?) - so trying to not test excessively, or at least flag to him when I am !

Copy link

github-actions bot commented Jul 18, 2024

🤖 Hasura Change Summary compared a subset of table metadata including permissions:

Updated Tables (1)

Copy link

github-actions bot commented Jul 18, 2024

Removed vultr server and associated DNS entries

@jessicamcinchak jessicamcinchak marked this pull request as ready for review July 18, 2024 12:27
@jessicamcinchak jessicamcinchak requested a review from a team July 18, 2024 12:28
Copy link
Contributor

@DafyddLlyr DafyddLlyr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One small question - looks good!

Haven't manually tested so that Kev doesn't get a ping unnecessarily 👍

api.planx.uk/modules/send/s3/index.ts Outdated Show resolved Hide resolved
@@ -125,10 +122,11 @@ const sendToS3 = async (req: Request, res: Response, next: NextFunction) => {
);
});

return res.status(200).send({
res.status(200).send({
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess the return here was the original issue - the audit table step wasn't being properly awaited?

Can't quite follow what the exact issue was but it could be caused by mixing await and then(), which can lead to some issues. It might be worth just using async/await throughout and adding back the return here.

Not sure if this is totally necessary but it might make things a little easier to follow and reason with.

Copy link
Member Author

@jessicamcinchak jessicamcinchak Jul 19, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct! Everything working as expected without this return now, sorry I didn't explicitly call this out.

Agree the mix of async/await and an Axios .then() are a bit confusing to reason about, but this now exactly matches the pattern we have for auditing BOPS etc (perhaps worth revisiting in whole in a future PR for consistency!): https://github.com/theopensystemslab/planx-new/blob/main/api.planx.uk/modules/send/bops/bops.ts#L134

@jessicamcinchak jessicamcinchak merged commit 513a891 into main Jul 19, 2024
12 checks passed
@jessicamcinchak jessicamcinchak deleted the jess/s3-applications-notifications branch July 19, 2024 11:04
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