-
Notifications
You must be signed in to change notification settings - Fork 11
PROCEED MS Storage Structure and Data
The Management System has a config_backend_default.js
file, located in the src/management-system/src/backend/shared-electron-server
folder in the Monorepo, which contains all configurable keys for the backend with their default values (not the user config keys).
For the production version, this values can be set by a user in a self-generated config.json
file in the <root dir>/Config/
folder (not inside the Storage folder).
The user configuration settings are managed in the vuex store under src/management-system/src/frontend/stores/user-preferences.js
. During runtime, there is a Storage/userPreference.json
file in the data folder.
All user data is located in separate folders depending on the MS version (Desktop or Server) and the development environment (production or development).
The data folders Storage/, Processes/, Config/, engine/
are stored directly inside the server folder.
The storage path is a folder called proceed-management-system
in the OS user app data directory (app.getPath('appData')
), which by default points to:
-
Windows:
%APPDATA%\proceed-management-system\
orC:\Users\{USERNAME}\AppData\Roaming\proceed-management-system\
-
Linux:
$XDG_CONFIG_HOME/proceed-management-system/
or~/.config/proceed-management-system/
-
MacOS:
~/Library/Preferences/proceed-management-system/
The storage path is a folder called development
in the proceed-management-system
folder under the OS user app data directory (app.getPath('appData')
), which by default points to:
-
Windows:
%APPDATA%\proceed-management-system\development\
orC:\Users\{USERNAME}\AppData\Roaming\proceed-management-system\development\
-
Linux:
$XDG_CONFIG_HOME/proceed-management-system/development/
or~/.config/proceed-management-system/development/
-
MacOS:
~/Library/Preferences/proceed-management-system/development/
This is an example of how your storage structure may look like:
📦proceed-management-system
┣ 📂Config
┃ ┣ 📜5thIndustry_service_account.json
┃ ┗ 📜config.json
┣ 📂development
┃ ┣ 📂Config
┃ ┣ 📂Engine
┃ ┣ 📂Processes
┃ ┗ 📂Storage
┣ 📂Engine
┃ ┣ 📂capabilities
┃ ┣ 📂data_files
┃ ┃ ┣ 📜logging_meta_data.json
┃ ┃ ┣ 📜monitoring.json
┃ ┃ ┣ 📜processes.json
┃ ┃ ┣ 📜process__e4888a47-76d4-4742-8054-4a3d2904ee37.json
┃ ┗ 📜config.json
┣ 📂Processes
┃ ┣ 📂Process-No1-6ea4f55a
┃ ┃ ┣ 📂Script-Tasks
┃ ┃ ┃ ┗ 📜Task_0abeqgd.js
┃ ┃ ┣ 📂User-Tasks
┃ ┃ ┃ ┣ 📜Task_1rutzdk.html
┃ ┃ ┃ ┗ 📜Task_1rutzdk.json
┃ ┃ ┗ 📜Process-No1-6ea4f55a.bpmn
┃ ┣ 📂Process-No2-4e7d97c2
┃ ┃ ┗ 📜Process-No2-4e7d97c2.bpmn
┃ ┗ 📂Process-No3-1eaa8833
┃ ┃ ┣ 📂User-Tasks
┃ ┃ ┃ ┣ 📜Task_0nbleln.html
┃ ┃ ┃ ┣ 📜Task_0nbleln.json
┃ ┃ ┃ ┣ 📜Task_1w9op5k.html
┃ ┃ ┃ ┗ 📜Task_1w9op5k.json
┃ ┃ ┗ 📜Process-No3-1eaa8833.bpmn
┗ 📂Storage
┃ ┣ 📜capabilities.json
┃ ┣ 📜identity-mgmt.json
┃ ┣ 📜machines.json
┃ ┗ 📜processes.json
/Storage:
- machines.json - here is stored the meta information about all discovered or manually added machines. Here is a list of all required and optional properties:
- id - each machine has a unique, permanent id. If a machine is added manually, a temporary id is generated, which is later changed to the permanent id, once the engine is running on the machine
- hostname/host - if a machine is added manually, the user should either provide a hostname or an ip address (which is saved under the property "host"). Both properties are present for discovered machines.
- status - this property is required and has one of the following three values: "CONNECTED", "DISCONNECTED", OR "SEARCHED", depending on whether an engine with the given ip/hostname is running.
- saved - this property has a boolean value. Discovered machines are not saved by default and they are removed from the machine.json once the engine isn't running on them anymore. This can be changed by setting the "saved" property to true, which means the machine won't be deleted even if it is disconnected. The "saved" property of manually added machines is always set to "true". If they are connected and the user decides to delete them, they will appear in the section with the discovered machines.
- port - the port, on which the engine is running, is added as a property once a machine is discovered
- name - the name is also added once a machine is discovered and can be set in the config.json of the engine. If it has not been set, it defaults to the hostname
- description - the description can be set in the config.json of the engine, if not, it is saved as an empty string in the machine.json. Manually added devices, which have not been discovered have no property "description"
- ownName - this is an optional property, which can be changed by the user directly in the Management System
- capabilities.json - here is stored all the information about each capability. The required properties of each capability are id(automatically generated) and schema, which is a link, provided by the user. The property "machineIds" has an array as a value, which shows the ids of the machines, which have this capability. More information about the capability description can be found here: Capability Description. Here is an example capability:
"id": "3731edaa-91fe-483a-86ce-83093c30e3d1",
"schema": "www.schema.org/PhotographAction",
"name": "PhotographAction",
"parameters": [
{"schema": "www.schema.org/width",\
"name": "width",
"type": "number",
"unit": "px",
"encoding": "",
"default": "200",
"required": true,
"validators": [{ "type": "minwidth","rule": "100"}, {"type": "regex","rule": "/\d/g"}]},
{"schema": "www.schema.org/height",
"name": "height",
"type": "number",
"unit": "px",
"encoding": "",
"default": "50",
"required": "",
"validators": []}],
"machineIds": []
- identity-mgmt.json - here is stored the information needed for the access management - ldaps, users and roles
- processes.json - this file contains basic meta information about all processes (e.g. name, id, variables, elementMachineMapping, elementCapabilityMapping, etc.) Additional infos about each process can be found in the Processes folder
/Processes:
When a new process is added, a new folder (using the first 15 characters of the process name, omitting special characters and replacing spaces with dashes and the first 8 of the process id) is created. This folder contains the bpmn file of the process, which has the same name as the folder itself, and two additional folders: one with the script tasks and a second one with the user tasks of the process, as long as these types of tasks exist.
config.json
This file contains the config values for the Management System that were set by the user. All available config values can be seen here.
/engine:
-
/data_files - this folder contains json files with monitoring data, information about deployed processes etc., considering the engine, which is running inside the management system.
-
config.json - this file contains config values for the Proceed engine running inside the management system that were set by the user. All available config values can be seen here.
This is the Dev Wiki