Skip to content

WFS 2.0 compatibility: GetCapabilities, DescribeFeatureType, GetFeature, Transaction #376

@mikemcdougall

Description

@mikemcdougall

Context

OGC API Features is the modern replacement for WFS, and Honua implements it fully (137/137 CITE tests). However, GeoServer users have existing WFS 2.0 clients — QGIS connects via WFS, desktop GIS applications, and custom integrations. Without classic WFS 2.0, these clients cannot connect without reconfiguration.

QGIS in particular defaults to WFS for feature access, and many organizations have QGIS projects configured with WFS endpoints.

Scope

Core Operations (WFS 2.0)

  • GetCapabilities — service metadata and layer listing (XML)
  • DescribeFeatureType — GML application schema for layer fields
  • GetFeature — feature query with:
    • Filter (OGC Filter Encoding 2.0 / FES)
    • PropertyName (field selection)
    • SortBy (ordering)
    • MaxFeatures / startIndex (pagination)
    • BBOX (spatial filter)
    • outputFormat (GML 3.2, GeoJSON, CSV)
  • GetPropertyValue — single property query (lightweight)

Transactional WFS (WFS-T)

  • Transaction — Insert, Update, Delete operations via XML POST
  • Lock/unlock features (optional — evaluate necessity)

Filter Encoding

  • Map OGC FES 2.0 filters to the shared Filter AST (ADR-0009)
  • Spatial operators: BBOX, Intersects, Within, Contains, DWithin
  • Comparison operators: PropertyIsEqualTo, PropertyIsLike, PropertyIsBetween
  • Logical operators: And, Or, Not

Output Formats

  • GML 3.2 (default, required for WFS compliance)
  • GeoJSON (convenient for modern clients)
  • CSV (tabular export)

Edition Gating

  • Community: full WFS 2.0 (standards compliance drives adoption)

Why P2/Beta

Not MVP because OGC API Features covers the modern use case. Beta because GeoServer migration requires it and QGIS is the #1 open-source desktop GIS.

References

  • OGC WFS 2.0 spec (OGC 09-025r2)
  • OGC Filter Encoding 2.0 (OGC 09-026r2)
  • ADR-0009: Shared Filter AST (FES maps to same AST)
  • QGIS WFS provider documentation

Acceptance Criteria

  • WFS 2.0 GetCapabilities responds with valid XML that advertises enabled feature types and supported operations.
  • WFS 2.0 DescribeFeatureType returns a valid application schema for a requested layer.
  • WFS 2.0 GetFeature supports Filter, PropertyName, SortBy, Count/MaxFeatures, startIndex, BBOX, and output formats required by the scoped implementation.
  • WFS 2.0 Transaction supports the scoped insert, update, and delete operations with integration coverage.
  • The WFS implementation passes the targeted compatibility/conformance checks added for this issue and is covered by server integration tests for each shipped endpoint.
  • Community edition exposes the WFS 2.0 feature set defined in this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/serverCore server (protocols, query, edits)edition/communityCommunity edition (free)effort/L🌳 L: 1-2 days (complex feature, multiple components)enhancementNew feature or requestphase/BetaBeta scopepriority/P2⚡ Medium priority - important for phase completion, standard work

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions