Skip to content

Releases: Dawsson/airlock

airlock 0.3.0

Choose a tag to compare

@Dawsson Dawsson released this 18 Feb 18:49
  • airlock.mount(basePath) — returns a WinterCG-compatible (request, env) => Response handler with basePath prefix stripping built in; works with Cloudflare Workers, Hono, Elysia, Bun.serve, or any fetch-based runtime
  • Adapter and adminToken factory support — pass (env) => adapter instead of a static instance so Cloudflare Worker bindings can be resolved per-request
  • CloudflareAdapter.forEnv(config) — static factory that automatically falls back to MemoryAdapter (with a console.info) when Cloudflare bindings are missing, eliminating crashes in local dev
  • CloudflareAdapter constructor now throws a descriptive error at construction time when kv or r2 is undefined, instead of a cryptic TypeError on first request

Airlock 0.2.1

Choose a tag to compare

@Dawsson Dawsson released this 18 Feb 18:22

Fixed

  • airlock status command was not registered in the CLI — now works correctly

airlock 0.2.0

Choose a tag to compare

@Dawsson Dawsson released this 18 Feb 18:20
  • `airlock status` command — human-friendly overview of all deployed updates across every channel, platform, and runtime version; no required flags, defaults to 25 entries (`--limit` to adjust)
  • `listUpdates()` method on `StorageAdapter` interface — required for custom adapter implementations
  • README: clarified that the package serves dual purpose — import `createAirlock` on the server, run `airlock` CLI (via `bunx` or global install) to publish updates

Airlock 0.1.0

Choose a tag to compare

@Dawsson Dawsson released this 18 Feb 17:55

Initial Release

  • Expo Updates protocol v1 manifest endpoint (multipart/mixed)
  • Admin API: publish, promote, rollback, rollout, list updates
  • Bearer token authentication for admin endpoints
  • CLI: publish, promote, rollback, rollout, list, keygen, init
  • Deterministic hash-based rollout (SHA-256, percentage-based)
  • Channel support (default, staging, production, etc.)
  • resolveUpdate hook for custom update logic (A/B testing, feature flags)
  • onEvent hook for analytics and logging
  • Critical update flag (critical: true in manifest extra)
  • Update messages for human-readable history
  • RSA-SHA256 code signing (rsa-v1_5-sha256, Expo-compatible)
  • Asset proxy endpoint with redirect
  • In-memory adapter for tests
  • Cloudflare KV + R2 adapter for production
  • StorageAdapter interface for custom backends