Documentation
¶
Overview ¶
Package valkey distributes monotonic policy revision invalidations through Valkey without relying on lossy pub/sub delivery for correctness.
Index ¶
- Constants
- Variables
- type Invalidator
- func (invalidator *Invalidator) Publish(ctx context.Context, revision authorization.Revision) (bool, error)
- func (invalidator *Invalidator) Revision(ctx context.Context) (authorization.Revision, error)
- func (invalidator *Invalidator) Watch(ctx context.Context, after authorization.Revision, ...) error
- type Options
Constants ¶
View Source
const ( DefaultPrefix = "authorization" DefaultPollInterval = 30 * time.Second )
Variables ¶
View Source
var ( ErrNilClient = errors.New("authorization valkey client is nil") ErrInvalidPrefix = errors.New("authorization valkey prefix is invalid") ErrInvalidPollInterval = errors.New("authorization valkey poll interval is invalid") ErrInvalidRevision = errors.New("authorization valkey revision is invalid") ErrInvalidResponse = errors.New("authorization valkey response is invalid") ErrNilHandler = errors.New("authorization valkey handler is nil") )
Functions ¶
This section is empty.
Types ¶
type Invalidator ¶
type Invalidator struct {
// contains filtered or unexported fields
}
func (*Invalidator) Publish ¶
func (invalidator *Invalidator) Publish( ctx context.Context, revision authorization.Revision, ) (bool, error)
Publish advances the durable invalidation revision and publishes a wakeup atomically. It returns false when the same or a newer revision already exists.
func (*Invalidator) Revision ¶
func (invalidator *Invalidator) Revision( ctx context.Context, ) (authorization.Revision, error)
Revision reads the durable invalidation revision. A missing key means no policy has been published through this invalidator yet.
func (*Invalidator) Watch ¶
func (invalidator *Invalidator) Watch( ctx context.Context, after authorization.Revision, handler func(authorization.Revision) error, ) error
Watch observes newer revisions. Pub/sub only wakes the watcher; every notification is verified against the durable key, and periodic polling continues if pub/sub disconnects or drops messages.
Click to show internal directories.
Click to hide internal directories.