Skip to content

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

  • Admin get-by-id uses PSGC: GET /v1/{regions,provinces,municities,barangays}/{id} resolves by PSGC code, not the internal serial row id. Examples: /v1/regions/0700000000, /v1/barangays/0730600041. Guides updated under Regions, Provinces, Municities, Barangays.
  • OpenAPI source of truth: technical contract lives on the API (Scalar, OpenAPI /doc). This site keeps high-level guides only.
  • Added API Overview and Interactive API Reference.
  • Removed the outdated hand-maintained OpenAPI stub (src/content/api/openapi.yaml).
  • API keys: scopes and rate_limit_rpm are enforced at request time (null scopes = full access; null rpm = 60/min default). Guide updated in Managing API Keys; full vocabulary in API repo auth docs / Scalar.
  • Barangay search fields (GET /v1/barangays/search):
    • Response now includes region (name), barangay code, and parent PSGC codes lCode / pCode / rCode.
    • fullName includes region; free-text tokens also match region names (e.g. Lahug NIR).
    • Documented selection shape for Vue Barangay Search.
  • Municities list scope (GET /v1/municities):
    • geographic (default) — component cities/municipalities plus HUC/ICC cities hosted in that province (e.g. Cebu City under province=Cebu).
    • admin — only LGUs whose admin PSGC parent is the province (excludes region-peer HUCs).
    • Response fields: host_province_code, city_class (HUC | ICC).
    • See Cities & Municipalities.
  • Unified Place Endpoint Response Semantic (Phase 2):
    • Standardized response schemas across /v1/regions, /v1/provinces, /v1/municities, and /v1/barangays endpoints.
    • Added support for explicit format query/body parameter (json | geojson enum) with deprecated output compatibility mapping.
    • Integrated shared geometry selector supporting boundary resolution levels (simple, medium, detailed) across listing, getOne, and POST search endpoints.
    • GeoJSON responses now output unpaginated RFC 7946 FeatureCollections defaulting to simple geometry.
  • Batch Search & Query Filtering:
    • Added batch POST search endpoints (/v1/regions/search, /v1/provinces/search, /v1/municities/search, /v1/barangays/search) to retrieve multiple records by PSGC codes.
    • Enforced strict parent parameter scoping for unpaginated GeoJSON operations (e.g. province required for /v1/municities, province and municipality required for /v1/barangays) to protect database throughput.
  • Database & Architecture Performance:
    • Integrated Cloudflare Hyperdrive for PostgreSQL database connection pooling and accelerated query latency.
    • Added user roles and fine-grained access checks.
  • PATCH routes for partial updates to Datasets and Features
  • Feature extraction from uploaded GeoJSON files (vector data)
  • Automated spatial feature storage in database upon dataset creation
  • Enhanced GET /v1/features/dataset/{id} to automatically fallback to Cloudflare R2 storage if database features are missing
  • Improved dataset overview in Dashboard with inline editing of metadata and feature properties
  • Initial release of API.GIS.PH
  • Core framework setup with Hono and Cloudflare Workers
  • Database integration using Supabase (PostgreSQL) and Drizzle ORM
  • Authentication system supporting:
    • User API Keys with rate limiting and scoping
    • Supabase JWT for authenticated users
    • Master Token for admin access
  • Geographic endpoints:
    • /v1/regions, /v1/provinces, /v1/municities, /v1/barangays
  • Data management endpoints:
    • /v1/datasets for vector/raster datasets
    • /v1/features for GeoJSON feature operations
  • API Key management endpoints (/v1/api-keys)
  • OpenAPI 3.0 documentation with Scalar UI