v1.2.0
What's changed?
Added
- Single-tenant routing mode (
SINGLE_TENANT_ID): when set, all${API_ROOT}/v1/*requests resolve to that tenant regardless ofHost, and${API_ROOT}/admin/*is reachable on the same host/IP. Enables IP-only or single-host production deployments without DNS or fakeHostheaders.BASE_DOMAINis ignored for routing in this mode. When unset, DNS-based multi-tenant routing viaBASE_DOMAINis unchanged.
Changed
- Configurable API root: all surfaces now live under a single env-driven prefix (
API_ROOT, default/giswater). Tenant API at${API_ROOT}/v1, admin at${API_ROOT}/admin, global health at${API_ROOT}/health, static at${API_ROOT}/static. SetAPI_ROOT=/gw-apito keep legacy v1.1 URLs. - Log viewer (
/logs/ui) now resolves its static asset URLs fromSTATIC_PREFIXinstead of hardcoded/gw-api/static. deploy/nginx.conf.example,scripts/smoke_test.sh, anddocker-compose.ymlhealthcheck updated to use${API_ROOT}(default/giswater).- Public URLs moved from
/gw-api/...to/giswater/...by default. Deployments that need the old paths must setAPI_ROOT=/gw-api; clients, Keycloak callbacks, probes, and any hardcoded URLs must be updated accordingly.
Full Changelog: v1.1.0...v1.2.0