How does #all really work?

#all is a magic word that may be used on a policy to match all of the resources of that particular type

For example, on a service policy, I can include #all as a service role to match all services, or #all as an identity role to match all identities. #all doesn't make sense as a role attribute on a resource e.g. identity, service, or edge router; because it's implied i.e. all resources match #all when it is used on a policy, and adding #all to a resource must not effect a grant for all policies of a particular type to that resource, correct? Therefore, adding #all to a resource's role attributes never has any effect.

Therefore, adding #all to a resource’s role attributes never has any effect.

Correct. Adding all to a resource's role attributes has no effect

Would you also agree that #all only makes sense on a policy when there are no other role attributes because it overrides any other possible combination of role attributes?

Yes. Currently have #all means the policy will always match all related entities. It probably shouldn’t for policies with an AllOf semantic, but the expectation is that when using #all it will be the only role listed.

You explained that assigning #all to a resource has no effect because it wouldn’t matter what the assigned roles were if there was a policy with #all, but I wonder if maybe doing this should get a BAD REQUEST (400) response because it seems likely to cause confusion to have a meaningless attribute in place. As expected, the management API already responds 400 if I try to assign multiple roles to a policy including #all.