Using the Open API on the Gateway Network

I have 1 controller gateway and 15 edge (agent) gateways. I want to be able to create, modify, or disable device connections from the controller gateway on the edge gateways.

Now with the openapi this seems very possible. However, I just realized I will need to manually create individual api keys on each edge gateway, and I guess store them within a secret provider on the controller gateway.

Is the way I described the best way to go about this? It would be nice in the future to somehow bypass needing to create API keys to use the openapi on gateways either within the gateway network or configured as EAM agents (or at least have a setting you can enable to do that).

You can use message handlers + system.util.sendMessage over the gateway network; this plus the system.device scripting functions technically gets you create/read/update/delete without having to deal with API keys; you do still need to preconfigure the gateways ahead of time with message handlers.

In 8.3.8 and above you get access to the system.config scripting functions, which are a fair bit more powerful and allow you to do all the same device manipulation (plus manipulation of ~every other gateway resource), but also still requires you to have message handlers in place ahead of time.

You can use EAM to send project resources to gateways, though, so in theory you could go controller -> push message handlers to agents -> run script on controller to call message handlers on agents -> agents are in desired states.

In our next major version, EAM is going to have the ability to directly push gateway configuration changes, just like project changes.