Documentation
¶
Overview ¶
Package guard provides a deterministic authorization policy engine. No scripting: decisions come from explicit rules. Default deny.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Constraint ¶
type Constraint struct {
MaxTTLSeconds int `json:"max_ttl_seconds,omitempty"`
Resources []string `json:"resources,omitempty"`
Attrs map[string]string `json:"attrs,omitempty"`
}
Constraint limits an AllowWithConstraints decision.
type Engine ¶
type Engine struct {
// contains filtered or unexported fields
}
Engine evaluates requests. Default decision is Deny.
func (*Engine) Explain ¶
func (e *Engine) Explain(req Request) Explanation
Explain returns the decision and reason trail.
type Explanation ¶
type Explanation struct {
Decision Decision `json:"decision"`
MatchedRule string `json:"matched_rule,omitempty"`
Reason string `json:"reason"`
Constraints *Constraint `json:"constraints,omitempty"`
Trail []string `json:"trail,omitempty"`
}
Explanation is a stable, inspectable reason trail.
type Request ¶
type Request struct {
Principal string
Permission string
Resource string
Action string
Attrs map[string]string
}
Request is evaluated against rules.
type Rule ¶
type Rule struct {
Name string
Principal string
Permission string
Resource string
Action string
Decision Decision
Constraints *Constraint
Priority int // higher wins
}
Rule is a deterministic match → decision mapping. Empty Principal/Permission/Resource/Action means wildcard for that field.
Click to show internal directories.
Click to hide internal directories.