From 3bed220a84b129bc65fbb4b97441c35e518f7414 Mon Sep 17 00:00:00 2001 From: Tyler Adam Martinez Date: Wed, 29 Jul 2026 09:24:29 -0500 Subject: [PATCH 1/4] fix(api/asset): update access from admin to editor --- api/asset.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/api/asset.py b/api/asset.py index f3261f39c..ded2cd68d 100644 --- a/api/asset.py +++ b/api/asset.py @@ -33,7 +33,6 @@ from core.dependencies import ( session_dependency, viewer_dependency, - admin_dependency, editor_dependency, ) from db import Thing @@ -141,7 +140,7 @@ def database_error_handler(payload: CreateAsset, error: ProgrammingError) -> Non status_code=HTTP_201_CREATED, ) async def upload_asset( - user: admin_dependency, + user: editor_dependency, bucket=Depends(get_storage_bucket), file: UploadFile = File(...), ) -> dict: @@ -171,7 +170,7 @@ async def upload_asset( @router.post("/upload-and-record", status_code=HTTP_201_CREATED) async def upload_and_record_asset( - user: admin_dependency, + user: editor_dependency, session: session_dependency, bucket=Depends(get_storage_bucket), file: UploadFile = File(...), @@ -188,7 +187,7 @@ async def upload_and_record_asset( returned instead of creating a duplicate. Args: - user: Authenticated admin user performing the upload. + user: Authenticated editor user performing the upload. session: Active database session. bucket: GCS storage bucket resolved via dependency injection. file: The file to upload. Accepted MIME types: JPEG, PNG, GIF, WebP, @@ -384,10 +383,10 @@ async def upload_and_record_asset( @router.post("", status_code=HTTP_201_CREATED) async def add_asset( - user: admin_dependency, + user: editor_dependency, session: session_dependency, asset_data: CreateAsset, -) -> AssetResponse: +) -> AssetResponse | None: try: data = asset_data.model_dump() @@ -446,7 +445,7 @@ async def add_asset( async def list_assets( user: viewer_dependency, session: session_dependency, - thing_id: int = None, + thing_id: int | None = None, ) -> CustomPage[AssetResponse]: """ List all assets or assets associated with a specific thing. @@ -579,7 +578,7 @@ async def update_asset( @router.delete("/{asset_id}", status_code=HTTP_204_NO_CONTENT) async def delete_asset( - asset_id: int, session: session_dependency, user: admin_dependency + asset_id: int, session: session_dependency, user: editor_dependency ): return model_deleter(session, Asset, asset_id, user=user) @@ -589,7 +588,7 @@ async def delete_asset( status_code=HTTP_204_NO_CONTENT, ) async def remove_asset( - user: admin_dependency, + user: editor_dependency, asset_id: int, session: session_dependency, bucket=Depends(get_storage_bucket), From 7454c0ef634054e911e84657b3dec3b896d1e8c9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 29 Jul 2026 22:18:23 +0000 Subject: [PATCH 2/4] chore(hotfix/v1.2.1): release 1.2.1 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 7 +++++++ pyproject.toml | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index c3f146397..41ea87d76 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "1.2.0" + ".": "1.2.1" } diff --git a/CHANGELOG.md b/CHANGELOG.md index bde249a48..0d377e432 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [1.2.1](https://github.com/DataIntegrationGroup/OcotilloAPI/compare/v1.2.0...v1.2.1) (2026-07-29) + + +### Bug Fixes + +* **api/asset:** update access from admin to editor ([3bed220](https://github.com/DataIntegrationGroup/OcotilloAPI/commit/3bed220a84b129bc65fbb4b97441c35e518f7414)) + ## [1.2.0](https://github.com/DataIntegrationGroup/OcotilloAPI/compare/v1.1.5...v1.2.0) (2026-07-22) diff --git a/pyproject.toml b/pyproject.toml index 0bc0d2227..951124311 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "OcotilloAPI" -version = "1.2.0" +version = "1.2.1" description = "FastAPI backend and CLI for managing Ocotillo groundwater locations, wells, assets, and bulk water-level data transfers." readme = "README.md" requires-python = ">=3.13" From fa47bbf4a06a914a663dcd4f4a912a173bac13e5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 30 Jul 2026 21:07:20 +0000 Subject: [PATCH 3/4] chore: sync uv.lock to released version 1.2.1 --- uv.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/uv.lock b/uv.lock index 09ab41b99..c334c3bb3 100644 --- a/uv.lock +++ b/uv.lock @@ -1552,7 +1552,7 @@ wheels = [ [[package]] name = "ocotilloapi" -version = "1.1.5" +version = "1.2.1" source = { editable = "." } dependencies = [ { name = "aiofiles" }, From a51415d2c7aad1e8c0429d8d7c1563d120b18cea Mon Sep 17 00:00:00 2001 From: jakeross Date: Mon, 24 Aug 2026 15:58:10 -0700 Subject: [PATCH 4/4] chore: sync staging release-please manifest to v1.2.1 --- .release-please-manifest.staging.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.release-please-manifest.staging.json b/.release-please-manifest.staging.json index c3f146397..41ea87d76 100644 --- a/.release-please-manifest.staging.json +++ b/.release-please-manifest.staging.json @@ -1,3 +1,3 @@ { - ".": "1.2.0" + ".": "1.2.1" }