Store a SHA-256 hash of the webhook secret in a new webhook_secret_hash column. FindAppByWebhookSecret now hashes the incoming secret and queries by hash, eliminating the SQL string comparison timing side-channel. - Add migration 005_add_webhook_secret_hash.sql - Add database.HashWebhookSecret() helper - Backfill existing secrets on startup - Update App model to include WebhookSecretHash in all queries - Update app creation to compute hash at insert time - Add TestHashWebhookSecret unit test - Update all test fixtures to set WebhookSecretHash Closes #13 |
||
|---|---|---|
| .. | ||
| 001_initial.sql | ||
| 002_remove_container_id.sql | ||
| 003_add_ports.sql | ||
| 004_add_commit_url.sql | ||
| 005_add_webhook_secret_hash.sql | ||