Entirety is a web-based graphical user interface (GUI) meant to provide easy access to some of FIWARE's Generic Enablers (GE) without requiring deeper knowledge on their APIs: Context Brokers like Orion and the IoT Agent JSON. Entirety is python-based and relies on the FIWARE Library for Python (FiLiP) for the communication with the GE APIs.
Entirety holds modules (as displayed on the left hand side of the GUI) providing features to perform CRUD (create, read, update, delete) operations to entities in the Context Broker, devices in the IoT Agent, and subscriptions / notifications to QuantumLeap or other applications. Furthermore, Entirety provides a graphical overview of the semantic relationships between entities in the Semantics module as well as a store for standardized data models that can be either created or imported from external sources, like the Smart Data Models Program in the Data Models module.
This project is part of FIWARE contributed by Institute for Energy Efficient Buildings and Indoor Climate of RWTH Aachen University. For more information check the FIWARE Catalogue entry for the Core Context Management.
- Django 4.1
- Bootstrap 5.2
- htmx 1.8.2
- Python 3.10/3.11
Have a look at our roadmap to see what features we plan to work on in the short and long run. We kindly invite you to participate in discussions about possible features as well.
The user guide describes how the GUI works and guides you through the functionalities of Entirety.
To deploy Entirety via docker, please, refer to our deployment guide, that also gives an overview of the used environment variables. If you wish to deploy Entirety for development purposes on your local machine, you can follow the development and get started paragraphs.
See the contributing guide for detailed instructions on how to get started with our project.
pip
cd ./app/Entirety
pip install -e git+https://jugit.fz-juelich.de/iek-10/public/ict-platform/fiware-applications/[email protected]#egg=jsonschemaparser
pip install -r requirements.txtNote: The jsonschemaparser is a package from a repository. It might cause conflicts with other libs. Therefore, we install it separately. Please ignore the relevant ERROR message.
pre-commit
pre-commit install cp .env.EXAMPLE .envMigrate Database
python manage.py makemigrations
python manage.py migrateStarting the Django server:
python manage.py runserverTo run the application in your development setup you'll need to provide following settings in your env file.
- DJANGO_SECRET_KEY
- CB_URL
- IOTA_URL
- QL_URL
- DATABASE_USER
- DATABASE_PASSWORD
- DATABASE_HOST
- DATABASE_PORT
- LOCAL_AUTH
- OIDC_OP_AUTHORIZATION_ENDPOINT
- OIDC_OP_JWKS_ENDPOINT
- OIDC_OP_TOKEN_ENDPOINT
- OIDC_OP_USER_ENDPOINT
- OIDC_RP_CLIENT_ID
- OIDC_RP_CLIENT_SECRET
For a full list of settings see settings.
The user and permissions model of Entirety is described in the user model documentation.
See changelog for detailed overview of changes.
Entirety is licensed under the GPLv3 license .
Furthermore, the authors want to make the following statement:
Please note that software derived as a result of modifying the source code of the software in order to fix a bug or incorporate enhancements IS considered a derivative work of the product. Software that merely uses or aggregates (i.e. links to) an otherwise unmodified version of existing software IS NOT considered a derivative work.
We gratefully acknowledge the financial support of the Federal Ministry
for Economic Affairs and Climate Action (BMWK), promotional references
03EN1030B and 03ET1561B.
