Skip to content

v2.0.0

Choose a tag to compare

@JohannesRahlf JohannesRahlf released this 31 Aug 09:07
· 28 commits to main since this release
945ca9e

Real, breaking rewrite for the new OCI-hosted ForestSens API (previous releases targeted the
legacy Oracle APEX API -- apitoken header auth, numeric algorithm ids, real oci SDK
dependency for uploads). Nothing is compatible with earlier versions; this repo was never
actually published as a package before, so there's nothing real to pin against.

  • X-Api-Key auth via the dedicated /v1-key/{path*} Gateway route (mirrors the entire /v1/*
    surface -- any path that works with a bearer JWT under /v1/... works identically under
    /v1-key/... with an API key).
  • Real dataset upload: small files PUT directly to a pre-authenticated Object Storage URL;
    larger files (>=16 MiB) use the real resumable, backend-mediated multipart protocol
    (OCI PARs don't support real multipart at all).
  • create_batch/get_batch/wait_for_batch (polls to completion, raises BatchFailedError
    with the real failing step's error/log tail on failure) against the real pipeline/inputs shape.
  • download_artifacts -- streams each artifact's already-live download URL straight to disk.
  • ForestSensAPIError parses the real {data, meta, error} response envelope.

Verified live against the deployed Gateway with a real admin-issued API key (not just unit
tests): a real dataset upload end to end, both the app-level and Gateway-level error shapes, and
a real batch run through to a genuine (correctly-detected and correctly-reported) failure,
confirming the full create/poll/error-surfacing path against real production infrastructure.

Deliberately narrow scope, matching this repo's own Readme: upload a dataset, run a batch,
download the results. API-key management and browsing typed result tables (detections/segments/
tree-inventory) aren't covered yet -- see the main platform's own ROADMAP.md for what's next.

Install for now: pip install git+https://github.com/SmartForest-no/forestsens-api.git@v2.0.0
(not yet published to PyPI -- a separate, later decision).