Organizations
Manage your customer organizations
Use the Organization client to create and manage customer tenants (organizations) in your Scalekit application.
Start here when onboarding a new customer: create an organization, set external IDs and branding, then add users and SSO for that org.
CreateOrganization
Section titled “CreateOrganization”#asyncCreateOrganization
Runs CreateOrganization and returns the result.
Request context
Display name.
Optional request settings.
The created organization.
import ( "context" "fmt"
"github.com/scalekit-inc/scalekit-sdk-go/v2")
ctx := context.Background()org, err := scalekitClient.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)ListOrganization
Section titled “ListOrganization”#asyncListOrganization
Runs ListOrganization and returns the result.
Request context
Request payload.
Paginated organizations.
orgs, err := scalekitClient.Organization().ListOrganization(ctx, &scalekit.ListOrganizationOptions{ PageSize: 10, PageToken: "",})if err != nil { // handle}for _, org := range orgs.Organizations { _ = org.Id}
// Use server defaultsorgs, err = scalekitClient.Organization().ListOrganization(ctx, nil)GetOrganization
Section titled “GetOrganization”#asyncGetOrganization
Runs GetOrganization and returns the result.
Request context
Resource ID.
The organization.
org, err := scalekitClient.Organization().GetOrganization(ctx, "org_123")if err != nil { // handle}_ = org.OrganizationGetOrganizationByExternalId
Section titled “GetOrganizationByExternalId”#asyncGetOrganizationByExternalId
Runs GetOrganizationByExternalId and returns the result.
Request context
External ID.
The organization.
org, err := scalekitClient.Organization().GetOrganizationByExternalId(ctx, "customer_12345")if err != nil { // handle}_ = org.OrganizationUpdateOrganization
Section titled “UpdateOrganization”#asyncUpdateOrganization
Runs UpdateOrganization and returns the result.
Request context
Resource ID.
Fields to update.
The updated organization.
// DisplayName: Display nameupdated, err := scalekitClient.Organization().UpdateOrganization( ctx, "org_123", &organizations.UpdateOrganization{ DisplayName: func() *string { s := "Updated name"; return &s }(), },)if err != nil { // handle}_ = updated.OrganizationUpdateOrganizationByExternalId
Section titled “UpdateOrganizationByExternalId”#asyncUpdateOrganizationByExternalId
Runs UpdateOrganizationByExternalId and returns the result.
Request context
External ID.
Fields to update.
The updated organization.
// DisplayName: Display nameupdated, err := scalekitClient.Organization().UpdateOrganizationByExternalId( ctx, "customer_12345", &organizations.UpdateOrganization{ DisplayName: func() *string { s := "Updated name"; return &s }(), },)if err != nil { // handle}_ = updated.OrganizationDeleteOrganization
Section titled “DeleteOrganization”#asyncDeleteOrganization
Runs DeleteOrganization and returns the result.
Request context
Resource ID.
error
if err := scalekitClient.Organization().DeleteOrganization(ctx, "org_123"); err != nil { // handle}GeneratePortalLink
Section titled “GeneratePortalLink”#asyncGeneratePortalLink
Runs GeneratePortalLink and returns the result.
Request context
Organization ID.
Authorization link.
link, err := scalekitClient.Organization().GeneratePortalLink(ctx, "org_123")if err != nil { // handle}_ = link.UrlUpdateOrganizationSettings
Section titled “UpdateOrganizationSettings”#asyncUpdateOrganizationSettings
Runs UpdateOrganizationSettings and returns the result.
Request context
Resource ID.
Settings.
The organization.
resp, err := scalekitClient.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.SettingsUpsertUserManagementSettings
Section titled “UpsertUserManagementSettings”#asyncUpsertUserManagementSettings
Runs UpsertUserManagementSettings and returns the result.
Request context
Organization ID.
Settings.
organizationsv1.OrganizationUserManagementSettings
maxUsers := int32(150)settings, err := scalekitClient.Organization().UpsertUserManagementSettings( ctx, "org_123", scalekit.OrganizationUserManagementSettings{ MaxAllowedUsers: &maxUsers, },)if err != nil { // handle}_ = settings.MaxAllowedUsersGetOrganizationSessionPolicy
Section titled “GetOrganizationSessionPolicy”#asyncGetOrganizationSessionPolicy
Runs GetOrganizationSessionPolicy and returns the result.
Request context
Organization ID.
The response payload for this operation.
policy, err := scalekitClient.Organization().GetOrganizationSessionPolicy(ctx, "org_123")if err != nil { // handle}if policy.PolicySource == scalekit.SessionPolicySourceCustom { _ = policy.AbsoluteSessionTimeout.GetValue()}UpdateOrganizationSessionPolicy
Section titled “UpdateOrganizationSessionPolicy”#asyncUpdateOrganizationSessionPolicy
Runs UpdateOrganizationSessionPolicy and returns the result.
Request context
Organization ID.
Policy.
The updated resource.
timeout := int32(360)idleTimeout := int32(60)idleEnabled := truepolicy, err := scalekitClient.Organization().UpdateOrganizationSessionPolicy(ctx, "org_123", scalekit.OrganizationSessionPolicy{ PolicySource: scalekit.SessionPolicySourceCustom, AbsoluteSessionTimeout: &timeout, AbsoluteSessionTimeoutUnit: scalekit.TimeUnitMinutes, IdleSessionTimeoutEnabled: &idleEnabled, IdleSessionTimeout: &idleTimeout, IdleSessionTimeoutUnit: scalekit.TimeUnitMinutes,})if err != nil { // handle}_ = policy
// Revert to application defaultsreverted, err := scalekitClient.Organization().UpdateOrganizationSessionPolicy(ctx, "org_123", scalekit.OrganizationSessionPolicy{ PolicySource: scalekit.SessionPolicySourceApplication,})if err != nil { // handle}_ = reverted