- Rotate
GITHUB_WEBHOOK_SECRETon a defined schedule - Reject requests missing
X-Hub-Signature-256 - Persist raw webhook payloads for forensic replay
- Enforce idempotency on
(program_id, pr_number)in Postgres and on-chain
- Store
GATEWAY_SECRET_KEYin a secrets manager (not plain env files in prod) - Restrict gateway Soroban key balance alerts
- Monitor failed
record_mergesubmissions
- Configure non-default
API_ADMIN_KEYS - Terminate TLS at load balancer
- Rate-limit public endpoints
- Verify escrow token contract address before funding
- Pause programs before
withdraw_remaining - Set milestone caps for grant budgets
- Scrape
/metricsfrom gateway and API - Alert on
waveflow_gateway_webhook_failed_totalgrowth - Log correlation via request IDs (TraceLayer on API)