Tags

Tags give the ability to mark specific points in history as being important
  • v2.0

    v2.0 Get Visual — live preview widget, CodeMirror JSON editor, form-based theme editor, editable pass fields with push-to-device
  • v1.5

    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

    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 bones
    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.