Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deploy wrapper RegoRules for the UserInfoFetcher #558

Open
Tracked by #499
fhennig opened this issue Apr 30, 2024 · 3 comments · May be fixed by #580
Open
Tracked by #499

Deploy wrapper RegoRules for the UserInfoFetcher #558

fhennig opened this issue Apr 30, 2024 · 3 comments · May be fixed by #580
Assignees

Comments

@fhennig
Copy link
Member

fhennig commented Apr 30, 2024

As a user of the UIF I would like to simply use RegoRules to use the UIF, instead of having to do the HTTP calls myself.

  • How do we deploy these rules?

The rules and how to use them need to be documented and a decision needs to be created.

@fhennig
Copy link
Member Author

fhennig commented Apr 30, 2024

My suggestion on how to do this:

Have a ready-to-go (or slightly templated) .rego file that the operator has, and if the userInfo bit is configured, the .rego file gets added to all the bundles. Maybe we can do this, by having the operator deploy a ConfigMap that the bundle=true annotation and the rules inside of the ConfigMap?

@maltesander
Copy link
Member

maltesander commented Apr 30, 2024

In the trino tests we have the UIF call here https://github.com/stackabletech/trino-operator/blob/0a1545ff371190b8d237f994bba4266fc962f774/tests/templates/kuttl/opa-authorization/trino_policies.rego#L291 and wrap it into extra_groups in the the permissions here https://github.com/stackabletech/trino-operator/blob/0a1545ff371190b8d237f994bba4266fc962f774/tests/templates/kuttl/opa-authorization/trino_rules/actual_permissions.rego#L43.

We could extract that into its own rego (util) file and be imported by other policies?

@NickLarsenNZ
Copy link
Member

NickLarsenNZ commented May 3, 2024

I would suggest it being a specific rego file, rather than a generic util file, because:

  • util as a name of a modules is not a very helpful description to the end user (it can be useful when any other suitable name doesn't exist, or there are then too many things).
  • It would likely be a breaking change if we do end up with more utilities and want to break them out.

Some suggestions on what the end-user rego imports could look like:

import utils.uif
import utils.authorization
import stackable.uif
import stackable.authorization

Edit: #580 goes with package stackable.opa.userinfo.v1 which resolves this comment nicely.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Development: In Progress
Development

Successfully merging a pull request may close this issue.

4 participants