v1.2.0-rc
Pre-release
Pre-release
1.2.0-rc (2026-06-10)
Features
- add app.template.yaml for dynamic app configuration and update CI/CD scripts to render app.yaml (9274d83)
- add auto-generation prefix extraction for well IDs with new regex support (dcd49b4)
- add auto-generation prefix extraction for well IDs with new regex support (3c11d05)
- add command to import project area boundaries and create associated OGC view (919222e)
- add Dockerfile to set up PostGIS with pg_cron for scheduled tasks (dc424cf)
- add field event limit to well details API and enhance response validation (ac76eba)
- add handling for null slope in water trend materialized view (945d140)
- add location properties to water well response and enhance test coverage (8d0be60)
- add materialized views for latest TDS, depth to water trend, and water well summary (924652c)
- add minor chemistry wells materialized view and update related configurations (181218a)
- add normalized chemistry results materialized view and update related configurations (54a6686)
- add normalized chemistry results materialized view and update related configurations (814092b)
- add POST /asset/upload-and-record endpoint for digital asset upload (BDMS-828) (#683) (f9e538c)
- add refresh command for pygeoapi materialized views and schedule nightly job (2ad195f)
- add refresh step for materialized views in production and staging workflows (e64d6c8)
- add restore-local-db command for restoring local databases from SQL dumps (3d17413)
- add restore-local-db command for restoring local databases from SQL dumps (f5530ff)
- add test for normalized major chemistry to ensure latest results are used (e15d366)
- add transfer-results command for generating transfer results summary (b4764b2)
- add validation for missing well_name_point_id column in CSV processing (3b7c561)
- add water elevation materialized view and update configuration (925be66)
- add water elevation materialized view and update configuration (cc40afb)
- add well smoke test command and enhance contact handling with missing value checks (7824779)
- add WellTransferResultsBuilder for summarizing well transfer outcomes (1195f1a)
- api/thing: Add optional flag to see contacts (5cfe398)
- change views to materialized views for depth and TDS data in pygeoapi (9c74fac)
- cli: add progress updates for well inventory imports (467c87e)
- cli: add scoped transfer command for targeted imports (b2b60e5)
- core: add "Windmill" term to lexicon with category
well_pump_type(1df8425) - core: add legacy site notes field to lexicon (ef96f7b)
- core: expand lexicon with new terms for water-related categories (4d74d1b)
- create supporting views for pygeoapi OGC API integration (a2e8f57)
- db, schemas: add support for legacy site notes (b533da4)
- disable default IAM authentication for Cloud SQL connections and allow password handling (2581f61)
- enable database drop and rebuild for unit tests (a2baff6)
- enable IAM authentication by default for Cloud SQL connections (2261484)
- enforce IAM authentication for Cloud SQL connections by removing password handling (c2f4b86)
- enhance CSV processing to handle duplicate contact names and organizations (21ad925)
- enhance data transfer handling by logging skipped records and updating row processing (d2f4f1f)
- enhance database configuration handling for Cloud SQL with IAM authentication (4ea1c80)
- enhance GCS upload handling with async support and improved error logging (0e9b5af)
- enhance GCS upload handling with async support and improved error logging (355706d)
- enhance GCS upload handling with async support and improved error logging (250f2c7)
- enhance logging with debug timing for various operations and ad… (16b7197)
- enhance logging with debug timing for various operations and add well export endpoint (65e51c6)
- enhance project area import with created and skipped counts (989e678)
- enhance project area import with created and skipped counts (dbceb75)
- enhance pygeoapi configuration with new thing collections and supporting views for groundwater monitoring (04d05b5)
- enhance refresh job scheduling with improved privilege handling and error management (43852fe)
- enhance refresh job scheduling with improved privilege handling… (2f97d25)
- enhance SQL queries and add null handling for water data responses (2384f11)
- enhance test for refreshing materialized views with execution options tracking (2d40419)
- enhance test workflow by adding database readiness checks and pg_cron extension (c8d6957)
- enhance validation error handling for contact fields and improve error extraction (bc89558)
- enhance water elevation calculations to support both meters and feet (75f727d)
- enhance water well details with site name, historic depth notes, and field event participants (c3c7648)
- enhance water well details with site name, historic depth notes, and field event participants (c142980)
- enhance well details API response with field events and related data structures (60fe719)
- ensure feature IDs are consistently treated as strings in tests (627a27b)
- first release under versioning standard (#681) (809977d)
- fix water elevation units to feet in materialized view and update related tests (d8b3f71)
- fix water elevation units to feet in materialized view and update related tests (e3e4fde)
- handle internal error in pg_cron job unscheduling for better robustness (cf51d48)
- implement API concurrency fix strategy by converting async rout… (b240b21)
- implement API concurrency fix strategy by converting async route handlers to sync and enhancing error handling (7c053eb)
- implement dynamic loading of pygeoapi app and improve description formatting (4750f9d)
- implement dynamic loading of pygeoapi app and improve description formatting (a242b36)
- implement TransferResultsBuilder and comparison specs for transfer input validation (e8d8bf3)
- improve note retrieval by sorting notes and enhance loading strategy for field event participants (58113bf)
- integrate pygeoapi for OGC API - Features endpoints and update related configurations (a440b55)
- lexicon: add new organization terms (2be9fbd)
- lexicon: add new organization terms for Santa Ana Pueblo, Village of Hope, and WSP (c6164bb)
- lexicon: add new organization terms in support of the 2026-05-26 well inventory ingestion (69fb435)
- make various fields nullable and enhance data transfer handling (fd7e243)
- migrations: make NMA_SurfaceWaterData.thing_id nullable (2d4d8ff)
- migrations: new migration script to drop minor trace chemistry sample/analyte unique constraint (a5943d8)
- normalize database password environment variable and enhance config security (73f26bf)
- optimize logging for request and asset upload processes, and enhance debug timing functionality (2ffbd27)
- optimize water level data transfer by implementing chunked deployment prefetching and COPY insert method (040e787)
- optimize water level data transfer by implementing chunked deployment prefetching and COPY insert method (982a63c)
- refactor app initialization to import from main module (4923c1e)
- refactor location CTE for materialized views and enhance path validation (0ff7bcc)
- refactor location CTE for materialized views and enhance path validation (b4a2841)
- refactor test connection context management in CLI commands (2bb0032)
- remove pg_cron dependency and related scheduling logic for improved flexibility (a18c1d8)
- remove pg_cron dependency and related scheduling logic for improved flexibility (98cb0ad)
- remove pg_cron extension from test database setup for improved flexibility (c21c254)
- remove unused PYGEOAPI environment variables and add PYGEOAPI_SERVER_URL for Cloud SQL IAM authentication (19f016b)
- rename normalized chemistry results to major chemistry results and update related configurations (7cebfcc)
- rename wells collection to water_wells for consistency (c8b31ce)
- schemas: add
monitoring_statusfield tothingschema (a7e0632) - schemas: add alias validation for well inventory fields (1e0b253)
- schemas: enhance well inventory schema with flexible validation and new fields (6c38157)
- services: improve well inventory handling and align well inventory source fields in support of schema alignment and database mapping (6c5d46e)
- simplify location DataFrame caching by removing threading lock (c9cf672)
- simplify password retrieval logic for pygeoapi configuration (9d24983)
- streamline password validation for pygeoapi configuration (72c6b00)
- test: ensure more robust water level tests (44c598a)
- test: print exit_code when assert fails (3ad295a)
- tests: add validation error handling for various invalid CSV field values (bc051f3)
- tests: add validation error handling for various invalid CSV field values (32b4c54)
- tests: adjust validation scenarios to allow partial imports with 1 well (4a4e249)
- tests: relax validation rules and expand enum coverage in well-inventory-csv feature (4382fd5)
- tests: relax validation rules and expand enum coverage in well-inventory-csv feature (9cbaaa2)
- tests: relax validation rules and expand enum coverage in well-inventory-csv feature (56f6cbf)
- tests: update validation error message for well_pump_type field (2c3cde4)
- thing_helper: add handling for
monitoring_statusin status history updates (42bae2d) - thing_helper: Query now go through search (03cebb9)
- transfers: add permissions transfer functionality and update configuration (de1ace4)
- transfers: add permissions transfer functionality and update configuration (563d5d1)
- transfers: add permissions transfer functionality and update configuration (7a51c38)
- transfers: add support for legacy SiteNotes handling (a58fc75)
- update API endpoint paths from /oapi to /ogcapi and set default session secret key for test environments (c799ed5)
- update app.template.yaml to use block scalar for sensitive environment variables (0c904f6)
- update database service configuration in tests to use development setup (ae1ce5e)
- update dotenv loading behavior to prevent overriding existing environment variables (f001b58)
- update endpoint paths from /oapi to /ogcapi and improve pg_cron availability checks (36b5bb5)
- update environment configuration for Docker and enhance README with local development setup (8e9f4e6)
- update environment variable references for PostgreSQL settings in configuration files (b356c7a)
- update latest TDS materialized view to use observation datetime and add tests for timestamp accuracy (cbd7449)
- update nullable fields in relaxed_constraints.md for MeasuringPointHistory and remove depth validation (e089b32)
- update OGC API endpoint path and add unique indexes for materialized views (7c9bd47)
- update package versions in requirements.txt for compatibility and stability (cc3f904)
- update package versions in requirements.txt for compatibility and stability (8f6212c)
- update pygeoapi configuration to use environment variables for PostgreSQL settings (77968de)
- update pygeoapi supporting views and enhance thing collections for groundwater monitoring (d4da8ff)
- update SQL queries in ngwmn_helper.py for consistent quoting and improved readability (6b493c4)
- update SQL queries in ngwmn_helper.py for consistent quoting and improved readability (36e4fad)
- update test configuration to use specific PostGIS version and improve database readiness checks (4312676)
- update test configuration to use specific PostGIS version and improve database readiness checks (3b5af5a)
- update well response validation and enhance type safety for contact fields (14e9066)
- water-level-csv: warn when uploaded mp height differs from well history (a2584c9)
- water-level-import: add best-effort row savepoints (2f2f923)
- water-level-import: add idempotent groundwater persistence (6a09881)
- water-level-import: align partial-success API and CLI behavior (4c3eea0)
- water-level-import: enhance validation and resolve mp_height (eccf31f)
- water-level-importer: add support for field event participants and sampler validation (9ab9846)
- water-level-import: normalize standalone CSV schema (53fee18)
- well inventory: add groundwater level field activity for well inventory import (1dfc24d)
- well inventory: require measuring_point_height_ft or mp_height_ft for non-null observations (fe7fba2)
- well-inventory: emit per-row progress during imports (0ec4da9)
Bug Fixes
- add imports for shapely and sqlalchemy to support database operations (8896bb6)
- add new well status term and normalize completion date handling (04c943e)
- add unmatched locations to the import process and update test assertions (2dd6628)
- cli: handle UTF-8 BOM in CSV decoding for well inventory import (a7bad53)
- cli: include staged sql path in local db restore result (b80bd32)
- contact: Make contact role and type non-nullable (e768d8a)
- contacts: allow nullable role and contact_type in well inventory import (86aa582)
- correct logic for recording interval check in sensor_transfer.py (066ab6a)
- correct logic for recording interval check in sensor_transfer.py (ee8d8db)
- db: remove unique constraint on MinorTraceChemistry table (1d9fbc5)
- db: skip null measuring point history in property calculations (5be435f)
- db: update import logic to use
nma_GlobalIDfor MinorTraceChemistry records (8c26bc1) - enforce required thing_id for NMA_SurfaceWaterData and add validation (ba7881b)
- enhance autogen value handling with regex validation (5338013)
- enhance completion date normalization to handle various input types and improve error reporting (1260784)
- enhance contact name generation logic to use OwnerKey as fallback and add deduplication handling (727bea1)
- enhance error handling and validation reporting in CSV upload process (f8ceb2c)
- enhance name generation logic to use OwnerKey as fallback (596f37f)
- enhance name generation logic to use OwnerKey as fallback and update transfer method to parallel execution (b5f84ad)
- importers: prevent duplicate well-name collisions during CSV imports (7f83e4c)
- improve error handling and logging for recording interval estimation (dcd49b4)
- improve error handling and logging for recording interval estimation (3c11d05)
- improve error handling and logging for recording interval estimation feat: add auto-generation prefix extraction for well IDs with new regex support (db0dc8f)
- initialize test schema and update alembic configuration handling (52a94ec)
- log BackfillResult outcomes and preserve tracebacks in orchestrator (a4edbf7), closes #558
- make pg_cron optional for local development (e4cd4e3), closes #576
- move pre-commit/pytest dev tools out of prod deps (unblock deploy) (#705) (3892047)
- pin joserfc in requirements.txt to unblock deploy (#704) (018cc44)
- remove unsupported pattern handling in well_inventory_csv.py (08c4beb)
- remove unsupported pattern handling in well_inventory_csv.py (d95904b)
- remove unused
as excbinding (c77f598) - schemas/well_inventory: Add case for None (90b5b8a)
- schemas: fix well inventory schema mismatch for
SampleMethodandDataQuality(9742c03) - schemas: Swap before mode for after in well_inventory & water_level_csv (39e01de)
- services/util: Add needed import (772e326)
- services/util: Mv normalize_datetime_to_utc() to services/util & used it in well_inventory (df0180d)
- test: clarify docstrings (6df12f6)
- test: clarify docstrings (4a0f0da)
- test: compare dt aware objects for optional water level tests (fe9fc0d)
- test: encore ocotilloapi_test for bdd tests (1e0fd84)
- test: ensure different step test names (0fada74)
- test: ensure sample references correct field activity (e899412)
- test: fix failing well inventory tests (3e9dcf3)
- test: fix typo in doc string (cf7ca5a)
- test: make docstring more accurate (b6e5d80)
- test: make test name more accurate (1763df2)
- test: remove print debugging statement (a0ea88d)
- test: use enums when testing helper functions (0c9e8fa)
- test: utilize autouse fixture to clean up tests (815cfc6)
- transfers: handle duplicate legacy SiteNotes with date context (e6a8f21)
- transfers: handle missing MPHeight values during migration (9f20199)
- update pygeoapi configuration to use environment variable for PostgreSQL password (d635162)
- update references from NMSampleLocations to OcotilloAPI in admin views and documentation (7a90734)
- update type hint for well_id parameter in _extract_autogen_prefix function (729faba)
- validate thing_id before GCS upload to prevent orphaned blobs (#698) (fb847f8)
- water-level-importer: reuse contacts by unique name and organization (56c96a8)
- water-level-import: handle savepoint initialization failure gracefully (e0d7e45)
- water-level-import: harden real-file import cleanup (fa257cd)
- water-level-import: refine handling of alias and canonical headers in CSV processing (623206e)
- water-level-import: skip persistence when no valid rows exist (9741d41)
- well inventory: allow null mp heights (a01e091)
- well inventory: check for Nones to avoid truthiness traps (aac5c95)
- well inventory: extract role/contact_type from enum (0a30676)
- well inventory: retrieve groundwater level reason enum value, else None (b2bc17d)
- well inventory: test if mp height not None to avoid truthiness trap (4c0db46)
- well inventory: use correct activity type for water level records (d6e1dc4)
- well inventory: use one mp height for thing and gwl (6d03bf4)
- well_inventory: date_time was always returning None (3cbb0e5)
- well-inventory: avoid creating empty project groups on failed imports (1460d4f)
- well-inventory: improve error handling for database exceptions (4f2b3cd)
- well-inventory: normalize "Complete" monitoring frequency to "Not currently monitored" (f482b5a)
- well-inventory: normalize blank contact values and add missing organization terms (b2df9ab)
- well-inventory: preserve attempted water-level records when depth-to-water is blank (6d2d810)
- well-inventory: stop defaulting missing observation data quality to Unknown (5fabcd1)
- well-inventory: treat whitespace-only lexicon values as blank (3e93bb6)
- well-inventory: validate invalid well_hole_status before persistence (2932721)
- well-transfer: defer WellTransferer external I/O until needed (8490550)
- well-transfer: exclude monitoring_status from Thing creation (83bc1d9)
- well-transfer: improve aquifer persistence with nested savepoints and better error handling (81a016c)
- well-transfer: preload measuring point estimator before parallel workers (91aaaf4)
- well-transfer: preload shared elevation cache before parallel workers (fbdc18b)