feat(mecak8s): expose opt-in Cedar authority policies for caller-scoped tool restrictions
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 152
- Forks
- 16
- Avg merge
- 14h 48m
- Merged PRs (30d)
- 536
Description
Problem
Mecatl includes an opt-in Cedar-backed AuthorityEvaluator, but mecak8s does not expose the composition settings needed to select it. mecated provides --authority-evaluator=cedar and --cedar-authority-policy, while mecak8s has neither flag nor corresponding app.Config wiring.
This prevents a Kubernetes deployment from applying caller-identity-aware policy to built-in tools. For example, an OIDC-authenticated bot account should be denied WebSearch while other authenticated callers retain it.
Desired outcome
Make the Cedar authority evaluator available to mecak8s through operator-controlled deployment configuration.
Acceptance criteria
mecak8sexposes an explicit evaluator selection and static Cedar-policy source equivalent tomecated's--authority-evaluatorand--cedar-authority-policy.- The settings are passed to
app.Config.AuthorityEvaluatorandapp.Config.CedarAuthorityPolicy. - The Helm chart provides an operator-safe way to supply the policy file (for example, a mounted ConfigMap or Secret) and the corresponding command arguments.
- Cedar remains opt-in; the existing
localevaluator remains the default. - Selecting Cedar without a readable/valid policy fails startup rather than weakening enforcement.
- With OIDC enabled, a Cedar policy can deny
Tool::"WebSearch"for one exact(issuer, subject)bot principal, without denying it for another authenticated principal. - Add offline coverage for CLI/config-to-composition wiring and the bot-specific denial path; update the owning user/deployment documentation.
Notes
This is distinct from --permission-config: permission rules govern approval behavior generally, whereas Cedar is the identity-aware execution authority layer. Cedar is tightening-only: it may deny a carried capability but cannot grant a tool the session does not already carry.
Relevant code:
cmd/mecated/main.go— existing Cedar flagscmd/mecak8s/flags.go— missing equivalent flags/config mappinginternal/app/root_authority.go— evaluator selectioninternal/adapter/cedarauthority/cedar.go— policy evaluation and owner requirementsdocs/adr/0234-authority-evaluator-port.md— authority-evaluator decision
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with cmd/mecak8s/flags.go and compare its configuration mapping with cmd/mecated/main.go, then read internal/app/root_authority.go and internal/adapter/cedarauthority/cedar.go. Inspect the Helm chart and the owning user/deployment documentation for configuration conventions. Done means Cedar flags and policy delivery reach app.Config, local remains the default, invalid policies fail startup, and offline coverage verifies wiring and bot-specific denial.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, helm, kubernetes
- Domain
- authentication, cli, devops, infrastructure, security
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100