Describe the feature you'd like and what it will do
Add settings that allow some HydroServer features to be enabled or disabled globally for the whole instance. If a feature is toggled off, any links or references to those features through both the GUI and API should be hidden or greyed out.
The following features are ones we should consider:
- Photos and other media file uploads.
- Orchestration system
- SensorThings API
- Email notifications
Why is this feature important?
The features I listed above require additional costs and deployment overhead that not all organizations using HydroServer may need or want to manage.
Photos
Storing media requires cloud infrastructure, such as an S3 bucket. To avoid mandatory storage costs, we could allow users to link to external files instead of requiring internal hosting. This enables site photos to be displayed without the need for a dedicated media bucket.
Public-facing instances should have some form of content moderation to prevent misuse, though this is less of a concern for internal-only deployments. Organizations may want to disable site photos and other file uploads entirely if they don't have the capability to moderate content.
Orchestration System
This system relies on three dedicated services: a message broker like Redis, a Celery worker, and a Celery scheduler. Because these services incur costs and are essential for the system to function, all dependent features should be hidden if they are not configured.
Core data operations, such as deleting a workspace, need to remain functional on the main web server thread by default, only offloading to Celery if it's enabled. We don't currently use Celery in this way, but we've discussed it.
We could also offer more granular control of specific orchestration system features so organizations can toggle specific tools, such as enabling data quality monitoring while keeping ETL or data products disabled.
SensorThings API
The SensorThings API does not require extra infrastructure, but it can be notoriously resource-intensive for the web server and database. Since it is difficult to throttle while maintaining specification compliance, we should provide a simple setting to disable the API for organizations that do not use it.
Email
Notifications and account management require a connection to an email server. If an organization relies solely on OIDC for authentication and does not require orchestration alerts, they should be able to bypass email configuration entirely. Right now, if an email server isn't set up, features that require the email server will raise server-side errors; it would be better to just hide those features instead if they can't be used.
Is your feature request related to a problem? Please describe.
No response
Any additional comments?
No response
Describe the feature you'd like and what it will do
Add settings that allow some HydroServer features to be enabled or disabled globally for the whole instance. If a feature is toggled off, any links or references to those features through both the GUI and API should be hidden or greyed out.
The following features are ones we should consider:
Why is this feature important?
The features I listed above require additional costs and deployment overhead that not all organizations using HydroServer may need or want to manage.
Photos
Storing media requires cloud infrastructure, such as an S3 bucket. To avoid mandatory storage costs, we could allow users to link to external files instead of requiring internal hosting. This enables site photos to be displayed without the need for a dedicated media bucket.
Public-facing instances should have some form of content moderation to prevent misuse, though this is less of a concern for internal-only deployments. Organizations may want to disable site photos and other file uploads entirely if they don't have the capability to moderate content.
Orchestration System
This system relies on three dedicated services: a message broker like Redis, a Celery worker, and a Celery scheduler. Because these services incur costs and are essential for the system to function, all dependent features should be hidden if they are not configured.
Core data operations, such as deleting a workspace, need to remain functional on the main web server thread by default, only offloading to Celery if it's enabled. We don't currently use Celery in this way, but we've discussed it.
We could also offer more granular control of specific orchestration system features so organizations can toggle specific tools, such as enabling data quality monitoring while keeping ETL or data products disabled.
SensorThings API
The SensorThings API does not require extra infrastructure, but it can be notoriously resource-intensive for the web server and database. Since it is difficult to throttle while maintaining specification compliance, we should provide a simple setting to disable the API for organizations that do not use it.
Email
Notifications and account management require a connection to an email server. If an organization relies solely on OIDC for authentication and does not require orchestration alerts, they should be able to bypass email configuration entirely. Right now, if an email server isn't set up, features that require the email server will raise server-side errors; it would be better to just hide those features instead if they can't be used.
Is your feature request related to a problem? Please describe.
No response
Any additional comments?
No response