Skip to content
Scalekit Docs
Talk to an EngineerDashboard

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