mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-14 22:50:51 +00:00
chore(release): v1.4.27
v1.4.27 — Mobile capability and maintainer-finding cleanup. ResponsiveSheet primitive (bottom-sheet on narrow viewports, centred dialog on desktop) applied to BD, Weight, Glucose, Mood, Activity forms. Maintainer-finding cleanups across Coach, Insights, Reports, Privacy. GeoLite2 offline geocoding with resilience layer (graceful fallback when EULA not yet propagated). E2E gap-fill coverage. 450-line release notes attached to the GitHub Release.
This commit is contained in:
1 parent
d98e85cd03
commit
4f09c3f862
314 files changed
+26801
-4419
No files matched your search
@@ -0,0 +1,20 @@
|
||||
-- v1.4.27 B3 — Persist the ASN + carrier on login audit rows.
|
||||
--
|
||||
-- The bundled MaxMind GeoLite2-ASN MMDB resolves an autonomous-system
|
||||
-- number and the organisation string ("Deutsche Telekom AG") at
|
||||
-- audit-creation time. Both columns are nullable so the schema stays
|
||||
-- valid for older rows, for private/loopback IPs that skip the
|
||||
-- lookup entirely, and for offline-miss rows that the resolver could
|
||||
-- not match.
|
||||
--
|
||||
-- asn — INTEGER, the autonomous-system number from the MMDB.
|
||||
-- carrier — TEXT, the autonomous-system organisation string.
|
||||
--
|
||||
-- The `IF NOT EXISTS` guards make the migration idempotent — the
|
||||
-- demo server may already carry hand-edited columns from a prior
|
||||
-- partial run, and the same migration must apply cleanly to a fresh
|
||||
-- database. Same posture as 0058_user_research_mode.
|
||||
|
||||
ALTER TABLE "audit_logs"
|
||||
ADD COLUMN IF NOT EXISTS "asn" INTEGER,
|
||||
ADD COLUMN IF NOT EXISTS "carrier" TEXT;
|
||||
@@ -1232,6 +1232,13 @@ model AuditLog {
|
||||
details String? // JSON string, no sensitive data
|
||||
ipAddress String? @map("ip_address")
|
||||
location String? // e.g. "Berlin, DE" — resolved from IP at log time
|
||||
// v1.4.27 B3 — resolved at audit-creation time from the bundled
|
||||
// GeoLite2-ASN MMDB. `asn` is the autonomous-system number,
|
||||
// `carrier` is the organisation string (e.g. "Deutsche Telekom AG").
|
||||
// Both nullable so older rows, private-IP rows, and offline-miss
|
||||
// rows stay valid.
|
||||
asn Int? // autonomous-system number
|
||||
carrier String? // autonomous-system organisation
|
||||
createdAt DateTime @default(now()) @map("created_at")
|
||||
|
||||
user User? @relation(fields: [userId], references: [id], onDelete: SetNull)
|
||||
|
||||
Reference in new issue
Block a user