feat: add accounts and address watchlist #3
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/user-accounts-pinned-addresses"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Users can register (username + password, bcrypt) and add an address to a
watchlist to be notified when it records a new sale or changes ownership.
Notifications are in-app only, so there is no mail or SMS infrastructure to
run. Sessions are a random token in an httpOnly SameSite=Lax cookie backed
by a sessions table; expired rows are pruned daily.
The auth endpoints are rate limited per client IP, in memory. Login counts
only failed attempts (a success clears the counter) so ordinary use is never
limited; registration counts accounts actually created.
Notifications are generated by the daily ETL rather than polled for by the
web app. The sales feed only ever changes when update_polk_county_db.py
runs, so a background poller could only ever re-derive deltas the loader
already knows. notify_watchlist() compares each watched parcel against the
baseline stored on its row, files any messages, and advances the baseline.
It runs during the PostgreSQL sync, where the accounts live, and no-ops
cleanly when the web app's tables do not exist yet.
Schema is created at startup and works on both SQLite and PostgreSQL.
Co-Authored-By: Claude Opus 5 noreply@anthropic.com