Implements GRO-387 (Schema: auth_provider_config table + encryption helpers):
- Add auth_provider_config Drizzle table with providerId, displayName,
issuerUrl, internalBaseUrl, clientId, clientSecret (encrypted),
scopes, enabled, timestamps
- Add encryptSecret/decryptSecret helpers using AES-256-GCM with
BETTER_AUTH_SECRET as key-encryption-key (scrypt-derived)
- Store ciphertext as base64(iv:ciphertext:authTag) format
- Add unit tests for encryption helpers (9 tests, all passing)
- Generate Drizzle migration 0021_classy_hedge_knight
- Fix misleading docstring: salt is fixed per-package, not random
Co-Authored-By: Paperclip <noreply@paperclip.ing>