Skip to content

Rebuild payment API with PocketBase and Go - #16

Merged
Phloraxx merged 5 commits into
mainfrom
rebuild-pocketbase
Jul 26, 2026
Merged

Rebuild payment API with PocketBase and Go#16
Phloraxx merged 5 commits into
mainfrom
rebuild-pocketbase

Conversation

@Phloraxx

@Phloraxx Phloraxx commented Jul 26, 2026

Copy link
Copy Markdown
Owner

Summary

Replaces the Fastify/SQLite prototype with the reviewed Go + PocketBase implementation and embedded React operator UI.

Key changes:

  • durable exact-amount DDM allocation and quarantine
  • exact bank-SMS matching with RRN/source-event idempotency and stale-message protection
  • optional read-only Google Messages/libgm connector
  • durable outgoing webhook queue with HMAC signing/retries
  • PocketBase auth/realtime/admin/backup foundation
  • single non-root production container with persistent /app/pb_data
  • legacy /api/webhook compatibility route gated behind explicit migration config

Validation

Local release gate passed:

  • npm ci + npm audit --audit-level=high
  • frontend TypeScript check + production build
  • gofmt + git diff --check
  • go test -count=1 ./...
  • go test -race -count=1 ./internal/...
  • go vet ./...
  • staticcheck
  • govulncheck: no reachable vulnerabilities
  • fresh-volume production container smoke tests
  • container-replacement persistence test
  • independent review found no discrete correctness issue

GitHub Actions CI run #45 also passed every step, including the production Docker build, for head 9a065bf9eb0e6446640af2b3cb57902d2defbd10.

Production cutover blocker

Do not merge/deploy yet. Dokploy's persistent volume is already saved, but production still needs new strong PAYGATE_API_KEY and SMS_WEBHOOK_SECRET values before the new server can pass startup validation. The old one-character WEBHOOK_SECRET is retained only for the explicitly enabled temporary legacy relay route during migration.

@Phloraxx
Phloraxx marked this pull request as ready for review July 26, 2026 12:42
@Phloraxx
Phloraxx merged commit 59e0e04 into main Jul 26, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant