@urbankitstudio/atlas 0.6.12 → 0.6.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -111,11 +111,16 @@
111
111
  "layerIndex": 15,
112
112
  "layerName": "Property Information [Parcels]",
113
113
  "supportsQuery": true,
114
- "corsEnabled": null,
114
+ "corsEnabled": true,
115
115
  "searchFields": [
116
+ {
117
+ "name": "PARID",
118
+ "label": "Parcel ID (PARID, per unit)",
119
+ "searchable": true
120
+ },
116
121
  {
117
122
  "name": "PARCELID",
118
- "label": "Parcel ID",
123
+ "label": "GeoPIN (lot id, shared by condo units)",
119
124
  "searchable": true
120
125
  },
121
126
  {
@@ -182,19 +187,15 @@
182
187
  "name": "SQUARE",
183
188
  "label": "Square",
184
189
  "searchable": false
185
- },
186
- {
187
- "name": "PARID",
188
- "label": "Parcel Account ID",
189
- "searchable": true
190
190
  }
191
191
  ],
192
- "sampleQuery": "https://gis.nola.gov/arcgis/rest/services/apps/property3/MapServer/15/query?where=PARCELID+IS+NOT+NULL&outFields=PARCELID,OWNERNME1,SITEADDRESS,PSTLADDRESS,PSTLCITY&returnGeometry=false&f=json&resultRecordCount=5",
192
+ "sampleQuery": "https://gis.nola.gov/arcgis/rest/services/apps/property3/MapServer/15/query?where=PARCELID%3D%2741033176%27&outFields=*&returnGeometry=false&f=json&resultRecordCount=1",
193
193
  "license": "public",
194
194
  "licenseUrl": "https://gis.nola.gov/",
195
- "status": "unreachable",
196
- "lastVerified": "2026-08-29",
197
- "verifiedBy": "manual"
195
+ "status": "live",
196
+ "lastVerified": "2026-10-03",
197
+ "verifiedBy": "manual",
198
+ "attributeSearch": "unsupported"
198
199
  }
199
200
  ],
200
201
  "contact": {
@@ -202,7 +203,7 @@
202
203
  "url": "https://gis.nola.gov/",
203
204
  "email": null
204
205
  },
205
- "notes": "MARKED UNREACHABLE 2026-08-29. Layer 15 metadata answers and lists PARCELID, OWNERNME1, SITEADDRESS, PSTLADDRESS, but ANY query that names those columns in outFields returns ArcGIS 400 \"Failed to execute query\" in ~250 ms (measured 2026-08-29: PARCELID IS NOT NULL, 1=1, OBJECTID=1 and a 30 m spatial query all fail with specific outFields). outFields=* succeeds and takes 27-44 s; even outFields=OBJECTID took 27.5 s. The enrich pipeline requests specific columns, so every paid lookup here fails and refunds; the liveness probe sends the declared sampleQuery and fails the same way, which is why this parish has never once probed ok (463 consecutive failures). Layers 0-14 of the same service are zoning, overlays and address points, not parcels, and ArcGIS Hub lists no city-owned parcel feature service. County-side defect; nothing to re-point to. Liveness keeps watching. Prior notes: Orleans Parish's public parcel layer still serves metadata, but its attribute-query operation is currently failing on the county's ArcGIS server. Owner and address searches are unavailable while the county repairs the service; automatic probes continue to check for recovery. New Orleans uses Square/Lot identifiers for legal parcels. The city also publishes a weekly situs-and-geometry dataset on data.nola.gov, but it does not include owner names. An older 2018 parcel snapshot was not substituted because its ownership data is dated and the service was unstable during verification. LIVENESS 2026-08-04: the layer's metadata still loads, but EVERY query against it times out, including a bare returnCountOnly count. 161 consecutive failed checks and last_ok_at has never been set. This is a county-side outage, not a schema drift; there is nothing to fix on our side and the endpoint stays honestly degraded until New Orleans repairs it."
206
+ "notes": "LIVE 2026-10-03 for lookup by location in clients that complete the TLS chain (see TLS below); no attribute search. Layer 15 refuses any query that NAMES its outFields except an exact PARCELID equality: measured 2026-10-03 on the paid shapes (point + 30 m buffer; 800 m envelope with geometry) and on a scan (OBJECTID>0, resultRecordCount=1), every named column list answers HTTP 200 carrying ArcGIS error 400 \"Failed to execute query.\" in about 0.2 s, while the identical request with outFields=* answers 40 features in 0.28 s and 501 features (957 KB) in 0.65 s. UrbanKit sends outFields=* to this layer (api/_lib/arcgis-quirks.ts, WILDCARD_OUT_FIELDS) and keeps only the role columns. Any predicate that scans the table (1=1, OBJECTID>0, PARCELID IS NOT NULL, an owner LIKE) runs past 40 s even for a single row, so no where-clause search is offered (attributeSearch: unsupported) and owner-name lookup is not available here; the owner columns (OWNERNME1, OWNERNME2) and the mailing address (PSTLADDRESS, PSTLCITY, PSTLSTATE, PSTLZIP5) are returned on every spatial hit (a UrbanKit row keeps PSTLADDRESS, the street line). IDS: PARID is the assessor's per-unit parcel id (e.g. 622-SALEXANDERST) and is listed first so rows key by unit; PARCELID is the GeoPIN, a lot id shared by every condo unit on the lot (a 30 m buffer in the CBD: 40 units, 3 lots, 39 owners), so keying on it would collapse a notice list to one row per lot; TAXBILLID is the tax bill number. Exact PARCELID equality answers in 0.2 s and is the sample query, which is also the predicate the liveness probe falls back to when its first shape (1=1) times out. CORS reflects the request origin. TLS: the server sends an INCOMPLETE certificate chain (leaf without its Sectigo intermediate). Clients that fetch the missing intermediate themselves (curl on Windows, Chromium and Safari through the OS store) connect; Node's fetch fails the handshake with UNABLE_TO_VERIFY_LEAF_SIGNATURE (measured 2026-10-04). UrbanKit's billed bulk-enrichment and radius paths run on Vercel's Edge runtime, which cannot be given a certificate authority and whose handling of an incomplete chain is undocumented and not yet measured, so assume they cannot serve this parish until a keyed test on the deployed function shows otherwise; today an Orleans row ends county-unavailable and is refunded, unchanged from before. The liveness probe pins the intermediate, so its ok reflects the layer, not the paid paths. An agent that fetches this URL from Node must trust the Sectigo intermediate or the request fails before any query runs. Tracked in GitHub issue #906. HISTORY: marked unreachable 2026-08-29 after 463 consecutive failed probes whose predicate (PARCELID IS NOT NULL) is a table scan; the layer was answering spatial queries the whole time. Ownership data looked dated during the 2026-08 checks; the 2026-10-03 rows carry current-looking owner names."
206
207
  }
207
208
  ]
208
209
  }
package/dist/index.cjs CHANGED
@@ -14228,11 +14228,16 @@ var louisiana_default = {
14228
14228
  layerIndex: 15,
14229
14229
  layerName: "Property Information [Parcels]",
14230
14230
  supportsQuery: true,
14231
- corsEnabled: null,
14231
+ corsEnabled: true,
14232
14232
  searchFields: [
14233
+ {
14234
+ name: "PARID",
14235
+ label: "Parcel ID (PARID, per unit)",
14236
+ searchable: true
14237
+ },
14233
14238
  {
14234
14239
  name: "PARCELID",
14235
- label: "Parcel ID",
14240
+ label: "GeoPIN (lot id, shared by condo units)",
14236
14241
  searchable: true
14237
14242
  },
14238
14243
  {
@@ -14299,19 +14304,15 @@ var louisiana_default = {
14299
14304
  name: "SQUARE",
14300
14305
  label: "Square",
14301
14306
  searchable: false
14302
- },
14303
- {
14304
- name: "PARID",
14305
- label: "Parcel Account ID",
14306
- searchable: true
14307
14307
  }
14308
14308
  ],
14309
- sampleQuery: "https://gis.nola.gov/arcgis/rest/services/apps/property3/MapServer/15/query?where=PARCELID+IS+NOT+NULL&outFields=PARCELID,OWNERNME1,SITEADDRESS,PSTLADDRESS,PSTLCITY&returnGeometry=false&f=json&resultRecordCount=5",
14309
+ sampleQuery: "https://gis.nola.gov/arcgis/rest/services/apps/property3/MapServer/15/query?where=PARCELID%3D%2741033176%27&outFields=*&returnGeometry=false&f=json&resultRecordCount=1",
14310
14310
  license: "public",
14311
14311
  licenseUrl: "https://gis.nola.gov/",
14312
- status: "unreachable",
14313
- lastVerified: "2026-08-29",
14314
- verifiedBy: "manual"
14312
+ status: "live",
14313
+ lastVerified: "2026-10-03",
14314
+ verifiedBy: "manual",
14315
+ attributeSearch: "unsupported"
14315
14316
  }
14316
14317
  ],
