Documentation
¶
Overview ¶
Package resolver extracts tenant identifiers from HTTP headers, cookies, query parameters, domains, and token claims.
Index ¶
Constants ¶
const (
// DefaultCookieName is the default cookie used for tenant resolution.
DefaultCookieName = "tenant_id"
)
const (
// DefaultHeaderName is the default request header used for tenant resolution.
DefaultHeaderName = "x-tenant-id"
)
const (
// DefaultQueryParam is the default query parameter used for tenant resolution.
DefaultQueryParam = "tenant_id"
)
Variables ¶
var ( // ErrNoTenant reports that no resolver contributor found a tenant identifier. ErrNoTenant = gotenancy.ErrNoTenant // ErrNilRequest reports a nil HTTP request. ErrNilRequest = errors.New("gotenancy/resolver: nil request") // ErrInvalidHost reports a host value that cannot be used for domain resolution. ErrInvalidHost = errors.New("gotenancy/resolver: invalid host") // ErrNilClaimExtractor reports a nil token claim extractor. ErrNilClaimExtractor = errors.New("gotenancy/resolver: nil claim extractor") )
Functions ¶
This section is empty.
Types ¶
type ClaimExtractor ¶
ClaimExtractor extracts a tenant claim from a request after authentication.
type Composite ¶
type Composite struct {
// contains filtered or unexported fields
}
Composite resolves tenants by trying contributors in order.
func NewComposite ¶
NewComposite creates a priority-ordered resolver.
type CookieContrib ¶
type CookieContrib struct {
// contains filtered or unexported fields
}
CookieContrib resolves tenant IDs from an HTTP cookie.
func NewCookieContrib ¶
func NewCookieContrib(name string, strategy types.TenantIDStrategy) CookieContrib
NewCookieContrib creates a cookie-based resolver contributor.
type DomainContrib ¶
type DomainContrib struct {
// contains filtered or unexported fields
}
DomainContrib resolves tenant IDs from single-label subdomains.
func NewDomainContrib ¶
func NewDomainContrib(baseDomain string, strategy types.TenantIDStrategy) DomainContrib
NewDomainContrib creates a subdomain-based resolver contributor.
type HeaderContrib ¶
type HeaderContrib struct {
// contains filtered or unexported fields
}
HeaderContrib resolves tenant IDs from an HTTP header.
func NewHeaderContrib ¶
func NewHeaderContrib(name string, strategy types.TenantIDStrategy) HeaderContrib
NewHeaderContrib creates a header-based resolver contributor.
type QueryContrib ¶
type QueryContrib struct {
// contains filtered or unexported fields
}
QueryContrib resolves tenant IDs from a URL query parameter.
func NewQueryContrib ¶
func NewQueryContrib(name string, strategy types.TenantIDStrategy) QueryContrib
NewQueryContrib creates a query-based resolver contributor.
type TokenClaimContrib ¶
type TokenClaimContrib struct {
// contains filtered or unexported fields
}
TokenClaimContrib resolves tenant IDs from a caller-provided token claim extractor.
func NewTokenClaimContrib ¶
func NewTokenClaimContrib(extractor ClaimExtractor, strategy types.TenantIDStrategy) TokenClaimContrib
NewTokenClaimContrib creates a token-claim resolver contributor.