Tags give the ability to mark specific points in history as being important
-
v1.5
c0611cef · ·v1.5 Admin Web UI Delivered: Operational admin UI embedded in Fastify — platform admins manage tenants, credentials, and API keys; tenant admins search, inspect, delete, and reissue passes. Key accomplishments: - React 19 + Vite 6 SPA served at /admin — CSP-safe, Docker multi-stage, API namespace isolated - JWT auth with two roles (platform admin / tenant admin); raw key never stored - Platform admin: tenant CRUD, credential management, API key lifecycle, cert health badges, bulk job monitoring - Tenant admin: URL-synced pass list (search/sort/filter/paginate), pass detail with delete + reissue-links See .planning/MILESTONES.md for full details.
-
v1.1
30c111fc · ·v1.1 Bulk Operations + Cert Alerting Delivered: Async bulk pass operations (create/update/delete) with pg-boss queue and per-item partial failure isolation, plus Apple p12 certificate expiration alerting with threshold-based SMTP notifications. Key accomplishments: - POST/PATCH/DELETE /v1/passes/bulk: 202 Accepted with jobId; pg-boss fans out with p-limit(5), per-item error isolation - GET /v1/jobs/:jobId: tenant-isolated status polling with per-item results; RLS-enforced 404 on cross-tenant access - checkCertificates(): cross-tenant Apple p12 scanner, THRESHOLDS [60,30,7], dedup via credential metadata, SMTP + log.warn fallback - GET /v1/credentials/status: single authenticated call for all tenant Apple credential expiry status - 266/266 tests green at ship See .planning/MILESTONES.md for full details.
-
v1.0
Release: Bare bones6869a092 · ·v1.0 MVP Delivered: Multi-tenant API that generates Apple Wallet and Google Wallet student ID passes from a single API call. Key accomplishments: - Multi-tenant Fastify API with PostgreSQL RLS, AES-256-GCM credential encryption, Argon2 API key auth - Abstract dual-platform theme system: JSON canonical positions translate to both Apple pass.json and Google PassObject - Apple .pkpass PKCS#7 signing + Google Wallet JWT save links via direct REST API - Full Apple PassKit Web Service (5 endpoints) + APNs push notifications - Pass lifecycle: PATCH/DELETE with Google PATCH propagation + Google ECv2SigningOnly callbacks - 258/258 tests green See .planning/MILESTONES.md for full details.