memory

package
v1.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 8, 2026 License: Apache-2.0 Imports: 15 Imported by: 2

Documentation

Overview

Package memory provides an in-memory implementation of the Warden composite store. It is intended for testing and development.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Store

type Store struct {
	// contains filtered or unexported fields
}

Store is a thread-safe in-memory store for all Warden entities.

func New

func New() *Store

New creates a new in-memory store.

func (*Store) AttachPermission

func (s *Store) AttachPermission(_ context.Context, tenantID string, roleID id.RoleID, ref permission.Ref) error

func (*Store) CheckDirectRelation

func (s *Store) CheckDirectRelation(_ context.Context, tenantID string, namespacePaths []string, objectType, objectID, rel, subjectType, subjectID string) (bool, error)

func (*Store) Close

func (s *Store) Close() error

Close is a no-op for the memory store.

func (*Store) CountAssignments

func (s *Store) CountAssignments(_ context.Context, filter *assignment.ListFilter) (int64, error)

func (*Store) CountCheckLogs

func (s *Store) CountCheckLogs(_ context.Context, filter *checklog.QueryFilter) (int64, error)

func (*Store) CountPermissions

func (s *Store) CountPermissions(_ context.Context, filter *permission.ListFilter) (int64, error)

func (*Store) CountPolicies

func (s *Store) CountPolicies(_ context.Context, filter *policy.ListFilter) (int64, error)

func (*Store) CountRelations

func (s *Store) CountRelations(_ context.Context, filter *relation.ListFilter) (int64, error)

func (*Store) CountResourceTypes

func (s *Store) CountResourceTypes(_ context.Context, filter *resourcetype.ListFilter) (int64, error)

func (*Store) CountRoles

func (s *Store) CountRoles(_ context.Context, filter *role.ListFilter) (int64, error)

func (*Store) CreateAssignment

func (s *Store) CreateAssignment(_ context.Context, a *assignment.Assignment) error

func (*Store) CreateCheckLog

func (s *Store) CreateCheckLog(_ context.Context, e *checklog.Entry) error

func (*Store) CreatePermission

func (s *Store) CreatePermission(_ context.Context, p *permission.Permission) error

func (*Store) CreatePolicy

func (s *Store) CreatePolicy(_ context.Context, p *policy.Policy) error

func (*Store) CreateRelation

func (s *Store) CreateRelation(_ context.Context, t *relation.Tuple) error

func (*Store) CreateResourceType

func (s *Store) CreateResourceType(_ context.Context, rt *resourcetype.ResourceType) error

func (*Store) CreateRole

func (s *Store) CreateRole(_ context.Context, r *role.Role) error

func (*Store) DeleteAssignment

func (s *Store) DeleteAssignment(_ context.Context, tenantID string, assID id.AssignmentID) error

func (*Store) DeleteAssignmentsByRole

func (s *Store) DeleteAssignmentsByRole(_ context.Context, tenantID string, roleID id.RoleID) error

func (*Store) DeleteAssignmentsBySubject

func (s *Store) DeleteAssignmentsBySubject(_ context.Context, tenantID, subjectKind, subjectID string) error

func (*Store) DeleteAssignmentsByTenant

func (s *Store) DeleteAssignmentsByTenant(_ context.Context, tenantID string) error

func (*Store) DeleteCheckLogsBySubject added in v1.7.0

func (s *Store) DeleteCheckLogsBySubject(_ context.Context, tenantID, subjectKind, subjectID string) (int64, error)

func (*Store) DeleteCheckLogsByTenant

func (s *Store) DeleteCheckLogsByTenant(_ context.Context, tenantID string) error

func (*Store) DeleteExpiredAssignments

func (s *Store) DeleteExpiredAssignments(_ context.Context, now time.Time) (int64, error)

func (*Store) DeleteExpiredAssignmentsForTenant added in v1.7.0

func (s *Store) DeleteExpiredAssignmentsForTenant(_ context.Context, tenantID string, now time.Time) (int64, error)

func (*Store) DeletePermission

func (s *Store) DeletePermission(_ context.Context, tenantID string, permID id.PermissionID) error

func (*Store) DeletePermissionsByTenant

func (s *Store) DeletePermissionsByTenant(_ context.Context, tenantID string) error

func (*Store) DeletePoliciesByTenant

func (s *Store) DeletePoliciesByTenant(_ context.Context, tenantID string) error

func (*Store) DeletePolicy