14317
14318
  contact: {
@@ -14319,7 +14320,7 @@ var louisiana_default = {
14319
14320
  url: "https://gis.nola.gov/",
14320
14321
  email: null
14321
14322
  },
14322
- notes: `MARKED UNREACHABLE 2026-08-29. Layer 15 metadata answers and lists PARCELID, OWNERNME1, SITEADDRESS, PSTLADDRESS, but ANY query that names those columns in outFields returns ArcGIS 400 "Failed to execute query" in ~250 ms (measured 2026-08-29: PARCELID IS NOT NULL, 1=1, OBJECTID=1 and a 30 m spatial query all fail with specific outFields). outFields=* succeeds and takes 27-44 s; even outFields=OBJECTID took 27.5 s. The enrich pipeline requests specific columns, so every paid lookup here fails and refunds; the liveness probe sends the declared sampleQuery and fails the same way, which is why this parish has never once probed ok (463 consecutive failures). Layers 0-14 of the same service are zoning, overlays and address points, not parcels, and ArcGIS Hub lists no city-owned parcel feature service. County-side defect; nothing to re-point to. Liveness keeps watching. Prior notes: Orleans Parish's public parcel layer still serves metadata, but its attribute-query operation is currently failing on the county's ArcGIS server. Owner and address searches are unavailable while the county repairs the service; automatic probes continue to check for recovery. New Orleans uses Square/Lot identifiers for legal parcels. The city also publishes a weekly situs-and-geometry dataset on data.nola.gov, but it does not include owner names. An older 2018 parcel snapshot was not substituted because its ownership data is dated and the service was unstable during verification. LIVENESS 2026-08-04: the layer's metadata still loads, but EVERY query against it times out, including a bare returnCountOnly count. 161 consecutive failed checks and last_ok_at has never been set. This is a county-side outage, not a schema drift; there is nothing to fix on our side and the endpoint stays honestly degraded until New Orleans repairs it.`
14323
+ notes: `LIVE 2026-10-03 for lookup by location in clients that complete the TLS chain (see TLS below); no attribute search. Layer 15 refuses any query that NAMES its outFields except an exact PARCELID equality: measured 2026-10-03 on the paid shapes (point + 30 m buffer; 800 m envelope with geometry) and on a scan (OBJECTID>0, resultRecordCount=1), every named column list answers HTTP 200 carrying ArcGIS error 400 "Failed to execute query." in about 0.2 s, while the identical request with outFields=* answers 40 features in 0.28 s and 501 features (957 KB) in 0.65 s. UrbanKit sends outFields=* to this layer (api/_lib/arcgis-quirks.ts, WILDCARD_OUT_FIELDS) and keeps only the role columns. Any predicate that scans the table (1=1, OBJECTID>0, PARCELID IS NOT NULL, an owner LIKE) runs past 40 s even for a single row, so no where-clause search is offered (attributeSearch: unsupported) and owner-name lookup is not available here; the owner columns (OWNERNME1, OWNERNME2) and the mailing address (PSTLADDRESS, PSTLCITY, PSTLSTATE, PSTLZIP5) are returned on every spatial hit (a UrbanKit row keeps PSTLADDRESS, the street line). IDS: PARID is the assessor's per-unit parcel id (e.g. 622-SALEXANDERST) and is listed first so rows key by unit; PARCELID is the GeoPIN, a lot id shared by every condo unit on the lot (a 30 m buffer in the CBD: 40 units, 3 lots, 39 owners), so keying on it would collapse a notice list to one row per lot; TAXBILLID is the tax bill number. Exact PARCELID equality answers in 0.2 s and is the sample query, which is also the predicate the liveness probe falls back to when its first shape (1=1) times out. CORS reflects the request origin. TLS: the server sends an INCOMPLETE certificate chain (leaf without its Sectigo intermediate). Clients that fetch the missing intermediate themselves (curl on Windows, Chromium and Safari through the OS store) connect; Node's fetch fails the handshake with UNABLE_TO_VERIFY_LEAF_SIGNATURE (measured 2026-10-04). UrbanKit's billed bulk-enrichment and radius paths run on Vercel's Edge runtime, which cannot be given a certificate authority and whose handling of an incomplete chain is undocumented and not yet measured, so assume they cannot serve this parish until a keyed test on the deployed function shows otherwise; today an Orleans row ends county-unavailable and is refunded, unchanged from before. The liveness probe pins the intermediate, so its ok reflects the layer, not the paid paths. An agent that fetches this URL from Node must trust the Sectigo intermediate or the request fails before any query runs. Tracked in GitHub issue #906. HISTORY: marked unreachable 2026-08-29 after 463 consecutive failed probes whose predicate (PARCELID IS NOT NULL) is a table scan; the layer was answering spatial queries the whole time. Ownership data looked dated during the 2026-08 checks; the 2026-10-03 rows carry current-looking owner names.`
14323
14324
  }
