Awesome Library. Looks succinct. I loved the introspection aspect and redaction of information!
I was curious about how the library will handle Role explosion and some of the scenarios mentioned below?
Say a customer comes to bar, instead of having a role depicting that they can consume alcohol, they claim that they can_drink.
We can take the claim and restrict it with policy saying, age must be drinking age, based on attribute country.
And maybe add a scope, saying that the customer can only access the drinks available on counter.
Later, bouncer might grant or revoke access on the fly!
Maybe the customer gets recognised as a VIP, so now he should have access to drinks from cellar! Perhaps they fancy a private lounge. (Instead of creating another role for people who can enter the lounge or drink special wine, they can be assigned claims like: can_enter_private_lounge)
I have a verbose way achieving the above scenarios:
P.S. I am excited about this. I won’t have to write much code. I am just trying to piece together how I can make use of the library.