With a vision for AgoraOps personnel not being a full time developers it should be easy enough for them to change configuration or push configuration to edge apps running on gateway from outside or from any simple UI Interface.
In general, the Ops Agent watches for *.zip files in its FileIn folder. When files arrive, it starts a state machine to move the file to a working folder, unzip it, Update (more below), and the move to a Processed folder. If there are errors during any of this the agent will log that - and in the future, notify AgoraOps.
During Update there are several options. There are three behaviors supported in the config file: REPLACE, OVERLAY (default), and CLEANALL. To apply these commands to the configuration file, add a file of that name in the Root folder of the archive.
For example,
(AEABroker.zip)
/REPLACE (file) <-- the command
/AEABroker (folder) <-- the app folder
/AEA.json
/keys (folder)The Ops Agent expects to have a shared volume on the host with respective path for EdgeApp Receiving Configurations like shown below, it will push/Replace/recreate .zip files to the root /Configurations path

Removes all files in every App folder and then moves the files from the zip file into the App folder. The config folder and config/keys folder are not removed, even if they don't exist in the *.zip file.
Copies (and replaces) the files from the *.zip, but does not remove any existing files. This is useful if you only want to update a single file or key in the configuration.
Cleans (removes all files in all apps). It does nothing with the rest of the zip file - even if it contains files... (that could be improved, but that is how it works today...)

The Agora Ops Agent facilitates the SetPoint write and report operation using Redis as the data store. The application expects to receive Desired property values in a Request message. Once received, it will write each property to the desired section in Redis. Additionally, it listens to the reported section in Redis for any change in properties reported by the Edge Application using AgoraIot SDK TwinProperty module and report it to Cloud as an Event.
