Download PDF
Download page CWMS Data API.
CWMS Data API
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 approved IT protocols (e.g., HTTPS) 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 CDA can be found here.
Planned Activities
The focus of the team's efforts will be improving the user experience. The CDA team will assist users with migration of operations to CDA as the primary data source and will respond to usability issues as they arise.
| Activity | Funded Amount | Delivery Date |
|---|---|---|
| Test Work Completed on FY25 Contracts | $70,000 (labor) | |
| Host Webinars and Working Sessions | $60,000 (labor) | |
| Update Documentation | $25,000 (labor) | |
| Add Data and Features as Identified | $30,000 (labor) $306,000 (contract) | |
| Award Maintenance Contract | $10,000 (labor) $275,000 (contract) |
|
| Monitor and Improve Performance | $22,000 (labor) | |
| Coordinate with CRREL | $5,000 (labor) | |
| Maintain and Improve Client Library | $50,000 (labor) |
Test Work Completed on FY25 Contracts
The team will periodically test the work completed by contractors as the work is submitted. Work is tested during development through automated tests. To verify these results, the team will perform additional manual and exploratory testing before releases. It is important to provide feedback to the developer as soon as possible during this process. It is also required as part of the contracting process to validate the terms of the contract were met. Additionally, the team will respond to user feedback when additional requests for CDA improvements are submitted.
Host Webinars and Working Sessions
Technology transfer, in the form of working sessions and webinars, will be funded. This is important, as the enhancements and changes made to CDA need to be communicated to the field so that users can take advantage of the new features. As districts are being required to use CDA for database access, training will help the field adopt the new system sooner.
Update Documentation
Technology transfer, in the form of documentation updates, will be funded. This is important, as the enhancements and changes made to CDA need to be communicated to the field so that users can take advantage of the new features. The team will create interactive documentation that allows users to interact with CDA and see results as they are working through documentation and tutorials. This will reinforce learning and should accelerate adoption.
Add Data and Features as Identified
The team will be adding data to CDA throughout the year. All access to the national CWMS database needs to be through CDA; however, the team cannot reasonably foresee all possible needs. As districts begin using the API and identify any shortcomings, the CDA development team will respond to those requirements.
Award Maintenance Contract
CDA is a complex component that interacts with the database and users in multiple ways. While it would be good to keep all work in-house, constraints external to CDA often limit government developers. Having a maintenance contract allows the team to maintain continuity of improvements as well as keep vendor skills relevant when larger projects are needed.
Monitor and Improve Performance
Since all CWMS data (except gridded data accessible through Cumulus) will be in a single database, performance is a critical consideration. CDA is currently using standard tools to develop metrics, and the team will be setting up monitoring services and dashboards for CDA and other applications to monitor for hot spots and develop a better sense of where to focus future efforts.
Coordinate with CRREL
API improvements will be a large focus as well since API design is difficult and ever evolving. CRREL has provided useful suggestions, and the team will decide how to implement them over time without breaking existing usage.
Maintain and Improve Client Library
As new features are added and various corrections to behavior are made it will be necessary to maintain prompt updates of the java script (cwms-js) and python (cwms-python) client libraries for downstream usage of the API. Improvements will be made to testing and performance.