14324
14325
  ]
14325
14326
  };
package/dist/index.js CHANGED
@@ -14226,11 +14226,16 @@ var louisiana_default = {
14226
14226
  layerIndex: 15,
14227
14227
  layerName: "Property Information [Parcels]",
14228
14228
  supportsQuery: true,
14229
- corsEnabled: null,
14229
+ corsEnabled: true,
14230
14230
  searchFields: [
14231
+ {
14232
+ name: "PARID",
14233
+ label: "Parcel ID (PARID, per unit)",
14234
+ searchable: true
14235
+ },
14231
14236
  {
14232
14237
  name: "PARCELID",
14233
- label: "Parcel ID",
14238
+ label: "GeoPIN (lot id, shared by condo units)",
14234
14239
  searchable: true
14235
14240
  },
14236
14241
  {
@@ -14297,19 +14302,15 @@ var louisiana_default = {
14297
14302
  name: "SQUARE",
14298
14303
  label: "Square",
14299
14304
  searchable: false
14300
- },
14301
- {
14302
- name: "PARID",
14303
- label: "Parcel Account ID",
14304
- searchable: true
14305
14305
  }
14306
14306
  ],
14307
- sampleQuery: "https://gis.nola.gov/arcgis/rest/services/apps/property3/MapServer/15/query?where=PARCELID+IS+NOT+NULL&outFields=PARCELID,OWNERNME1,SITEADDRESS,PSTLADDRESS,PSTLCITY&returnGeometry=false&f=json&resultRecordCount=5",
14307
+ sampleQuery: "https://gis.nola.gov/arcgis/rest/services/apps/property3/MapServer/15/query?where=PARCELID%3D%2741033176%27&outFields=*&returnGeometry=false&f=json&resultRecordCount=1",
14308
14308
  license: "public",
14309
14309
  licenseUrl: "https://gis.nola.gov/",
14310
- status: "unreachable",
14311
- lastVerified: "2026-08-29",
14312
- verifiedBy: "manual"
14310
+ status: "live",
14311
+ lastVerified: "2026-10-03",
14312
+ verifiedBy: "manual",
14313
+ attributeSearch: "unsupported"
14313
14314
  }
14314
14315
  ],
