Files
arah2/search/test/fixtures/overpass-response.json
T
araharah-executor c6a5f2b008 feat(04-02): Overpass top-up proposer (D-06) + JSON-to-SQLite converter (D-05)
overpass-topup.mjs — maintainer-time repo tool, six hard laws:
- never imported by bot/src or web/src (TP1 gate); Worker reads only the committed JSON
- exactly ONE request per run: both live paths (Overpass POST, Nominatim GET)
  share a single requestJson helper — one fetch( call site (TP7)
- identifying User-Agent araharah-gazetteer-topup/1.0 mandatory (missing UA = HTTP 406)
- busy/saturated/unusable response -> 'Overpass instance busy — retry later', exit 0 (TP4)
- output is a PROPOSAL only; source never names the curated file, so it cannot write it (TP6)
- --source=overpass|nominatim|fixture (--fixture implies fixture), --endpoint/OVERPASS_ENDPOINT
  override, bbox-bounded single-family query pinned verbatim (3.05,101.55,3.25,101.80) (TP3)
- --fixture selects the offline path by itself (a fixture flag silently hitting the
  live network would be a trap — fixed during GREEN)

overpass-response.json — committed real-shape Overpass response (6 KL elements:
nodes with lat/lon, ways/relation with center) so the test is deterministic.

json-to-sqlite.mjs — backend #2's dataset format reachable today (D-05):
- reads the same committed kl-gazetteer.json, emits kl-gazetteer.sqlite via
  node:sqlite (zero added deps) with the SAME id set (CV1), plus the ODbL
  notice embedded in a metadata table + NOTICE sidecar (ODbL s4.4, T-04-20)
- deterministic: rows in dataset order, no timestamps
2026-10-24 01:01:00 +08:00

89 lines
2.2 KiB
JSON

{
"version": 0.6,
"generator": "Overpass API 0.7.62.7",
"osm3s": {
"timestamp_osm_base": "2026-10-23T14:55:20Z",
"copyright": "The data included in this document is from www.openstreetmap.org. The data is made available under ODbL."
},
"elements": [
{
"type": "way",
"id": 23034336,
"center": { "lat": 3.1408, "lon": 101.7047 },
"tags": {
"name": "Merdeka 118",
"name:en": "Merdeka 118",
"building": "yes",
"building:levels": "118",
"height": "678.9",
"tourism": "attraction",
"wikidata": "Q18166176"
}
},
{
"type": "way",
"id": 12345678,
"center": { "lat": 3.1489, "lon": 101.6936 },
"tags": {
"name": "National Monument",
"name:en": "National Monument",
"alt_name": "Tugu Negara",
"historic": "memorial",
"tourism": "attraction"
}
},
{
"type": "node",
"id": 87654321,
"lat": 3.1484,
"lon": 101.6953,
"tags": {
"name": "Masjid Jamek",
"name:en": "Jamek Mosque",
"amenity": "place_of_worship",
"religion": "muslim",
"tourism": "attraction",
"wikidata": "Q2713345"
}
},
{
"type": "way",
"id": 34567123,
"center": { "lat": 3.1528, "lon": 101.7038 },
"tags": {
"name": "Kuala Lumpur Tower",
"name:en": "Kuala Lumpur Tower",
"short_name": "KL Tower",
"man_made": "tower",
"tourism": "attraction",
"wikidata": "Q265917"
}
},
{
"type": "way",
"id": 45678123,
"center": { "lat": 3.1454, "lon": 101.6953 },
"tags": {
"name": "Central Market",
"name:en": "Central Market",
"alt_name": "Pasar Seni",
"building": "retail",
"tourism": "attraction",
"wikidata": "Q5061407"
}
},
{
"type": "relation",
"id": 56781234,
"center": { "lat": 3.1436, "lon": 101.6975 },
"tags": {
"name": "Petaling Street",
"name:en": "Petaling Street",
"highway": "pedestrian",
"tourism": "attraction",
"wikidata": "Q1985815"
}
}
]
}