I have a situation where a company has many developer teams that will "Share" the gateway. This could be done using fine grain resource permissions allowing developers to read/write/delete a subset of proxies, shared flows and other assets. For example, developer A can read/write proxy "A" and "B" but not "C". Whereas Developer "B" can read/write proxy "C" but not "A" or "B". This extends to shared flows, KVMs and the like. Managing these permissions would be somewhat complex and perhaps create friction to getting work done in a timely manner.
I am therefore thinking environment separation is a better choice as the permissions would be granted to the dedicated environment and therefore alleviate the need for fine grain permissions. The downside to this is that there could be many (20 or more) environments in the "Dev" Org. The artifacts created in the "DEV" org would ultimately promote to a merged (all groups assets commingled) Org under CI/CD control and then finally Prod Org which would have same CI/CD control.
Example summary would be
"Dev Org" - One environment per developer team to achieve separation. Could be as many as 20 environments.
"Non-Prod Org - Test, QA, Perf environments where all assets are merged and under CI/CD control.
"Prod Org" - Same as Non Prod in structure with CI/CD control.
Thoughts?
Solved! Go to Solution.
Hi Bill and welcome home.
This is a common ask. In Apigee X, this could be done using GCP IAM and custom roles, details yet to be proven and documented. Are you using Apigee X?
The approach for the Dev Org would still require custom roles per team, since proxies are not scoped to the environment, just their deployment.
A simpler approach would be to have "Dev Org A", "Dev Org B", etc. rolling up to the merged orgs, but that may be cost prohibitive based on the number of teams.