poi-index: map-core selectors, planner.pois schema, /api/pois route + client, metrics
Replace the planner's Overpass proxy with a self-hosted POI index: - map-core POI categories become structured tag selectors (single source of truth) + osmium filter / classification helpers - planner.pois PostGIS table (centroid points, GiST + category indexes) - /api/pois serving route (session + same-origin + rate limit, 100 cap) - lib/pois.ts client (renamed from overpass.ts; GET, quantized bbox) - metrics: poi_api_requests_total + DB-collected index rows/age gauges; drop overpass_* metrics - remove /api/overpass proxy + dead OVERPASS_URLS on the planner service (Journal surface backfill still uses it via code default) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
7dd9ccd2b0
commit
b45e69885d
29 changed files with 887 additions and 933 deletions
|
|
@ -11,9 +11,11 @@ SESSION_SECRET=change-me
|
|||
S3_ACCESS_KEY=
|
||||
S3_SECRET_KEY=
|
||||
|
||||
# Overpass upstream failover. Comma-separated list tried in order;
|
||||
# first 2xx response wins. Falls back to the single-URL OVERPASS_URL
|
||||
# if this is unset, and to a built-in default list if neither is set.
|
||||
# Overpass upstream failover for the Journal's surface-breakdown backfill
|
||||
# (route-surface-breakdown). Comma-separated list tried in order; first 2xx
|
||||
# response wins. Falls back to the single-URL OVERPASS_URL if unset, and to a
|
||||
# built-in default list if neither is set. The Planner no longer uses Overpass
|
||||
# — its POI overlays are served from the self-hosted `planner.pois` index.
|
||||
# OVERPASS_URLS=https://lz4.overpass-api.de/api/interpreter,https://overpass-api.de/api/interpreter
|
||||
|
||||
# Demo-activity-bot. Only enable in prod. When true, the journal worker
|
||||
|
|
|
|||
|
|
@ -94,7 +94,6 @@ services:
|
|||
environment:
|
||||
BROUTER_URL: ${BROUTER_URL:?BROUTER_URL must be set}
|
||||
BROUTER_AUTH_TOKEN: ${BROUTER_AUTH_TOKEN:?BROUTER_AUTH_TOKEN must be set}
|
||||
OVERPASS_URLS: ${OVERPASS_URLS:-https://lz4.overpass-api.de/api/interpreter,https://overpass-api.de/api/interpreter}
|
||||
DATABASE_URL: postgres://trails:${POSTGRES_PASSWORD:?POSTGRES_PASSWORD must be set in SOPS secrets.app.env}@postgres:5432/${STAGING_DATABASE}
|
||||
NODE_ENV: production
|
||||
PORT: 3001
|
||||
|
|
|
|||
|
|
@ -103,12 +103,6 @@ services:
|
|||
# BRouter request. The Caddy sidecar on the dedicated host
|
||||
# enforces this header. Set in SOPS secrets.app.env.
|
||||
BROUTER_AUTH_TOKEN: ${BROUTER_AUTH_TOKEN:?BROUTER_AUTH_TOKEN must be set in SOPS secrets.app.env}
|
||||
# Ordered failover list for the Overpass proxy. The code defaults
|
||||
# to the same pair if unset; declaring it here makes the prod
|
||||
# upstream explicit and easy to reshuffle via env when a
|
||||
# community instance misbehaves. Override per-env with
|
||||
# OVERPASS_URLS in the SOPS file.
|
||||
OVERPASS_URLS: ${OVERPASS_URLS:-https://lz4.overpass-api.de/api/interpreter,https://overpass-api.de/api/interpreter}
|
||||
DATABASE_URL: postgres://trails:${POSTGRES_PASSWORD:?POSTGRES_PASSWORD must be set in SOPS secrets.app.env}@postgres:5432/trails
|
||||
NODE_ENV: production
|
||||
PORT: 3001
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue