diff --git a/.release-please-manifest.json b/.release-please-manifest.json index c3f14639..41ea87d7 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "1.2.0" + ".": "1.2.1" } diff --git a/.release-please-manifest.staging.json b/.release-please-manifest.staging.json index c3f14639..41ea87d7 100644 --- a/.release-please-manifest.staging.json +++ b/.release-please-manifest.staging.json @@ -1,3 +1,3 @@ { - ".": "1.2.0" + ".": "1.2.1" } diff --git a/CHANGELOG.md b/CHANGELOG.md index bde249a4..0d377e43 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/api/asset.py b/api/asset.py index f3261f39..ded2cd68 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), diff --git a/pyproject.toml b/pyproject.toml index 61cc5f45..49954c90 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" diff --git a/uv.lock b/uv.lock index b3a366f5..0e08832c 100644 --- a/uv.lock +++ b/uv.lock @@ -2105,7 +2105,7 @@ wheels = [ [[package]] name = "ocotilloapi" -version = "1.2.0" +version = "1.2.1" source = { editable = "." } dependencies = [ { name = "aiofiles" },