Skip to content

Releases: sinoru/swift-ap-relay

v0.0.1

12 Apr 13:39
v0.0.1
2985cfd

Choose a tag to compare

Added

  • ActivityPub relay server with HTTP Signature verification (draft-cavage-http-signatures-06)
  • Inbox controller handling Follow, Undo, Create, Announce, Delete, and Update activities
  • Pleroma/Akkoma compatibility: accept Follow with relay actor URL as object
  • Signed HTTP GET requests for remote actor fetching, enabling compatibility with Mastodon Authorized Fetch (Secure Mode) and Pleroma
  • Actor-signer domain validation to prevent activity forgery
  • Digest header requirement and conditional Date header validation for POST requests
  • Key ID resolution for both fragment-based () and path-based () formats
  • Shared inbox () support for efficient delivery
  • Flexible JSON-LD decoding for mixed arrays (Pleroma format)
  • Flexible field decoding (string or object with uid=1001(runner) gid=1001(runner) groups=1001(runner),4(adm),100(users),118(docker),999(systemd-journal))
  • Activity deduplication via Redis with atomic SET NX EX and automatic TTL expiration
  • Subscriber management with pending/accepted/rejected states and manual accept mode
  • Domain blocking and restricted mode (allowlist) support
  • Admin REST API with Bearer token authentication
  • Admin CLI commands under : list-subscribers, accept, reject, block, unblock, list-blocked-domains
  • Delivery system with Vapor Queues for reliable activity delivery with exponential backoff retry and smart error classification
  • WebFinger, NodeInfo 2.1, and actor endpoint for federation discovery
  • RSA-4096 key pair generation and storage
  • Prometheus metrics for inbox activities and delivery performance
  • Multi-language homepage with English, Korean, and Japanese translations, auto-selected via header
  • i18n system with JSON translation files and Accept-Language quality factor parsing
  • Dark mode support and responsive homepage with status badges, instance grid, and subscriber join dates
  • build plugin for automatic version and commit detection from git at build time
  • header on outgoing HTTP requests and response header with relay version info
  • Environment variables: , , , , , , , , , ,
  • Per-locale environment variable overrides for , , and (e.g. )
  • GitHub Actions CI/CD: test workflow with swiftly-based Swift toolchain on Ubuntu and macOS, deploy workflow for multi-platform Docker images (amd64/arm64) to GitHub Container Registry
  • Docker multi-stage build with jemalloc, static Swift stdlib linking, and non-root user execution
  • Docker Compose with Valkey (Redis-compatible) service
  • Strict memory safety checking (SE-0458) enabled for all targets
  • Comprehensive test suite: inbox integration, signature middleware, admin API, and localization tests

Security

  • Constant-time comparison for admin token authentication via HMAC-based equality
  • Unified admin API authentication error responses to prevent configuration state disclosure; all failure cases return identical with server-side warning logs for operator debugging