func (s *Store) DeletePolicy(_ context.Context, tenantID string, polID id.PolicyID) error

func (*Store) DeleteRelation

func (s *Store) DeleteRelation(_ context.Context, tenantID string, relID id.RelationID) error

func (*Store) DeleteRelationTuple

func (s *Store) DeleteRelationTuple(_ context.Context, tenantID, namespacePath, objectType, objectID, rel, subjectType, subjectID, subjectRelation string) error

func (*Store) DeleteRelationsByObject

func (s *Store) DeleteRelationsByObject(_ context.Context, tenantID, objectType, objectID string) error

func (*Store) DeleteRelationsBySubject

func (s *Store) DeleteRelationsBySubject(_ context.Context, tenantID, subjectType, subjectID string) error

func (*Store) DeleteRelationsByTenant

func (s *Store) DeleteRelationsByTenant(_ context.Context, tenantID string) error

func (*Store) DeleteResourceType

func (s *Store) DeleteResourceType(_ context.Context, tenantID string, rtID id.ResourceTypeID) error

func (*Store) DeleteResourceTypesByTenant

func (s *Store) DeleteResourceTypesByTenant(_ context.Context, tenantID string) error

func (*Store) DeleteRole

func (s *Store) DeleteRole(_ context.Context, tenantID string, roleID id.RoleID) error

func (*Store) DeleteRolesByTenant

func (s *Store) DeleteRolesByTenant(_ context.Context, tenantID string) error

func (*Store) DetachPermission

func (s *Store) DetachPermission(_ context.Context, tenantID string, roleID id.RoleID, ref permission.Ref) error

func (*Store) GetAssignment

func (s *Store) GetAssignment(_ context.Context, tenantID string, assID id.AssignmentID) (*assignment.Assignment, error)

func (*Store) GetCheckLog

func (s *Store) GetCheckLog(_ context.Context, tenantID string, logID id.CheckLogID) (*checklog.Entry, error)

func (*Store) GetPermission

func (s *Store) GetPermission(_ context.Context, tenantID string, permID id.PermissionID) (*permission.Permission, error)

func (*Store) GetPermissionByName

func (s *Store) GetPermissionByName(_ context.Context, tenantID, namespacePath, name string) (*permission.Permission, error)

func (*Store) GetPolicy

func (s *Store) GetPolicy(_ context.Context, tenantID string, polID id.PolicyID) (*policy.Policy, error)

func (*Store) GetPolicyByName

func (s *Store) GetPolicyByName(_ context.Context, tenantID, namespacePath, name string) (*policy.Policy, error)

func (*Store) GetRelation added in v1.7.0

func (s *Store) GetRelation(_ context.Context, tenantID string, relID id.RelationID) (*relation.Tuple, error)

func (*Store) GetResourceType

func (s *Store) GetResourceType(_ context.Context, tenantID string, rtID id.ResourceTypeID) (*resourcetype.ResourceType, error)

func (*Store) GetResourceTypeByName

func (s *Store) GetResourceTypeByName(_ context.Context, tenantID, namespacePath, name string) (*resourcetype.ResourceType, error)

func (*Store) GetRole

func (s *Store) GetRole(_ context.Context, tenantID string, roleID id.RoleID) (*role.Role, error)

func (*Store) GetRoleBySlug

func (s *Store) GetRoleBySlug(_ context.Context, tenantID, namespacePath, slug string) (*role.Role, error)

func (*Store) GetRoles added in v1.7.0

func (s *Store) GetRoles(_ context.Context, tenantID string, roleIDs []id.RoleID) ([]*role.Role, error)

func (*Store) ListActivePolicies

func (s *Store) ListActivePolicies(_ context.Context, tenantID string, namespacePaths []string) ([]*policy.Policy, error)

func (*Store) ListAssignments

func (s *Store) ListAssignments(_ context.Context, filter *assignment.ListFilter) ([]*assignment.Assignment, error)

func (*Store) ListCheckLogs

func (s *Store) ListCheckLogs(_ context.Context, filter *checklog.QueryFilter) ([]*checklog.Entry, error)

func (*Store) ListChildRoles

func (s *Store) ListChildRoles(_ context.Context, tenantID, parentSlug string) ([]*role.Role, error)

func (*Store) ListExpiringAssignments added in v1.7.0

func (s *Store) ListExpiringAssignments(_ context.Context, tenantID string, before time.Time, limit int) ([]*assignment.Assignment, error)

