Skip to content

Latest commit

 

History

History
433 lines (388 loc) · 67.1 KB

File metadata and controls

433 lines (388 loc) · 67.1 KB

Changelog

1.3.0 (2026-08-25)

Features

  • chemistry: add manifest-status command (008a67e)
  • chemistry: report which legacy table a result came from (67b522c)
  • chemistry: serve legacy water chemistry over REST (dcb0cb1)
  • chemistry: serve legacy water chemistry over REST (97d7f9f)
  • data-migrations: publish existing project_areas (70c688f)
  • geothermal: add /thing/geothermal-well endpoints (c60faf8)
  • geothermal: add /thing/geothermal-well endpoints (83e6604)
  • geothermal: free-text search on the well list endpoint (7e0a259)
  • geothermal: free-text search on the well list endpoint (e5748a5)
  • geothermal: normalize OGC view temperatures to Celsius (c6cfb7e)
  • geothermal: normalize OGC view temperatures to Celsius (013fd75)
  • gis: generate shareable QGIS and ArcGIS Pro artifacts (04fafce)
  • gis: serve the artifact catalogue as JSON for frontend clients (3aa6611)
  • ingestion: add automated ingestion pipeline foundations (055b51e)
  • ingestion: add raw-zone infrastructure and database connectivity (475841d)
  • ingestion: add the Diver-HUB client and correct the source mapping (e01fd8c)
  • ingestion: add the shared backfill primitives (279ff6e)
  • ingestion: add the shared backfill primitives (6d1ced3)
  • ingestion: add the transducer unique constraint and upsert loader (6f3232d)
  • ingestion: add the transducer unique constraint and upsert loader (31e0644)
  • ingestion: add the Van Essen domain rules and adapter (34c4b1f)
  • ingestion: add the Van Essen domain rules and adapter (91f4504)
  • ingestion: derive the watermark from Postgres (87b8e9c)
  • ingestion: derive the watermark from Postgres (a0af312)
  • ingestion: land San Acacia locations and readings in the raw zone (6c9ab70)
  • ingestion: reconcile San Acacia points against Ocotillo wells (fecbae8)
  • ingestion: reconcile San Acacia points against Ocotillo wells (c20e2e3)
  • ingestion: resolve the datum enum and the source unit (d10b2b4)
  • ingestion: scaffold the automated_ingestion Dagster code location (0a2109e)
  • ingestion: schedule the San Acacia ingest weekly (8c02977)
  • ingestion: schedule the San Acacia ingest weekly (e4b1880)
  • ingestion: wire the loader end to end (3e38614)
  • ingestion: wire the loader end to end (113fdd6)
  • lexicon: add new organizations to lexicon (b30bea8)
  • lexicon: add organization and sort organization category alphabetically (1057c86)
  • lexicon: add organization and sort organization category alphabetically (21090b5)
  • ogc: add authenticated internal OGC mount (BDMS-985 A11) (ce45b91)
  • ogc: add public data disclaimer page (72f26a5)
  • ogc: add the field-description source of truth (832b659)
  • ogc: carry field descriptions onto /queryables (1d41b56)
  • ogc: document EDR parameters and cover the lot with tests (ac0513d)
  • ogc: expose last_observation_date on the Group A layers (7aa1746)
  • ogc: filter ogc_* views to public records (dbc760b)
  • ogc: make /ogcapi-internal usable from ArcGIS Pro and QGIS (cfdf146)
  • ogc: make /ogcapi-internal usable from ArcGIS Pro and QGIS (4c0099e)
  • ogc: mirror EDR views in internal OGC mount (cc5f72c)
  • ogc: ogc A2 replace server metadata placeholders (BDMS-972) (fd4c446)
  • ogc: populate the schema view's Values column (9fc6966)
  • ogc: publish a well water-column layer (1a9361a)
  • ogc: publish a well water-column layer (8a0c3ce)
  • ogc: replace server metadata placeholders (93206ab)
  • ogc: serve field descriptions from /schema (f6af982)
  • scripts: seed the test DB with real NMA legacy chemistry (8e55d1d)
  • transducer: add data_maturity to observations (09926b2)
  • transducer: add data_maturity to observations (9dff7fb)
  • transducer: backfill data_maturity on acoustic (Wellntel) observations (60ffcf4)
  • transducer: backfill data_maturity on acoustic observations (7a3915f)
  • transducer: publish and range-delete for corrected hydrographs (cfd9243)
  • transducer: publish and range-delete for corrected hydrographs (63bf502)

