← Branches
geoip-for-apps
Commits
-
ddecce3dc
Merge origin/main into geoip-for-apps (console release defences alongside the geoip heartbeat block)
claude agent, operated by paul@keymail.dev
-
c309c1f40
Merge origin/main into geoip-for-apps (forward-proof and system layout alongside geoip)
claude agent, operated by paul@keymail.dev
-
6beb714e5
docs: keeping the geoip database current; free DB-IP default, paid MaxMind upgrade (copy approved by Paul)
claude agent, operated by paul@keymail.dev
-
a9d974640
geoip: paid MaxMind feeds (geoip2-city, geoip2-country); spec rev 13 records Paul's rulings R7-R9 (D1, D2 accepted; free DB-IP by default, paid MaxMind by choice)
claude agent, operated by paul@keymail.dev
-
b0b97e977
geoip: the strip treats underscores as hyphens, so X_Carlos_Geo_* aliases (one key to WSGI/CGI) never reach an app; tests allow only the five exact names through (Astra code review R12 P1)
claude agent, operated by paul@keymail.dev
-
d16d43c6c
geoip: the verifier child decodes every record through the lookup schema, so a record that would overflow a serving lookup's stack is refused (Astra code review R11 P1)
claude agent, operated by paul@keymail.dev
-
98c0139bd
geoip: the verifier child runs under a 512 MiB private-memory cap; retained recovery generations are cleaned when a later sync lands and destroyed at their GeoLite2 expiry (Astra code review R10)
claude agent, operated by paul@keymail.dev
-
004286067
geoip: untrusted databases are parsed only in a killable verifier child (feed, uploads and the CONSOLE_GEOIP_DB override); fixtures that hang or panic the parser (Astra code review R9 P1s)
claude agent, operated by paul@keymail.dev
-
171e7cc45
geo testdata: note the pathological fixture in the existing README
claude agent, operated by paul@keymail.dev
-
ad70f8412
geo: bounded, cancellable verification refuses search trees with far more networks than nodes (Astra code review R8 P1)
claude agent, operated by paul@keymail.dev
-
29455f246
console feed: editions must be real HTTP dates; pointer size capped at write; unchanged editions record success (Astra code review R7)
claude agent, operated by paul@keymail.dev
-
aaa1434e1
console: retry clearing a disabled feed's status until it lands (Astra code review R6)
claude agent, operated by paul@keymail.dev
-
c24b64d29
geoip: alert mail tracks the last reason told per recipient; a confirmed reason is reported even when the feed is unreadable (Astra code review R5)
claude agent, operated by paul@keymail.dev
-
9cd8e78fa
geoip: bounded bucket calls at startup, staging and off; alert reading unknown until state is read; alert mail on a geoip reason change; region guess credits the answering database (Astra code review R4)
claude agent, operated by paul@keymail.dev
-
64be2b1d5
geoip spec: Astra round 12 accepts rev 12
claude agent, operated by paul@keymail.dev
-
034727d46
console: pin the /geo door as deliberate new instance-role access
claude agent, operated by paul@keymail.dev
-
e62e4fca0
geoip: install errors never delete retained generations; the console follower expires the loaded reader whatever current says; an unreadable feed history is never overwritten (Astra code review R3)
claude agent, operated by paul@keymail.dev
-
a10120dee
geoip: keep every unsynced generation; feed status capped and written under its own deadline; feed-state blips keep the alert; pointer state tracked even with an unusable directory; geoip reason escalates while firing (Astra code review R2)
claude agent, operated by paul@keymail.dev
-
63da62405
docs: carlos geo and the /geo door (geoip spec §11) [awaiting copy review]
claude agent, operated by paul@keymail.dev
-
edc6a2bae
geoip plan 3: the console follows this box's mirrored generation; GET /api/cli/apps/{a}/{app}/geo; carlos geo; attribution from the loaded source (geoip spec §11)
claude agent, operated by paul@keymail.dev
-
ee3855fc7
cli: feed state in carlos system geoip status (geoip spec §10)
claude agent, operated by paul@keymail.dev
-
9f067764e
alerts: the geoip box rule (reason code, 30-minute sustain, clears on zero), its sentences and dashboard text (geoip spec §10.4)
claude agent, operated by paul@keymail.dev
-
9c54868b9
edge: geoip alert reason codes; expiry keeps the alert until off or a fresh publish (geoip spec §10.4, codex R11-1)
claude agent, operated by paul@keymail.dev
-
67e010eb0
console: the geoip feed (DB-IP and MaxMind, capped streams, checksum, redirect discipline, feed.json); spec rev 12 (Astra round 11)
claude agent, operated by paul@keymail.dev
-
40c8f3a75
console: feed publish rules (required type, monotonic per origin) (geoip spec §10.3)
claude agent, operated by paul@keymail.dev
-
62b80bb0b
geoip: capped archive readers and the feed vocabulary (geoip spec §10)
claude agent, operated by paul@keymail.dev
-
419d89754
geoip plan 2: the feed and the geoip alert
claude agent, operated by paul@keymail.dev
-
9146bd06c
geoip: CONSOLE_GEOIP_DB override obeys D1 (Swappable, refused when expired, closed at expiry); verdict judges expiry by the clock; bounds 12/13 min; spec rev 11 (Astra round 10)
claude agent, operated by paul@keymail.dev
-
9f5019211
geoip: capped console pointer reads; keep the previous generation until a selection is durable; Stage never reads a refused body; other row sorts last (Astra code review R1-3..6)
claude agent, operated by paul@keymail.dev
-
f83276b72
geoip: verdict knows unknown/off/live pointer states; off refuses during a publish; bounded pointer reads; spec rev 10 (Astra round 9)
claude agent, operated by paul@keymail.dev
-
242de22c8
geoip: code review brief
claude agent, operated by paul@keymail.dev
-
ad23baa04
geoip plan 1: review dispositions; GeoLite2 measurement outstanding
claude agent, operated by paul@keymail.dev
-
c1b31737d
console: count the three geoip doors among the closed doors
claude agent, operated by paul@keymail.dev
-
28ae63593
docs: headers your app receives; carlos system geoip; operator licence duties (geoip spec §13) [awaiting copy review]
claude agent, operated by paul@keymail.dev
-
a9b6d44c1
console: Countries table with per-source attribution on the analytics page (geoip spec §9, §13)
claude agent, operated by paul@keymail.dev
-
1dbb4c9de
cli: carlos system geoip publish/status/off (raw streamed upload, job follow, verdict) (geoip spec §4.2, §5.5)
claude agent, operated by paul@keymail.dev
-
ca3f35367
console: geoip doors (upload then job, reconciled verdict keyed by namespace, off), job results, staging dir, daily sweep/expiry; edge mirror re-reads the pointer before install. spec rev 9 (Astra round 8)
claude agent, operated by paul@keymail.dev
-
58beffa36
analytics: count pageviews by country with per-day source provenance; attributed sources never fold; one observation per tunnelled response (geoip spec §9, codex R4-1, R7-3)
claude agent, operated by paul@keymail.dev
-
de55e9211
tunnelclient: mark every tunnelled request; the remote edge adopts the hub's geo answer (geoip spec §8.4, D2)
claude agent, operated by paul@keymail.dev
-
c4e38c0ac
edge: forgery matrix across unix, tcp and multi proxies, with Connection nomination and unknown suffixes (Astra plan R1-18)
claude agent, operated by paul@keymail.dev
-
b7af1b956
edge mirror: downloads survive expiry ticks; post-rename sync failure keeps the generation; unknown pointer version is off; rejections reset when the pointer moves; GeoIP armed before ready and in dev mode. release: DirStore.PutFrom never reads the existing object into memory (Astra plan R1-3/4/5/7/8/9)
claude agent, operated by paul@keymail.dev
-
b00c58bdb
geoip: strip the whole X-Carlos-Geo-* namespace; source never empty; publish refuses expired candidates, verifies an existing blob, compares against the pointer read at stage (Astra plan R1-1/6/20, spec R7-1/2); spec rev 8
claude agent, operated by paul@keymail.dev
-
3b60bf4b8
edge: capture/decide/expose geo headers; setGeo on every proxy; door and rejected hop get none (geoip spec §8)
claude agent, operated by paul@keymail.dev
-
ec776baa3
status: GeoIP block on every box heartbeat; agent marks tunnel clients (geoip spec §5.5)
claude agent, operated by paul@keymail.dev
-
9ee9aac79
edge: GeoIP mirror with immutable generations, genMu, D1 expiry ticker (geoip spec §5)
claude agent, operated by paul@keymail.dev
-
5a67a0b40
console: clear the geoip staging directory at startup (geoip spec §4.2, codex R6-2)
claude agent, operated by paul@keymail.dev
-
474636c4c
geoip spec rev 7 (Astra round 6: D2 transport-independent tunnel mark, staging cleanup, explicit retirement) and plan 1 to match
claude agent, operated by paul@keymail.dev
-
47ef0b173
console: geoip publish path (stage/commit, country probe, shrink check, blob+pointer, sweep, off, D1 expiry) (geoip spec §3, §4.1)
claude agent, operated by paul@keymail.dev
-
7d04b539f
geoip: pointer, D1 expiry, attribution and the header vocabulary (geoip spec §3, §7, §8.1a)
claude agent, operated by paul@keymail.dev
-
713984d56
release: PutStreamer for S3, dir and prefix stores (geoip spec §4.1)
claude agent, operated by paul@keymail.dev
-
6b7fe6675
geo: Swappable reader with one-lock snapshots (geoip spec §5.4)
claude agent, operated by paul@keymail.dev
-
ecbbf2e1e
geo: Lookup with country, subdivision and point; metadata accessors; OpenMMDBTrusted (geoip spec §6)
claude agent, operated by paul@keymail.dev
-
9413294ee
infra: expire noncurrent control/geoip/ versions after a day (geoip spec §15)
claude agent, operated by paul@keymail.dev
-
f2b16b9c9
geoip: plan 1 review brief
claude agent, operated by paul@keymail.dev
-
00ace13c1
geoip spec rev 6 (Astra round 5) and plan 1 to match
claude agent, operated by paul@keymail.dev
-
814df726f
geoip plan 1: concrete Task 9 tests (geoLookup seam), tunnel via-mark, upload+job, reconciled verdict
claude agent, operated by paul@keymail.dev
-
feef9a5c4
geoip spec rev 5 (Astra round 4: upload+job, single analytics observation, edges-record reconciliation) and plan 1 draft
claude agent, operated by paul@keymail.dev
-
d06821cb9
geoip spec rev 4: answer Astra round 3 (4 new accepted) and fold in the plan-1 code survey
claude agent, operated by paul@keymail.dev
-
5311a1ad5
geoip spec rev 3: answer Astra round 2 (9 new accepted); X-Carlos-Hop-Geo state, rejected-hop and TLS-only tunnel trust, lifecycle rule
claude agent, operated by paul@keymail.dev
-
500094439
geoip spec rev 2: answer Astra round 1 (22 findings accepted); ingress-computes trust model; D1 GeoLite2 expiry
claude agent, operated by paul@keymail.dev
-
5e1129beb
geoip spec rev 1: platform GeoIP headers, mirrored database, feed, endpoint (#241)
claude agent, operated by paul@keymail.dev