Maximo and Cityworks assets on the same map as the corridor. New

Connect the EAM / CMMS side of the enterprise landscape your utility already runs — IBM Maximo (OSLC) and Cityworks (AMS REST) — through an optional loopback Python sidecar. Assets and work orders come back as GeoJSON, land in a GPKG-backed cache, and resolve onto the map beside PLS-CADD structures, OMS outages, and damage hotspots. Pair it with Microsoft Fabric OneLake and SharePoint lists for the full enterprise-systems picture.

IBM MaximoCityworks Assets · Work ordersDPAPI credentials Geo resolutionLoopback sidecar
Provider integration · Phase 1 + geo core

Read assets and work orders. Put them where they belong.

The host speaks REST to a local middleware that speaks Maximo / Cityworks. Credentials stay DPAPI-encrypted at rest. Geo resolution prefers native XY, then a GIS asset register, then geocoding — unresolved records stay visible with an honest status rather than vanishing.

  • Capabilities probe — always-200 /api/eam/capabilities; 503 + install hint when the sidecar isn’t available (same contract as SNAP / roofer / PostDuck).
  • Assets & work ordersGET /api/eam/assets and /work-orders return GeoJSON FeatureCollections; fresh=1 bypasses cache.
  • Loopback-only — sidecar binds to 127.0.0.1 by policy (no TLS on the middleware); LAN exposure belongs behind your reverse proxy.
  • GPKG store — cached geometries with real geom columns so the data participates in the same GeoPackage Manager / Connect-to-GIS world.
  • Geo core (Phase 2a) — hybrid resolver precedence (cache → native XY → geocoder → honest-unresolved), mixed point / line / polygon geometry, and address geocoding that puts records with only an address onto the map.
/api/eam · Maximo · Cityworks
GET  /api/eam/capabilities
POST /api/eam/start            → boot sidecar
GET  /api/eam/assets?fresh=0
GET  /api/eam/work-orders
GET  /api/eam/health

// secrets: DPAPI at <dataDir>/eam/
● providers Maximo · Cityworks
Why this matters for ops

Work orders next to the span that needs them

🏭

Enterprise EAM

Keep Maximo / Cityworks as system of record — VoltGrid is the geospatial twin, not a second CMMS.

📍

Hybrid geo

Native coordinates when present; register lookup and geocode when the EAM only has an address or location id.

🔐

OT-friendly

Optional sidecar, loopback bind, DPAPI secrets — degrade cleanly when the middleware isn’t installed.

Honest boundary: shipping surface is read of assets / work orders + geo resolution + cache. Write-back, SSE push from the EAM, and ML reverse-proxy are later phases. Requires operator install of the Python middleware when connecting live Maximo / Cityworks.