Bug Fixes

  • api/asset: update access from admin to editor (c73d866)
  • build: package data_migrations with the app (32c6462)
  • chemistry-ingest: kas-fix-chemistry-ingest-manifest (166f3d8)
  • chemistry: reject rows with no SampleNumber (d48c60b)
  • chemistry: restore the return in manifest_overview (1a9f30c)
  • chemistry: restore the return in manifest_overview (6578752)
  • chemistry: scope manifest per database (09562ff)
  • ci: assert the heartbeat run succeeded (f95ad29)
  • correct water_wells collection name in README examples and Added time_field(BDMS-973) (#823) (395a63c)
  • db: repair EDR water views skipped by a stamped revision (0cc0d93)
  • db: repair EDR water views skipped by a stamped revision (e448741)
  • drop support for Python 3.7-3.9 (<a (b779661)
  • edr: expose thing_type and materialize the chemistry coverages (aac3d87)
  • edr: implement pygeoapi's instance contract (02f0fe5)
  • edr: source water-chemistry EDR from the legacy NMA tables (ad37f78)
  • edr: source water-chemistry EDR from the legacy NMA tables (8863430)
  • expand actively_monitored_wells to include wells from all groups(BDMS-974/1178) (#866) (550fc18)
  • gis: document the content type the artifact routes actually send (70b21b8)
  • ingestion: do not match on external ids by default (d102cb7)
  • ingestion: do not overwrite approved observations by default (b522052)
  • ingestion: do not overwrite approved observations by default (5a50381)
  • ingestion: grant bucket read, and name the pipeline after the bucket (b127f52)
  • ingestion: grant bucket read, and name the pipeline after the bucket (c390073)
  • ingestion: import ThingIdLink from where it actually lives (50963f4)
  • ingestion: install the repository into the Dagster+ image (619cdf3)
  • ingestion: install the repository into the Dagster+ image (7795959)
  • ingestion: make db and domain importable in the deployed image (a425954)
  • ingestion: make the IAM database path internally consistent (f246d61)
  • ingestion: make the role grants runnable and drop the CREATE ROLE (0bd2213)
  • ingestion: make the role grants runnable and drop the CREATE ROLE (33b541c)
  • ingestion: raise the ingestion floor to 2024 (ac7b5e8)
  • ingestion: reject a bare Cloud SQL instance name (a178f90)
  • ingestion: repair two CI failures the first PR run exposed (fd6e869)
  • ingestion: report the import environment from the heartbeat asset (5ccb0d6)
  • ingestion: set code location env vars at a scope that reaches the container (773de45)
  • ingestion: set code location env vars at a scope that reaches the container (affa35c)
  • ingestion: set PYTHONPATH and report the import environment (1df7d8c)
  • ingestion: stop duplicate instants reaching one INSERT (ef38ef2)
  • ingestion: stop duplicate instants reaching one INSERT (1405ce9)
  • ingestion: supply GCP credentials in a runtime that has none (8c1c32d)
  • ingestion: supply GCP credentials in a runtime that has none (2799f91)
  • ingestion: write the raw zone as parquet (9aa0eac)
  • ingestion: write the raw zone as parquet (78bc921)
  • ogc: drop duplicate collections step definition (3882a5d)
  • ogc: gate ogc_waterlevels on the well's release status (c47f481)
  • ogc: isolate public and internal pygeoapi module globals (5bb2aae)
  • ogc: isolate public and internal pygeoapi module globals (860a3f4)
  • ogc: re-point migration to new staging head (8ae9fe1)
  • ogc: stop EDR field dicts leaking between requests (598f1ac)
  • seed: load reference data even when migrations seeded a term (cdb4246)
  • seed: load reference data even when migrations seeded a term (fb64f68)
  • tests: remove hardcoded group id assumption (2c17ce6)
  • thing: a well with no location no longer 500s the listing (bff7faa)
  • transducer: backfill data_maturity from the legacy QC flag (95b9b78)
  • transducer: serialize series writes and scope the publish parameter (4701979)
  • transducer: spell the block time-order constraint correctly (ba73c6b)

1.2.1 (2026-07-29)

Bug Fixes

  • api/asset: update access from admin to editor (3bed220)

1.2.0 (2026-07-22)

Features

  • api/search: add groups/projects to search (271f850)
  • cli: add chemistry LIMS ingestion with Google Drive sync (e13c5c3)
  • cli: chemistry LIMS ingestion with Google Drive sync (BDMS-1034) (195be59)
  • edr: implement OGC API - EDR water collections and BDD spec (7b32233)
  • monitoring: add OpenStatus monitoring-as-code config (afd7775)
  • monitoring: add OpenStatus monitoring-as-code config (c4f7dc7)

Bug Fixes

  • api: probe database in /health so 200 proves PostGIS reachable (fe0b626)
  • api: probe the database in /health so a 200 proves PostGIS is reachable (8cc9c88)
  • chemistry: fail loudly when Drive sync is misconfigured (beeb4ad)
  • chemistry: treat trailing letters in SamplePointID as a sample point (7fc86d0)
  • db: dedupe NMW locations in measurement views, re-register pg_cron job (12bfe8b)
  • db: dedupe NMW locations in measurement views, re-register pg_cron job (d96f394)
  • db: reparent a5b6c7d8e9f0 onto the EDR views revision (eb89d04)
  • deploy: propagate F4_1G instance class to staging + document OOM churn (a830e71)
  • deploy: propagate F4_1G instance class to staging + OOM writeup (8e79756)
  • monitoring: use single region for OpenStatus free tier (7802f01)

1.1.5 (2026-07-07)

Bug Fixes

  • deploy: raise instance class to F4_1G to stop OOM instance churn (ec012d6)

1.1.4 (2026-07-07)

Bug Fixes

  • ci: deploy on inline workflow_call to CD (Production) (8371f64)
  • ci: deploy on inline workflow_call to CD (Production) (1a11ee9)

1.1.3 (2026-07-06)

Bug Fixes

  • correct shapefile DBF schema and clean up temp dir on failure (f63d9ce)
  • drop yield_per in get_thing_features (incompatible with unique) (fa727c4)
  • stop per-request OOM on /geospatial export endpoint (d3a1358)
  • stop per-request OOM on /geospatial export endpoint (2ed12b6)
  • stream get_thing_features with yield_per instead of buffering (877fff8)

1.1.2 (2026-07-06)

Bug Fixes

  • deploy: align hotfix migration head with production DB (unblock v1.1.x deploy) (1ee8a4b)
  • deploy: align hotfix migration head with production DB + fix release tag passthrough (790377f)

1.1.1 (2026-07-06)

Bug Fixes

  • deploy: prevent App Engine request starvation under burst load (fec7dbd)
  • deploy: prevent App Engine request starvation under burst load (385c974)

1.1.0 (2026-06-08)

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) (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 theme support and improve validation output formatting in CLI commands (0a76f6b)
  • 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_status field to thing schema (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_status in 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_GlobalID for 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 exc binding (c77f598)
  • schemas/well_inventory: Add case for None (90b5b8a)
  • schemas: fix well inventory schema mismatch for SampleMethod and DataQuality (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)