Documentation
¶
Index ¶
- func BuiltinRoles() map[RoleKey]RoleDefinition
- func WithPrincipal(ctx context.Context, principal AuthenticatedPrincipal) context.Context
- type ApprovalPolicyRule
- type AuthAuditEvent
- type AuthAuditEventType
- type AuthenticatedPrincipal
- type BrowserSession
- type EffectiveVisibility
- type Group
- type InstanceRole
- type InstanceRoleBinding
- type LocalBootstrapAuthRequest
- type OIDCProfile
- type OrganizationInvitation
- type OrganizationInvitationStatus
- type OrganizationMembership
- type OrganizationMembershipEntry
- type OrganizationMembershipRole
- type OrganizationMembershipStatus
- type OrganizationMembershipUserSummary
- type OrganizationRole
- type OrganizationRoleBinding
- type PermissionKey
- type ProjectRole
- type ProjectRoleBinding
- type RoleBinding
- type RoleBindingMetadata
- type RoleDefinition
- type RoleKey
- type ScopeKind
- type ScopeRef
- type SessionDeviceKind
- type SubjectKind
- type SubjectRef
- type UpdateInstanceRoleBinding
- type UpdateOrganizationRoleBinding
- type UpdateProjectRoleBinding
- type UpdateRoleBindingMetadata
- type User
- type UserDirectoryDetail
- type UserDirectoryEntry
- type UserDirectoryFilter
- type UserDirectoryStatusFilter
- type UserGroupMembership
- type UserIdentity
- type UserStatus
- type UserStatusAudit
- type UserStatusTransitionInput
- type UserStatusTransitionResult
- type UserStatusTransitionSource
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BuiltinRoles ¶
func BuiltinRoles() map[RoleKey]RoleDefinition
func WithPrincipal ¶ added in v0.3.0
func WithPrincipal(ctx context.Context, principal AuthenticatedPrincipal) context.Context
Types ¶
type ApprovalPolicyRule ¶
type AuthAuditEvent ¶ added in v0.3.0
type AuthAuditEventType ¶ added in v0.3.0
type AuthAuditEventType string
const ( AuthAuditLoginSucceeded AuthAuditEventType = "login.success" AuthAuditLoginFailed AuthAuditEventType = "login.failed" AuthAuditLogout AuthAuditEventType = "logout" AuthAuditSessionRevoked AuthAuditEventType = "session.revoked" AuthAuditSessionExpired AuthAuditEventType = "session.expired" AuthAuditUserEnabled AuthAuditEventType = "user.enabled" AuthAuditUserDisabled AuthAuditEventType = "user.disabled" AuthAuditUserDisabledAfterLogin AuthAuditEventType = "user.disabled_after_login" AuthAuditLocalBootstrapIssued AuthAuditEventType = "local_bootstrap.issued" AuthAuditLocalBootstrapRedeemed AuthAuditEventType = "local_bootstrap.redeemed" AuthAuditLocalBootstrapFailed AuthAuditEventType = "local_bootstrap.failed" )
type AuthenticatedPrincipal ¶
type AuthenticatedPrincipal struct {
User User
Identity UserIdentity
Groups []UserGroupMembership
Session BrowserSession
EffectiveRoles []RoleKey
Permissions []PermissionKey
}
func PrincipalFromContext ¶ added in v0.3.0
func PrincipalFromContext(ctx context.Context) (AuthenticatedPrincipal, bool)
func (AuthenticatedPrincipal) ActorID ¶
func (p AuthenticatedPrincipal) ActorID() string
type BrowserSession ¶
type BrowserSession struct {
ID uuid.UUID
UserID uuid.UUID
SessionHash string
DeviceKind SessionDeviceKind
DeviceOS string
DeviceBrowser string
DeviceLabel string
ExpiresAt time.Time
IdleExpiresAt time.Time
CSRFSecret string
UserAgentHash string
IPPrefix string
RevokedAt *time.Time
CreatedAt time.Time
UpdatedAt time.Time
}
type EffectiveVisibility ¶ added in v0.3.0
type EffectiveVisibility struct {
Instance bool
OrganizationIDs []uuid.UUID
OrganizationScopeIDs []uuid.UUID
ProjectIDs []uuid.UUID
}
func (EffectiveVisibility) AllowsOrganization ¶ added in v0.3.0
func (v EffectiveVisibility) AllowsOrganization(id uuid.UUID) bool
func (EffectiveVisibility) AllowsOrganizationScope ¶ added in v0.3.0
func (v EffectiveVisibility) AllowsOrganizationScope(id uuid.UUID) bool
func (EffectiveVisibility) AllowsProject ¶ added in v0.3.0
type InstanceRole ¶ added in v0.3.0
type InstanceRole string
const (
InstanceRoleAdmin InstanceRole = "instance_admin"
)
func ParseInstanceRole ¶ added in v0.3.0
func ParseInstanceRole(raw string) (InstanceRole, error)
func (InstanceRole) ScopeKind ¶ added in v0.3.0
func (r InstanceRole) ScopeKind() ScopeKind
func (InstanceRole) String ¶ added in v0.3.0
func (r InstanceRole) String() string
type InstanceRoleBinding ¶ added in v0.3.0
type InstanceRoleBinding struct {
RoleBindingMetadata
RoleKey InstanceRole
}
func ParseInstanceRoleBinding ¶ added in v0.3.0
func ParseInstanceRoleBinding(input RoleBinding) (InstanceRoleBinding, error)
func (InstanceRoleBinding) Generic ¶ added in v0.3.0
func (b InstanceRoleBinding) Generic() RoleBinding
type LocalBootstrapAuthRequest ¶ added in v0.3.0
type OIDCProfile ¶
type OrganizationInvitation ¶ added in v0.3.0
type OrganizationInvitation struct {
ID uuid.UUID
OrganizationID uuid.UUID
MembershipID uuid.UUID
Email string
Role OrganizationMembershipRole
Status OrganizationInvitationStatus
InvitedBy string
InviteTokenHash string
ExpiresAt time.Time
SentAt time.Time
AcceptedByUserID *uuid.UUID
AcceptedAt *time.Time
CanceledAt *time.Time
CreatedAt time.Time
UpdatedAt time.Time
}
type OrganizationInvitationStatus ¶ added in v0.3.0
type OrganizationInvitationStatus string
const ( OrganizationInvitationStatusPending OrganizationInvitationStatus = "pending" OrganizationInvitationStatusAccepted OrganizationInvitationStatus = "accepted" OrganizationInvitationStatusCanceled OrganizationInvitationStatus = "canceled" OrganizationInvitationStatusExpired OrganizationInvitationStatus = "expired" )
func ParseOrganizationInvitationStatus ¶ added in v0.3.0
func ParseOrganizationInvitationStatus(raw string) (OrganizationInvitationStatus, error)
func (OrganizationInvitationStatus) String ¶ added in v0.3.0
func (s OrganizationInvitationStatus) String() string
type OrganizationMembership ¶ added in v0.3.0
type OrganizationMembership struct {
ID uuid.UUID
OrganizationID uuid.UUID
UserID *uuid.UUID
Email string
Role OrganizationMembershipRole
Status OrganizationMembershipStatus
InvitedBy string
InvitedAt time.Time
AcceptedAt *time.Time
SuspendedAt *time.Time
RemovedAt *time.Time
CreatedAt time.Time
UpdatedAt time.Time
}
type OrganizationMembershipEntry ¶ added in v0.3.0
type OrganizationMembershipEntry struct {
Membership OrganizationMembership
User *OrganizationMembershipUserSummary
ActiveInvitation *OrganizationInvitation
}
type OrganizationMembershipRole ¶ added in v0.3.0
type OrganizationMembershipRole string
const ( OrganizationMembershipRoleOwner OrganizationMembershipRole = "owner" OrganizationMembershipRoleAdmin OrganizationMembershipRole = "admin" OrganizationMembershipRoleMember OrganizationMembershipRole = "member" )
func ParseOrganizationMembershipRole ¶ added in v0.3.0
func ParseOrganizationMembershipRole(raw string) (OrganizationMembershipRole, error)
func (OrganizationMembershipRole) RoleKey ¶ added in v0.3.0
func (r OrganizationMembershipRole) RoleKey() RoleKey
func (OrganizationMembershipRole) String ¶ added in v0.3.0
func (r OrganizationMembershipRole) String() string
type OrganizationMembershipStatus ¶ added in v0.3.0
type OrganizationMembershipStatus string
const ( OrganizationMembershipStatusInvited OrganizationMembershipStatus = "invited" OrganizationMembershipStatusActive OrganizationMembershipStatus = "active" OrganizationMembershipStatusSuspended OrganizationMembershipStatus = "suspended" OrganizationMembershipStatusRemoved OrganizationMembershipStatus = "removed" )
func ParseOrganizationMembershipStatus ¶ added in v0.3.0
func ParseOrganizationMembershipStatus(raw string) (OrganizationMembershipStatus, error)
func (OrganizationMembershipStatus) CanTransitionTo ¶ added in v0.3.0
func (s OrganizationMembershipStatus) CanTransitionTo(next OrganizationMembershipStatus) bool
func (OrganizationMembershipStatus) String ¶ added in v0.3.0
func (s OrganizationMembershipStatus) String() string
type OrganizationMembershipUserSummary ¶ added in v0.3.0
type OrganizationRole ¶ added in v0.3.0
type OrganizationRole string
const ( OrganizationRoleOwner OrganizationRole = "org_owner" OrganizationRoleAdmin OrganizationRole = "org_admin" OrganizationRoleMember OrganizationRole = "org_member" )
func ParseOrganizationRole ¶ added in v0.3.0
func ParseOrganizationRole(raw string) (OrganizationRole, error)
func (OrganizationRole) ScopeKind ¶ added in v0.3.0
func (r OrganizationRole) ScopeKind() ScopeKind
func (OrganizationRole) String ¶ added in v0.3.0
func (r OrganizationRole) String() string
type OrganizationRoleBinding ¶ added in v0.3.0
type OrganizationRoleBinding struct {
RoleBindingMetadata
OrganizationID string
RoleKey OrganizationRole
}
func ParseOrganizationRoleBinding ¶ added in v0.3.0
func ParseOrganizationRoleBinding(input RoleBinding) (OrganizationRoleBinding, error)
func (OrganizationRoleBinding) Generic ¶ added in v0.3.0
func (b OrganizationRoleBinding) Generic() RoleBinding
type PermissionKey ¶
type PermissionKey string
const ( PermissionOrgRead PermissionKey = "org.read" PermissionOrgCreate PermissionKey = "org.create" PermissionOrgUpdate PermissionKey = "org.update" PermissionOrgDelete PermissionKey = "org.delete" PermissionProjectRead PermissionKey = "project.read" PermissionProjectCreate PermissionKey = "project.create" PermissionProjectUpdate PermissionKey = "project.update" PermissionProjectDelete PermissionKey = "project.delete" PermissionRepoRead PermissionKey = "repo.read" PermissionRepoCreate PermissionKey = "repo.create" PermissionRepoUpdate PermissionKey = "repo.update" PermissionRepoDelete PermissionKey = "repo.delete" PermissionTicketRead PermissionKey = "ticket.read" PermissionTicketCreate PermissionKey = "ticket.create" PermissionTicketUpdate PermissionKey = "ticket.update" PermissionTicketDelete PermissionKey = "ticket.delete" PermissionTicketCommentRead PermissionKey = "ticket_comment.read" PermissionTicketCommentCreate PermissionKey = "ticket_comment.create" PermissionTicketCommentUpdate PermissionKey = "ticket_comment.update" PermissionTicketCommentDelete PermissionKey = "ticket_comment.delete" PermissionProjectUpdateRead PermissionKey = "project_update.read" PermissionProjectUpdateCreate PermissionKey = "project_update.create" PermissionProjectUpdateUpdate PermissionKey = "project_update.update" PermissionProjectUpdateDelete PermissionKey = "project_update.delete" PermissionWorkflowRead PermissionKey = "workflow.read" PermissionWorkflowCreate PermissionKey = "workflow.create" PermissionWorkflowUpdate PermissionKey = "workflow.update" PermissionWorkflowDelete PermissionKey = "workflow.delete" PermissionHarnessRead PermissionKey = "harness.read" PermissionHarnessUpdate PermissionKey = "harness.update" PermissionStatusRead PermissionKey = "status.read" PermissionStatusCreate PermissionKey = "status.create" PermissionStatusUpdate PermissionKey = "status.update" PermissionStatusDelete PermissionKey = "status.delete" PermissionSkillRead PermissionKey = "skill.read" PermissionSkillCreate PermissionKey = "skill.create" PermissionSkillUpdate PermissionKey = "skill.update" PermissionSkillDelete PermissionKey = "skill.delete" PermissionAgentRead PermissionKey = "agent.read" PermissionAgentCreate PermissionKey = "agent.create" PermissionAgentUpdate PermissionKey = "agent.update" PermissionAgentDelete PermissionKey = "agent.delete" PermissionAgentControl PermissionKey = "agent.control" PermissionJobRead PermissionKey = "scheduled_job.read" PermissionJobCreate PermissionKey = "scheduled_job.create" PermissionJobUpdate PermissionKey = "scheduled_job.update" PermissionJobDelete PermissionKey = "scheduled_job.delete" PermissionJobTrigger PermissionKey = "scheduled_job.trigger" PermissionSecurityRead PermissionKey = "security_setting.read" PermissionSecurityUpdate PermissionKey = "security_setting.update" PermissionNotificationRead PermissionKey = "notification.read" PermissionNotificationCreate PermissionKey = "notification.create" PermissionNotificationUpdate PermissionKey = "notification.update" PermissionNotificationDelete PermissionKey = "notification.delete" PermissionConversationRead PermissionKey = "conversation.read" PermissionConversationCreate PermissionKey = "conversation.create" PermissionConversationUpdate PermissionKey = "conversation.update" PermissionConversationDelete PermissionKey = "conversation.delete" PermissionMachineRead PermissionKey = "machine.read" PermissionMachineCreate PermissionKey = "machine.create" PermissionMachineUpdate PermissionKey = "machine.update" PermissionMachineDelete PermissionKey = "machine.delete" PermissionProviderRead PermissionKey = "provider.read" PermissionProviderCreate PermissionKey = "provider.create" PermissionProviderUpdate PermissionKey = "provider.update" PermissionProviderDelete PermissionKey = "provider.delete" PermissionProposalApprove PermissionKey = "proposal.approve" PermissionRBACManage PermissionKey = "rbac.manage" )
func PermissionsForRoles ¶
func PermissionsForRoles(roles []RoleKey) []PermissionKey
type ProjectRole ¶ added in v0.3.0
type ProjectRole string
const ( ProjectRoleAdmin ProjectRole = "project_admin" ProjectRoleOperator ProjectRole = "project_operator" ProjectRoleReviewer ProjectRole = "project_reviewer" ProjectRoleMember ProjectRole = "project_member" ProjectRoleViewer ProjectRole = "project_viewer" )
func ParseProjectRole ¶ added in v0.3.0
func ParseProjectRole(raw string) (ProjectRole, error)
func (ProjectRole) ScopeKind ¶ added in v0.3.0
func (r ProjectRole) ScopeKind() ScopeKind
func (ProjectRole) String ¶ added in v0.3.0
func (r ProjectRole) String() string
type ProjectRoleBinding ¶ added in v0.3.0
type ProjectRoleBinding struct {
RoleBindingMetadata
ProjectID string
RoleKey ProjectRole
}
func ParseProjectRoleBinding ¶ added in v0.3.0
func ParseProjectRoleBinding(input RoleBinding) (ProjectRoleBinding, error)
func (ProjectRoleBinding) Generic ¶ added in v0.3.0
func (b ProjectRoleBinding) Generic() RoleBinding
type RoleBinding ¶
type RoleBinding struct {
ID uuid.UUID
ScopeKind ScopeKind
ScopeID string
SubjectKind SubjectKind
SubjectKey string
RoleKey RoleKey
GrantedBy string
ExpiresAt *time.Time
CreatedAt time.Time
UpdatedAt time.Time
}
func (RoleBinding) SubjectRef ¶ added in v0.3.0
func (b RoleBinding) SubjectRef() (SubjectRef, error)
type RoleBindingMetadata ¶ added in v0.3.0
type RoleDefinition ¶
type RoleDefinition struct {
Key RoleKey
Permissions []PermissionKey
}
type RoleKey ¶
type RoleKey string
const ( RoleInstanceAdmin RoleKey = "instance_admin" RoleOrgOwner RoleKey = "org_owner" RoleOrgAdmin RoleKey = "org_admin" RoleOrgMember RoleKey = "org_member" RoleProjectAdmin RoleKey = "project_admin" RoleProjectOperator RoleKey = "project_operator" RoleProjectReviewer RoleKey = "project_reviewer" RoleProjectMember RoleKey = "project_member" RoleProjectViewer RoleKey = "project_viewer" )
func ParseRoleKey ¶
func ParseRoleKeyForScope ¶ added in v0.3.0
func RoleKeysForScope ¶ added in v0.3.0
type SessionDeviceKind ¶ added in v0.3.0
type SessionDeviceKind string
const ( SessionDeviceKindUnknown SessionDeviceKind = "unknown" SessionDeviceKindDesktop SessionDeviceKind = "desktop" SessionDeviceKindMobile SessionDeviceKind = "mobile" SessionDeviceKindTablet SessionDeviceKind = "tablet" SessionDeviceKindBot SessionDeviceKind = "bot" )
type SubjectKind ¶
type SubjectKind string
const ( SubjectKindUser SubjectKind = "user" SubjectKindGroup SubjectKind = "group" )
func ParseSubjectKind ¶
func ParseSubjectKind(raw string) (SubjectKind, error)
type SubjectRef ¶ added in v0.3.0
type SubjectRef struct {
Kind SubjectKind
Key string
}
func NewSubjectRef ¶ added in v0.3.0
func NewSubjectRef(kind SubjectKind, key string) (SubjectRef, error)
func NewUserSubjectRef ¶ added in v0.3.0
func NewUserSubjectRef(userID uuid.UUID) SubjectRef
func ParseGroupSubjectRef ¶ added in v0.3.0
func ParseGroupSubjectRef(raw string) (SubjectRef, error)
func (SubjectRef) String ¶ added in v0.3.0
func (r SubjectRef) String() string
type UpdateInstanceRoleBinding ¶ added in v0.3.0
type UpdateInstanceRoleBinding struct {
UpdateRoleBindingMetadata
RoleKey InstanceRole
}
type UpdateOrganizationRoleBinding ¶ added in v0.3.0
type UpdateOrganizationRoleBinding struct {
UpdateRoleBindingMetadata
RoleKey OrganizationRole
}
type UpdateProjectRoleBinding ¶ added in v0.3.0
type UpdateProjectRoleBinding struct {
UpdateRoleBindingMetadata
RoleKey ProjectRole
}
type UpdateRoleBindingMetadata ¶ added in v0.3.0
type UpdateRoleBindingMetadata struct {
Subject SubjectRef
GrantedBy string
ExpiresAt *time.Time
}
type UserDirectoryDetail ¶ added in v0.3.0
type UserDirectoryDetail struct {
User User
Identities []UserIdentity
Groups []UserGroupMembership
ActiveSessions []BrowserSession
RecentAuditEvents []AuthAuditEvent
ActiveSessionCount int
LatestStatusAudit *UserStatusAudit
}
type UserDirectoryEntry ¶ added in v0.3.0
type UserDirectoryEntry struct {
User User
PrimaryIdentity *UserIdentity
}
type UserDirectoryFilter ¶ added in v0.3.0
type UserDirectoryFilter struct {
Query string
Status UserDirectoryStatusFilter
Limit int
}
func NewUserDirectoryFilter ¶ added in v0.3.0
func NewUserDirectoryFilter(rawQuery string, rawStatus string, rawLimit int) (UserDirectoryFilter, error)
type UserDirectoryStatusFilter ¶ added in v0.3.0
type UserDirectoryStatusFilter string
const ( UserDirectoryStatusAll UserDirectoryStatusFilter = "all" UserDirectoryStatusActive UserDirectoryStatusFilter = "active" UserDirectoryStatusDisabled UserDirectoryStatusFilter = "disabled" )
func ParseUserDirectoryStatusFilter ¶ added in v0.3.0
func ParseUserDirectoryStatusFilter(raw string) (UserDirectoryStatusFilter, error)
type UserGroupMembership ¶
type UserIdentity ¶
type UserStatus ¶
type UserStatus string
const ( UserStatusActive UserStatus = "active" UserStatusDisabled UserStatus = "disabled" )
func ParseUserStatus ¶ added in v0.3.0
func ParseUserStatus(raw string) (UserStatus, error)
type UserStatusAudit ¶ added in v0.3.0
type UserStatusAudit struct {
Status UserStatus
Reason string
Source UserStatusTransitionSource
ActorID string
ChangedAt time.Time
RevokedSessionCount int
}
func ParseUserStatusAuditEvent ¶ added in v0.3.0
func ParseUserStatusAuditEvent(event AuthAuditEvent) (*UserStatusAudit, error)
type UserStatusTransitionInput ¶ added in v0.3.0
type UserStatusTransitionInput struct {
UserID uuid.UUID
TargetStatus UserStatus
Reason string
ActorID string
Source UserStatusTransitionSource
RevokeSessions bool
}
func NewUserStatusTransitionInput ¶ added in v0.3.0
func NewUserStatusTransitionInput( userID uuid.UUID, targetStatus UserStatus, reason string, actorID string, source UserStatusTransitionSource, revokeSessions bool, ) (UserStatusTransitionInput, error)
type UserStatusTransitionResult ¶ added in v0.3.0
type UserStatusTransitionResult struct {
User User
Changed bool
RevokedSessionCount int
LatestStatusAudit *UserStatusAudit
}
type UserStatusTransitionSource ¶ added in v0.3.0
type UserStatusTransitionSource string
const ( UserStatusTransitionSourceAdminManual UserStatusTransitionSource = "admin_manual" UserStatusTransitionSourceOIDCUpstream UserStatusTransitionSource = "oidc_upstream_sync" UserStatusTransitionSourceWebhook UserStatusTransitionSource = "webhook" UserStatusTransitionSourceSCIM UserStatusTransitionSource = "scim" UserDirectoryDefaultPageLimit = 50 UserDirectoryMaximumPageLimit = 200 )
func ParseUserStatusTransitionSource ¶ added in v0.3.0
func ParseUserStatusTransitionSource(raw string) (UserStatusTransitionSource, error)
Click to show internal directories.
Click to hide internal directories.