go-vela / community

Community Information for Vela (Target's official Pipeline Automation Framework)
https://go-vela.github.io/docs/
Apache License 2.0
23 stars 3 forks source link

Feat: Add denylists to work in conjunction with allowlists, for ease of access management. #999

Open KellyMerrick opened 2 months ago

KellyMerrick commented 2 months ago

Description

We should have the ability to add a \<thing> to a denylist, that used in conjunction with a corresponding allowlist, helps fine-tune access.

We currently have a Repo Allowlist and Schedule Allowlist. The addition of User Allowlist, Repo Denylist, Schedule Denylist, and User Denylist, greatly enhances the ability to quickly control access.

For example, if Repo Allowlist is set to the default * (all repos), but just a subset of org/repos should be blocked, we would have to individually add all org/* and/or org/repos to the list, except those to be blocked.

With both lists, we can still keep the allowlist to be * (all repos), but also have org/repo's in the denylist. Much easier to maintain.

Error messages should include appropriate amount of detail, tbd, perhaps clarifying blocked by admin, contact admin for access or similar.

One benefit is if an admin determines a repo needs to be blocked on the fly due to behavior affecting the platform, it can quickly be blocked so the admin can focus on troubleshooting.

Missed opportunity with Repo Allowlist: enabled repos that are no longer in the repo allow list should be blocked from running new builds.

Value

Platform admins can have confidence in which repos/users are allowed or prevented from running builds.

Useful Information

  1. What is the output of vela --version?

v0.24.0

  1. What operating system is being used?
  1. Any other important details?