A community based topic aggregation platform built on atproto

chore: clean up OAuth env vars and add seal secret to dev

- Remove unused OAUTH_CLIENT_ID, OAUTH_REDIRECT_URI, OAUTH_PRIVATE_JWK from .env.prod.example
- Add OAUTH_SEAL_SECRET to .env.dev for local development
- Clarify that OAUTH_SEAL_SECRET is required, client secret/kid are optional

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

Changed files
+9 -14
+5
.env.dev
···
# Also supports base64: prefix for consistency
OAUTH_COOKIE_SECRET=f1132c01b1a625a865c6c455a75ee793572cedb059cebe0c4c1ae4c446598f7d
# AppView public URL (used for OAuth callback and client metadata)
# Dev: http://127.0.0.1:8081 (use 127.0.0.1 instead of localhost per RFC 8252)
# Prod: https://coves.social
···
# Also supports base64: prefix for consistency
OAUTH_COOKIE_SECRET=f1132c01b1a625a865c6c455a75ee793572cedb059cebe0c4c1ae4c446598f7d
+
# Seal secret for OAuth session tokens (AES-256-GCM encryption)
+
# Generate with: openssl rand -base64 32
+
# This must be 32 bytes when base64-decoded for AES-256
+
# OAUTH_SEAL_SECRET=ryW6xNVxYhP6hCDA90NGCmK58Q2ONnkYXbHL0oZN2no=
+
# AppView public URL (used for OAuth callback and client metadata)
# Dev: http://127.0.0.1:8081 (use 127.0.0.1 instead of localhost per RFC 8252)
# Prod: https://coves.social
+4 -14
.env.prod.example
···
# AppView public URL (used for OAuth callback and client metadata)
APPVIEW_PUBLIC_URL=https://coves.social
-
# OAuth client ID (usually your client-metadata.json URL)
-
OAUTH_CLIENT_ID=https://coves.social/oauth/client-metadata.json
-
-
# OAuth callback URI
-
OAUTH_REDIRECT_URI=https://coves.social/oauth/callback
-
-
# Generate EC P-256 private key in JWK format
-
# See: https://atproto.com/specs/oauth#client-metadata
-
# Generate with: go run cmd/genjwks/main.go
-
OAUTH_PRIVATE_JWK={"kty":"EC","crv":"P-256","x":"...","y":"...","d":"..."}
-
-
# Seal secret for encrypting mobile session tokens (AES-256-GCM)
-
# Generate with: openssl rand -base64 32
OAUTH_SEAL_SECRET=CHANGE_ME_BASE64_32_BYTES
-
# Optional: OAuth client secret and key ID (for confidential clients)
# OAUTH_CLIENT_SECRET=
# OAUTH_CLIENT_KID=
···
# AppView public URL (used for OAuth callback and client metadata)
APPVIEW_PUBLIC_URL=https://coves.social
+
# Seal secret for encrypting session tokens (AES-256-GCM)
+
# REQUIRED - Generate with: openssl rand -base64 32
OAUTH_SEAL_SECRET=CHANGE_ME_BASE64_32_BYTES
+
# Optional: OAuth client secret and key ID (for confidential clients only)
+
# Most deployments use public clients and don't need these
# OAUTH_CLIENT_SECRET=
# OAUTH_CLIENT_KID=