Files
clawmates/crates/cm-auth/Cargo.toml
T
Omar SobhandClaude Fable 5 b9fdec9173 Clerk deployment smoke: validated against a real instance, both halves
Last open item from the roadmap + post-1.0 list. Run against the live
Clerk instance closing-seasnail-39.clerk.accounts.dev.

- Backend (crates/cm-auth/tests/live_clerk.rs, CM_LIVE_CLERK=1): pulls
  REAL discovery + JWKS from the live instance, mints a REAL session JWT
  via Clerk's Backend API (create user -> open session -> session token),
  and runs it through AuthService::authenticate — verify + JIT provision
  (keyed on the real sub), duplicate-subject suppression, tamper
  rejection against the live JWKS. Decodes the instance domain from the
  publishable key; cleans up the test user after. PASSING
- Frontend: built with AUTH_MODE=clerk + real keys, next start serves
  Clerk's <SignIn /> at /login wired to the instance (instance domain +
  data-clerk attributes present in the HTML). Both halves confirmed
  end to end against production Clerk
- docs/clerk.md: documented the smoke procedure for both halves

166 Rust tests (+6 live, key-gated). Keys used via env only, never
stored — rotate them (they passed through chat).

Co-Authored-By: Claude Fable 5 <[email protected]>
2026-06-10 13:39:26 -05:00

36 lines
951 B
TOML

[package]
name = "cm-auth"
version = "0.1.0"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
publish.workspace = true
[dependencies]
argon2 = "0.5"
base64 = "0.22"
jsonwebtoken = "9"
rand_core = { version = "0.6", features = ["getrandom"] }
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] }
serde = { workspace = true }
tokio = { workspace = true }
sha2 = "0.10"
sqlx = { workspace = true }
cm-db = { path = "../cm-db" }
cm-domain = { path = "../cm-domain" }
thiserror = { workspace = true }
time = { workspace = true }
[dev-dependencies]
uuid = { workspace = true }
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] }
axum = "0.8"
rsa = { version = "0.9", features = ["pem"] }
serde_json = { workspace = true }
sqlx = { workspace = true }
cm-testkit = { path = "../cm-testkit" }
tokio = { workspace = true }
[lints]
workspace = true