Go SDK Reference
Complete API reference for the Scalekit Go SDK
Reference
ScalekitClient
client := scalekit.NewScalekitClient(envUrl, clientId, clientSecret) -> scalekit.Scalekit
-
π Description
-
-
Creates a new Scalekit Go SDK client.
The returned client provides high-level OAuth helpers (authorization URL, token exchange, token validation, webhook verification) and typed sub-clients for resource APIs (organizations, users, sessions, etc.).
-
π Usage
-
-
import "github.com/scalekit-inc/scalekit-sdk-go/v2"client := scalekit.NewScalekitClient("<SCALEKIT_ENV_URL>","<SCALEKIT_CLIENT_ID>","<SCALEKIT_CLIENT_SECRET>",)
-
βοΈ Parameters
-
-
envUrl:
string- Your Scalekit environment URL (from the dashboard)
-
clientId:
string- Scalekit client ID
-
clientSecret:
string- Scalekit client secret
-
-
client.GetAuthorizationUrl(redirectUri, options) -> (*url.URL, error)
-
π Description
-
-
Utility method to generate the OAuth 2.0 authorization URL to initiate the SSO authentication flow.
This method doesnβt make any network calls. It returns a fully formed authorization URL that you can redirect users to.
-
π Usage
-
-
authURL, err := client.GetAuthorizationUrl("https://yourapp.com/auth/callback",scalekit.AuthorizationUrlOptions{State: "random-state-value",OrganizationId: "org_123",},)if err != nil {// handle}// Redirect user to authURL.String()
-
βοΈ Parameters
-
-
redirectUri:
string- The URL where users will be redirected after authentication (must match a configured redirect URI)
-
options:
AuthorizationUrlOptions- Configuration for the authorization requestScopes []string- OAuth scopes to request (default:openid profile email)State string- Opaque value to maintain state between request and callbackNonce string- String value used to associate a client session with an ID TokenLoginHint string- Hint about the login identifier the user might useDomainHint string- Domain hint to identify which organizationβs IdP to useConnectionId string- Specific SSO connection ID to use for authenticationOrganizationId string- Organization ID to authenticate againstProvider string- Social login provider (e.g.,google,github,microsoft)CodeChallenge string- PKCE code challengeCodeChallengeMethod string- Method used to generate the code challenge (e.g.,S256)Prompt string- Controls authentication behavior (e.g.,login,consent)
-
-
client.AuthenticateWithCode(code, redirectUri, options) -> (*AuthenticationResponse, error)
-
π Description
-
-
Exchanges an authorization code for tokens and user information.
Call this in your redirect handler after receiving the
codequery parameter.
-
π Usage
-
-
resp, err := client.AuthenticateWithCode(code,"https://yourapp.com/auth/callback",scalekit.AuthenticationOptions{},)if err != nil {// handle}accessToken := resp.AccessTokenuser := resp.User_ = accessToken_ = user
-
βοΈ Parameters
-
-
code:
string- The authorization code received in the callback URL
-
redirectUri:
string- The same redirect URI used inGetAuthorizationUrl(must match exactly)
-
options:
AuthenticationOptionsCodeVerifier string- PKCE code verifier (required if PKCE was used)
-
-
client.GetIdpInitiatedLoginClaims(idpInitiatedLoginToken) -> (*IdpInitiatedLoginClaims, error)
-
π Description
-
-
Extracts and validates claims from an IdP-initiated login token.
Use this method when handling IdP-initiated SSO flows, where authentication is initiated from the identity providerβs portal instead of your application.
-
π Usage
-
-
claims, err := client.GetIdpInitiatedLoginClaims(idpInitiatedLoginToken)if err != nil {// handle}// claims.ConnectionID, claims.OrganizationID, claims.LoginHint, claims.RelayState_ = claims
-
βοΈ Parameters
-
-
idpInitiatedLoginToken:
string- The token received via IdP-initiated login
-
-
client.GetAccessTokenClaims(accessToken) -> (*AccessTokenClaims, error)
-
π Description
-
-
Parses and validates an access token and returns its claims.
-
π Usage
-
-
claims, err := client.GetAccessTokenClaims(accessToken)if err != nil {// handle}_ = claims
-
βοΈ Parameters
-
-
accessToken:
string- The JWT access token
-
-
client.ValidateAccessToken(accessToken) -> (bool, error)
-
π Description
-
-
Validates an access token (including expiration checks) and returns whether it is valid.
-
π Usage
-
-
ok, err := client.ValidateAccessToken(accessToken)if err != nil {// invalid}_ = ok
-
βοΈ Parameters
-
-
accessToken:
string- The JWT access token
-
-
client.RefreshAccessToken(refreshToken) -> (*TokenResponse, error)
-
π Description
-
-
Exchanges a refresh token for a new access token (and optionally a new refresh token).
-
π Usage
-
-
tokens, err := client.RefreshAccessToken(refreshToken)if err != nil {// handle}_ = tokens.AccessToken
-
βοΈ Parameters
-
-
refreshToken:
string- The refresh token
-
-
client.GetLogoutUrl(options) -> (*url.URL, error)
-
π Description
-
-
Generates a logout URL for OIDC logout flows.
-
π Usage
-
-
logoutURL, err := client.GetLogoutUrl(scalekit.LogoutUrlOptions{IdTokenHint: idToken,PostLogoutRedirectUri: "https://yourapp.com/",State: "state",})if err != nil {// handle}_ = logoutURL
-
βοΈ Parameters
-
-
options:
LogoutUrlOptionsIdTokenHint stringPostLogoutRedirectUri stringState string
-
-
client.VerifyWebhookPayload(secret, headers, payload) -> (bool, error)
-
π Description
-
-
Verifies a Scalekit webhook payload signature using
webhook-id,webhook-timestamp, andwebhook-signatureheaders.
-
π Usage
-
-
valid, err := client.VerifyWebhookPayload("whsec_...",map[string]string{"webhook-id": "webhook_123","webhook-timestamp": "1730000000","webhook-signature": "v1,base64sig",},[]byte(`{"event":"user.created","data":{"id":"123"}}`),)if err != nil {// handle}_ = valid
-
βοΈ Parameters
-
-
secret:
string- Your webhook signing secret (e.g.whsec_...)
-
headers:
map[string]string- Request headers containing webhook signature fields
-
payload:
[]byte- Raw request body
-
-
client.VerifyInterceptorPayload(secret, headers, payload) -> (bool, error)
-
π Description
-
-
Verifies an interceptor payload signature. Uses the same signature format as webhooks.
-
π Usage
-
-
valid, err := client.VerifyInterceptorPayload(secret, headers, payload)if err != nil {// handle}_ = valid
-
βοΈ Parameters
-
-
secret:
string
-
headers:
map[string]string
-
payload:
[]byte
-
-
client.Connection() -> scalekit.Connection
-
π Description
-
-
Returns the Connections client (
client.Connection()), used to manage and query SSO connections.
-
-
client.Organization() -> scalekit.Organization
-
π Description
-
-
Returns the Organizations client (
client.Organization()), used to manage organizations (tenants).
-
-
client.User() -> scalekit.UserService
-
π Description
-
-
Returns the Users client (
client.User()), used to manage users and memberships.
-
-
client.Domain() -> scalekit.Domain
-
π Description
-
-
Returns the Domains client (
client.Domain()), used to manage and query domains for organizations.
-
-
client.Directory() -> scalekit.Directory
-
π Description
-
-
Returns the Directories client (
client.Directory()), used to list directories and directory users/groups (SCIM/Directory Sync).
-
-
client.Session() -> scalekit.SessionService
-
π Description
-
-
Returns the Sessions client (
client.Session()), used to list and revoke sessions.
-
-
client.Role() -> scalekit.RoleService
-
π Description
-
-
Returns the Roles client (
client.Role()), used to manage roles and organization roles.
-
-
client.Permission() -> scalekit.PermissionService
-
π Description
-
-
Returns the Permissions client (
client.Permission()), used to manage permissions and role-permission relationships.
-
-
client.Passwordless() -> scalekit.PasswordlessService
-
π Description
-
-
Returns the Passwordless client (
client.Passwordless()), used for passwordless email flows (OTP / magic link).
-
-
client.WebAuthn() -> scalekit.WebAuthnService
-
π Description
-
-
Returns the WebAuthn client (
client.WebAuthn()), used to manage passkey credentials.
-
-
client.Auth() -> scalekit.AuthService
-
π Description
-
-
Returns the Auth client (
client.Auth()), used for Auth gRPC helper methods (e.g. update login user details).
-
-
Organizations
client.Organization().CreateOrganization(ctx, name, options) -> (*CreateOrganizationResponse, error)
-
π Description
-
-
Creates a new organization (tenant).
Organizations represent your B2B customers. Use
ExternalIdto map Scalekit organizations to your internal identifiers.
-
π Usage
-
-
import ("context""fmt""github.com/scalekit-inc/scalekit-sdk-go/v2")ctx := context.Background()org, err := client.Organization().CreateOrganization(ctx, "Acme Corporation", scalekit.CreateOrganizationOptions{ExternalId: "customer_12345",Metadata: map[string]string{"source": "signup",},})if err != nil {// handle}fmt.Println("Organization ID:", org.Organization.Id)
-
βοΈ Parameters
-
-
ctx:
context.Context- Request context
-
name:
string- Display name for the organization
-
options:
CreateOrganizationOptionsExternalId stringMetadata map[string]string
-
-
client.Organization().ListOrganization(ctx, options) -> (*ListOrganizationsResponse, error)
-
π Description
-
-
Retrieves a paginated list of organizations in your environment.
-
π Usage
-
-
orgs, err := client.Organization().ListOrganization(ctx, &scalekit.ListOrganizationOptions{PageSize: 10,PageToken: "",})if err != nil {// handle}for _, org := range orgs.Organizations {_ = org.Id}
-
βοΈ Parameters
-
-
ctx:
context.Context
-
options:
*ListOrganizationOptions(alias oforganizationsv1.ListOrganizationsRequest)PageSize uint32PageToken string
-
-
client.Organization().GetOrganization(ctx, id) -> (*GetOrganizationResponse, error)
-
π Description
-
-
Fetches an organization by Scalekit organization ID.
-
π Usage
-
-
org, err := client.Organization().GetOrganization(ctx, "org_123")if err != nil {// handle}_ = org.Organization
-
βοΈ Parameters
-
-
ctx:
context.Context
-
id:
string- Scalekit organization ID
-
-
client.Organization().GetOrganizationByExternalId(ctx, externalId) -> (*GetOrganizationResponse, error)
-
π Description
-
-
Fetches an organization by your external ID (if set).
-
π Usage
-
-
org, err := client.Organization().GetOrganizationByExternalId(ctx, "customer_12345")if err != nil {// handle}_ = org.Organization
-
βοΈ Parameters
-
-
ctx:
context.Context
-
externalId:
string- Your systemβs organization identifier
-
-
client.Organization().UpdateOrganization(ctx, id, organization) -> (*UpdateOrganizationResponse, error)
-
π Description
-
-
Updates an organization by Scalekit organization ID.
-
π Usage
-
-
updated, err := client.Organization().UpdateOrganization(ctx,"org_123",&organizations.UpdateOrganization{DisplayName: func() *string { s := "Updated name"; return &s }(),},)if err != nil {// handle}_ = updated.Organization
-
βοΈ Parameters
-
-
ctx:
context.Context
-
id:
string- Scalekit organization ID
-
organization:
*organizationsv1.UpdateOrganization- Fields to update
-
-
client.Organization().UpdateOrganizationByExternalId(ctx, externalId, organization) -> (*UpdateOrganizationResponse, error)
-
π Description
-
-
Updates an organization by your external ID.
-
π Usage
-
-
updated, err := client.Organization().UpdateOrganizationByExternalId(ctx,"customer_12345",&organizations.UpdateOrganization{DisplayName: func() *string { s := "Updated name"; return &s }(),},)if err != nil {// handle}_ = updated.Organization
-
βοΈ Parameters
-
-
ctx:
context.Context
-
externalId:
string
-
organization:
*organizationsv1.UpdateOrganization
-
-
client.Organization().DeleteOrganization(ctx, id) -> error
-
π Description
-
-
Deletes an organization by Scalekit organization ID.
-
π Usage
-
-
if err := client.Organization().DeleteOrganization(ctx, "org_123"); err != nil {// handle}
-
βοΈ Parameters
-
-
ctx:
context.Context
-
id:
string
-
-
client.Organization().GeneratePortalLink(ctx, organizationId) -> (*organizationsv1.Link, error)
-
π Description
-
-
Generates an admin portal link for an organization.
-
π Usage
-
-
link, err := client.Organization().GeneratePortalLink(ctx, "org_123")if err != nil {// handle}_ = link.Url
-
βοΈ Parameters
-
-
ctx:
context.Context
-
organizationId:
string
-
-
client.Organization().UpdateOrganizationSettings(ctx, id, settings) -> (*GetOrganizationResponse, error)
-
π Description
-
-
Updates organization settings (feature toggles).
-
π Usage
-
-
resp, err := client.Organization().UpdateOrganizationSettings(ctx, "org_123", scalekit.OrganizationSettings{Features: []scalekit.Feature{{Name: "sso", Enabled: true},{Name: "dir_sync", Enabled: true},},})if err != nil {// handle}_ = resp.Organization.Settings
-
βοΈ Parameters
-
-
ctx:
context.Context
-
id:
string- Scalekit organization ID
-
settings:
OrganizationSettingsFeatures []FeaturewhereFeatureis{ Name string; Enabled bool }
-
-
client.Organization().UpsertUserManagementSettings(ctx, organizationId, settings) -> (*organizationsv1.OrganizationUserManagementSettings, error)
-
π Description
-
-
Creates or updates user management settings for an organization.
-
π Usage
-
-
maxUsers := int32(150)settings, err := client.Organization().UpsertUserManagementSettings(ctx,"org_123",scalekit.OrganizationUserManagementSettings{MaxAllowedUsers: &maxUsers,},)if err != nil {// handle}_ = settings.MaxAllowedUsers
-
βοΈ Parameters
-
-
ctx:
context.Context
-
organizationId:
string
-
settings:
OrganizationUserManagementSettingsMaxAllowedUsers *int32
-
-
Connections
client.Connection().GetConnection(ctx, organizationId, id) -> (*GetConnectionResponse, error)
-
π Description
-
-
Fetches a connection by ID within an organization.
-
π Usage
-
-
conn, err := client.Connection().GetConnection(ctx, "org_123", "conn_123")if err != nil {// handle}_ = conn.Connection
-
βοΈ Parameters
-
-
ctx:
context.Context
-
organizationId:
string
-
id:
string- Connection ID
-
-
client.Connection().ListConnectionsByDomain(ctx, domain) -> (*ListConnectionsResponse, error)
-
π Description
-
-
Lists connections that match a given domain (e.g. to support domain discovery for SSO).
-
π Usage
-
-
conns, err := client.Connection().ListConnectionsByDomain(ctx, "acme.com")if err != nil {// handle}_ = conns.Connections
-
βοΈ Parameters
-
-
ctx:
context.Context
-
domain:
string
-
-
client.Connection().ListConnections(ctx, organizationId) -> (*ListConnectionsResponse, error)
-
π Description
-
-
Lists all connections for an organization.
-
π Usage
-
-
conns, err := client.Connection().ListConnections(ctx, "org_123")if err != nil {// handle}_ = conns.Connections
-
βοΈ Parameters
-
-
ctx:
context.Context
-
organizationId:
string
-
-
client.Connection().EnableConnection(ctx, organizationId, id) -> (*ToggleConnectionResponse, error)
-
π Description
-
-
Enables a connection for an organization.
-
π Usage
-
-
resp, err := client.Connection().EnableConnection(ctx, "org_123", "conn_123")if err != nil {// handle}_ = resp.Enabled
-
βοΈ Parameters
-
-
ctx:
context.Context
-
organizationId:
string
-
id:
string
-
-
client.Connection().DisableConnection(ctx, organizationId, id) -> (*ToggleConnectionResponse, error)
-
π Description
-
-
Disables a connection for an organization.
-
π Usage
-
-
resp, err := client.Connection().DisableConnection(ctx, "org_123", "conn_123")if err != nil {// handle}_ = resp.Enabled
-
βοΈ Parameters
-
-
ctx:
context.Context
-
organizationId:
string
-
id:
string
-
-
Users
client.User().ListOrganizationUsers(ctx, organizationId, options) -> (*ListOrganizationUsersResponse, error)
-
π Description
-
-
Lists users in an organization (paginated).
-
π Usage
-
-
users, err := client.User().ListOrganizationUsers(ctx, "org_123", &scalekit.ListUsersOptions{PageSize: 10,PageToken: "",})if err != nil {// handle}_ = users.Users
-
βοΈ Parameters
-
-
ctx:
context.Context
-
organizationId:
string
-
options:
*ListUsersOptionsPageSize uint32PageToken string
-
-
client.User().GetUser(ctx, userId) -> (*GetUserResponse, error)
-
π Description
-
-
Fetches a user by user ID.
-
π Usage
-
-
user, err := client.User().GetUser(ctx, "usr_123")if err != nil {// handle}_ = user.User
-
βοΈ Parameters
-
-
ctx:
context.Context
-
userId:
string
-
-
client.User().UpdateUser(ctx, userId, updateUser) -> (*UpdateUserResponse, error)
-
π Description
-
-
Updates a user by user ID.
-
π Usage
-
-
firstName := "Test"lastName := "User"name := "Test User"locale := "en-US"updated, err := client.User().UpdateUser(ctx, "usr_123", &users.UpdateUser{UserProfile: &users.UpdateUserProfile{FirstName: &firstName,LastName: &lastName,Name: &name,Locale: &locale,},})if err != nil {// handle}_ = updated.User
-
βοΈ Parameters
-
-
ctx:
context.Context
-
userId:
string
-
updateUser:
*usersv1.UpdateUser
-
-
client.User().CreateUserAndMembership(ctx, organizationId, user, sendInvitationEmail) -> (*CreateUserAndMembershipResponse, error)
-
π Description
-
-
Creates a user and adds them to an organization with a membership.
-
π Usage
-
-
created, err := client.User().CreateUserAndMembership(ctx, "org_123", &users.CreateUser{Email: "test.user@example.com",Metadata: map[string]string{"source": "test",},}, true)if err != nil {// handle}_ = created.User.Id
-
βοΈ Parameters
-
-
ctx:
context.Context
-
organizationId:
string
-
user:
*usersv1.CreateUser
-
sendInvitationEmail:
bool- Whether to send an invitation email for the created user
-
-
client.User().DeleteUser(ctx, userId) -> error
-
π Description
-
-
Deletes a user by user ID.
-
π Usage
-
-
if err := client.User().DeleteUser(ctx, "usr_123"); err != nil {// handle}
-
βοΈ Parameters
-
-
ctx:
context.Context
-
userId:
string
-
-
client.User().CreateMembership(ctx, organizationId, userId, membership, sendInvitationEmail) -> (*CreateMembershipResponse, error)
-
π Description
-
-
Creates a membership for an existing user in an organization.
-
π Usage
-
-
resp, err := client.User().CreateMembership(ctx, "org_123", "usr_123", &users.CreateMembership{Roles: []*commons.Role{{Name: "admin"}},Metadata: map[string]string{"membership_type": "test",},}, false)if err != nil {// handle}_ = resp.User
-
βοΈ Parameters
-
-
ctx:
context.Context
-
organizationId:
string
-
userId:
string
-
membership:
*usersv1.CreateMembership
-
sendInvitationEmail:
bool
-
-
client.User().UpdateMembership(ctx, organizationId, userId, membership) -> (*UpdateMembershipResponse, error)
-
π Description
-
-
Updates a membership for a user within an organization.
-
π Usage
-
-
resp, err := client.User().UpdateMembership(ctx, "org_123", "usr_123", &users.UpdateMembership{Roles: []*commons.Role{{Name: "member"}},})if err != nil {// handle}_ = resp.User
-
βοΈ Parameters
-
-
ctx:
context.Context
-
organizationId:
string
-
userId:
string
-
membership:
*usersv1.UpdateMembership
-
-
client.User().DeleteMembership(ctx, organizationId, userId, cascade) -> error
-
π Description
-
-
Deletes a membership for a user from an organization.
If
cascadeis true, the API may also delete related resources (behavior depends on backend).
-
π Usage
-
-
if err := client.User().DeleteMembership(ctx, "org_123", "usr_123", false); err != nil {// handle}
-
βοΈ Parameters
-
-
ctx:
context.Context
-
organizationId:
string
-
userId:
string
-
cascade:
bool
-
-
client.User().ResendInvite(ctx, organizationId, userId) -> (*usersv1.ResendInviteResponse, error)
-
π Description
-
-
Resends a pending invite for a user in an organization.
-
π Usage
-
-
resp, err := client.User().ResendInvite(ctx, "org_123", "usr_123")if err != nil {// handle}_ = resp.Invite
-
βοΈ Parameters
-
-
ctx:
context.Context
-
organizationId:
string
-
userId:
string
-
-
Domains
client.Domain().CreateDomain(ctx, organizationId, name, options?) -> (*CreateDomainResponse, error)
-
π Description
-
-
Creates a domain for an organization.
The SDK supports backward-compatible signatures:
CreateDomain(ctx, orgId, domain)(no options)CreateDomain(ctx, orgId, domain, options)(with options)
-
π Usage
-
-
// Without options (backward compatible)created, err := client.Domain().CreateDomain(ctx, "org_123", "acme.com")if err != nil {// handle}_ = created.Domain// With optionscreated2, err := client.Domain().CreateDomain(ctx, "org_123", "acme.com", &scalekit.CreateDomainOptions{DomainType: scalekit.DomainTypeOrganization,})if err != nil {// handle}_ = created2.Domain
-
βοΈ Parameters
-
-
ctx:
context.Context
-
organizationId:
string
-
name:
string- Domain name (e.g.acme.com)
-
options?:
*CreateDomainOptionsDomainType DomainType-DOMAIN_TYPE_UNSPECIFIED,ALLOWED_EMAIL_DOMAIN, orORGANIZATION_DOMAIN
-
-
client.Domain().GetDomain(ctx, id, organizationId) -> (*GetDomainResponse, error)
-
π Description
-
-
Fetches a domain by ID within an organization.
-
π Usage
-
-
domain, err := client.Domain().GetDomain(ctx, "dom_123", "org_123")if err != nil {// handle}_ = domain.Domain
-
βοΈ Parameters
-
-
ctx:
context.Context
-
id:
string- Domain ID
-
organizationId:
string
-
-
client.Domain().ListDomains(ctx, organizationId, options?) -> (*ListDomainResponse, error)
-
π Description
-
-
Lists domains for an organization (supports optional filtering and pagination).
-
π Usage
-
-
// List all domainsall, err := client.Domain().ListDomains(ctx, "org_123")if err != nil {// handle}_ = all.Domains// Filter by domain typeorgDomains, err := client.Domain().ListDomains(ctx, "org_123", &scalekit.ListDomainOptions{DomainType: scalekit.DomainTypeOrganization,})if err != nil {// handle}_ = orgDomains.Domains
-
βοΈ Parameters
-
-
ctx:
context.Context
-
organizationId:
string
-
options?:
*ListDomainOptionsDomainType DomainTypePageSize uint32PageNumber uint32
-
-
client.Domain().DeleteDomain(ctx, id, organizationId) -> error
-
π Description
-
-
Deletes a domain by ID within an organization.
-
π Usage
-
-
if err := client.Domain().DeleteDomain(ctx, "dom_123", "org_123"); err != nil {// handle}
-
βοΈ Parameters
-
-
ctx:
context.Context
-
id:
string
-
organizationId:
string
-
-
Directories
client.Directory().ListDirectories(ctx, organizationId) -> (*ListDirectoriesResponse, error)
-
π Description
-
-
Lists directories for an organization.
-
π Usage
-
-
dirs, err := client.Directory().ListDirectories(ctx, "org_123")if err != nil {// handle}_ = dirs.Directories
-
βοΈ Parameters
-
-
ctx:
context.Context
-
organizationId:
string
-
-
client.Directory().GetDirectory(ctx, organizationId, directoryId) -> (*GetDirectoryResponse, error)
-
π Description
-
-
Fetches a directory by ID within an organization.
-
π Usage
-
-
dir, err := client.Directory().GetDirectory(ctx, "org_123", "dir_123")if err != nil {// handle}_ = dir.Directory
-
βοΈ Parameters
-
-
ctx:
context.Context
-
organizationId:
string
-
directoryId:
string
-
-
client.Directory().GetPrimaryDirectoryByOrganizationId(ctx, organizationId) -> (*GetDirectoryResponse, error)
-
π Description
-
-
Convenience helper to return the first directory for an organization (if any).
-
π Usage
-
-
dir, err := client.Directory().GetPrimaryDirectoryByOrganizationId(ctx, "org_123")if err != nil {// handle}_ = dir.Directory
-
βοΈ Parameters
-
-
ctx:
context.Context
-
organizationId:
string
-
-
client.Directory().ListDirectoryUsers(ctx, organizationId, directoryId, options?) -> (*ListDirectoryUsersResponse, error)
-
π Description
-
-
Lists users from a directory (paginated). Supports optional
UpdatedAfter, group filtering, and detail inclusion.
-
π Usage
-
-
includeDetail := trueupdatedAfter := time.Unix(1729851960, 0)resp, err := client.Directory().ListDirectoryUsers(ctx, "org_123", "dir_123", &scalekit.ListDirectoryUsersOptions{PageSize: 10,PageToken: "",IncludeDetail: &includeDetail,UpdatedAfter: &updatedAfter,})if err != nil {// handle}_ = resp.Users
-
βοΈ Parameters
-
-
ctx:
context.Context
-
organizationId:
string
-
directoryId:
string
-
options?:
*ListDirectoryUsersOptionsPageSize uint32PageToken stringIncludeDetail *boolDirectoryGroupId *stringUpdatedAfter *time.Time
-
-
client.Directory().ListDirectoryGroups(ctx, organizationId, directoryId, options?) -> (*ListDirectoryGroupsResponse, error)
-
π Description
-
-
Lists groups from a directory (paginated).
-
π Usage
-
-
includeDetail := trueresp, err := client.Directory().ListDirectoryGroups(ctx, "org_123", "dir_123", &scalekit.ListDirectoryGroupsOptions{PageSize: 10,PageToken: "",IncludeDetail: &includeDetail,})if err != nil {// handle}_ = resp.Groups
-
βοΈ Parameters
-
-
ctx:
context.Context
-
organizationId:
string
-
directoryId:
string
-
options?:
*ListDirectoryGroupsOptionsPageSize uint32PageToken stringIncludeDetail *boolUpdatedAfter *time.Time
-
-
client.Directory().EnableDirectory(ctx, organizationId, directoryId) -> (*ToggleDirectoryResponse, error)
-
π Description
-
-
Enables a directory for an organization.
-
π Usage
-
-
resp, err := client.Directory().EnableDirectory(ctx, "org_123", "dir_123")if err != nil {// handle}_ = resp.Enabled
-
βοΈ Parameters
-
-
ctx:
context.Context
-
organizationId:
string
-
directoryId:
string
-
-
client.Directory().DisableDirectory(ctx, organizationId, directoryId) -> (*ToggleDirectoryResponse, error)
-
π Description
-
-
Disables a directory for an organization.
-
π Usage
-
-
resp, err := client.Directory().DisableDirectory(ctx, "org_123", "dir_123")if err != nil {// handle}_ = resp.Enabled
-
βοΈ Parameters
-
-
ctx:
context.Context
-
organizationId:
string
-
directoryId:
string
-
-
Sessions
client.Session().GetSession(ctx, sessionId) -> (*SessionDetails, error)
-
π Description
-
-
Fetches session details by session ID.
-
π Usage
-
-
session, err := client.Session().GetSession(ctx, "ses_123")if err != nil {// handle}_ = session
-
βοΈ Parameters
-
-
ctx:
context.Context
-
sessionId:
string
-
-
client.Session().GetUserSessions(ctx, userId, pageSize, pageToken, filter?) -> (*UserSessionDetails, error)
-
π Description
-
-
Lists session details for a user (paginated).
-
π Usage
-
-
resp, err := client.Session().GetUserSessions(ctx, "usr_123", 10, "", nil)if err != nil {// handle}_ = resp.Sessions
-
βοΈ Parameters
-
-
ctx:
context.Context
-
userId:
string
-
pageSize:
uint32
-
pageToken:
string
-
filter?:
*sessionsv1.UserSessionFilter
-
-
client.Session().RevokeSession(ctx, sessionId) -> (*RevokeSessionResponse, error)
-
π Description
-
-
Revokes a specific session by session ID.
-
π Usage
-
-
resp, err := client.Session().RevokeSession(ctx, "ses_123")if err != nil {// handle}_ = resp
-
βοΈ Parameters
-
-
ctx:
context.Context
-
sessionId:
string
-
-
client.Session().RevokeAllUserSessions(ctx, userId) -> (*RevokeAllUserSessionsResponse, error)
-
π Description
-
-
Revokes all sessions for a user.
-
π Usage
-
-
resp, err := client.Session().RevokeAllUserSessions(ctx, "usr_123")if err != nil {// handle}_ = resp
-
βοΈ Parameters
-
-
ctx:
context.Context
-
userId:
string
-
-
Roles
client.Role().CreateRole(ctx, role) -> (*CreateRoleResponse, error)
-
π Description
-
-
Creates a new environment-level role.
-
βοΈ Parameters
-
-
ctx:
context.Context
-
role:
*rolesv1.CreateRole
-
-
client.Role().GetRole(ctx, roleName) -> (*GetRoleResponse, error)
-
π Description
-
-
Fetches an environment-level role by name.
-
βοΈ Parameters
-
-
ctx:
context.Context
-
roleName:
string
-
-
client.Role().ListRoles(ctx) -> (*ListRolesResponse, error)
-
π Description
-
-
Lists all environment-level roles.
-
βοΈ Parameters
-
-
ctx:
context.Context
-
-
client.Role().UpdateRole(ctx, roleName, role) -> (*UpdateRoleResponse, error)
-
π Description
-
-
Updates an environment-level role.
-
βοΈ Parameters
-
-
ctx:
context.Context
-
roleName:
string
-
role:
*rolesv1.UpdateRole
-
-
client.Role().DeleteRole(ctx, roleName, reassignRoleName?) -> error
-
π Description
-
-
Deletes an environment-level role. Optionally provide
reassignRoleNameto reassign users.
-
βοΈ Parameters
-
-
ctx:
context.Context
-
roleName:
string
-
reassignRoleName?:
string
-
-
client.Role().GetRoleUsersCount(ctx, roleName) -> (*GetRoleUsersCountResponse, error)
-
π Description
-
-
Gets the count of users associated with an environment-level role.
-
βοΈ Parameters
-
-
ctx:
context.Context
-
roleName:
string
-
-
client.Role().CreateOrganizationRole(ctx, orgId, role) -> (*CreateOrganizationRoleResponse, error)
-
π Description
-
-
Creates an organization-level role.
-
βοΈ Parameters
-
-
ctx:
context.Context
-
orgId:
string
-
role:
*rolesv1.CreateOrganizationRole
-
-
client.Role().GetOrganizationRole(ctx, orgId, roleName) -> (*GetOrganizationRoleResponse, error)
-
π Description
-
-
Fetches an organization-level role by name.
-
βοΈ Parameters
-
-
ctx:
context.Context
-
orgId:
string
-
roleName:
string
-
-
client.Role().ListOrganizationRoles(ctx, orgId) -> (*ListOrganizationRolesResponse, error)
-
π Description
-
-
Lists organization-level roles.
-
βοΈ Parameters
-
-
ctx:
context.Context
-
orgId:
string
-
-
client.Role().UpdateOrganizationRole(ctx, orgId, roleName, role) -> (*UpdateOrganizationRoleResponse, error)
-
π Description
-
-
Updates an organization-level role by name.
-
βοΈ Parameters
-
-
ctx:
context.Context
-
orgId:
string
-
roleName:
string
-
role:
*rolesv1.UpdateRole
-
-
client.Role().DeleteOrganizationRole(ctx, orgId, roleName, reassignRoleName?) -> error
-
π Description
-
-
Deletes an organization-level role by name. Optionally provide
reassignRoleName.
-
βοΈ Parameters
-
-
ctx:
context.Context
-
orgId:
string
-
roleName:
string
-
reassignRoleName?:
string
-
-
client.Role().GetOrganizationRoleUsersCount(ctx, orgId, roleName) -> (*GetOrganizationRoleUsersCountResponse, error)
-
π Description
-
-
Gets the count of users associated with an organization-level role.
-
βοΈ Parameters
-
-
ctx:
context.Context
-
orgId:
string
-
roleName:
string
-
-
client.Role().UpdateDefaultOrganizationRoles(ctx, orgId, defaultMemberRole) -> (*UpdateDefaultOrganizationRolesResponse, error)
-
π Description
-
-
Updates the default member role for an organization.
-
βοΈ Parameters
-
-
ctx:
context.Context
-
orgId:
string
-
defaultMemberRole:
string
-
-
client.Role().DeleteOrganizationRoleBase(ctx, orgId, roleName) -> error
-
π Description
-
-
Deletes the base relationship for an organization role.
-
βοΈ Parameters
-
-
ctx:
context.Context
-
orgId:
string
-
roleName:
string
-
-
Permissions
client.Permission().CreatePermission(ctx, permission) -> (*CreatePermissionResponse, error)
-
π Description
-
-
Creates a new permission.
-
βοΈ Parameters
-
-
ctx:
context.Context
-
permission:
*rolesv1.CreatePermission
-
-
client.Permission().GetPermission(ctx, permissionName) -> (*GetPermissionResponse, error)
-
π Description
-
-
Fetches a permission by name.
-
βοΈ Parameters
-
-
ctx:
context.Context
-
permissionName:
string
-
-
client.Permission().ListPermissions(ctx, pageToken?) -> (*ListPermissionsResponse, error)
-
π Description
-
-
Lists permissions with optional pagination.
-
βοΈ Parameters
-
-
ctx:
context.Context
-
pageToken?:
string
-
-
client.Permission().UpdatePermission(ctx, permissionName, permission) -> (*UpdatePermissionResponse, error)
-
π Description
-
-
Updates an existing permission by name.
-
βοΈ Parameters
-
-
ctx:
context.Context
-
permissionName:
string
-
permission:
*rolesv1.CreatePermission
-
-
client.Permission().DeletePermission(ctx, permissionName) -> error
-
π Description
-
-
Deletes a permission by name.
-
βοΈ Parameters
-
-
ctx:
context.Context
-
permissionName:
string
-
-
client.Permission().ListRolePermissions(ctx, roleName) -> (*ListRolePermissionsResponse, error)
-
π Description
-
-
Lists permissions associated with a role.
-
βοΈ Parameters
-
-
ctx:
context.Context
-
roleName:
string
-
-
client.Permission().AddPermissionsToRole(ctx, roleName, permissionNames) -> (*AddPermissionsToRoleResponse, error)
-
π Description
-
-
Adds permissions to a role.
-
βοΈ Parameters
-
-
ctx:
context.Context
-
roleName:
string
-
permissionNames:
[]string
-
-
client.Permission().RemovePermissionFromRole(ctx, roleName, permissionName) -> error
-
π Description
-
-
Removes a permission from a role.
-
βοΈ Parameters
-
-
ctx:
context.Context
-
roleName:
string
-
permissionName:
string
-
-
client.Permission().ListEffectiveRolePermissions(ctx, roleName) -> (*ListEffectiveRolePermissionsResponse, error)
-
π Description
-
-
Lists effective permissions for a role (including inherited permissions).
-
βοΈ Parameters
-
-
ctx:
context.Context
-
roleName:
string
-
-
Passwordless
client.Passwordless().SendPasswordlessEmail(ctx, email, options?) -> (*SendPasswordlessResponse, error)
-
π Description
-
-
Sends a passwordless authentication email (OTP, magic link, etc. depending on configuration).
-
π Usage
-
-
template := scalekit.TemplateTypeSigninresp, err := client.Passwordless().SendPasswordlessEmail(ctx, "user@example.com", &scalekit.SendPasswordlessOptions{Template: &template,MagiclinkAuthUri: "https://myapp.com/auth/callback",State: "state",ExpiresIn: 1800,TemplateVariables: map[string]string{"app_name": "My App",},})if err != nil {// handle}_ = resp.AuthRequestId
-
βοΈ Parameters
-
-
ctx:
context.Context
-
email:
string
-
options?:
*SendPasswordlessOptionsTemplate *TemplateType(SIGNIN,SIGNUP)MagiclinkAuthUri stringState stringExpiresIn uint32TemplateVariables map[string]string
-
-
client.Passwordless().VerifyPasswordlessEmail(ctx, options) -> (*VerifyPasswordLessResponse, error)
-
π Description
-
-
Verifies a passwordless authentication attempt using an OTP code or link token.
-
π Usage
-
-
verified, err := client.Passwordless().VerifyPasswordlessEmail(ctx, &scalekit.VerifyPasswordlessOptions{Code: "123456",AuthRequestId: "auth_req_123",})if err != nil {// handle}_ = verified
-
βοΈ Parameters
-
-
ctx:
context.Context
-
options:
*VerifyPasswordlessOptionsCode string- OTP codeLinkToken string- Magic link tokenAuthRequestId string- Required in some flows
-
-
client.Passwordless().ResendPasswordlessEmail(ctx, authRequestId) -> (*SendPasswordlessResponse, error)
-
π Description
-
-
Resends a passwordless authentication email for an existing auth request.
-
π Usage
-
-
resp, err := client.Passwordless().ResendPasswordlessEmail(ctx, "auth_req_123")if err != nil {// handle}_ = resp.AuthRequestId
-
βοΈ Parameters
-
-
ctx:
context.Context
-
authRequestId:
string
-
-
WebAuthn
client.WebAuthn().ListCredentials(ctx, userId) -> (*ListCredentialsResponse, error)
-
π Description
-
-
Lists passkey credentials for a user. If
userIdis empty, the API may list credentials for the current authenticated user.
-
βοΈ Parameters
-
-
ctx:
context.Context
-
userId:
string
-
-
client.WebAuthn().UpdateCredential(ctx, credentialId, displayName) -> (*UpdateCredentialResponse, error)
-
π Description
-
-
Updates the display name of a passkey credential.
-
βοΈ Parameters
-
-
ctx:
context.Context
-
credentialId:
string
-
displayName:
string
-
-
client.WebAuthn().DeleteCredential(ctx, credentialId) -> (*DeleteCredentialResponse, error)
-
π Description
-
-
Deletes a passkey credential by credential ID.
-
βοΈ Parameters
-
-
ctx:
context.Context
-
credentialId:
string
-
-
Auth
client.Auth().UpdateLoginUserDetails(ctx, req) -> error
-
π Description
-
-
Updates login user details associated with an authentication flow.
This method uses the Auth gRPC surface and expects a fully populated request.
-
π Usage
-
-
req := &scalekit.UpdateLoginUserDetailsRequest{ConnectionId: "conn_123",LoginRequestId: "login_req_123",User: &scalekit.LoggedInUserDetails{Sub: "sub",Email: "user@example.com",},}if err := client.Auth().UpdateLoginUserDetails(ctx, req); err != nil {// handle}
-
βοΈ Parameters
-
-
ctx:
context.Context
-
req:
*UpdateLoginUserDetailsRequest
-
-