Initial-password attach for an OAuth-only user (ADR 0020 Phase 5).
Lets a Google-signed-in user gain a hybrid login by setting a
password. 409 if password_hash is already set — use
/auth/change-password for rotation. The calling session
stays alive (voluntary attach, not a recovery).
Documentation Index
Fetch the complete documentation index at: https://docs.roughy.ai/llms.txt
Use this file to discover all available pages before exploring further.
An API key — either a programmatic key minted via POST /api-keys or a session-class key minted by POST /auth/login / an OAuth callback. Pass it as Authorization: Bearer <token>. UI flows can omit the header — the roughy_session HttpOnly cookie set by login + OAuth callbacks is read as a fallback.
Initial password set for an OAuth-only user (ADR 0020 Phase 5).
Distinct from ChangePasswordRequest because there is no old
password to compare against — a Google-only account has
password_hash IS NULL. The endpoint 409s if a password is
already set; rotation goes through /auth/change-password
instead.
8 - 128Successful Response