Description:
Internal service calls (e.g., contract event webhooks) need a separate auth mechanism from user JWTs.
Tasks:
- Add
ApiKeyStrategy using passport-headerapikey
- Store hashed API keys in the database linked to a service account
- Protect internal endpoints (e.g.,
POST /credentials/issue) with API key auth
- Add
POST /admin/api-keys to generate new API keys (Admin only)
- Rotate API keys without downtime