Versions in this module Expand all Collapse all v0 v0.1.1 Jul 14, 2026 Changes in this version + var ErrNoList = errors.New("tenancy: Each requires the List option") + var ErrNoTenant = errors.New("tenancy: no tenant in context") + var ErrPoolCacheClosed = errors.New("tenancy: pool cache is closed") + func EnsureSameTenant(sessionTenant func(*http.Request) (string, bool)) func(http.Handler) http.Handler + func From(ctx context.Context) (string, bool) + func With(ctx context.Context, tenant string) context.Context + func Without(ctx context.Context) context.Context + type Finder func(*http.Request) (string, error) + func Header(name string) Finder + func PathPrefix() Finder + func Subdomain(base string) Finder + type Mode int + const ModeDatabase + const ModeRow + const ModeSchema + func (m Mode) String() string + type Option func(*Tenancy) error + func Column(name string) Option + func Connect(fn func(context.Context, string) (*sql.DB, error)) Option + func Landlord(db *sql.DB) Option + func List(fn func(context.Context) ([]string, error)) Option + func Shared(db *sql.DB) Option + type PoolCache struct + func NewPoolCache(open func(context.Context, string) (*sql.DB, error)) *PoolCache + func (p *PoolCache) Close() error + func (p *PoolCache) Connect(ctx context.Context, tenant string) (*sql.DB, error) + func (p *PoolCache) Len() int + type Tenancy struct + func New(mode Mode, dialect string, opts ...Option) (*Tenancy, error) + func (t *Tenancy) DB() *playsql.DB + func (t *Tenancy) Each(ctx context.Context, fn func(context.Context) error) error + func (t *Tenancy) Middleware(find Finder) func(http.Handler) http.Handler + func (t *Tenancy) Mode() Mode + func (t *Tenancy) Scope() playsql.Scope + func (t *Tenancy) Tenants(ctx context.Context) ([]string, error)