Documentation
¶
Index ¶
- Constants
- Variables
- func ValidateToken[T interface{}](token string, jwksFn func() (*jose.JSONWebKeySet, error)) (*T, error)
- type AccessTokenClaims
- type AddPermissionsToRoleResponse
- type Audience
- type AuthenticationOptions
- type AuthenticationResponse
- type AuthorizationUrlOptions
- type Claims
- type Connection
- type CreateDomainOptions
- type CreateDomainResponse
- type CreateMembershipResponse
- type CreateOrganizationOptions
- type CreateOrganizationResponse
- type CreateOrganizationRoleResponse
- type CreatePermissionResponse
- type CreateRoleResponse
- type CreateUserAndMembershipResponse
- type Directory
- type Domain
- type DomainType
- type Feature
- type GetConnectionResponse
- type GetDirectoryResponse
- type GetDomainResponse
- type GetOrganizationResponse
- type GetOrganizationRoleResponse
- type GetOrganizationRoleUsersCountResponse
- type GetPermissionResponse
- type GetRoleResponse
- type GetRoleUsersCountResponse
- type GetUserResponse
- type GrantType
- type IdTokenClaims
- type Identity
- type IdpInitiatedLoginClaims
- type Link
- type ListConnectionsResponse
- type ListDirectoriesResponse
- type ListDirectoryGroupsOptions
- type ListDirectoryGroupsResponse
- type ListDirectoryUsersOptions
- type ListDirectoryUsersResponse
- type ListDomainResponse
- type ListEffectiveRolePermissionsResponse
- type ListOrganizationOptions
- type ListOrganizationRolesResponse
- type ListOrganizationUsersResponse
- type ListOrganizationsResponse
- type ListPermissionsResponse
- type ListRolePermissionsResponse
- type ListRolesResponse
- type ListUsersOptions
- type LogoutUrlOptions
- type Organization
- type OrganizationSettings
- type PasswordlessService
- type PasswordlessType
- type PermissionService
- type RoleService
- type Scalekit
- type SendPasswordlessOptions
- type SendPasswordlessResponse
- type TemplateType
- type ToggleConnectionResponse
- type ToggleDirectoryResponse
- type TokenResponse
- type UpdateDefaultOrganizationRolesResponse
- type UpdateMembershipResponse
- type UpdateOrganization
- type UpdateOrganizationResponse
- type UpdateOrganizationRoleResponse
- type UpdatePermissionResponse
- type UpdateRoleResponse
- type UpdateUserResponse
- type User
- type UserService
- type VerifyPasswordLessResponse
- type VerifyPasswordlessOptions
Constants ¶
const ( TemplateTypeUnspecified = authv1.TemplateType_UNSPECIFIED TemplateTypeSignin = authv1.TemplateType_SIGNIN TemplateTypeSignup = authv1.TemplateType_SIGNUP )
Enum constants for TemplateType
const ( PasswordlessTypeUnspecified = authv1.PasswordlessType_PASSWORDLESS_TYPE_UNSPECIFIED PasswordlessTypeOtp = authv1.PasswordlessType_OTP PasswordlessTypeLink = authv1.PasswordlessType_LINK PasswordlessTypeLinkOtp = authv1.PasswordlessType_LINK_OTP )
Enum constants for PasswordlessType
Variables ¶
var ( ErrRefreshTokenRequired = errors.New("refresh token is required") ErrTokenExpired = errors.New("token has expired") ErrInvalidExpClaimFormat = errors.New("invalid exp claim format") ErrAuthRequestIdRequired = errors.New("authRequestId is required") )
Error types
Functions ¶
func ValidateToken ¶
Types ¶
type AccessTokenClaims ¶
type AccessTokenClaims struct { Sub string `json:"sub"` Iss string `json:"iss"` Audience Audience `json:"aud,omitempty"` Iat int `json:"iat"` Exp int `json:"exp"` Claims Claims `json:"-"` }
func (*AccessTokenClaims) UnmarshalJSON ¶
func (a *AccessTokenClaims) UnmarshalJSON(data []byte) error
type AddPermissionsToRoleResponse ¶ added in v2.0.4
type AddPermissionsToRoleResponse = rolesv1.AddPermissionsToRoleResponse
type AuthenticationOptions ¶
type AuthenticationOptions struct {
CodeVerifier string
}
type AuthenticationResponse ¶
type AuthorizationUrlOptions ¶
type Connection ¶
type Connection interface { GetConnection(ctx context.Context, organizationId string, id string) (*GetConnectionResponse, error) ListConnectionsByDomain(ctx context.Context, domain string) (*ListConnectionsResponse, error) ListConnections(ctx context.Context, organizationId string) (*ListConnectionsResponse, error) EnableConnection(ctx context.Context, organizationId string, id string) (*ToggleConnectionResponse, error) DisableConnection(ctx context.Context, organizationId string, id string) (*ToggleConnectionResponse, error) }
type CreateDomainOptions ¶ added in v2.0.4
type CreateDomainOptions struct {
DomainType DomainType
}
CreateDomainOptions represents optional parameters for creating a domain
type CreateDomainResponse ¶
type CreateDomainResponse = domainsv1.CreateDomainResponse
type CreateMembershipResponse ¶
type CreateMembershipResponse = usersv1.CreateMembershipResponse
type CreateOrganizationResponse ¶
type CreateOrganizationResponse = organizationsv1.CreateOrganizationResponse
type CreateOrganizationRoleResponse ¶ added in v2.0.4
type CreateOrganizationRoleResponse = rolesv1.CreateOrganizationRoleResponse
type CreatePermissionResponse ¶ added in v2.0.4
type CreatePermissionResponse = rolesv1.CreatePermissionResponse
Type aliases for permission-related responses
type CreateRoleResponse ¶ added in v2.0.4
type CreateRoleResponse = rolesv1.CreateRoleResponse
Type aliases for role-related responses
type CreateUserAndMembershipResponse ¶
type CreateUserAndMembershipResponse = usersv1.CreateUserAndMembershipResponse
Type aliases for response types
type Directory ¶
type Directory interface { ListDirectories(ctx context.Context, organizationId string) (*ListDirectoriesResponse, error) ListDirectoryUsers(ctx context.Context, organizationId string, directoryId string, options *ListDirectoryUsersOptions) (*ListDirectoryUsersResponse, error) ListDirectoryGroups(ctx context.Context, organizationId string, directoryId string, options *ListDirectoryGroupsOptions) (*ListDirectoryGroupsResponse, error) GetPrimaryDirectoryByOrganizationId(ctx context.Context, organizationId string) (*GetDirectoryResponse, error) EnableDirectory(ctx context.Context, organizationId string, directoryId string) (*ToggleDirectoryResponse, error) DisableDirectory(ctx context.Context, organizationId string, directoryId string) (*ToggleDirectoryResponse, error) GetDirectory(ctx context.Context, organizationId string, directoryId string) (*GetDirectoryResponse, error) }
type Domain ¶
type Domain interface { CreateDomain(ctx context.Context, organizationId, name string, options ...*CreateDomainOptions) (*CreateDomainResponse, error) GetDomain(ctx context.Context, id string, organizationId string) (*GetDomainResponse, error) ListDomains(ctx context.Context, organizationId string) (*ListDomainResponse, error) DeleteDomain(ctx context.Context, id string, organizationId string) error }
type DomainType ¶ added in v2.0.4
type DomainType = string
DomainType is defined as a string type alias
const ( DomainTypeUnspecified DomainType = "DOMAIN_TYPE_UNSPECIFIED" DomainTypeAllowedEmail DomainType = "ALLOWED_EMAIL_DOMAIN" DomainTypeOrganization DomainType = "ORGANIZATION_DOMAIN" )
Domain type constants
type GetConnectionResponse ¶
type GetConnectionResponse = connectionsv1.GetConnectionResponse
type GetDirectoryResponse ¶
type GetDirectoryResponse = directoriesv1.GetDirectoryResponse
type GetDomainResponse ¶
type GetDomainResponse = domainsv1.GetDomainResponse
type GetOrganizationResponse ¶
type GetOrganizationResponse = organizationsv1.GetOrganizationResponse
type GetOrganizationRoleResponse ¶ added in v2.0.4
type GetOrganizationRoleResponse = rolesv1.GetOrganizationRoleResponse
type GetOrganizationRoleUsersCountResponse ¶ added in v2.0.4
type GetOrganizationRoleUsersCountResponse = rolesv1.GetOrganizationRoleUsersCountResponse
type GetPermissionResponse ¶ added in v2.0.4
type GetPermissionResponse = rolesv1.GetPermissionResponse
type GetRoleResponse ¶ added in v2.0.4
type GetRoleResponse = rolesv1.GetRoleResponse
type GetRoleUsersCountResponse ¶ added in v2.0.4
type GetRoleUsersCountResponse = rolesv1.GetRoleUsersCountResponse
type GetUserResponse ¶
type GetUserResponse = usersv1.GetUserResponse
type IdTokenClaims ¶
type IdTokenClaims struct { Id string `json:"sub"` Username string `json:"preferred_username"` Name string `json:"name"` GivenName string `json:"given_name"` FamilyName string `json:"family_name"` Email string `json:"email"` EmailVerified bool `json:"email_verified"` PhoneNumber string `json:"phone_number"` PhoneNumberVerified bool `json:"phone_number_verified"` Profile string `json:"profile"` Picture string `json:"picture"` Gender string `json:"gender"` BirthDate string `json:"birthdate"` ZoneInfo string `json:"zoneinfo"` Locale string `json:"locale"` UpdatedAt string `json:"updated_at"` Identities []Identity `json:"identities"` Metadata string `json:"metadata"` Claims Claims `json:"-"` }
func (*IdTokenClaims) UnmarshalJSON ¶
func (i *IdTokenClaims) UnmarshalJSON(data []byte) error
type IdpInitiatedLoginClaims ¶
type Link ¶
type Link = organizationsv1.Link
type ListConnectionsResponse ¶
type ListConnectionsResponse = connectionsv1.ListConnectionsResponse
type ListDirectoriesResponse ¶
type ListDirectoriesResponse = directoriesv1.ListDirectoriesResponse
type ListDirectoryGroupsResponse ¶
type ListDirectoryGroupsResponse = directoriesv1.ListDirectoryGroupsResponse
type ListDirectoryUsersResponse ¶
type ListDirectoryUsersResponse = directoriesv1.ListDirectoryUsersResponse
type ListDomainResponse ¶
type ListDomainResponse = domainsv1.ListDomainResponse
type ListEffectiveRolePermissionsResponse ¶ added in v2.0.4
type ListEffectiveRolePermissionsResponse = rolesv1.ListEffectiveRolePermissionsResponse
type ListOrganizationOptions ¶
type ListOrganizationOptions = organizationsv1.ListOrganizationsRequest
type ListOrganizationRolesResponse ¶ added in v2.0.4
type ListOrganizationRolesResponse = rolesv1.ListOrganizationRolesResponse
type ListOrganizationUsersResponse ¶
type ListOrganizationUsersResponse = usersv1.ListOrganizationUsersResponse
type ListOrganizationsResponse ¶
type ListOrganizationsResponse = organizationsv1.ListOrganizationsResponse
type ListPermissionsResponse ¶ added in v2.0.4
type ListPermissionsResponse = rolesv1.ListPermissionsResponse
type ListRolePermissionsResponse ¶ added in v2.0.4
type ListRolePermissionsResponse = rolesv1.ListRolePermissionsResponse
type ListRolesResponse ¶ added in v2.0.4
type ListRolesResponse = rolesv1.ListRolesResponse
type ListUsersOptions ¶
ListUsersOptions represents optional parameters for listing users
type LogoutUrlOptions ¶
type Organization ¶
type Organization interface { CreateOrganization(ctx context.Context, name string, options CreateOrganizationOptions) (*CreateOrganizationResponse, error) ListOrganization(ctx context.Context, options *ListOrganizationOptions) (*ListOrganizationsResponse, error) GetOrganization(ctx context.Context, id string) (*GetOrganizationResponse, error) GetOrganizationByExternalId(ctx context.Context, externalId string) (*GetOrganizationResponse, error) UpdateOrganization(ctx context.Context, id string, organization *UpdateOrganization) (*UpdateOrganizationResponse, error) UpdateOrganizationByExternalId(ctx context.Context, externalId string, organization *UpdateOrganization) (*UpdateOrganizationResponse, error) DeleteOrganization(ctx context.Context, id string) error GeneratePortalLink(ctx context.Context, organizationId string) (*Link, error) UpdateOrganizationSettings(ctx context.Context, id string, settings OrganizationSettings) (*GetOrganizationResponse, error) }
type OrganizationSettings ¶
type OrganizationSettings struct {
Features []Feature
}
type PasswordlessService ¶
type PasswordlessService interface { SendPasswordlessEmail(ctx context.Context, email string, options *SendPasswordlessOptions) (*SendPasswordlessResponse, error) VerifyPasswordlessEmail(ctx context.Context, options *VerifyPasswordlessOptions) (*VerifyPasswordLessResponse, error) ResendPasswordlessEmail(ctx context.Context, authRequestId string) (*SendPasswordlessResponse, error) }
PasswordlessService interface defines the methods for passwordless authentication
type PasswordlessType ¶
type PasswordlessType = authv1.PasswordlessType
type PermissionService ¶ added in v2.0.4
type PermissionService interface { // Permission management CreatePermission(ctx context.Context, permission *rolesv1.CreatePermission) (*CreatePermissionResponse, error) GetPermission(ctx context.Context, permissionName string) (*GetPermissionResponse, error) ListPermissions(ctx context.Context, pageToken ...string) (*ListPermissionsResponse, error) UpdatePermission(ctx context.Context, permissionName string, permission *rolesv1.CreatePermission) (*UpdatePermissionResponse, error) DeletePermission(ctx context.Context, permissionName string) error // Role-Permission relationships ListRolePermissions(ctx context.Context, roleName string) (*ListRolePermissionsResponse, error) AddPermissionsToRole(ctx context.Context, roleName string, permissionNames []string) (*AddPermissionsToRoleResponse, error) RemovePermissionFromRole(ctx context.Context, roleName, permissionName string) error ListEffectiveRolePermissions(ctx context.Context, roleName string) (*ListEffectiveRolePermissionsResponse, error) }
PermissionService defines the interface for permission management operations
type RoleService ¶ added in v2.0.4
type RoleService interface { // Environment-level role management CreateRole(ctx context.Context, role *rolesv1.CreateRole) (*CreateRoleResponse, error) GetRole(ctx context.Context, roleName string) (*GetRoleResponse, error) ListRoles(ctx context.Context) (*ListRolesResponse, error) UpdateRole(ctx context.Context, roleName string, role *rolesv1.UpdateRole) (*UpdateRoleResponse, error) DeleteRole(ctx context.Context, roleName string, reassignRoleName ...string) error GetRoleUsersCount(ctx context.Context, roleName string) (*GetRoleUsersCountResponse, error) // Organization-level role management CreateOrganizationRole(ctx context.Context, orgId string, role *rolesv1.CreateOrganizationRole) (*CreateOrganizationRoleResponse, error) GetOrganizationRole(ctx context.Context, orgId, roleName string) (*GetOrganizationRoleResponse, error) ListOrganizationRoles(ctx context.Context, orgId string) (*ListOrganizationRolesResponse, error) UpdateOrganizationRole(ctx context.Context, orgId, roleName string, role *rolesv1.UpdateRole) (*UpdateOrganizationRoleResponse, error) DeleteOrganizationRole(ctx context.Context, orgId, roleName string, reassignRoleName ...string) error GetOrganizationRoleUsersCount(ctx context.Context, orgId, roleName string) (*GetOrganizationRoleUsersCountResponse, error) UpdateDefaultOrganizationRoles(ctx context.Context, orgId, defaultMemberRole string) (*UpdateDefaultOrganizationRolesResponse, error) DeleteOrganizationRoleBase(ctx context.Context, orgId, roleName string) error }
RoleService defines the interface for role management operations
type Scalekit ¶
type Scalekit interface { Connection() Connection Directory() Directory Domain() Domain Organization() Organization User() UserService Passwordless() PasswordlessService Role() RoleService Permission() PermissionService GetAuthorizationUrl(redirectUri string, options AuthorizationUrlOptions) (*url.URL, error) AuthenticateWithCode( code string, redirectUri string, options AuthenticationOptions, ) (*AuthenticationResponse, error) GetIdpInitiatedLoginClaims(idpInitiateLoginToken string) (*IdpInitiatedLoginClaims, error) ValidateAccessToken(accessToken string) (bool, error) VerifyWebhookPayload(secret string, headers map[string]string, payload []byte) (bool, error) RefreshAccessToken(refreshToken string) (*TokenResponse, error) GetLogoutUrl(options LogoutUrlOptions) (*url.URL, error) GetAccessTokenClaims(accessToken string) (*AccessTokenClaims, error) }
func NewScalekitClient ¶
type SendPasswordlessOptions ¶
type SendPasswordlessOptions struct { Template *TemplateType MagiclinkAuthUri string // Use empty string for no magic link URI, or specify the authentication URI State string // Use empty string for no state, or specify a custom state value ExpiresIn uint32 // Use 0 for server default, or specify seconds (e.g., 3600 for 1 hour) TemplateVariables map[string]string }
SendPasswordlessOptions represents optional parameters for sending passwordless authentication
type SendPasswordlessResponse ¶
type SendPasswordlessResponse = authv1.SendPasswordlessResponse
Type aliases for response types
type ToggleConnectionResponse ¶
type ToggleConnectionResponse = connectionsv1.ToggleConnectionResponse
type ToggleDirectoryResponse ¶
type ToggleDirectoryResponse = directoriesv1.ToggleDirectoryResponse
type TokenResponse ¶
type UpdateDefaultOrganizationRolesResponse ¶ added in v2.0.4
type UpdateDefaultOrganizationRolesResponse = rolesv1.UpdateDefaultOrganizationRolesResponse
type UpdateMembershipResponse ¶
type UpdateMembershipResponse = usersv1.UpdateMembershipResponse
type UpdateOrganization ¶
type UpdateOrganization = organizationsv1.UpdateOrganization
type UpdateOrganizationResponse ¶
type UpdateOrganizationResponse = organizationsv1.UpdateOrganizationResponse
type UpdateOrganizationRoleResponse ¶ added in v2.0.4
type UpdateOrganizationRoleResponse = rolesv1.UpdateOrganizationRoleResponse
type UpdatePermissionResponse ¶ added in v2.0.4
type UpdatePermissionResponse = rolesv1.UpdatePermissionResponse
type UpdateRoleResponse ¶ added in v2.0.4
type UpdateRoleResponse = rolesv1.UpdateRoleResponse
type UpdateUserResponse ¶
type UpdateUserResponse = usersv1.UpdateUserResponse
type User ¶
type User = IdTokenClaims
type UserService ¶
type UserService interface { CreateUserAndMembership(ctx context.Context, organizationId string, user *usersv1.CreateUser, sendInvitationEmail bool) (*CreateUserAndMembershipResponse, error) UpdateUser(ctx context.Context, userId string, updateUser *usersv1.UpdateUser) (*UpdateUserResponse, error) GetUser(ctx context.Context, userId string) (*GetUserResponse, error) ListOrganizationUsers(ctx context.Context, organizationId string, options *ListUsersOptions) (*ListOrganizationUsersResponse, error) DeleteUser(ctx context.Context, userId string) error CreateMembership(ctx context.Context, organizationId string, userId string, membership *usersv1.CreateMembership, sendInvitationEmail bool) (*CreateMembershipResponse, error) UpdateMembership(ctx context.Context, organizationId string, userId string, membership *usersv1.UpdateMembership) (*UpdateMembershipResponse, error) DeleteMembership(ctx context.Context, organizationId string, userId string, cascade bool) error ResendInvite(ctx context.Context, organizationId string, userId string) (*usersv1.ResendInviteResponse, error) }
type VerifyPasswordLessResponse ¶
type VerifyPasswordLessResponse = authv1.VerifyPasswordLessResponse
type VerifyPasswordlessOptions ¶
type VerifyPasswordlessOptions struct { Code string // Use empty string for no code, or specify the OTP code LinkToken string // Use empty string for no link token, or specify the link token AuthRequestId string // Use empty string for no auth request id, or specify the id }
VerifyPasswordlessOptions represents options for verifying passwordless authentication