14315
14316
  contact: {
@@ -14317,7 +14318,7 @@ var louisiana_default = {
14317
14318
  url: "https://gis.nola.gov/",
14318
14319
  email: null
14319
14320
  },
14320
- notes: `MARKED UNREACHABLE 2026-08-29. Layer 15 metadata answers and lists PARCELID, OWNERNME1, SITEADDRESS, PSTLADDRESS, but ANY query that names those columns in outFields returns ArcGIS 400 "Failed to execute query" in ~250 ms (measured 2026-08-29: PARCELID IS NOT NULL, 1=1, OBJECTID=1 and a 30 m spatial query all fail with specific outFields). outFields=* succeeds and takes 27-44 s; even outFields=OBJECTID took 27.5 s. The enrich pipeline requests specific columns, so every paid lookup here fails and refunds; the liveness probe sends the declared sampleQuery and fails the same way, which is why this parish has never once probed ok (463 consecutive failures). Layers 0-14 of the same service are zoning, overlays and address points, not parcels, and ArcGIS Hub lists no city-owned parcel feature service. County-side defect; nothing to re-point to. Liveness keeps watching. Prior notes: Orleans Parish's public parcel layer still serves metadata, but its attribute-query operation is currently failing on the county's ArcGIS server. Owner and address searches are unavailable while the county repairs the service; automatic probes continue to check for recovery. New Orleans uses Square/Lot identifiers for legal parcels. The city also publishes a weekly situs-and-geometry dataset on data.nola.gov, but it does not include owner names. An older 2018 parcel snapshot was not substituted because its ownership data is dated and the service was unstable during verification. LIVENESS 2026-08-04: the layer's metadata still loads, but EVERY query against it times out, including a bare returnCountOnly count. 161 consecutive failed checks and last_ok_at has never been set. This is a county-side outage, not a schema drift; there is nothing to fix on our side and the endpoint stays honestly degraded until New Orleans repairs it.`
14321
+ notes: `LIVE 2026-10-03 for lookup by location in clients that complete the TLS chain (see TLS below); no attribute search. Layer 15 refuses any query that NAMES its outFields except an exact PARCELID equality: measured 2026-10-03 on the paid shapes (point + 30 m buffer; 800 m envelope with geometry) and on a scan (OBJECTID>0, resultRecordCount=1), every named column list answers HTTP 200 carrying ArcGIS error 400 "Failed to execute query." in about 0.2 s, while the identical request with outFields=* answers 40 features in 0.28 s and 501 features (957 KB) in 0.65 s. UrbanKit sends outFields=* to this layer (api/_lib/arcgis-quirks.ts, WILDCARD_OUT_FIELDS) and keeps only the role columns. Any predicate that scans the table (1=1, OBJECTID>0, PARCELID IS NOT NULL, an owner LIKE) runs past 40 s even for a single row, so no where-clause search is offered (attributeSearch: unsupported) and owner-name lookup is not available here; the owner columns (OWNERNME1, OWNERNME2) and the mailing address (PSTLADDRESS, PSTLCITY, PSTLSTATE, PSTLZIP5) are returned on every spatial hit (a UrbanKit row keeps PSTLADDRESS, the street line). IDS: PARID is the assessor's per-unit parcel id (e.g. 622-SALEXANDERST) and is listed first so rows key by unit; PARCELID is the GeoPIN, a lot id shared by every condo unit on the lot (a 30 m buffer in the CBD: 40 units, 3 lots, 39 owners), so keying on it would collapse a notice list to one row per lot; TAXBILLID is the tax bill number. Exact PARCELID equality answers in 0.2 s and is the sample query, which is also the predicate the liveness probe falls back to when its first shape (1=1) times out. CORS reflects the request origin. TLS: the server sends an INCOMPLETE certificate chain (leaf without its Sectigo intermediate). Clients that fetch the missing intermediate themselves (curl on Windows, Chromium and Safari through the OS store) connect; Node's fetch fails the handshake with UNABLE_TO_VERIFY_LEAF_SIGNATURE (measured 2026-10-04). UrbanKit's billed bulk-enrichment and radius paths run on Vercel's Edge runtime, which cannot be given a certificate authority and whose handling of an incomplete chain is undocumented and not yet measured, so assume they cannot serve this parish until a keyed test on the deployed function shows otherwise; today an Orleans row ends county-unavailable and is refunded, unchanged from before. The liveness probe pins the intermediate, so its ok reflects the layer, not the paid paths. An agent that fetches this URL from Node must trust the Sectigo intermediate or the request fails before any query runs. Tracked in GitHub issue #906. HISTORY: marked unreachable 2026-08-29 after 463 consecutive failed probes whose predicate (PARCELID IS NOT NULL) is a table scan; the layer was answering spatial queries the whole time. Ownership data looked dated during the 2026-08 checks; the 2026-10-03 rows carry current-looking owner names.`
14321
14322
  }
14322
14323
  ]
14323
14324
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@urbankitstudio/atlas",
3
- "version": "0.6.12",
3
+ "version": "0.6.13",
4
4
  "description": "JS SDK for the UrbanKit County Parcel REST API Atlas: 241 counties across all 50 US states and DC, 253 verified public ArcGIS REST endpoints for county parcel data, with searchable field metadata, sample queries and license info.",
5
5
  "keywords": [
6
6
  "parcel",