# Packages
No description provided by the author
No description provided by the author
# Functions
ChecksumFromContext extracts the hashring checksum from the provided ctx or returns false if none was found in the ctx.
NamespaceConfigTimestampFromContext extracts the snapshot timestamp for a namespace configuration from the provided context.
NewAccessController constructs a new AccessController with the options provided.
NewConsistentHashring returns a Hashring using consistent hashing with bounded loads.
NewContextWithChecksum returns a new Context that carries the hashring checksum.
NewContextWithNamespaceConfigTimestamp returns a new Context that carries the namespace config name and timestamp.
NewHealthChecker returns a new HealthChecker instance.
NewMapClientRouter creates an in-memory, map based, ClientRouter.
SubjectFromProto deserializes the protobuf subject `sub` into it's equivalent Subject structure.
SubjectFromString parses the string s and returns a Subject - either a SubjectSet or an explicit SubjectID.
SubjectSetFromString takes a string `s` and attempts to decode it into a SubjectSet (namespace:object#relation).
WithNamespaceManager sets the AccessController's NamespaceManager.
WithNodeConfigs sets the AccessController's NodeConfigs.
WithStore sets the AccessController's RelationTupleStore.
# Constants
AddNamespace is the operation when a new namespace config is added.
IntersectionNode represents a SubjectTree node that joins it's children via an intersection.
LeafNode represents a SubjectTree node with no children.
NamespaceAlreadyExists is an error that occurrs when attempting to add a namespace config for a namespace that has been previously added.
NamespaceDoesntExist is an error that occurrs when attempting to fetch a namespace config for a namespace that doesn't exist.
NamespaceRelationUndefined is an error that occurrs when referencing an undefined relation in a namespace config.
NamespaceUpdateFailedPrecondition is an error that occurrs when an update to a namespace config fails precondition checks.
UnionNode represents a SubjectTree node that joins it's children via a union.
UpdateNamespace is the operation when a namespace config is updated.
# Variables
ErrClientNotFound is an error that occurrs if a ClientRouter.GetClient call is invoked with a nodeID that does not exist.
ErrInvalidSubjectSetString is an error that is returned if a malformed SubjectSet string is encountered.
ErrNamespaceDoesntExist is an error that occurrs when attempting to fetch a namespace config for a namespace that doesn't exist.
ErrNoLocalNamespacesDefined is an error that occurrs when attempting to fetch a namespace config and no local namespaces have been defined.
# Structs
No description provided by the author
ConsistentHashring implements a Hashring using consistent hashing with bounded loads.
HealthChecker implements the gRPC Health Checking Protocol.
No description provided by the author
NamespaceChangelogEntry represents an entry in the namespace configurations changelog.
NamespaceConfigError represents an error type that is surfaced when Namespace Config errors are encountered.
NamespaceConfigSnapshot represents a namespace configuration at a specific point in time.
NodeConfigs represent the configurations for an individual node withn a gossip cluster.
NodeMetadata is local data specific to this node within the cluster.
Object represents a namespace and object id.
No description provided by the author
SubjectID is a unique identifier of some subject.
SubjectSet defines the set of all subjects that have a specific relation to an object within some namespace.
SubjectTree represents a tree datastructure that stores relationships between Subjects.
# Interfaces
ChangelogIterator is used to iterate over namespace changelog entries as they are yielded.
ClientRouter defines an interface to manage RPC clients for nodes/peers within a cluster.
Hashring defines an interface to manage a consistent hashring.
HashringMember represents an interface that types must implement to be a member of a Hashring.
NamespaceManager defines an interface to manage/administer namespace configs.
PeerNamespaceConfigStore defines the interface to store the namespace config snapshots for each peer within a cluster.
RelationTupleStore defines an interface to manage the storage of relation tuples.
No description provided by the author
# Type aliases
No description provided by the author
NamespaceConfigErrorType defines an enumeration over various types of Namespace Config errors that can occur.
NamespaceOperation represents the operations that can be taken on namespace configs.
NodeType represents a specific type of node within a SubjectTree structure.