330 permissions and app enhancements #252
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR reorganizes hydroserver-api-services into two distinct units: domains and interfaces.
Domains contain models, migrations, backend service layers, and other internal business logic. While we could call these “apps,” the term “apps” is already used by OpenID Connect to refer to third-party applications, so using “domains” helps avoid confusion.
Interfaces encompass all components that expose HydroServer to the outside world. This includes the Data Management API, Data Management App, SensorThings API, authentication API, and management commands. In the future, it will also include MQTT interfaces, additional APIs such as OGC Features, and potentially the QC App. It would also include Django Admin dashboard extensions and the AllAuth account management app if/when we switch it in to replace the AllAuth API.
Most HydroServer interfaces rely on the existing core data model and services rather than extending them. This reorganization clarifies the distinction between data domains and external-facing interfaces, rather than bundling everything into self-contained apps where boundaries are often unclear.
This PR does not change any existing functionality. While it may make future refactors easier, its immediate effect is purely structural.