Skip to content

feat: replace the legacy server with the Miakapp v1 relay - #1

Merged
Mathieu2301 merged 2 commits into
mainfrom
mathieu/implement-relay-v1
Sep 4, 2026
Merged

Mathieu2301 merged 2 commits into
mainfrom
mathieu/implement-relay-v1

Conversation

@Mathieu2301

Copy link
Copy Markdown
Member

Summary

  • replace the legacy Node/Firestore/FCM server with an in-memory Go relay pinned to Miakapp-V3 RFC 0001
  • implement authenticated WebSocket sessions, atomic coordinator declarations, filtered state, live events, presence, and conservative call routing
  • enforce bounded frames and queues, immutable principals, active lease expiry, generation fencing, declaration rollback, and ordered bootstrap/recovery delivery
  • add race-enabled Go tests, a real MiakAPI SDK integration fixture, hardened distroless packaging, and pinned CI/publish workflows

Safety boundary

The standalone binary intentionally uses a rejecting verifier. It cannot authenticate a WebSocket session until the canonical platform control-plane contract defines token claims, audience, scopes, JWKS rotation, and revocation. /ping remains usable for container and network validation. This PR is an implementation preview, not a production deployment switch.

Production admission controls such as per-IP limits, total-home admission, and aggregate cross-connection memory budgets also remain part of that control-plane/deployment boundary.

Validation

  • go test -race -shuffle=on ./...
  • relay suite repeated 30 times
  • go vet ./...
  • go mod verify
  • go build -trimpath ./cmd/miakapp-server
  • real MiakAPI integration: generation 1, state mutation to 21, successful call, successful reauthentication
  • Docker image built from digest-pinned bases and probed at /ping under UID 65532, read-only rootfs, no Linux capabilities
  • workflow YAML, Compose configuration, shell syntax, Node syntax, formatting, and staged diff checks

Pinned contracts

@Mathieu2301
Mathieu2301 merged commit 9d1bb39 into main Sep 4, 2026
3 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