How dmitriykuptsov/process-historian-cassandra works
Process Historian is a time-series collection and management system: producers submit sensor measurements, the service checks configured filters and stores points in Cassandra; users manage sensors and inspect data through a Vue UI backed by Flask APIs. The API also handles accounts, token validation, sensor metadata, permissions and alerts. The excerpts establish ingestion writes and several UI/API calls, but do not show the Python client’s behavior or the complete data-view workflow, so those links are omitted where unsupported.
Main entry points: api/controllers.py Sensor and data API · ingestion/controllers.py Ingestion routes · models.py Sensor metadata models · App.vue App and demo
Components 16
Web interface
- App and demo
frontend/src/App.vue - Login view
frontend/src/views/Login.vue - Sensor management
frontend/src/views/Sensors.vue - Tag and filter editors
frontend/src/components - Data view
frontend/src/views/Data.vue
Flask service
- Authentication routes
rest-api/app/auth/controllers.py - Sensor and data API
rest-api/app/api/controllers.py - Ingestion routes
rest-api/app/ingestion/controllers.py - Threshold filters
rest-api/app/utils/filters.py
Metadata and security
- Token and hashing helpers
rest-api/app/utils/utils.py - User model
rest-api/app/auth/models.py - Sensor metadata models
rest-api/app/api/models.py - Metadata database
mysql/schema.sql
Time-series storage
- Cassandra time-series store
cassandra/scripts/create_database.cql
Other components
- Historian user
- Data producer
Connections 22
- Historian user → App and demo: uses
frontend/src/App.vue - Historian user → Sensor management: manages sensors
frontend/src/views/Sensors.vue - Historian user → Data view: views data
- App and demo → Authentication routes: validates token
frontend/src/App.vue - App and demo → Sensor and data API: requests public data
frontend/src/App.vue - Sensor management → Sensor and data API: manages tags
frontend/src/views/Sensors.vue - Sensor management → Tag and filter editors: opens editors
frontend/src/views/Sensors.vue - Tag and filter editors → Sensor and data API: updates sensor
frontend/src/components/EditTag.vue - Data view → Sensor and data API: fetches data
- Authentication routes → Token and hashing helpers: checks tokens
rest-api/app/auth/controllers.py - Authentication routes → User model: queries users
rest-api/app/auth/controllers.py - Sensor and data API → Sensor metadata models: queries metadata
rest-api/app/api/controllers.py - Sensor and data API → User model: queries accounts
rest-api/app/api/controllers.py - Sensor and data API → Token and hashing helpers: gets identity
rest-api/app/api/controllers.py - Sensor and data API → Threshold filters: uses filter constants
rest-api/app/api/controllers.py - Sensor metadata models → Metadata database: maps metadata
- User model → Metadata database: maps accounts
- Data producer → Ingestion routes: submits points
- Ingestion routes → Sensor metadata models: loads sensor filters
rest-api/app/ingestion/controllers.py - Ingestion routes → Threshold filters: checks thresholds
rest-api/app/ingestion/controllers.py - Ingestion routes → Cassandra time-series store: writes measurements
rest-api/app/ingestion/controllers.py - Ingestion routes → Sensor metadata models: records alerts
rest-api/app/ingestion/controllers.py