Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrTenantResolutionFailed = errors.New("tenant resolution failed")
ErrTenantResolutionFailed is returned when a resolver cannot determine the tenant identifier.
Functions ¶
Types ¶
type CompositeResolver ¶
type CompositeResolver struct {
Resolvers []TenantResolver
TenantRegex *regexp.Regexp // Optional validation pattern
}
CompositeResolver tries multiple resolvers until one succeeds.
func (*CompositeResolver) ResolveTenant ¶
ResolveTenant implements TenantResolver.
type HeaderResolver ¶
type HeaderResolver struct {
HeaderName string
}
HeaderResolver extracts the tenant identifier from a configured request header.
func (*HeaderResolver) ResolveTenant ¶
ResolveTenant implements TenantResolver.
type PathResolver ¶ added in v0.34.0
PathResolver extracts the tenant identifier from a path segment.
Segment is 1-indexed (segment 1 is the first non-empty path part after the leading slash). When Prefix is non-empty, the resolver only attempts extraction for requests whose path equals Prefix exactly or starts with "Prefix/" — non-matching paths return ErrTenantResolutionFailed so the composite chain (if any) can fall through to other resolvers.
func (*PathResolver) ResolveTenant ¶ added in v0.34.0
ResolveTenant implements TenantResolver.
type SubdomainResolver ¶
SubdomainResolver extracts the tenant identifier from the request host.
func (*SubdomainResolver) ResolveTenant ¶
ResolveTenant implements TenantResolver.
type TenantResolver ¶
type TenantResolver interface {
ResolveTenant(ctx context.Context, req *http.Request) (string, error)
}
TenantResolver resolves the tenant identifier from an incoming request.
type ValidatingResolver ¶
type ValidatingResolver struct {
Resolver TenantResolver
TenantRegex *regexp.Regexp
}
ValidatingResolver wraps any resolver with tenant ID validation.
func (*ValidatingResolver) ResolveTenant ¶
ResolveTenant implements TenantResolver with validation.