Versions in this module Expand all Collapse all v0 v0.1.0 Sep 7, 2026 Changes in this version + const AgentRoutePrefix + const AgentScopeDenyMessage + const ApprovalAgentTokenDenyMessage + const ContextKeyAllowedJobAliases + const ContextKeyAuth + const ContextKeyCSRFToken + const ContextKeyPrincipal + const ContractsGraphScopedDenyMessage + const EventsScopedDenyMessage + const LineageImpactScopedDenyMessage + func Auth(d AuthDeps) echo.MiddlewareFunc + func EnforceSessionCSRF(c *echo.Context, expected string) error + func GetAllowedJobAliases(c *echo.Context) []string + func GetAuthKey(c *echo.Context) *models.APIKey + func GetCSRFToken(c *echo.Context) string + func GetPrincipal(c *echo.Context) *auth.Principal + func IsPublicAuthPath(path string) bool + func NormalizeRoutePath(path string) string + func ParseTrustedProxyRanges(raw string) []*net.IPNet + func ParseTrustedProxyRangesStrict(raw string) ([]*net.IPNet, error) + func RequestIsSecure(r *http.Request, trustedProxies []*net.IPNet) bool + type AuthDeps struct + Auditor *auth.AuditLogger + CookieName string + Limiter *auth.RateLimiter + Service *auth.Service + Sessions *auth.SessionStore + type IPRateLimitConfig func() (perMinute int, burst int) + type IPRateLimiters struct + func NewIPRateLimiters(staleAge time.Duration, config IPRateLimitConfig) *IPRateLimiters + func (l *IPRateLimiters) Allow(ip string) bool