tliu93
bc8dd062d5
M1-T02: add idempotent legacy data migration script
...
scripts/migrate_legacy_data.py copies rows from the legacy locationRecorder.db
/ pooRecorder.db into the unified app DB's location / poo_records tables using
ATTACH + INSERT OR IGNORE (idempotent via PK-conflict skip; explicit columns,
never SELECT *). After copy it reconciles every source row against the target
and raises / exits non-zero on any shortfall. Missing legacy files are a safe
no-op (skipped); --dry-run writes nothing. Not part of the Alembic chain; run
manually once at cut-over. Never deletes or overwrites any file.
Validated end-to-end on copies of the real production DBs: dry-run reported
75103 location + 874 poo rows and wrote nothing; the real run copied all rows
with reconciliation passing; a second run copied 0 (idempotent).
2026-06-12 16:13:55 +02:00
tliu93
779e160b95
add ip change notification and refine sender display
pytest / test (push) Successful in 57s
pytest / test (pull_request) Successful in 54s
2026-04-29 13:03:12 +02:00
tliu93
3ea3498e58
add smtp module and testing
2026-04-29 12:11:10 +02:00
tliu93
5a420bd37b
add get public and storage feature
2026-04-29 11:45:49 +02:00
tliu93
4acdd2dc60
fix ci test
pytest / test (push) Successful in 45s
pytest / test (pull_request) Successful in 44s
2026-04-22 13:31:26 +02:00
tliu93
a76d6bfb71
change adoption to separate step
pytest / test (push) Failing after 46s
pytest / test (pull_request) Failing after 45s
2026-04-22 13:28:00 +02:00
tliu93
35aee79d93
Restore legacy poo inbound dispatch
pytest / test (push) Successful in 43s
docker-image / build-and-push (push) Successful in 3m38s
2026-04-20 23:33:57 +02:00
tliu93
1805d5d8ea
Finalize first Python release
pytest / test (push) Successful in 40s
pytest / test (pull_request) Successful in 41s
2026-04-20 20:40:04 +02:00
tliu93
795c84f177
Stabilize auth tests in CI
pytest / test (push) Successful in 43s
2026-04-20 17:43:24 +02:00
tliu93
fe0409dafe
Refine runtime config and redirect settings
2026-04-20 17:36:05 +02:00
tliu93
982af62f4f
Migrate TickTick OAuth and action tasks
2026-04-20 17:06:03 +02:00
tliu93
179aae264e
Persist runtime config in app db and seed from env
2026-04-20 15:56:10 +02:00
tliu93
3f7c9e43d9
Switch auth password hashing to Argon2
2026-04-20 15:26:36 +02:00
tliu93
e1aad408ab
Add auth foundation and app DB management
2026-04-20 15:16:47 +02:00
tliu93
044b47c573
Migrate poo recorder and align Alembic naming
2026-04-20 11:48:48 +02:00
tliu93
e334df992f
Add Home Assistant inbound gateway
2026-04-20 10:42:35 +02:00
tliu93
151ad46275
Add Home Assistant outbound adapter
2026-04-20 10:11:02 +02:00
tliu93
d0dc8e893a
Tighten location request validation
2026-04-19 23:18:20 +02:00
tliu93
1a2f9c75d9
Harden location db startup validation
2026-04-19 23:02:43 +02:00
tliu93
8aeb0723c1
Add location db adoption runbook
2026-04-19 21:57:31 +02:00
tliu93
32cc6847fd
Migrate location recorder and refine db config
2026-04-19 21:39:23 +02:00
tliu93
31390882ef
Bootstrap Python rewrite skeleton
2026-04-19 20:19:58 +02:00