password_change_requests


Description

{“what”:“Password change requests, each with a user, method, status, and expiry.”,“why”:“Without it, password reset attempts cannot be tracked, validated, or expired.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-22T23:56:04.239530030+00:00”}

Columns

Column Type Size Nulls Auto Default Children Parents Comments
record_id text 2147483647 null
password_changes.request_id password_changes_request_id_fkey R

{“what”:“Unique identifier for the request, e.g., UUID.”,“why”:“Without it, requests cannot be referenced or updated unambiguously.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-22T23:56:04.256819377+00:00”}

user_id text 2147483647 null

{“what”:“Identifier of the user who requested the password change.”,“why”:“Without it, the request cannot be linked to a user account.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-22T23:56:04.310009244+00:00”}

method text 2147483647 null

{“what”:“Verification method such as email, SMS, or authenticator.”,“why”:“Without it, the channel for delivering the reset token is unknown.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-22T23:56:04.346755295+00:00”}

status text 2147483647 'pending'::text

{“what”:“Lifecycle state: pending, completed, or expired.”,“why”:“Without it, it is unclear whether a request is still valid or already used.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-22T23:56:04.397649699+00:00”}

token_hash text 2147483647 √ null
oauth_refresh_tokens.token_hash Implied Constraint R

{“what”:“Hashed reset token for verification.”,“why”:“Without it, the token cannot be validated without storing plaintext.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-22T23:56:04.409823869+00:00”}

requested_at timestamptz 35,6 now()

{“what”:“Timestamp when the request was created.”,“why”:“Without it, we cannot know when the request was initiated or audit the flow.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-22T23:56:04.427795832+00:00”}

completed_at timestamptz 35,6 √ null

{“what”:“Timestamp when the request was successfully completed.”,“why”:“Without it, we cannot know if and when the password change was finalized.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-22T23:56:04.442232749+00:00”}

expired_at timestamptz 35,6 √ null

{“what”:“Timestamp when the request was explicitly marked as expired.”,“why”:“Without it, we cannot record when a request was invalidated before its scheduled expiry.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-22T23:56:04.466023775+00:00”}

expires_at timestamptz 35,6 null

{“what”:“Scheduled expiration time after which the request is no longer valid.”,“why”:“Without it, there is no deadline for using the reset token.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-22T23:56:04.482785615+00:00”}

Indexes

Constraint Name Type Sort Column(s)
password_change_requests_pkey Primary key Asc record_id
idx_pcr_user Performance Asc/Desc user_id + requested_at

Relationships