flask/
contains a Flask REST API built to facilitate communication between ServiceNow, Salt, and the Oracle Database.
oracle/
contains the schema for the database.
salt/etc/
contains the configuration files needed by the Salt master, including credentials.
salt/salt/_grains/
contains the custom grain responsible for reading the profile from /etc/profile
.
salt/salt/_modules/
contains a wrapper built on top of PyFortiAPI to adapt it to our particular use case.
salt/salt/bootstrapping/
contains all states related to changing the profile of a minion, as well as an installation script that can be used to make that change.
salt/salt/reactors/
contains the reactor state responsible for listening for new minion events and firing up the orchestrations.
salt/salt/orchestrations/
contains the orchestration states responsible for acessing and configuring data in the database and in the FortiGate firewalls.
salt/salt/profileN/
contains states specific for each profile, including the state responsible for changing /etc/profile
.