Replies: 1 comment 3 replies
-
Hi Xitric, Really appreciate you starting this dialogue on improving readability in AzOps repositories. Part of this is that we do little to enhance what is returned from ARM for the autogenerated templates. There's definitely room for improvement, and your VS Code extension idea is a step in the right direction. Do you think that allowing prefix/suffix in the folder names would simplify navigation? Curious to hear what others think and any other suggestions for making these repositories more user-friendly! |
Beta Was this translation helpful? Give feedback.
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
The challenge
We have noticed that the readability of large AzOps repositories deteriorates to the point where unfamiliar developers feel overwhelmed. Non-technical and semi-technical stakeholders in our team similarly find that the transparency of the repository and its files is sub-optimal. Let me explain.
Hard to understand the scope of directories
The way that directories are named in the repository makes it hard to determine what is a management group and what is a subscription. This effectively requires locating the
microsoft.subscription_subscriptions-<guid>.json
ormicrosoft.management_managementgroups-<guid>.json
files, which can become hidden as the number of policies, role definitions, and module deployments in that scope grows.Furthermore, the names of the files are rather verbose, causing the navigation tree to resemble a wall-of-text, thus overwhelming unfamiliar developers.
Lack of transparency of role assignments
Role assignments, when pulled from Azure via the Pull pipeline, are named as
microsoft.authorization_roleassignments-<name>.json
, where<name>
is a GUID. This does not really tell the reader anything about what the role assignment represents. Furthermore, opening the file reveals limited additional value:name
: A non-human-readable GUIDprincipalId
: A non-human-readable object IDroleDefinitionId
: A non-human-readable resource IDdescription
: A properly readable and understandable explanation of the role assignmentAs such, the reader cannot at a glance understand to whom the role assignment applies, or what privileges it provides. Only by browsing the contents of every role assignment template there is a chance that one might understand what is going on, but this relies on the quality of the free-form description field.
What can be done about this?
We have considered looking into building an extension for VS Code that can provide a context-aware navigation tree, which is able to render directories and files in a custom manner.
For instance, standardized icons could be used to enhance the visibility of management groups, subscriptions, and resource groups.
Furthermore, by rendering role assignments using display names of role definitions and principals, and perhaps even grouping them by role definition, it becomes easier to understand the role assignments being defined at a glance. Tooltips could be used to show descriptions without having to open the files.
And much more...
We would like to hear what others do to approach this challenge, as well as alternative ideas for improving the readability of large AzOps repositories!
Beta Was this translation helpful? Give feedback.
All reactions