Accept optional credentials in PUT /api/sources/:sourceId so the
dashboard can send config and credentials in a single request,
eliminating the race condition between parallel config/credential
updates that left sources uninitialized until server restart.
The existing /credentials endpoint is preserved for independent
credential updates.
Co-authored-by: Ona <no-reply@ona.com>
Add source definition for aelis.caldav with server URL, username,
password, look-ahead days, and timezone fields.
Route per-user credentials through /api/sources/:id/credentials
instead of the admin provider config endpoint, controlled by a
perUserCredentials flag on the source definition.
Co-authored-by: Ona <no-reply@ona.com>