Skip to content
Scalekit Docs

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.

clientOrganizationshttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/organization.go
#asyncCreateOrganization

Runs CreateOrganization and returns the result.

paramctxcontext.Context

Request context

paramnamestring

Display name.

paramoptionsCreateOrganizationOptions

Optional request settings.

returnsCreateOrganizationResponse

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)
clientOrganizationshttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/organization.go
#asyncListOrganization

Runs ListOrganization and returns the result.

paramctxcontext.Context

Request context

paramrequestListOrganizationOptions

Request payload.

returnsListOrganizationsResponse

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 defaults
orgs, err = scalekitClient.Organization().ListOrganization(ctx, nil)
clientOrganizationshttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/organization.go
#asyncGetOrganization

Runs GetOrganization and returns the result.

paramctxcontext.Context

Request context

paramidstring

Resource ID.

returnsGetOrganizationResponse

The organization.

org, err := scalekitClient.Organization().GetOrganization(ctx, "org_123")
if err != nil {
// handle
}
_ = org.Organization
clientOrganizationshttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/organization.go
#asyncGetOrganizationByExternalId

Runs GetOrganizationByExternalId and returns the result.

paramctxcontext.Context

Request context

paramexternalIdstring

External ID.

returnsGetOrganizationResponse

The organization.

org, err := scalekitClient.Organization().GetOrganizationByExternalId(ctx, "customer_12345")
if err != nil {
// handle
}
_ = org.Organization
clientOrganizationshttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/organization.go
#asyncUpdateOrganization

Runs UpdateOrganization and returns the result.

paramctxcontext.Context

Request context

paramidstring

Resource ID.

paramorganizationUpdateOrganization

Fields to update.

returnsUpdateOrganizationResponse

The updated organization.

// DisplayName: Display name
updated, err := scalekitClient.Organization().UpdateOrganization(
ctx,
"org_123",
&organizations.UpdateOrganization{
DisplayName: func() *string { s := "Updated name"; return &s }(),
},
)
if err != nil {
// handle
}
_ = updated.Organization
clientOrganizationshttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/organization.go
#asyncUpdateOrganizationByExternalId

Runs UpdateOrganizationByExternalId and returns the result.

paramctxcontext.Context

Request context

paramexternalIdstring

External ID.

paramorganizationUpdateOrganization

Fields to update.

returnsUpdateOrganizationResponse

The updated organization.

// DisplayName: Display name
updated, err := scalekitClient.Organization().UpdateOrganizationByExternalId(
ctx,
"customer_12345",
&organizations.UpdateOrganization{
DisplayName: func() *string { s := "Updated name"; return &s }(),
},
)
if err != nil {
// handle
}
_ = updated.Organization
clientOrganizationshttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/organization.go
#asyncDeleteOrganization

Runs DeleteOrganization and returns the result.

paramctxcontext.Context

Request context

paramidstring

Resource ID.

returnserror

error

if err := scalekitClient.Organization().DeleteOrganization(ctx, "org_123"); err != nil {
// handle
}
clientOrganizationshttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/organization.go
clientOrganizationshttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/organization.go
#asyncUpdateOrganizationSettings

Runs UpdateOrganizationSettings and returns the result.

paramctxcontext.Context

Request context

paramidstring

Resource ID.

paramsettingsOrganizationSettings

Settings.

returnsGetOrganizationResponse

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.Settings
clientOrganizationshttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/organization.go
#asyncUpsertUserManagementSettings

Runs UpsertUserManagementSettings and returns the result.

paramctxcontext.Context

Request context

paramorganizationIdstring

Organization ID.

paramsettingsOrganizationUserManagementSettings

Settings.

returnsorganizationsv1.OrganizationUserManagementSettings

organizationsv1.OrganizationUserManagementSettings

maxUsers := int32(150)
settings, err := scalekitClient.Organization().UpsertUserManagementSettings(
ctx,
"org_123",
scalekit.OrganizationUserManagementSettings{
MaxAllowedUsers: &maxUsers,
},
)
if err != nil {
// handle
}
_ = settings.MaxAllowedUsers
clientOrganizationshttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/organization.go
#asyncGetOrganizationSessionPolicy

Runs GetOrganizationSessionPolicy and returns the result.

paramctxcontext.Context

Request context

paramorganizationIdstring

Organization ID.

returnsOrganizationSessionPolicySettings

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()
}
clientOrganizationshttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/organization.go
#asyncUpdateOrganizationSessionPolicy

Runs UpdateOrganizationSessionPolicy and returns the result.

paramctxcontext.Context

Request context

paramorganizationIdstring

Organization ID.

parampolicyOrganizationSessionPolicy

Policy.

returnsOrganizationSessionPolicySettings

The updated resource.

timeout := int32(360)
idleTimeout := int32(60)
idleEnabled := true
policy, 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 defaults
reverted, err := scalekitClient.Organization().UpdateOrganizationSessionPolicy(ctx, "org_123", scalekit.OrganizationSessionPolicy{
PolicySource: scalekit.SessionPolicySourceApplication,
})
if err != nil {
// handle
}
_ = reverted