Compliance-only build is a build of NetYCE that only shows the forms necessary for NCCM and Compliance. It hides all instances of the YCE nodes, and the default is the CMDB.
NOTE this is for now a rudimentary setup. Any feedback on how to improve this modus is appreciated.
Creating a build for compliance-only modus happens when you build angular files for production. Normally, the following command is used to build the frontend for production (in the system-directory):
mk_angular.pl -b -f
The -b option tells mk_angular.pl to build a new frontend, and -f takes care of any nodejs dependency issues (recommended, as in most cases it will refuse to build due to some library having dependency issues). To build for compliance-only, you simply need the following command:
mk_angular.pl -b -f -p
That's all. The -p option tells mk_angular.pl to load in the environment that tells the frontend to load in the menu tree for compliance-only, and it changes the default landing page to the cmdb nodes.
A compliance-only build has two signficant changes from the main build:
- Its menu hides any form that does not contribute to performing compliance on your system. So it will have user and group management, but all yce node forms are gone. Same as domains, regions and others.
- As it only features cmdb nodes, the landing page is the cmdb nodes form.
This gives the users a quick start who are just interested in compliance and don't want to be bothered by the forms for yce nodes. The forms are still there in the build and can be accessed if you type in the url. But you can no longer access them from the menu.
How does it work
Angular has something called environment variables. They are meant to store configuration data that depends on whether you are in a production or test environment, to make sure that the correct urls and config files are loaded, and so on.
We use this to create an extra environment called the compliance environment. This contains everything that the production environment has, only with a “compliance”-flag set. This flag is then read by the frontend, and if detected it changes the default landing page, plus sends a modified request to the backend when retrieving the menu items, specific for compliance mode.
The modified menu tree for compliance only can be found in the following file:
This file exists in GIT, right next to the regular menu_tree.json and can be edited depending on whether compliance mode needs to gain or lose a few forms. This means that this file is static: you can edit it on your local environment, but will be overwritten when a new NetYCE build is installed.