package iam import ( "context" "atlas9.dev/c/core" ) type Grant struct { PrincipalID core.ID RoleID RoleID } type GrantStore interface { Add(ctx context.Context, g Grant) error Remove(ctx context.Context, g Grant) error List(ctx context.Context, principalID core.ID, page core.PageReq) (core.Page[Grant], error) ListAll(ctx context.Context, page core.PageReq) (core.Page[Grant], error) ListByNamespace(ctx context.Context, namespace string, page core.PageReq) (core.Page[Grant], error) }