Skip to content

feat: add Portal facade repoint client #168

Description

@mikemcdougall

Problem Summary

The server Portal facade and seed/bootstrap contract now exist, but honua-sdk has no client for repointing an ArcGIS-style Portal workflow to Honua /sharing/rest. Consumers currently need ad hoc HTTP for token issuance, Portal search, item lookup, and item-to-FeatureServer resolution.

Why It Matters Now

honua-server#2614 is closing the cross-SDK interop tail of the Portal facade. A Python path lets migration and automation code authenticate, discover Portal items, and open the existing GeoServices FeatureServer surface without duplicating wire semantics.

Acceptance Criteria

  • Add async and generated synchronous Portal facade clients under honua_sdk.
  • Accept either a Honua root URL or /sharing/rest URL and normalize it safely.
  • Support generate_token, preserving the server contract that expires is Unix milliseconds.
  • Support info, portals/self, paged search, and item lookup using Esri error envelopes.
  • Resolve a Feature Service item URL to the existing GeoServices client path and carry the Portal token into subsequent requests.
  • Add strict httpx mock tests for token, paging, errors, URL resolution, and credential propagation.
  • Run scripts/gen_sync.py and keep generated sync/async surfaces aligned.
  • Add an opt-in live proof against honua-server tests/seed/portal-compat.yaml, or cross-link the server compatibility lane that supplies it.
  • Update public API compatibility evidence and docs.

Affected Repositories

  • honua-sdk-python (implementation owner)
  • honua-server (seed/contract and release-proof interop)

Gate-Tier Impact

  • SDK lint/type/test/compatibility gates
  • Server SDK compatibility evidence after release

Release/Deploy Impact

Requires a versioned honua-sdk release before the server compatibility manifest can claim the Python Portal surface. No server deployment change.

Non-Goals

  • Reimplementing Portal server behavior in the SDK.
  • UI, map rendering, interactive OAuth browser UX, or token refresh orchestration.
  • Changes to the proprietary honua-gp or deprecated honua-arcpy packages.

Contract and Coordination

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions