CingI v0.1.2 API Reference
Modules
Branches manage the missions for a single node. They intialize missions and mission reports, and assign or create the outposts for missions to be sent to. Although they initialize missions, they send missions over to a single Headquarters which reassigns the missions to an appropriate branch based on capacity
The CLI handles all the command line functionality. They are linked to the local branch started by the application. They also create the global Headquarters all branches connect to. The CLI manages the netwwork and connections, and also handles disconnect signals
Commanders are long running processes that are used to start missions They have a main_mission and a transforming_mission main_missions are the long running script process that output to standard out transforming_missions are optional missions take each line of main_mission’s output, parses it, and returns it back to the commander ina suitable format. If the commander gets a line in an appropriate format, it’ll start up a MissionReport and send it to its headquarters
Field agents are processes that are assigned a mission by an outpost Typically they run the bash command in the same environment as the outpost They run on the same node as the outpost but report the output to the mission
Headquarters manage all the branches within the cluster and assign mission to branches based on capacity. There should only be one Headquarters at each cluster. If a branch is started without a Headquarters, and doesn’t intend to connect to an existing cluster, a Headquarters should be created for it
Missions are the actual processses thnat records the information necessary to run submissions or bash commands. They function as the task or pipeline needed to be queued by headquarters, sent to branches, sent to outposts, amd run by the field agent assigned by the outpost. They record the output and exit code of the submissioons or bash commands when run
Mission Reports are created when a mission plan is sent to a branch. Mission Reports hold the mission plan that ultimaely creates a mission to be run. They are given a yaml file/string/or map and convert that into a usable elixir map
Outposts are processes set up by commanders to connect to its branch and receive missions. Outposts have to set up the environment, like a workspace folder, by setting the environment variables, working diretctory, and any setup steps that need to run when a mission is being run by any node