Remove %e formatting verbs %e is not valid for formatting error values: > %e scientific notation, e.g. -1.234456e+78 Instead, use %w when using fmt.Errorf (for error wrapping) and %v when using log.Printf (%w is not valid in that context).
(*WebhookQueue).deliverPayload: address error nit This return does not need to be here.
webhooks: add comment clarifying field usage
webhooks: expand auth configuration The purpose of this change is to enable internal webhooks to be configured in GQL webhook tables. A webhook subscription now includes the auth method field which is appropriate, which is limited to either OAUTH2 or INTERNAL. In the former case, the previous set of fields will be valid, and in the latter case, the NodeID field will be valid. This will allow us to register webhook subscriptions for internal use.
Enforce complexity limit on webhook payload
Configure server to manage mail queue This also sets up the recovery function for webhooks, so we get emailed when we panic during a webhook query.
webhooks: panic on nested webhook auth case This is not strictly speaking necessary since we have a panic which immediately follows the switch, but it is cleaner.
webhooks: correct error case log format
webhooks: test error from delivery attempt
webhooks: add query validation function The new function tests a query against a GraphQL schema and returns any validation errors if they are found. This is useful for determining if a GraphQL query will pass validation when creating a new webhook.
webhooks: refactor exec code into separate func
webhooks: initial prototype for GQL-native webhooks
database.WithTx: rollback if func returns error Previously, this only rolled back if the called function panicked. This updates it to also roll back if the called function returns an error.
webhooks/legacy_test: verify headers are recorded
Deduplicate webhook headers on subsequent attempts This also updates the database with the final payload headers, including the signature and nonce, which are generated afresh for each attempt.
webhooks/legacy: increase specificity of logging
workers/legacy: correct Println with fmt directive
Make worker logs less loud
webhooks/legacy: address Postgres-specific issues
webhooks/legacy_test.go: style