hashicorp / hashicorp/consul

Combine ACLResolver and acl.AllowAuthorizer.

Open
#12,760 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
30.1k
Forks
4.6k
Avg merge
1d 18h
Merged PRs (30d)
39

Description

Combining ACLResolver and acl.AllowAuthorizer into a single structure (perhaps keep the name acl.AllowAuthorizer) simplifies a bunch of code and enables some use cases.

By moving the full ACLResolver functionality into the acl package we break some circular dependencies that prevent ACLResolver from being implemented throughout consul. Among other things this gives us better error messages for config entries and xds rendering.

Combining ACLResolver and acl.AllowAuthorizer simplifies a bunch of code; we frequently create an ACLResolver and then shortly after wrap it in acl.AllowAuthorizer. Combining these prevents a lot of unnecessary conversions and redundant code, and clarifies the associated logic for the reader.

Contributor guide

Open the contributing guide

Research direction

Start by locating ACLResolver and acl.AllowAuthorizer in the Consul codebase and tracing where they are created, wrapped, and converted. Review the dependency relationships and affected config-entry and xDS rendering paths; done means the two structures are combined without the stated circular dependencies or redundant conversions.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
authorization
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.