Backend-Agnostic vs Honua-Server-Enhanced Capability Matrix
This is the generated, evidence-linked line between capabilities that work
against raw standards-speaking endpoints and capabilities that require the Honua
facade. The source of truth is config/support-manifest.v1.json.
See the standalone quickstart for the runnable path.
Capability tiers
Tier answers the one question a matrix of statuses does not: what do you have to
run yourself before this works? It is not authored per capability — it is each
claim's environment read through the manifest's own tier partition, so a new
environment cannot enter the vocabulary untiered.
| Tier | Honua Server | Environments | Claims | What it means |
|---|---|---|---|---|
Open endpoint (open-endpoint) |
not required | build-time, client-only, protocol-adapter, standalone |
28 | Works against any standards-speaking endpoint you already run, or entirely inside the client and build. Zero Honua infrastructure, no Honua account. |
Server attach (server-attach) |
required | honua-facade |
7 | Executes only after attaching to a Honua Server facade. Every claim in this tier names either a roadmap issue for an open-endpoint path or the reason the server dependency is inherent. |
Server-attach capabilities and their open-endpoint path
Every server-attach claim names either a roadmap issue for an open-endpoint path
or the reason the dependency is inherent. Inherent is a product statement, not
a scheduling excuse: it means no third-party endpoint can answer that surface at
all, so there is nothing to implement against.
| Capability | Status | Open-endpoint path | Why it attaches to a server |
|---|---|---|---|
| Honua gRPC FeatureServer discovery | supported |
Inherent — none possible | The Honua gRPC FeatureService is Honua Server's own wire protocol, so there is no third-party endpoint to speak it to. The open-endpoint path to the same reads is the GeoServices, OGC API Features, WFS, STAC, and OData discovery claims, which return the identical Dataset/Source/Query/Result contract. |
| PMTiles managed publish lifecycle | experimental |
Inherent — none possible | Archive and publish jobs create artifacts through Honua Server tile operations and configured cloud storage. Direct archive discovery remains the open-endpoint alternative and does not require server attach. |
| Honua Arrow and Parquet feature-query results | experimental |
Inherent — none possible | The f=arrow and f=parquet result formats are Honua FeatureServer extensions. The direct-object equivalent is the separate client-only GeoParquet claim, while this claim intentionally requires a deployment that advertises the response contract. |
| Server compatibility gate | facade-required |
Inherent — none possible | The gate reads Honua Server's own administrative capabilities contract; a third-party endpoint publishes nothing equivalent to check. Open-endpoint reads skip the gate entirely rather than degrade. |
| Authored MapPackage runtime | facade-required |
Inherent — none possible | A MapPackage is a server-authored artifact by design: the styles, layer order, and metadata are produced by Honua Server's authoring surface, so loading one presupposes a server that authored it. The open-endpoint equivalent is connect() plus mountSource(), which styles a raw endpoint with no MapPackage. |
| Realtime subscriptions | facade-required |
Roadmap: #393 | Subscriptions bind to the transports Honua Server advertises today, but OData delta and other standards feeds are open-endpoint transports; the unified snapshot-plus-delta epic owns adapting them to the same cursor contract. |
| Collaboration and saved maps compatibility shim | deprecated |
Inherent — none possible | Shared saved maps and presence are hosted, multi-writer state; a read-only third-party endpoint has nowhere to store them. The SDK entrypoint is a deprecated shim and the surface itself moves to @honua/app-platform. |
Surface tiers
A subpath is one lifecycle row, but a barrel can mix tiers. Every export below is
classified explicitly in config/support-manifest.v1.json and the
generated config/public-surface.json
projection; an unclassified export fails the support gate rather than inheriting
a tier from the directory it lives in.
| Surface | Status | Tier exports | Held back | SDK forwarder | Evidence |
|---|---|---|---|---|---|
@honua/app-platform/scene-workspace |
beta |
205 | 82 experimental |
@honua/sdk-js/scene-workspace |
fixture: scene-workspace-fixtures fixture: scene-state-sync-fixtures fixture: scene-primitive-diagnostics-fixtures fixture: cesium-scene-adapter-fixtures fixture: cesium-scene-mount-fixtures integration: cesium-scene-adapter-browser fixture: scene-bundle-isolation |
@honua/app-platform/scene-workspace
The renderer-neutral workspace state, the scene primitive contract, and the Cesium primitive adapter keep their shape through @honua/app-platform 0.1.x: exports are not renamed or removed, primitive discriminants and diagnostic codes are additive only, and Cesium stays a lazily imported optional peer. Breaking one of those requires a minor bump and a called-out change, not a silent edit.
What may still change inside the tier:
- New primitive kinds, diagnostic codes, and renderer capability flags are additive; exhaustive
switchstatements over those unions may need a new arm. - Cesium peer range tracking: the adapter follows the
cesiumpeer range inpackage.jsonand may raise its floor within 0.1.x. - Server-authored 3D style plumbing (
Honua3DStyleSpecand friends) tracks the Honua Server styling contract and may gain fields. - The shipped renderer state-sync ports (
createMapLibreStateSyncPort/createCesiumStateSyncPort) keep their factory shape, butSceneStateSyncPortDegradationCodegrows additively and each port narrows its ownmappingsfrom what the live renderer can actually do, so a capability probe may reclassify a slice within 0.1.x.
Held back at experimental — Honua Server scene discovery, the SceneView container, and the elevation/analysis widgets execute against a Honua facade, so they sit outside the open-endpoint evidence behind the beta promotion.
CesiumEntityCollectionLike, ElevationProfileRequest, ElevationProfileResult, ElevationProfileSample, HonuaScene, LineOfSightRequest, LineOfSightResult, SceneAnalysisCesiumModule, SceneAnalysisOverlay, SceneAnalysisPosition, SceneAnalysisRequestExecutor, SceneDiscoveryRequestExecutor, SceneExtent3D, SceneMeasurement, SceneView, SceneViewEvent, SceneViewEventListener, SceneViewOptions, SceneViewRequestExecutor, SceneViewpoint, ViewshedRequest, ViewshedResult, ViewshedSample, buildElevationProfilePath, buildLineOfSightBody, buildViewshedBody, formatMeasurementLabel, getScene, haversineMeters, listScenes, measureScenePositions, normalizeScene, pathLengthMeters, positionsToWktLineString, renderElevationProfilePolyline, renderLineOfSight, renderMeasurement, renderViewshed, requestElevationProfile, requestLineOfSight, requestViewshed, resolveSceneTilesetUrl, sceneCameraPrimitive, sceneLayerStates, sceneTerrainPrimitive, sceneTilesetPrimitive, sceneToRuntimePrimitives, sceneViewpointBookmarks, slantDistanceMeters, sphericalPolygonAreaSquareMeters
Held back at experimental — The accepted-plan Source to Cesium entity lifecycle carries real-Cesium browser evidence since issue #1050 — entities materialize onto a live Viewer through the public path, Cesium's own availability decides what is drawn, the entity ceiling fails closed, and disposal returns the collection to baseline inside the primitive lane's measured budgets. Two of the three named promotion blockers are now cleared: refresh() is a real diff (identity is the projected entity id qualified by geometry kind, configuration is an order-independent fingerprint, unfingerprintable means changed), so a byte-identical feature keeps the same live Entity and a viewer.selectedEntity set on it survives — asserted by object identity on a live collection — and mountCesiumScene is the single owner that composes the entity mount with the primitive mount so one dispose() releases both in a measured order. The slice stays experimental for the life of 0.1.x for the remaining blocker: there is no symbology surface, and adding one means new required shapes rather than purely additive ones. See docs/cesium-entity-adapter.md#tier-decision-issue-1050.
CESIUM_ENTITY_REBUILD_BOUNDARIES, CesiumEntityAdapterErrorCode, CesiumEntityCollectionTarget, CesiumEntityDiagnostic, CesiumEntityDiagnosticCode, CesiumEntityGeometry, CesiumEntityInterval, CesiumEntityPositionSample, CesiumEntityProjection, CesiumEntityProjectionItem, CesiumEntityRebuildBoundary, CesiumEntityRebuildBoundaryReport, CesiumEntityRefreshResult, CesiumEntityRuntimeLoader, CesiumEntityRuntimeModule, CesiumEntityTimeOptions, CesiumEntityWorkflowState, CesiumSceneOwnerErrorCode, CesiumSceneOwnerState, CesiumSceneOwnerTarget, DEFAULT_CESIUM_ENTITY_LIMIT, DEFAULT_CESIUM_SCENE_SOURCE_LIMIT, HonuaCesiumEntityAdapterError, HonuaCesiumSceneOwnerError, MountCesiumSceneOptions, MountSourceToCesiumOptions, MountedCesiumEntitySource, MountedCesiumScene, ProjectSourceToCesiumOptions, mountCesiumScene, mountSourceToCesium, projectSourceToCesium
Status vocabulary
supported— release-gated implementation with linked evidencebeta— implemented and evidenced, but still in pre-GA hardeningexperimental— usable evidence-backed preview whose shape may changedeprecated— compatibility-only surface with a named replacementunsupported— no implementation claimfacade-required— typed capability exists but execution requires Honua Server
Environment and execution mode are separate from status: standalone tells you
where a claim works, while discovery, native, client-fallback, and
facade tell you how it works.
Matrix
| Capability | Tier | Status | Environment | Execution | Backend needed | API | Evidence | Notes |
|---|---|---|---|---|---|---|---|---|
| Honua gRPC FeatureServer discovery | server-attach |
supported |
honua-facade |
native |
A Honua Server FeatureService endpoint reachable over gRPC-Web | connect(), HonuaClient.queryFeatures, Source | fixture: connect-grpc-fixtures fixture: contract-conformance conformance: grpc-conformance |
Discovers a canonical FeatureServer URL through the same REST service/layer metadata geoservices-feature-service discovery uses, deriving capabilities through the identical algorithm, then verifies query/stream through one bounded live QueryFeatures parity probe per layer over the gRPC-Web transport before advertising them; a schema disagreement between the probe and REST metadata fails discovery rather than silently trusting either side. |
| GeoServices FeatureServer query | open-endpoint |
supported |
standalone |
native |
Any ArcGIS Server or ArcGIS Online endpoint | connect(), HonuaClient.queryFeatures, Source | fixture: connect-fixtures fixture: contract-conformance fixture: geoservices-conformance live: first-map-live live: live-conformance |
Discovers and uses the raw FeatureServer query path; fixture-proven with scheduled anonymous live verification that needs no Honua account or server. |
| GeoServices MapServer reads | open-endpoint |
supported |
standalone |
native |
Any ArcGIS Server or ArcGIS Online endpoint | connect(), HonuaClient.mapService, Source | fixture: connect-fixtures fixture: honua-surface-fixtures fixture: tile-layer-fixtures integration: map-service-integration |
Discovers and uses raw MapServer paths for layer queries, export, identify, legend, find, and cached tiles. |
| GeoServices ImageServer reads | open-endpoint |
supported |
standalone |
native |
Any ArcGIS Server or ArcGIS Online endpoint | connect(), discoverGeoServices(), HonuaClient.imageService, Source.protocol(), @honua/sdk-js/raster | fixture: geoservices-discovery-fixtures fixture: geoservices-conformance integration: image-service-integration fixture: unified-raster-fixtures |
Discovers ImageServer metadata and creates a Source only when catalog query and pagination support are advertised; the experimental raster facade adds bounded bbox rendering, explicit one-based band selection, identify, and presentation handoffs without inventing statistics endpoints. |
| Unified bounded direct COG operations | open-endpoint |
experimental |
client-only |
native |
A static host with exact HTTP Range and readable CORS headers plus a caller-injected structural COG decoder | @honua/sdk-js/raster | fixture: unified-raster-fixtures | Consumes the dynamic STAC COG handoff or an explicit COG media type, structurally validates the object, enforces byte/range/pixel budgets, and provides bounded windows, one-based bands, statistics, histograms, value inspection, progress, cancellation, and MapLibre mounting. |
| GeoServices GeometryServer discovery | open-endpoint |
supported |
standalone |
discovery |
Any ArcGIS Server GeometryServer endpoint | discoverGeoServices() | fixture: geoservices-discovery-fixtures | Returns advertised geometry operations as metadata-only descriptors; it never invents a queryable Source. |
| GeoServices GPServer discovery and asynchronous execution | open-endpoint |
supported |
standalone |
native |
Any ArcGIS Server GPServer endpoint for discovery; execution additionally requires the task to be published for asynchronous submission (submitJob) | discoverGeoServices(), HonuaClient.geoprocessing(), HonuaClient.geoprocessingRunner(), Source.protocol() | fixture: geoservices-discovery-fixtures fixture: geoservices-conformance fixture: geoprocessing-job-run-fixtures fixture: process-runner-fixtures |
Discovery returns task and job-lifecycle metadata for every task without starting work. Execution is asynchronous only: the typed GP service and the unified process runner submit, poll, cancel, and fetch results over submitJob/jobs/cancel, so a synchronous task that advertises only execute is discovered and reported with sdkSupported false rather than run. |
| Esri compatibility layer | open-endpoint |
supported |
standalone |
native |
Any ArcGIS Server or ArcGIS Online endpoint | @honua/sdk-js/esri-compat | fixture: esri-compat-fixtures | Compatibility classes parse public GeoServices URLs and create their own client. |
| ArcGIS scanner and migration codemod | open-endpoint |
supported |
build-time |
static |
None | @honua/sdk-js/migration, honua-migrate | fixture: migration-fixtures | Static analysis and rewrites run locally; no service is involved. |
| Geometry operations | open-endpoint |
supported |
client-only |
native |
None | @honua/sdk-js/geometry | fixture: geometry-fixtures | Buffer, area, simplify, measure, and reprojection run in the client through optional peers. |
| OGC API Features | open-endpoint |
supported |
standalone |
discovery |
Any OGC API Features server | connect(), Source with locator.layout=ogc-api or auto | fixture: ogc-features-fixtures live: live-conformance |
Discovers collections and item links from a raw landing page; the Honua facade remains a zero-round-trip fast path. |
| WFS 2.0 | open-endpoint |
supported |
standalone |
discovery |
Any WFS 2.0 server | connect(), Source, HonuaWfs | fixture: wfs-fixtures live: live-conformance |
Uses the DCP operation URLs advertised by GetCapabilities instead of assuming a server path. |
| WMS 1.3 discovery, raster rendering, and GetFeatureInfo | open-endpoint |
supported |
standalone |
discovery |
Any WMS 1.3.0 server with a MapLibre-compatible GetMap binding; canonical query additionally needs a queryable layer advertising a GeoJSON, JSON, or GML GetFeatureInfo format | connect(), Source descriptor, Source.query(), @honua/sdk-js/map | fixture: wms-wmts-connect-fixtures fixture: maplibre-raster-source-fixtures live: live-conformance |
Discovers layers, styles, dimensions, CRS/axis order, formats, and same-origin operation URLs. Raw sources render through the reviewed GetMap binding and answer canonical point query() through the capabilities-advertised GetFeatureInfo URL, preferring GeoJSON/JSON and falling back to GML. Query stays disabled when the layer is not queryable, no same-origin GetFeatureInfo GET URL is advertised, the only advertised info formats are unstructured (text/plain, text/html), or no advertised CRS has a provable WMS 1.3 axis order. |
| WMTS 1.0 discovery and raster tiles | open-endpoint |
supported |
standalone |
discovery |
Any WMTS 1.0.0 server with a Web Mercator, z-addressable tile matrix set | connect(), Source descriptor, @honua/sdk-js/map | fixture: wms-wmts-connect-fixtures fixture: maplibre-raster-source-fixtures live: live-conformance |
Discovers layers, styles, dimensions, formats, ResourceURL/KVP bindings, and tile matrices. Rendering uses the reviewed binding and fails closed when matrix identifiers cannot map exactly to MapLibre zooms. |
| STAC API and static catalogs | open-endpoint |
supported |
standalone |
discovery |
Any STAC API or static catalog | connect(), Source with locator.layout=stac-api or stac-static | fixture: stac-fixtures live: live-conformance |
Searches a raw STAC API or walks static catalog links with client-side filtering. |
| Dynamic STAC search and cloud-native asset selection | open-endpoint |
experimental |
client-only |
native |
Any STAC API; executable assets additionally require the compatible PMTiles, COG, columnar, or runtime client surface | @honua/sdk-js/stac | fixture: stac-workflow-fixtures fixture: stac-browser-product-fixtures integration: stac-browser-product-playwright |
Adds bounded GET/POST search, server-driven pagination, cancellation, signed URL refresh, and typed asset selection without changing the supported connect() STAC protocol claim. The walkthrough executes authenticated, byte-bounded PMTiles v3 inspection with redacted range evidence, but does not mount the archive as a tile source; pmtiles-static remains renderer proof. Asset maturity and handoff remain explicit; GeoArrow is metadata-only and Zarr/NetCDF are unavailable. |
| OData v4 | open-endpoint |
supported |
standalone |
discovery |
Any OData v4 service | connect(), Source, HonuaOdataEntitySet | fixture: odata-fixtures live: live-conformance |
Reads $metadata, intersects advertised capabilities, and uses the raw service root. |
| PMTiles direct asset discovery | open-endpoint |
supported |
client-only |
discovery |
Any static host with exact HTTP Range and readable CORS headers | connect({ protocol: 'pmtiles' }), Source.protocol('pmtiles') | fixture: pmtiles-connect-fixtures fixture: pmtiles-fixtures |
Reads only a bounded PMTiles v3 header and metadata range through the authenticated client pipeline; pmtiles:// is the sole direct auto marker, while filename-only and spoofed inputs fail closed without alternate-protocol probing. |
| PMTiles managed publish lifecycle | server-attach |
experimental |
honua-facade |
facade |
Honua Server tile operations with configured cloud file storage | @honua/sdk-js/pmtiles inspectPmtilesArchive(), createHonuaPmtilesLifecycle(), registerPmtilesSource() | fixture: pmtiles-lifecycle-fixtures | Submits archive/publish jobs, bounds typed status polling, cancels work, validates public/signed/range-proxy access semantics, and exposes direct versus managed descriptors. Evidence is contract-only; no pinned managed live canary is claimed, and manual managed artifact deletion is unavailable. |
| GeoParquet asset discovery | open-endpoint |
experimental |
client-only |
discovery |
None; caller provides a GeoParquet profiler | connect({ protocol: 'geoparquet', geoparquet: { profiler } }) | fixture: geoparquet-connect-fixtures | Profiles one or more assets and returns reviewed Source descriptors; query execution remains injected through the optional GeoParquet resolver. |
| Bounded direct GeoParquet columnar workflow | open-endpoint |
experimental |
client-only |
native |
None; a range-readable GeoParquet object and optional DuckDB-WASM peer | @honua/sdk-js/columnar-workflow | fixture: geoparquet-fixtures fixture: columnar-workflow-contract |
Inspects and queries a structurally validated GeoParquet source with explicit row, batch, transfer-byte, and backing-memory ceilings; worker, render, table, and download boundaries remain explicit. |
| Honua Arrow and Parquet feature-query results | server-attach |
experimental |
honua-facade |
facade |
Honua Server deployment that advertises Arrow or Parquet FeatureServer query output | @honua/sdk-js/columnar-workflow | fixture: columnar-workflow-contract fixture: columnar-workflow-honua-arrow-interop |
Builds bounded GET or POST queries through the normal request pipeline. The built-in Arrow decoder is fixture-proven against an exact Honua Server geoarrow.wkb artifact for a Binary/LargeBinary Point/LineString/Polygon XY/XYZ subset plus object-id, UTF-8/dictionary, and timestamp fields. BinaryView, broader Arrow schemas, and all Parquet responses require an injected decoder. No live status is claimed without a demo-manifest target. |
| OGC API Tiles | open-endpoint |
beta |
standalone |
discovery |
Any link-driven OGC API Tiles server | connect(), Source protocol ogc-tiles | fixture: ogc-tiles-fixtures live: live-conformance |
Discovers raw landing, conformance, collection, tileset, and tile links; does not rewrite them to /ogc/tiles. Fixture-proven with scheduled anonymous live verification of one bounded vector tile. |
| OGC API Maps | open-endpoint |
beta |
standalone |
discovery |
Any link-driven OGC API Maps server | connect(), Source protocol ogc-maps | fixture: ogc-maps-fixtures live: live-conformance |
Discovers and renders from the raw map path advertised by the service; does not require /ogc/maps. Fixture-proven with scheduled anonymous live verification of one bounded PNG render. |
| OGC API Coverages discovery and bounded retrieval | open-endpoint |
experimental |
standalone |
native |
Any compatible OGC API Coverages server | @honua/sdk-js/coverages createCoverageClient(), CoverageSource, @honua/sdk-js/raster | fixture: coverages-wcs-fixtures integration: coverages-wcs-browser fixture: unified-raster-fixtures |
Discovers landing, conformance, collections, domain/grid and range schema metadata, then retrieves explicitly bounded TIFF/PNG coverage bodies through the shared authenticated request pipeline. A strict standalone browser fixture proves named properties, cancellation, degradation, zero external requests, and the shared MapLibre image handoff. The support claim remains experimental because no anonymous live canary exists. |
| WCS 2.0.1 discovery and bounded retrieval | open-endpoint |
experimental |
standalone |
native |
Any compatible WCS 2.0.1 KVP endpoint | @honua/sdk-js/coverages createWcsClient(), @honua/sdk-js/raster | fixture: coverages-wcs-fixtures integration: coverages-wcs-browser fixture: unified-raster-fixtures |
Supports GetCapabilities, DescribeCoverage, bounded GetCoverage, CRS/range/scaling/axis/temporal parameters, content negotiation, and structured OWS exceptions. A strict standalone browser fixture proves named RANGESUBSET, cancellation, degradation, zero external requests, and the shared MapLibre image handoff. The support claim remains experimental because no anonymous live canary exists. |
| OGC API Records | open-endpoint |
beta |
standalone |
discovery |
Any link-driven OGC API Records server | connect(), Source protocol ogc-records | fixture: ogc-records-fixtures live: live-conformance |
Discovers and queries the raw records path advertised by the service; does not require /ogc/records. Fixture-proven with scheduled anonymous live verification of one bounded record page. |
| Cesium 3D scene workspace | open-endpoint |
beta |
client-only |
native |
None (optional cesium peer) |
@honua/app-platform/scene-workspace | fixture: scene-workspace-fixtures fixture: scene-state-sync-fixtures fixture: scene-primitive-diagnostics-fixtures fixture: cesium-scene-adapter-fixtures fixture: cesium-scene-mount-fixtures integration: cesium-scene-adapter-browser fixture: scene-bundle-isolation |
Renderer-neutral scene state plus the Cesium primitive adapter and its bounded mount lifecycle for quantized-mesh terrain, imagery, 3D Tiles, and glTF/GLB model layers. Cesium is a lazily imported optional peer, so core and 2D consumers never load it. Beyond the unit fixtures, the adapter is proven against the real cesium package in headless Chromium with bounded teardown budgets; that browser matrix covers camera, quantized-mesh terrain (the adapter's only materialized terrain protocol), every declared imagery protocol (url-template, WMS, WMTS, single-tile, and both ArcGIS endpoint shapes) with the request each provider puts on the wire, glTF/GLB models, 3D-Tiles tilesets including a .pnts point cloud and the honua_style sidecar, an undeclared imagery protocol, and an unmaterialized model format. Unit fixtures additionally cover the fail-closed Terrain-RGB, raster DEM, ImageServer, and custom terrain rows. The browser lane also records a documented final-canvas GC floor whose listener budget is itself proven by an injected per-cycle leak (#928, #1055). Honua Server scene discovery, the elevation/analysis widgets, and the bounded Source-to-entity slice stay experimental — the entity slice now with its own real-Cesium browser evidence, a refresh that diffs instead of rebuilding (an unchanged feature keeps the same live Entity), the mountCesiumScene single owner over both mounts, and a recorded tier decision naming symbology as the one remaining blocker (#1050), not for want of proof — see the surface tiers table. |
| OGC API Processes discovery | open-endpoint |
supported |
standalone |
discovery |
Any link-driven OGC API Processes server | discoverOgcProcesses() | fixture: ogc-processes-fixtures live: live-conformance |
Discovers conformance and process metadata at raw paths. Processes are not a protocol-neutral Source; scheduled anonymous live verification proves operation-only discovery and a zero-request connect() rejection. |
| OGC API Processes execution | open-endpoint |
experimental |
standalone |
native |
Any conformant OGC API Processes Part 1 (Core) server | client.ogcProcesses({ basePath, conformance }).execute() | fixture: ogc-processes-fixtures integration: ogc-processes-integration |
Executes at the discovered service root in both Core response shapes (no Prefer header for the Requirement 25 synchronous default, or Prefer: respond-async for asynchronous negotiation), then follows advertised Location and results links through the job lifecycle. Undeclared sync-execute / async-execute / dismiss fails closed with HonuaCapabilityNotSupportedError; polling is always bounded and abortable. Fixture and integration-contract proven, but not yet governed-live executed; the anonymous geometry.buffer live step remains explicitly blocked on honua-server#3268 and honua-demo-infra#68. |
| Server compatibility gate | server-attach |
facade-required |
honua-facade |
facade |
Honua Server | HonuaClient.checkCompatibility() | fixture: server-compatibility-fixtures | Reads the Honua administrative capabilities contract and should be skipped for standalone reads. |
| Authored MapPackage runtime | server-attach |
facade-required |
honua-facade |
facade |
Honua Server | @honua/sdk-js/runtime | fixture: map-package-fixtures | Loads server-authored styles, layer order, and metadata. |
| Realtime subscriptions | server-attach |
facade-required |
honua-facade |
transport |
Honua Server | @honua/sdk-js/realtime | fixture: realtime-cross-transport-fixtures integration: realtime-integration live: realtime-live-conformance |
SSE, WebSocket, and OData polling share a release-gated fixture corpus; scheduled evidence executes each transport that Honua Server advertises and classifies unsupported or degraded capability separately. |
| Collaboration and saved maps compatibility shim | server-attach |
deprecated |
honua-facade |
facade |
Honua Server and @honua/app-platform | @honua/sdk-js/collaboration | Lifecycle-only claim | The SDK entrypoint is a temporary shim; new code imports @honua/app-platform/collaboration. |
| MCP tools and agent operations | open-endpoint |
beta |
standalone |
native |
Any GeoServices, OGC API Features, WFS, STAC, or OData endpoint the SDK's protocol clients support | mcp/, @honua/sdk-js/agent-tools | fixture: agent-tools-fixtures | Tool definitions are local and the tool contract is the SDK's protocol-neutral one: honua-mcp addresses sources as |
Current OGC line
Raw OGC API Tiles, Maps, and Records discovery/use is beta and fixture-proven.
Raw OGC API Processes discovery and raw Processes execution are both
experimental and both standalone. They stay deliberately separate claims
so discovery evidence can never be mistaken for execution support: discovery
carries a scheduled anonymous live lane, while execution is fixture-proven only
because no public Processes endpoint permits anonymous execution.