Documentation
¶
Overview ¶
Package internal implements the workflow-plugin-authz plugin, providing Casbin-based RBAC authorization and Permit.io authorization as modules and pipeline steps.
Index ¶
- Variables
- func GetPermitClient(name string) (*permitClient, bool)
- func NewAuthzPlugin() sdk.PluginProvider
- func RegisterAuthzProvider(name string, provider AuthzProvider)
- func RegisterModule(m *CasbinModule)
- func RegisterPermitClient(name string, c *permitClient)
- func UnregisterPermitClient(name string)
- type AssignmentFilter
- type AttributeCheck
- type AttributeCheckResult
- type AttributeCondition
- type AttributePolicy
- type AttributePolicyFilter
- type AttributePolicyProvider
- type AuthorizationDecisionInput
- type AuthorizationDecisionOutput
- type AuthzCapability
- type AuthzOperation
- type AuthzProvider
- type CapabilityDescriptor
- type CapabilityRequirement
- type CasbinModule
- func (m *CasbinModule) AddGroupingPolicy(rule []string) (bool, error)
- func (m *CasbinModule) AddPolicy(rule []string) (bool, error)
- func (m *CasbinModule) AssignRole(ctx context.Context, assignment SubjectRoleAssignment) error
- func (m *CasbinModule) Capabilities() []AuthzCapability
- func (m *CasbinModule) CapabilityDescriptors() []CapabilityDescriptor
- func (m *CasbinModule) CheckAttributes(ctx context.Context, check AttributeCheck) (AttributeCheckResult, error)
- func (m *CasbinModule) CheckRelation(ctx context.Context, check RelationCheck) (RelationCheckResult, error)
- func (m *CasbinModule) CheckScope(ctx context.Context, check ScopeCheck) (ScopeCheckResult, error)
- func (m *CasbinModule) DeclareAttributes(ctx context.Context, attrs []*contracts.AttributeDeclaration) error
- func (m *CasbinModule) DeclareScopes(ctx context.Context, scopes []*contracts.ScopeDeclaration) error
- func (m *CasbinModule) Enforce(sub, obj, act string, extra ...string) (bool, error)
- func (m *CasbinModule) Init() error
- func (m *CasbinModule) InvokeMethod(method string, input map[string]any) (map[string]any, error)
- func (m *CasbinModule) ListAssignments(ctx context.Context, filter AssignmentFilter) ([]SubjectRoleAssignment, error)
- func (m *CasbinModule) ListAttributePolicies(ctx context.Context, filter AttributePolicyFilter) ([]AttributePolicy, error)
- func (m *CasbinModule) ListRelationTuples(_ context.Context, filter RelationTupleFilter) ([]RelationTuple, error)
- func (m *CasbinModule) Name() string
- func (m *CasbinModule) RemoveAssignment(ctx context.Context, assignment SubjectRoleAssignment) error
- func (m *CasbinModule) RemoveAttributePolicy(ctx context.Context, filter AttributePolicyFilter) error
- func (m *CasbinModule) RemoveGroupingPolicy(rule []string) (bool, error)
- func (m *CasbinModule) RemovePolicy(rule []string) (bool, error)
- func (m *CasbinModule) RemoveRelationTuple(_ context.Context, tuple RelationTuple) error
- func (m *CasbinModule) RequireCapabilities(requirements []CapabilityRequirement) error
- func (m *CasbinModule) Start(_ context.Context) error
- func (m *CasbinModule) Stop(_ context.Context) error
- func (m *CasbinModule) SupportsCapability(cap AuthzCapability) bool
- func (m *CasbinModule) UpsertAttributePolicy(ctx context.Context, policy AttributePolicy) error
- func (m *CasbinModule) UpsertRelationTuple(_ context.Context, tuple RelationTuple) error
- func (m *CasbinModule) UpsertRole(ctx context.Context, grant RoleScopeGrant) error
- type GORMFilter
- type KetoModule
- func (m *KetoModule) AssignRole(ctx context.Context, assignment SubjectRoleAssignment) error
- func (m *KetoModule) Capabilities() []AuthzCapability
- func (m *KetoModule) CapabilityDescriptors() []CapabilityDescriptor
- func (m *KetoModule) CheckRelation(ctx context.Context, check RelationCheck) (RelationCheckResult, error)
- func (m *KetoModule) CheckScope(ctx context.Context, check ScopeCheck) (ScopeCheckResult, error)
- func (m *KetoModule) DeclareScopes(ctx context.Context, scopes []*contracts.ScopeDeclaration) error
- func (m *KetoModule) Init() error
- func (m *KetoModule) InvokeMethod(method string, input map[string]any) (map[string]any, error)
- func (m *KetoModule) ListAssignments(ctx context.Context, filter AssignmentFilter) ([]SubjectRoleAssignment, error)
- func (m *KetoModule) ListRelationTuples(ctx context.Context, filter RelationTupleFilter) ([]RelationTuple, error)
- func (m *KetoModule) Name() string
- func (m *KetoModule) RemoveAssignment(ctx context.Context, assignment SubjectRoleAssignment) error
- func (m *KetoModule) RemoveRelationTuple(ctx context.Context, tuple RelationTuple) error
- func (m *KetoModule) RequireCapabilities(requirements []CapabilityRequirement) error
- func (m *KetoModule) Start(_ context.Context) error
- func (m *KetoModule) Stop(_ context.Context) error
- func (m *KetoModule) SupportsCapability(cap AuthzCapability) bool
- func (m *KetoModule) UpsertRelationTuple(ctx context.Context, tuple RelationTuple) error
- func (m *KetoModule) UpsertRole(ctx context.Context, grant RoleScopeGrant) error
- type PermitModule
- func (m *PermitModule) AssignRole(ctx context.Context, assignment SubjectRoleAssignment) error
- func (m *PermitModule) Capabilities() []AuthzCapability
- func (m *PermitModule) CapabilityDescriptors() []CapabilityDescriptor
- func (m *PermitModule) CheckAttributes(_ context.Context, check AttributeCheck) (AttributeCheckResult, error)
- func (m *PermitModule) CheckRelation(_ context.Context, check RelationCheck) (RelationCheckResult, error)
- func (m *PermitModule) CheckScope(ctx context.Context, check ScopeCheck) (ScopeCheckResult, error)
- func (m *PermitModule) DeclareAttributes(context.Context, []*contracts.AttributeDeclaration) error
- func (m *PermitModule) DeclareScopes(ctx context.Context, scopes []*contracts.ScopeDeclaration) error
- func (m *PermitModule) Init() error
- func (m *PermitModule) InvokeMethod(method string, input map[string]any) (map[string]any, error)
- func (m *PermitModule) ListAssignments(ctx context.Context, filter AssignmentFilter) ([]SubjectRoleAssignment, error)
- func (m *PermitModule) ListAttributePolicies(context.Context, AttributePolicyFilter) ([]AttributePolicy, error)
- func (m *PermitModule) ListRelationTuples(context.Context, RelationTupleFilter) ([]RelationTuple, error)
- func (m *PermitModule) Name() string
- func (m *PermitModule) RemoveAssignment(ctx context.Context, assignment SubjectRoleAssignment) error
- func (m *PermitModule) RemoveAttributePolicy(context.Context, AttributePolicyFilter) error
- func (m *PermitModule) RemoveRelationTuple(context.Context, RelationTuple) error
- func (m *PermitModule) RequireCapabilities(requirements []CapabilityRequirement) error
- func (m *PermitModule) Start(_ context.Context) error
- func (m *PermitModule) Stop(_ context.Context) error
- func (m *PermitModule) SupportsCapability(cap AuthzCapability) bool
- func (m *PermitModule) UpsertAttributePolicy(context.Context, AttributePolicy) error
- func (m *PermitModule) UpsertRelationTuple(context.Context, RelationTuple) error
- func (m *PermitModule) UpsertRole(ctx context.Context, grant RoleScopeGrant) error
- type RelationCheck
- type RelationCheckResult
- type RelationTuple
- type RelationTupleFilter
- type RelationshipProvider
- type RoleScopeGrant
- type ScopeCheck
- type ScopeCheckResult
- type ScopeRoleProvider
- type StepExecutor
- func NewAddPolicyStep(name string, config map[string]any) (StepExecutor, error)
- func NewAuthzABACAddPolicyStep(name string, config map[string]any) (StepExecutor, error)
- func NewAuthzABACCheckStep(name string, config map[string]any) (StepExecutor, error)
- func NewAuthzACLCheckStep(name string, config map[string]any) (StepExecutor, error)
- func NewAuthzACLGrantStep(name string, config map[string]any) (StepExecutor, error)
- func NewAuthzACLListStep(name string, config map[string]any) (StepExecutor, error)
- func NewAuthzACLRevokeStep(name string, config map[string]any) (StepExecutor, error)
- func NewAuthzCapabilitiesStep(name string, config map[string]any) (StepExecutor, error)
- func NewAuthzReBACAddRelationStep(name string, config map[string]any) (StepExecutor, error)
- func NewAuthzReBACCheckStep(name string, config map[string]any) (StepExecutor, error)
- func NewAuthzReBACListRelationsStep(name string, config map[string]any) (StepExecutor, error)
- func NewAuthzReBACRemoveRelationStep(name string, config map[string]any) (StepExecutor, error)
- func NewCasbinCheckStep(name string, config map[string]any) (StepExecutor, error)
- func NewPermitCheckBulkStep(name string, config map[string]any) (StepExecutor, error)
- func NewPermitCheckStep(name string, config map[string]any) (StepExecutor, error)
- func NewPermitRoleAssignStep(name string, config map[string]any) (StepExecutor, error)
- func NewPermitRoleUnassignStep(name string, config map[string]any) (StepExecutor, error)
- func NewPermitUserSyncStep(name string, config map[string]any) (StepExecutor, error)
- func NewRemovePolicyStep(name string, config map[string]any) (StepExecutor, error)
- func NewRoleAssignStep(name string, config map[string]any) (StepExecutor, error)
- type SubjectRoleAssignment
Constants ¶
This section is empty.
Variables ¶
var Version = "0.0.0"
Version is set at build time via -ldflags "-X github.com/GoCodeAlone/workflow-plugin-authz/internal.Version=X.Y.Z"
Functions ¶
func GetPermitClient ¶
GetPermitClient retrieves a permitClient by module name.
func NewAuthzPlugin ¶
func NewAuthzPlugin() sdk.PluginProvider
NewAuthzPlugin returns a new authzPlugin instance.
func RegisterAuthzProvider ¶ added in v0.5.7
func RegisterAuthzProvider(name string, provider AuthzProvider)
func RegisterModule ¶
func RegisterModule(m *CasbinModule)
RegisterModule adds a CasbinModule to the global registry. It is called by CreateModule so that CreateStep can find the enforcer by name.
func RegisterPermitClient ¶
func RegisterPermitClient(name string, c *permitClient)
RegisterPermitClient adds a permitClient to the global permit registry.
func UnregisterPermitClient ¶
func UnregisterPermitClient(name string)
UnregisterPermitClient removes a permitClient from the global permit registry.
Types ¶
type AssignmentFilter ¶ added in v0.5.7
type AttributeCheck ¶ added in v0.5.7
type AttributeCheckResult ¶ added in v0.5.7
type AttributeCondition ¶ added in v0.5.7
type AttributePolicy ¶ added in v0.5.7
type AttributePolicyFilter ¶ added in v0.5.7
type AttributePolicyProvider ¶ added in v0.5.7
type AttributePolicyProvider interface {
Name() string
DeclareAttributes(context.Context, []*contracts.AttributeDeclaration) error
UpsertAttributePolicy(context.Context, AttributePolicy) error
ListAttributePolicies(context.Context, AttributePolicyFilter) ([]AttributePolicy, error)
RemoveAttributePolicy(context.Context, AttributePolicyFilter) error
CheckAttributes(context.Context, AttributeCheck) (AttributeCheckResult, error)
}
type AuthorizationDecisionInput ¶ added in v0.5.7
type AuthorizationDecisionOutput ¶ added in v0.5.7
type AuthorizationDecisionOutput struct {
Allowed bool
Mode AuthzCapability
Subject string
Context string
Reason string
Explain string
}
func DecideAuthorization ¶ added in v0.5.7
func DecideAuthorization(ctx context.Context, provider any, input AuthorizationDecisionInput) (AuthorizationDecisionOutput, error)
type AuthzCapability ¶
type AuthzCapability string
AuthzCapability represents an authorization model supported by a provider.
const ( CapabilityRBAC AuthzCapability = "rbac" // Role-Based Access Control CapabilityABAC AuthzCapability = "abac" // Attribute-Based Access Control CapabilityReBAC AuthzCapability = "rebac" // Relationship-Based Access Control CapabilityACL AuthzCapability = "acl" // Access Control Lists )
type AuthzOperation ¶ added in v0.5.7
type AuthzOperation string
AuthzOperation is a provider-neutral operation that can be performed for an authorization mode. Operations are intentionally narrow so providers do not advertise management surfaces they have not implemented.
const ( OperationCheck AuthzOperation = "check" OperationManageRoles AuthzOperation = "manage_roles" OperationManagePolicies AuthzOperation = "manage_policies" OperationManageRelations AuthzOperation = "manage_relations" OperationList AuthzOperation = "list" )
type AuthzProvider ¶
type AuthzProvider interface {
Capabilities() []AuthzCapability
SupportsCapability(AuthzCapability) bool
CapabilityDescriptors() []CapabilityDescriptor
RequireCapabilities([]CapabilityRequirement) error
}
AuthzProvider is implemented by authorization providers to declare their supported authorization models.
type CapabilityDescriptor ¶ added in v0.5.7
type CapabilityDescriptor struct {
Mode AuthzCapability
Operations []AuthzOperation
Configured bool
Source string
Health string
UnsupportedReason string
}
CapabilityDescriptor describes a provider mode, the implemented operations, and whether the provider is healthy enough to use that mode.
type CapabilityRequirement ¶ added in v0.5.7
type CapabilityRequirement struct {
Mode AuthzCapability
Operations []AuthzOperation
}
CapabilityRequirement describes the mode and operations a consumer needs.
type CasbinModule ¶
type CasbinModule struct {
// contains filtered or unexported fields
}
CasbinModule implements sdk.ModuleInstance and holds a Casbin enforcer loaded from inline config (model text + policy rows + role assignments), a file adapter, or a GORM adapter backed by postgres/mysql/sqlite3.
func NewCasbinModuleFromConfig ¶
func NewCasbinModuleFromConfig(name string, config map[string]any) (*CasbinModule, error)
NewCasbinModuleFromConfig creates a CasbinModule from raw config. Exported for use by the public authz/ package.
func (*CasbinModule) AddGroupingPolicy ¶
func (m *CasbinModule) AddGroupingPolicy(rule []string) (bool, error)
AddGroupingPolicy adds a role mapping and saves the adapter. When the enforcer uses a FilteredAdapter, SavePolicy is skipped.
func (*CasbinModule) AddPolicy ¶
func (m *CasbinModule) AddPolicy(rule []string) (bool, error)
AddPolicy adds a policy rule and saves it to the adapter. When the enforcer uses a FilteredAdapter, SavePolicy is skipped because the incremental adapter.AddPolicy already persisted the row.
func (*CasbinModule) AssignRole ¶ added in v0.5.7
func (m *CasbinModule) AssignRole(ctx context.Context, assignment SubjectRoleAssignment) error
func (*CasbinModule) Capabilities ¶
func (m *CasbinModule) Capabilities() []AuthzCapability
Capabilities returns the authorization models supported by Casbin.
func (*CasbinModule) CapabilityDescriptors ¶ added in v0.5.7
func (m *CasbinModule) CapabilityDescriptors() []CapabilityDescriptor
CapabilityDescriptors returns Casbin authorization modes detected from the configured model and only includes operations the adapter exposes.
func (*CasbinModule) CheckAttributes ¶ added in v0.5.7
func (m *CasbinModule) CheckAttributes(ctx context.Context, check AttributeCheck) (AttributeCheckResult, error)
func (*CasbinModule) CheckRelation ¶ added in v0.5.7
func (m *CasbinModule) CheckRelation(ctx context.Context, check RelationCheck) (RelationCheckResult, error)
func (*CasbinModule) CheckScope ¶ added in v0.5.7
func (m *CasbinModule) CheckScope(ctx context.Context, check ScopeCheck) (ScopeCheckResult, error)
func (*CasbinModule) DeclareAttributes ¶ added in v0.5.7
func (m *CasbinModule) DeclareAttributes(ctx context.Context, attrs []*contracts.AttributeDeclaration) error
func (*CasbinModule) DeclareScopes ¶ added in v0.5.7
func (m *CasbinModule) DeclareScopes(ctx context.Context, scopes []*contracts.ScopeDeclaration) error
func (*CasbinModule) Enforce ¶
func (m *CasbinModule) Enforce(sub, obj, act string, extra ...string) (bool, error)
Enforce checks whether sub can perform act on obj with optional extra request dimensions. Extra fields are inserted between sub and (obj, act), so the Casbin request tuple becomes (sub, extra[0], extra[1], …, obj, act). This allows multi-tenant models such as r = sub, tenant, obj, act. It is safe for concurrent use.
func (*CasbinModule) Init ¶
func (m *CasbinModule) Init() error
Init builds the Casbin enforcer from the configured adapter.
func (*CasbinModule) InvokeMethod ¶ added in v0.5.7
func (*CasbinModule) ListAssignments ¶ added in v0.5.7
func (m *CasbinModule) ListAssignments(ctx context.Context, filter AssignmentFilter) ([]SubjectRoleAssignment, error)
func (*CasbinModule) ListAttributePolicies ¶ added in v0.5.7
func (m *CasbinModule) ListAttributePolicies(ctx context.Context, filter AttributePolicyFilter) ([]AttributePolicy, error)
func (*CasbinModule) ListRelationTuples ¶ added in v0.5.7
func (m *CasbinModule) ListRelationTuples(_ context.Context, filter RelationTupleFilter) ([]RelationTuple, error)
func (*CasbinModule) RemoveAssignment ¶ added in v0.5.7
func (m *CasbinModule) RemoveAssignment(ctx context.Context, assignment SubjectRoleAssignment) error
func (*CasbinModule) RemoveAttributePolicy ¶ added in v0.5.7
func (m *CasbinModule) RemoveAttributePolicy(ctx context.Context, filter AttributePolicyFilter) error
func (*CasbinModule) RemoveGroupingPolicy ¶
func (m *CasbinModule) RemoveGroupingPolicy(rule []string) (bool, error)
RemoveGroupingPolicy removes a role mapping and saves the adapter. When the enforcer uses a FilteredAdapter, SavePolicy is skipped.
func (*CasbinModule) RemovePolicy ¶
func (m *CasbinModule) RemovePolicy(rule []string) (bool, error)
RemovePolicy removes a policy rule and saves the adapter. When the enforcer uses a FilteredAdapter, SavePolicy is skipped.
func (*CasbinModule) RemoveRelationTuple ¶ added in v0.5.7
func (m *CasbinModule) RemoveRelationTuple(_ context.Context, tuple RelationTuple) error
func (*CasbinModule) RequireCapabilities ¶ added in v0.5.7
func (m *CasbinModule) RequireCapabilities(requirements []CapabilityRequirement) error
func (*CasbinModule) Start ¶
func (m *CasbinModule) Start(_ context.Context) error
Start begins the polling watcher goroutine if watcher.type is "polling".
func (*CasbinModule) Stop ¶
func (m *CasbinModule) Stop(_ context.Context) error
Stop shuts down the polling watcher if running.
func (*CasbinModule) SupportsCapability ¶
func (m *CasbinModule) SupportsCapability(cap AuthzCapability) bool
SupportsCapability reports whether the Casbin module supports the given authorization model.
func (*CasbinModule) UpsertAttributePolicy ¶ added in v0.5.7
func (m *CasbinModule) UpsertAttributePolicy(ctx context.Context, policy AttributePolicy) error
func (*CasbinModule) UpsertRelationTuple ¶ added in v0.5.7
func (m *CasbinModule) UpsertRelationTuple(_ context.Context, tuple RelationTuple) error
func (*CasbinModule) UpsertRole ¶ added in v0.5.7
func (m *CasbinModule) UpsertRole(ctx context.Context, grant RoleScopeGrant) error
type GORMFilter ¶
type GORMFilter struct {
// Field is the column name to filter on (one of "v0" through "v5").
Field string
// Value is the value the column must equal.
Value string
}
GORMFilter specifies a WHERE clause for tenant-scoped policy loading. It is the concrete filter type accepted by gormAdapter.LoadFilteredPolicy.
type KetoModule ¶ added in v0.5.7
type KetoModule struct {
// contains filtered or unexported fields
}
func (*KetoModule) AssignRole ¶ added in v0.5.7
func (m *KetoModule) AssignRole(ctx context.Context, assignment SubjectRoleAssignment) error
func (*KetoModule) Capabilities ¶ added in v0.5.7
func (m *KetoModule) Capabilities() []AuthzCapability
Capabilities returns authorization models represented by the Keto adapter.
func (*KetoModule) CapabilityDescriptors ¶ added in v0.5.7
func (m *KetoModule) CapabilityDescriptors() []CapabilityDescriptor
CapabilityDescriptors returns the provider-neutral operations implemented by the Keto adapter.
func (*KetoModule) CheckRelation ¶ added in v0.5.7
func (m *KetoModule) CheckRelation(ctx context.Context, check RelationCheck) (RelationCheckResult, error)
func (*KetoModule) CheckScope ¶ added in v0.5.7
func (m *KetoModule) CheckScope(ctx context.Context, check ScopeCheck) (ScopeCheckResult, error)
func (*KetoModule) DeclareScopes ¶ added in v0.5.7
func (m *KetoModule) DeclareScopes(ctx context.Context, scopes []*contracts.ScopeDeclaration) error
func (*KetoModule) Init ¶ added in v0.5.7
func (m *KetoModule) Init() error
func (*KetoModule) InvokeMethod ¶ added in v0.5.7
func (*KetoModule) ListAssignments ¶ added in v0.5.7
func (m *KetoModule) ListAssignments(ctx context.Context, filter AssignmentFilter) ([]SubjectRoleAssignment, error)
func (*KetoModule) ListRelationTuples ¶ added in v0.5.7
func (m *KetoModule) ListRelationTuples(ctx context.Context, filter RelationTupleFilter) ([]RelationTuple, error)
func (*KetoModule) Name ¶ added in v0.5.7
func (m *KetoModule) Name() string
func (*KetoModule) RemoveAssignment ¶ added in v0.5.7
func (m *KetoModule) RemoveAssignment(ctx context.Context, assignment SubjectRoleAssignment) error
func (*KetoModule) RemoveRelationTuple ¶ added in v0.5.7
func (m *KetoModule) RemoveRelationTuple(ctx context.Context, tuple RelationTuple) error
func (*KetoModule) RequireCapabilities ¶ added in v0.5.7
func (m *KetoModule) RequireCapabilities(requirements []CapabilityRequirement) error
func (*KetoModule) SupportsCapability ¶ added in v0.5.7
func (m *KetoModule) SupportsCapability(cap AuthzCapability) bool
SupportsCapability reports whether the Keto module supports the given authorization model.
func (*KetoModule) UpsertRelationTuple ¶ added in v0.5.7
func (m *KetoModule) UpsertRelationTuple(ctx context.Context, tuple RelationTuple) error
func (*KetoModule) UpsertRole ¶ added in v0.5.7
func (m *KetoModule) UpsertRole(ctx context.Context, grant RoleScopeGrant) error
type PermitModule ¶
type PermitModule struct {
// contains filtered or unexported fields
}
PermitModule implements sdk.ModuleInstance for the permit.provider module type. Scope-role APIs use the official Permit.io Go SDK. Legacy step helpers still use the old registered client until those unused step contracts are removed.
func NewPermitModuleFromConfig ¶
func NewPermitModuleFromConfig(name string, config map[string]any) (*PermitModule, error)
NewPermitModuleFromConfig creates a PermitModule from raw config. Exported for use by the public authz/ package.
func (*PermitModule) AssignRole ¶ added in v0.5.7
func (m *PermitModule) AssignRole(ctx context.Context, assignment SubjectRoleAssignment) error
func (*PermitModule) Capabilities ¶
func (m *PermitModule) Capabilities() []AuthzCapability
Capabilities returns the authorization models supported by Permit.io.
func (*PermitModule) CapabilityDescriptors ¶ added in v0.5.7
func (m *PermitModule) CapabilityDescriptors() []CapabilityDescriptor
CapabilityDescriptors returns the provider-neutral Permit operations exposed by this adapter today. More Permit-native ABAC/ReBAC operations are added by later adapter phases; they are not advertised until implemented.
func (*PermitModule) CheckAttributes ¶ added in v0.5.7
func (m *PermitModule) CheckAttributes(_ context.Context, check AttributeCheck) (AttributeCheckResult, error)
func (*PermitModule) CheckRelation ¶ added in v0.5.7
func (m *PermitModule) CheckRelation(_ context.Context, check RelationCheck) (RelationCheckResult, error)
func (*PermitModule) CheckScope ¶ added in v0.5.7
func (m *PermitModule) CheckScope(ctx context.Context, check ScopeCheck) (ScopeCheckResult, error)
func (*PermitModule) DeclareAttributes ¶ added in v0.5.7
func (m *PermitModule) DeclareAttributes(context.Context, []*contracts.AttributeDeclaration) error
func (*PermitModule) DeclareScopes ¶ added in v0.5.7
func (m *PermitModule) DeclareScopes(ctx context.Context, scopes []*contracts.ScopeDeclaration) error
func (*PermitModule) Init ¶
func (m *PermitModule) Init() error
Init creates the HTTP client and registers it in the global permit registry.
func (*PermitModule) InvokeMethod ¶ added in v0.5.7
func (*PermitModule) ListAssignments ¶ added in v0.5.7
func (m *PermitModule) ListAssignments(ctx context.Context, filter AssignmentFilter) ([]SubjectRoleAssignment, error)
func (*PermitModule) ListAttributePolicies ¶ added in v0.5.7
func (m *PermitModule) ListAttributePolicies(context.Context, AttributePolicyFilter) ([]AttributePolicy, error)
func (*PermitModule) ListRelationTuples ¶ added in v0.5.7
func (m *PermitModule) ListRelationTuples(context.Context, RelationTupleFilter) ([]RelationTuple, error)
func (*PermitModule) RemoveAssignment ¶ added in v0.5.7
func (m *PermitModule) RemoveAssignment(ctx context.Context, assignment SubjectRoleAssignment) error
func (*PermitModule) RemoveAttributePolicy ¶ added in v0.5.7
func (m *PermitModule) RemoveAttributePolicy(context.Context, AttributePolicyFilter) error
func (*PermitModule) RemoveRelationTuple ¶ added in v0.5.7
func (m *PermitModule) RemoveRelationTuple(context.Context, RelationTuple) error
func (*PermitModule) RequireCapabilities ¶ added in v0.5.7
func (m *PermitModule) RequireCapabilities(requirements []CapabilityRequirement) error
func (*PermitModule) Start ¶
func (m *PermitModule) Start(_ context.Context) error
Start is a no-op for the permit module.
func (*PermitModule) Stop ¶
func (m *PermitModule) Stop(_ context.Context) error
Stop removes the client from the registry.
func (*PermitModule) SupportsCapability ¶
func (m *PermitModule) SupportsCapability(cap AuthzCapability) bool
SupportsCapability reports whether the Permit module supports the given authorization model.
func (*PermitModule) UpsertAttributePolicy ¶ added in v0.5.7
func (m *PermitModule) UpsertAttributePolicy(context.Context, AttributePolicy) error
func (*PermitModule) UpsertRelationTuple ¶ added in v0.5.7
func (m *PermitModule) UpsertRelationTuple(context.Context, RelationTuple) error
func (*PermitModule) UpsertRole ¶ added in v0.5.7
func (m *PermitModule) UpsertRole(ctx context.Context, grant RoleScopeGrant) error
type RelationCheck ¶ added in v0.5.7
type RelationCheckResult ¶ added in v0.5.7
type RelationTuple ¶ added in v0.5.7
type RelationTupleFilter ¶ added in v0.5.7
type RelationshipProvider ¶ added in v0.5.7
type RelationshipProvider interface {
Name() string
UpsertRelationTuple(context.Context, RelationTuple) error
RemoveRelationTuple(context.Context, RelationTuple) error
ListRelationTuples(context.Context, RelationTupleFilter) ([]RelationTuple, error)
CheckRelation(context.Context, RelationCheck) (RelationCheckResult, error)
}
type RoleScopeGrant ¶ added in v0.5.7
type ScopeCheck ¶ added in v0.5.7
type ScopeCheckResult ¶ added in v0.5.7
type ScopeRoleProvider ¶ added in v0.5.7
type ScopeRoleProvider interface {
Name() string
DeclareScopes(context.Context, []*contracts.ScopeDeclaration) error
UpsertRole(context.Context, RoleScopeGrant) error
AssignRole(context.Context, SubjectRoleAssignment) error
ListAssignments(context.Context, AssignmentFilter) ([]SubjectRoleAssignment, error)
RemoveAssignment(context.Context, SubjectRoleAssignment) error
CheckScope(context.Context, ScopeCheck) (ScopeCheckResult, error)
}
type StepExecutor ¶
type StepExecutor interface {
Execute(
ctx context.Context,
triggerData map[string]any,
stepOutputs map[string]map[string]any,
current map[string]any,
metadata map[string]any,
config map[string]any,
) (*sdk.StepResult, error)
}
StepExecutor is the interface satisfied by all internal step types. It matches sdk.StepInstance.Execute but is defined here to avoid leaking the SDK type into the public authz/ package API.
func NewAddPolicyStep ¶
func NewAddPolicyStep(name string, config map[string]any) (StepExecutor, error)
NewAddPolicyStep creates a step.authz_add_policy step instance.
func NewAuthzABACAddPolicyStep ¶
func NewAuthzABACAddPolicyStep(name string, config map[string]any) (StepExecutor, error)
NewAuthzABACAddPolicyStep creates a step.authz_abac_add_policy step instance.
func NewAuthzABACCheckStep ¶
func NewAuthzABACCheckStep(name string, config map[string]any) (StepExecutor, error)
NewAuthzABACCheckStep creates a step.authz_abac_check step instance.
func NewAuthzACLCheckStep ¶
func NewAuthzACLCheckStep(name string, config map[string]any) (StepExecutor, error)
NewAuthzACLCheckStep creates a step.authz_acl_check step instance.
func NewAuthzACLGrantStep ¶
func NewAuthzACLGrantStep(name string, config map[string]any) (StepExecutor, error)
NewAuthzACLGrantStep creates a step.authz_acl_grant step instance.
func NewAuthzACLListStep ¶
func NewAuthzACLListStep(name string, config map[string]any) (StepExecutor, error)
NewAuthzACLListStep creates a step.authz_acl_list step instance.
func NewAuthzACLRevokeStep ¶
func NewAuthzACLRevokeStep(name string, config map[string]any) (StepExecutor, error)
NewAuthzACLRevokeStep creates a step.authz_acl_revoke step instance.
func NewAuthzCapabilitiesStep ¶
func NewAuthzCapabilitiesStep(name string, config map[string]any) (StepExecutor, error)
NewAuthzCapabilitiesStep creates a step.authz_capabilities step instance.
func NewAuthzReBACAddRelationStep ¶
func NewAuthzReBACAddRelationStep(name string, config map[string]any) (StepExecutor, error)
NewAuthzReBACAddRelationStep creates a step.authz_rebac_add_relation step instance.
func NewAuthzReBACCheckStep ¶
func NewAuthzReBACCheckStep(name string, config map[string]any) (StepExecutor, error)
NewAuthzReBACCheckStep creates a step.authz_rebac_check step instance.
func NewAuthzReBACListRelationsStep ¶
func NewAuthzReBACListRelationsStep(name string, config map[string]any) (StepExecutor, error)
NewAuthzReBACListRelationsStep creates a step.authz_rebac_list_relations step instance.
func NewAuthzReBACRemoveRelationStep ¶
func NewAuthzReBACRemoveRelationStep(name string, config map[string]any) (StepExecutor, error)
NewAuthzReBACRemoveRelationStep creates a step.authz_rebac_remove_relation step instance.
func NewCasbinCheckStep ¶
func NewCasbinCheckStep(name string, config map[string]any) (StepExecutor, error)
NewCasbinCheckStep creates a step.authz_check_casbin step instance.
func NewPermitCheckBulkStep ¶
func NewPermitCheckBulkStep(name string, config map[string]any) (StepExecutor, error)
NewPermitCheckBulkStep creates a step.permit_check_bulk step instance.
func NewPermitCheckStep ¶
func NewPermitCheckStep(name string, config map[string]any) (StepExecutor, error)
NewPermitCheckStep creates a step.permit_check step instance.
func NewPermitRoleAssignStep ¶
func NewPermitRoleAssignStep(name string, config map[string]any) (StepExecutor, error)
NewPermitRoleAssignStep creates a step.permit_role_assign step instance.
func NewPermitRoleUnassignStep ¶
func NewPermitRoleUnassignStep(name string, config map[string]any) (StepExecutor, error)
NewPermitRoleUnassignStep creates a step.permit_role_unassign step instance.
func NewPermitUserSyncStep ¶
func NewPermitUserSyncStep(name string, config map[string]any) (StepExecutor, error)
NewPermitUserSyncStep creates a step.permit_user_sync step instance.
func NewRemovePolicyStep ¶
func NewRemovePolicyStep(name string, config map[string]any) (StepExecutor, error)
NewRemovePolicyStep creates a step.authz_remove_policy step instance.
func NewRoleAssignStep ¶
func NewRoleAssignStep(name string, config map[string]any) (StepExecutor, error)
NewRoleAssignStep creates a step.authz_role_assign step instance.
Source Files
¶
- abac_provider.go
- authz_declarations.go
- capabilities.go
- decision_provider.go
- exports.go
- gorm_adapter.go
- module_casbin.go
- module_keto.go
- module_permit.go
- module_scope_catalog.go
- permit_client.go
- permit_registry.go
- plugin.go
- provider_keto.go
- provider_permit.go
- rebac_provider.go
- scope_role_provider.go
- sqlite_dialector.go
- step_abac.go
- step_acl.go
- step_authz_add_policy.go
- step_authz_check.go
- step_authz_decision.go
- step_authz_remove_policy.go
- step_authz_role_assign.go
- step_permit_check.go
- step_permit_conditions.go
- step_permit_environments.go
- step_permit_instances.go
- step_permit_keys.go
- step_permit_org.go
- step_permit_projects.go
- step_permit_registry.go
- step_permit_relations.go
- step_permit_resource_actions.go
- step_permit_resource_roles.go
- step_permit_resources.go
- step_permit_role_assignments.go
- step_permit_roles.go
- step_permit_tenants.go
- step_permit_tuples.go
- step_permit_users.go
- step_rebac.go
- typed.go