CWMS Data API
Introduction
Overview
FAQ
Glossary
General Terms
CDA Glossary Terms
Hydrologic Terms
Coming Soon
Using the API
Endpoints
Time Series Endpoints
TimeSeries Basic Information
Parameters, Types, Intervals, Durations, and Offsets
Tables of Types, Intervals, and Durations
Regular, Irregular, Pseudo Regular, and Local Regular
Common Parameter Definitions
Shared parameter definitions
Common Reasons for Parameter Usage
/timeseries
What it does
When to use
Examples
/timeseries/recent
What it does
When to use
Examples
/timeseries/profile
What it does
When to use
Examples
/timeseries/profile/{location-id}/{parameter-id}
What it does
When to use
Examples
/timeseries/profile-parser
What it does
When to use
Examples
/timeseries/profile-parser/{location-id}/{parameter-id}
What it does
When to use
Examples
/timeseries/profile-instance
What it does
When to use
Examples
/timeseries/profile-instance/{location-id}/{parameter-id}/{version}
What it does
When to use
Examples
/timeseries/versions
What it does
When to use
Examples
Authorization
Endpoints
Retrieve a Key
Notes
Endpoint Parameters
Time Series Parameters (working reference)
API References
User Onboarding
Required administrator roles
Assign an office and roles
Data and References
Data
Timeseries
Parameters, Types, Intervals, Durations, and Offsets
Tables of Types, Intervals, and Durations
BOP vs EOP
Offsets
Regular, Irregular, Pseudo Regular, and Local Regular
Location Levels
Client Libraries
Java
JavaScript
Jython
Python
Maintainers
Latest Version
Access Management
Access Management
Overview
Key Principles
Documentation
Architecture Overview
High-Level Architecture
Component Overview
Authorization Proxy
Open Policy Agent
Redis Cache
CWMS Data API
Keycloak
Oracle Database
Detailed Documentation
Authorization Flow
Component Diagram
Configuration Overview
Configuration System
Configuration Categories
Loading Configuration
Development Setup
Container Deployment
Applying Configuration Changes
Development Mode
Container Mode
Validation
Related Documentation
Environment Variables Reference
Data Filtering Overview
Architecture
Filtering Mechanism
Filter Types
Authorization Context Header
Filter Combination
Disabled Mode
Related Documentation
Office-Based Filtering
Embargo Rules
Data Classification Filtering
x-cwms-auth-context Header
Overview
Header Structure
Complete Example
Policy Object
Java API Consumption
Related Documentation
User Context Schema
Constraints Schema
Java API Integration
Overview
Key Principle
Helper Classes
AuthorizationContextHelper
AuthorizationFilterHelper
Enabling Authorization Mode
Configuration Options
Behavior by Mode
Integration Flow
Usage in Controllers
Contents
AuthorizationContextHelper
AuthorizationFilterHelper
Testing
Management Applications
Overview
Comparison
When to Use Each Tool
Management UI
Management CLI
Common Capabilities
Technology Stack
Port Assignments
Detailed Documentation
Management UI
Management CLI
Performance Testing
Why Performance Testing Matters
Metrics Collected
Testing Approach
Quick Start
Running Benchmarks
Benchmark Results
Metrics Reference
Policy System Overview
Policy Architecture
Policy Evaluation
Input Structure
Evaluation Order
Privileged Roles
Policy Decision Response
Helper Module Integration
Policy File Organization
Related Documentation
Persona Policies
Helper Functions
Proxy API Overview
Base URL
Endpoint Categories
Authorization Endpoints
Health Endpoints
Proxy Endpoints
Authentication
Authorization Endpoint
Proxy Endpoints
Request Flow
Response Format
Success Response
Error Response
HTTP Status Codes
CORS Support
OpenAPI Documentation
Endpoint Documentation
POST /authorize Endpoint
Health Endpoints
Service Endpoints
Technology Stack
Alternative Topics
Alternative Topics
Aliases
Design Documents
Decision Records
Overview
Api Versioning
Summary
Opinions
Opinion 1 Calendar versioning
Opinion 2 Users
Decision Status
References
Related decisions
Data Versioning (rejected, remains for historical context.)
Summary
Opinions
Opinion 1
Opinion 2
Decision Status
References
Notes
Catalogs and Search
Summary
Additional Information
Opinions
Opinion 1
Opinion 2
Opinion 3
Decision Status
References
Versioning
Summary
Opinions
Opinion 1
Decision Status
References
Authorization Middleware
Objective
Motivation
Current Limitations
Business Drivers
User Benefit
Transparent to End Users
Enhanced for Administrators
Operational Benefits
Design Proposal
Architecture Overview
Transparent Proxy Data Flow
Core Components
Implementation Approach
Alternatives Considered
Performance Implications
Dependencies
Engineering Impact
Platforms and Environments
Best Practices
Compatibility
User Impact
Local Development & Testing Plan
Detailed Design
Implementation Strategy
Java API Integration Approach
Future Architecture Considerations
Implementation Scope
Coverage (Current Scope)
Local Development Strategy
Success Criteria
Functional Requirements
Performance Requirements (Local Testing)
Security Requirements
Integration Requirements
Conclusion
Immediate Benefits
Strategic Advantages
Foundation for Full Coverage
Technical Excellence
Implementation Status
Repository and Technology Stack
Transparent Proxy Implementation
OPA Integration
Whitelist Pattern for Selective Enforcement
Redis Caching Implementation
Authorization Context Header Format
Local Development Environment
Management Applications
Known Limitations
Next Steps
CDA Authorization Filtering
Objective
Motivation
User Benefit
For API Consumers
For API Developers
For Operations
Design Proposal
x-cwms-auth-context Header Format
AuthorizationContextHelper Class
AuthorizationFilterHelper Class
Integration with TimeSeriesController
Integration with TimeSeriesDaoImpl
Alternatives Considered
Option 1: Servlet Filter Pattern
Option 2: AOP Interceptors
Option 3: Helper Classes (Selected)
Performance Implications
Minimal Overhead
Query Efficiency
Caching Considerations
Dependencies
Existing Dependencies (No Changes)
New Dependencies
Engineering Impact
Controller Changes
DAO Changes
Testing Strategy
Compatibility
Backward Compatibility
Forward Compatibility
Implementation Status
Completed
Future Work
Conclusion
Access Management Clients
Objective
Motivation
Administrative Requirements
Multiple Interface Requirements
User Benefit
Data Administrators
IT Operations
Security and Compliance
Design Proposal
Architecture Overview
Data Flow
Core Components
Implementation Approach
Alternatives Considered
Performance Implications
Dependencies
Engineering Impact
Platforms and Environments
Best Practices
Compatibility
Implementation Status
Success Criteria
Functional Requirements
Performance Requirements
Usability Requirements
Conclusion
Key Benefits
Integration with Authorization System
Timeseries CSV Format
Summary
Opinions
Opinion 1
Decision Status
References
Handling Releases
Summary
Proposal
Dev
Test
Prod
All Environments
Opinions
Opinion 1
Decision Status
References
Vertical Datum Policy
Summary
Context
Proposed Changes
Vertical Datum Identification in CDA
Storage and Retrieval Logic
Offset Management
Decision Status
JMS Queue Message Structure
Summary
Opinions
Opinion 1
Decision Status
References
Patch (Superseded by 0017)
Summary
Opinions
Opinion 1
Existing endpoints that support PATCH
Decision Status
References
Vertical Datum Storage
Opinions
Opinion 1
Context
Proposed Changes
Background
VDI Compoents
VDI Formats and Examples
VDI endpoints
Endpoint Behaviors
Decision Status
References
Catalogs
Summary
Opinions
Opinion 1
Differences in Catalog and GetAll data shapes
Library Support for HTTP QUERY method
Existing catalog endpoints
Decision Status
References
CDA User Lists
Context
Decision
Alternatives Considered
Reuse CWMS security groups
Store independent user or email records
Add PL/SQL CRUD packages
Consequences
Implementation Status
Data Event Message Formats - Forecasts
Summary
Opinions
Opinion 1
Decision Status
References
Data Event Message Formats - Ratings
Summary
Opinions
Opinion 1
Decision Status
References
Data Event Message Formats - Levels
Summary
Opinions
Opinion 1
Decision Status
References
PATCH Handling Across CDA Endpoints
Summary
Opinions
Opinion 1
Summary
Opinions
Opinion 1
Existing endpoints that support PATCH
Decision Status
References
Example
Existing endpoints that support PATCH
Decision Status
References
Duplicate Time-Series Values
Summary
Context
Proposal
Opinions
Opinion 1
Consequences
Questions Before Acceptance
References
Generated SDK Lifecycle
Summary
Proposal
Source and generation
Names and responsibility
Versions and releases
Verification and examples
Documentation and CI/CD
Opinions
Maintain generators and SDK docs with CDA
Maintain independent SDK repositories and documentation sites
Decision Status
References
Composite Time Series
Purpose
Need
Caveats
Proposal
Description
Additional names not used
Definitions
Axioms
Time Series Naming
Composite Time Series Definition
Operations required:
Events Requires:
Operations Prohibited:
Composite Time Series Response
Storage of member information
System responsibility for “knowing” to process composite.
Time Series Catalog
TimeSeries DTO
TimeSeriesDao
Error handling and other conditions.
Versioned (date) time series
Datum conversions
On the saving of a composite definition
References
Data Event Message Formats - Streams
Summary
Opinions
Opinion 1
Decision Status
References
Data Event Message Formats - Entities
Summary
Opinions
Opinion 1
Decision Status
References
Data Event Message Formats - Embankments
Summary
Opinions
Opinion 1
Decision Status
References
Data Event Message Formats - Overflows
Summary
Opinions
Opinion 1
Decision Status
References
Data Event Message Formats - Locks
Summary
Opinions
Opinion 1
Decision Status
References
Data Event Message Formats - Gates
Summary
Opinions
Opinion 1
Decision Status
References
Data Event Message Formats - Turbines
Summary
Opinions
Opinion 1
Decision Status
References
Data Event Message Formats - Pumps
Summary
Opinions
Opinion 1
Decision Status
References
ADR Template
Summary
Opinions
Opinion 1
Decision Status
References
CWMS Data API
Alternative Topics
View page source
Alternative Topics
Aliases