Overview
The CWMS-Data-API (CDA) is a type of Representational State Transfer Application Programming Interface (REST API). It allows two computer systems to exchange information securely over the internet. The National CWMS Database will no longer be maintained at the Central Processing Center (CPC), and the district T7 servers located are beyond end-of-life, so a new accessible system was required to house all of the Water Management data. The database will now be a cloud-based system. This cloud-based system requires a different form of secure, scalable, and flexible means to transfer vital Water Management data, and CDA is this vehicle. The CWMS-Data-API allows for each user to send/receive information from the database in its new location in a variety of ways over an internet connection. It also supports the use of authentication so only authorized users can write to the database while allowing the public to view the public data, thus meeting DOD INSTRUCTION 8520.03 and ARMY PAMPHLET 25-2-13 requirements while continuing to support Water Management Operations.
Accomplishments
The CWMS-Data-API was expanded with the ability to write data to the database as well as read and write additional data. Work was also completed to integrate with various authentication mechanisms to allow the use of CDA on USACE T7s and within the CWBI environment, so that districts can begin migrating processes to the cloud sooner with less disruptions.
Key accomplishments include:
- Added additional documentation and usage examples.
- Implemented WRITE ability within CDA itself.
- Implemented WRITE ability in general HEC applications.
- Implemented authentication mechanism for CWMS T7 Usage, Machine-to-Machine communication, and Keycloak based authentication for CWBI.
- Optimized queries to mitigate slow response times.
Field Support and Technology Transfer
Kat Feingold, Charles Graham, and Will Breitkreutz hosted various workshops to guide district staff through usage of the API at varying levels of detail.
District staff were encourage to review the project and determine a path forward for integrating any local custom queries.