func (*Store) ListPermissions

func (s *Store) ListPermissions(_ context.Context, filter *permission.ListFilter) ([]*permission.Permission, error)

func (*Store) ListPermissionsByRole

func (s *Store) ListPermissionsByRole(ctx context.Context, tenantID string, roleID id.RoleID) ([]*permission.Permission, error)

func (*Store) ListPermissionsBySubject

func (s *Store) ListPermissionsBySubject(_ context.Context, tenantID, subjectKind, subjectID string) ([]*permission.Permission, error)

func (*Store) ListPolicies

func (s *Store) ListPolicies(_ context.Context, filter *policy.ListFilter) ([]*policy.Policy, error)

func (*Store) ListRelationObjects

func (s *Store) ListRelationObjects(_ context.Context, tenantID, namespacePath, subjectType, subjectID, rel string, limit int) ([]*relation.Tuple, error)

func (*Store) ListRelationSubjects

func (s *Store) ListRelationSubjects(_ context.Context, tenantID string, namespacePaths []string, objectType, objectID, rel string, limit int) ([]*relation.Tuple, error)

func (*Store) ListRelations

func (s *Store) ListRelations(_ context.Context, filter *relation.ListFilter) ([]*relation.Tuple, error)

func (*Store) ListResourceTypes

func (s *Store) ListResourceTypes(_ context.Context, filter *resourcetype.ListFilter) ([]*resourcetype.ResourceType, error)

func (*Store) ListRolePermissions

func (s *Store) ListRolePermissions(_ context.Context, tenantID string, roleID id.RoleID) ([]*permission.Permission, error)

func (*Store) ListRolePermissionsForRoles added in v1.7.0

func (s *Store) ListRolePermissionsForRoles(_ context.Context, tenantID string, roleIDs []id.RoleID) (map[id.RoleID][]*permission.Permission, error)

func (*Store) ListRoles

func (s *Store) ListRoles(_ context.Context, filter *role.ListFilter) ([]*role.Role, error)

func (*Store) ListRolesForSubject

func (s *Store) ListRolesForSubject(_ context.Context, tenantID string, namespacePaths []string, subjectKind, subjectID string) ([]id.RoleID, error)

func (*Store) ListRolesForSubjectOnResource

func (s *Store) ListRolesForSubjectOnResource(_ context.Context, tenantID string, namespacePaths []string, subjectKind, subjectID, resourceType, resourceID string) ([]id.RoleID, error)

func (*Store) ListSubjectsForRole

func (s *Store) ListSubjectsForRole(_ context.Context, tenantID string, roleID id.RoleID) ([]*assignment.Assignment, error)

func (*Store) Migrate

func (s *Store) Migrate(_ context.Context) error

Migrate is a no-op for the memory store.

func (*Store) Ping

func (s *Store) Ping(_ context.Context) error

Ping is a no-op for the memory store.

func (*Store) PurgeCheckLogs

func (s *Store) PurgeCheckLogs(_ context.Context, before time.Time) (int64, error)

func (*Store) PurgeCheckLogsForTenant added in v1.7.0

func (s *Store) PurgeCheckLogsForTenant(_ context.Context, tenantID string, before time.Time) (int64, error)

func (*Store) SetPolicyVersion

func (s *Store) SetPolicyVersion(_ context.Context, tenantID string, polID id.PolicyID, version int) error

func (*Store) SetRolePermissions

func (s *Store) SetRolePermissions(_ context.Context, tenantID string, roleID id.RoleID, refs []permission.Ref) error

func (*Store) UpdatePermission

func (s *Store) UpdatePermission(_ context.Context, p *permission.Permission) error

func (*Store) UpdatePolicy

func (s *Store) UpdatePolicy(_ context.Context, p *policy.Policy) error

func (*Store) UpdatePolicyIfVersion added in v1.7.0

func (s *Store) UpdatePolicyIfVersion(_ context.Context, p *policy.Policy, expected int) error

UpdatePolicyIfVersion writes p as UpdatePolicy does, only if the stored policy is at version expected. The lookup, the comparison and the write all happen under one hold of s.mu, so two callers holding the same version cannot both win.

func (*Store) UpdateResourceType

func (s *Store) UpdateResourceType(_ context.Context, rt *resourcetype.ResourceType) error

func (*Store) UpdateRole

func (s *Store) UpdateRole(_ context.Context, r *role.Role) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL