Add the CRM's unified plugin-login endpoint and switch Schulnetz to credentials.
POST /api/auth/login { systemKey, fields, displayName } — resolves the IPluginLogin whose SystemKey matches and forwards the catalog-collected fields. The CRM stays dumb; the plugin does the provider auth and returns the account id.
- Catalog seed: Schulnetz
loginMethod → credentials with email/password/totp login fields (no more oauth-webview).
- Bump abstractions ref to
0.3.* (the IPluginLogin minor).
Note: the seeder is seed-if-missing, so the catalog change applies to fresh DBs; existing rows need a manual update. Requires abstractions 0.3.0 published for CI restore.
Add the CRM's unified plugin-login endpoint and switch Schulnetz to credentials.
POST /api/auth/login{ systemKey, fields, displayName }— resolves theIPluginLoginwhoseSystemKeymatches and forwards the catalog-collected fields. The CRM stays dumb; the plugin does the provider auth and returns the account id.loginMethod→credentialswithemail/password/totplogin fields (no moreoauth-webview).0.3.*(theIPluginLoginminor).Note: the seeder is seed-if-missing, so the catalog change applies to fresh DBs; existing rows need a manual update. Requires abstractions 0.3.0 published for CI restore.