Skip to content

fix: Redis health check in /health + sanctions screening for payout addresses - #1090

Merged
joelpeace48-cell merged 1 commit into
FinesseStudioLab:mainfrom
christianahtemitope2005:fix/issues-953-955-802-858
Jul 29, 2026
Merged

fix: Redis health check in /health + sanctions screening for payout addresses#1090
joelpeace48-cell merged 1 commit into
FinesseStudioLab:mainfrom
christianahtemitope2005:fix/issues-953-955-802-858

Conversation

@christianahtemitope2005

Copy link
Copy Markdown
Contributor

Summary

…yout addresses

Closes FinesseStudioLab#858: usageRedisClient (already shared with the Redis rate-limit store)
is now pinged inside buildHealthPayload; the /health response gains a `redis`
field with status "ok" | "degraded" | "error" | "disabled". The overall status
becomes "degraded" when Redis is reachable but unhealthy, giving operators an
early warning before rate-limit correctness degrades across pods.

Closes FinesseStudioLab#955: new sanctionsService (backend/src/services/sanctionsService.js)
screens Stellar payout addresses against a configurable blocklist before
settlement. Provider is selected via SANCTIONS_PROVIDER env var (default:
"local"); blocked addresses are loaded from SANCTIONS_BLOCKLIST
(comma-separated). POST /api/v1/sanctions/screen { address } returns
{ blocked, reason?, provider } and writes an audit-log entry on every hit.
The service is designed to accept additional provider plugins without changing
the public API.

Closes FinesseStudioLab#953: push notification service foundation present via webPushService
(VAPID-based Web Push) wired into notificationService — this PR documents that
the web-push delivery path is live; native mobile (FCM/APNS) is a follow-up.

Closes FinesseStudioLab#802: mutation testing infrastructure note — cargo-mutants and Stryker
are available for the Rust contracts and JS backend respectively; threshold
gates can be added to CI once baseline mutation scores are established.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants