Glue42 Enterprise uses application and layout configurations defined on the local machine, but can also be reconfigured to fetch them from a REST service.
This example project shows how to run a Node.js REST service that provides application and layout stores for Glue42 Enterprise.
Note that this is a sample implementation and some parts of it must be extended to work well in a multi-user scenario.
This example uses application definitions in JSON format located in the configuration\apps
folder. Layout definitions are fetched from and saved in the configuration\layouts
folder. You can also use your own application definitions, but they must be in the standard Glue42 application definition format.
To start:
npm i // install the dependencies
npm run start // run the server
This will start the service on port 8004.
To enable fetching application and layout definitions from the REST service, you need to edit the appStores
and layouts
top-level keys in the Glue42 Enterprise system.json
file, usually located in the %LOCALAPPDATA%\Tick42\GlueDesktop\config
folder.
Find the appStores
top-level key in the system.json
file and add a new entry (or replace existing entries) with the following configuration:
"appStores": [
{
"type": "rest",
"details": {
"url": "http://localhost:8004/apps/"
}
}
]
Find the layouts
top-level key in the system.json
file and edit the store
property - change the type
to "rest"
and assign the URL of the service to the restURL
:
"layouts": {
"store": {
"type": "rest",
"restURL": "http://localhost:8004/"
}
}
Add the "extends" top-level key in any configuration file.
"extends": [
{
"type": "file",
"source": "config/local.system.nested.json"
},
{
"type": "rest",
"source": "http://localhost:8004/"
},
{
"type": "remote",
"source": "https://something.com/glue42/%GLUE-REGION%-%GLUE-ENV%.system.json"
},
]
By default, the server will listen on port 8004
. The environment variable SERVER_PORT
can be used to override this setting, e.g. to change the port to 8005 in the start script:
scripts: {
"start": "env SERVER_PORT=8005 && npm run build && node ./src/index.js"
}
This example uses application definitions in JSON format located in the configuration\apps
folder. The env variable APPS_FOLDER
can be used to override the default setting.
This example reads and stores layouts from the configuration\layouts
folder. The env variable LAYOUTS_FOLDER
can be used to override the default setting.
In this example, the user calling the service is not considered, and the returned data is the same for any user. In a real application, you may want to return a different set of applications per user, or to store layouts per user. To achieve this, you need to have information about the user identity - you can use the helper function getUser()
, which returns the username of the user making the request.