Overview
The CWMS Data API (CDA) is a Representational State Transfer (REST) API that enables secure data exchange between computer systems over the internet. With the decommissioning of the National CWMS Database at the Central Processing Center (CPC) and the aging district T7 servers reaching end-of-life, a modern, accessible solution was needed to manage Water Management data. The new solution is a cloud-based database system, offering improved scalability, flexibility, and security. CDA serves as the critical interface for transferring Water Management data to and from this cloud environment. It allows users to send and receive information through various methods over a secure internet connection. The API supports authentication, granting write access only to authorized users while allowing the public to view publicly available data. This approach ensures compliance with DoD Instruction 8520.03 and Army Pamphlet 25-2-13, while continuing to support essential Water Management operations.
Additional information about can be found here.
Accomplishments
Test Work Completed on FY24 Contract
The team tested and verified, and if needed, corrected, work submitted under the FY24 contract to build out CDA functionality.
Webinars and Working Sessions
Charles Graham held bi-weekly "CDA EndPoint documentation" meetings to test things with users and report bugs.
Documentation Updates
Read-The-Docs documentation setup was completed, https://cwms-data-api.readthedocs.io/latest/.
Add Data and Features as Identified
- Added support to retrieve data-entry-date for time series data
- Initial design of "Composite Time Series"
- Added rate-limiting to various endpoints (especially ratings)
Issue Maintenance Contract
A maintenance contract was awarded for bug fixes and minor improvements to existing capabilities.
Multiple performance issues corrected throughout the year.
API Improvements - Coordination with CRREL
No additional coordination was required. CRREL was notified about changes, such as the composite time series.
API Improvements - Develop Python 3 Libraries
Numerous improvements and additions were made to the cwms-python library, including the ability to grab and store multiple timeseries using a single functions, adding pagination for larger call, and implementing multi treading to allow for parallel processing and faster data downloads and stores. Addition endpoint were added as new features were added to CDA.
JavaScript API
JavaScript API complete and now in general maintenance phase. Update are done when CDA is updated.