2025-12-01

2025-12-01

Documentation Update

Tested with: 2025.12.01-develop

  • Speed of these meetings, could be faster. Open to feedback if maybe weekly?
  • Read the docs page is live with TS changes: https://cwms-data-api.readthedocs.io/latest/
  • Covered 500 errors for local CDA instances (T7) - Usually account locked or invalid password ON COOP box
  • [GET] /timeseries/group

  • office parameter is for the individual timeseries office-id aka "assigned", the docs mention this. But we missed it at a glance
  • Documentation - An example highlighting the difference on when to filter office-id vs category-office-id
  • Docs => Talk about when to use include-assigned to know it might be good for initial TTL
  • [GET] /timeseries/group/{group-id}

  • need to return assigned timeseries to the group, right now they are emptY
  • the swagger doc spec is camelCase should be kebab case (hyphen)
  • [POST] /timeseries/group

  • If you create a group and the TSID does not exist, returns an error but still makes the group. Should it fail to create group? If so, document
  • Gold star, can't make TS groups with assigned TS that don't have a TS for the incorrect office
  • ISSUE: Delete - no option to cascade delete TSIDS from category, Option exists in category group endpoint to delete group. But not TSIDS, gets same error. If TS group has assigned category TSIDs, error returns as 500 but logs show: Error Msg = ORA-20998: ERROR: Cannot delete time series group monthly/web-reports because it is not empty.
  • Attempted to POST and PATCH empty TS array, and did not overwrite TS category TSIDS
  • Issue: Creates assigned timeseries where the group/category id are one office, but the assigned TS is another office. Errors saying loc-id does not exist, however, appears to still create the group. I did go and delete the group entirely and start fresh.

Payload
{ "office-id": "SWT", "id": "web-reports", "time-series-category": { "office-id": "SWT", "id": "monthly", "description": "Reports for project timeseries for public data" }, "description": "Reports on public and internal web", "assigned-time-series": [ { "office-id": "LRL", "timeseries-id": "ACTI3.Flow.Inst.6Hours.0.OHRFC-0hrQPF", "attribute": 0 } ]}

  • NOTES:
  • Docs for how to auth to swagger? Do those exist?

curl -X 'GET' \ 'https://water.dev.cwbi.us/cwms-data/timeseries/group/SHEF%20Data%20Acquisition?office=CWMS&category-office-id=CWMS&group-office-id=CWMS&category-id=Data%20Acquisition' \ -H 'accept: application/json'
curl -X 'GET' \ 'https://water.dev.cwbi.us/cwms-data/timeseries/group?office=SWT' \ -H 'accept: application/json'