oCoreoCore Docs

Organizations

Create and manage organizations, configure settings, branding, and multi-org support.

An organization in oCore is the top-level entity that owns all resources: servers, instances, projects, members, and configuration. Every user belongs to at least one organization, and all operations are scoped to the current organization context.

Organization Settings

Manage your organization's name, slug, branding, and configuration.

Open in Dashboard

Creating an Organization

When you sign up, your first organization is created automatically. You can create additional organizations for separate teams, clients, or projects.

curl -X POST https://ocore.example.com/api/user/orgs \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Acme Corp",
    "slug": "acme-corp"
  }'
ocore org create --name "Acme Corp" --slug acme-corp

Validation Rules

FieldRules
Name2-100 characters
Slug3-50 characters, lowercase, alphanumeric + hyphens, unique across all organizations

If you omit the slug, oCore generates one from the organization name.

What Happens on Creation

When an organization is created:

  1. The creator is automatically added as the Owner member
  2. System roles (Owner, Admin, Developer, Viewer) are cloned into the organization
  3. Default permissions are assigned to each system role
  4. The organization is ready to accept members and resources

Organization Settings

Updating Organization Details

curl -X PUT https://ocore.example.com/api/org \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Acme Corporation",
    "slug": "acme-corp",
    "logoUrl": "https://cdn.example.com/logo.png"
  }'
ocore org update --name "Acme Corporation"

Editable Fields

FieldDescription
NameOrganization display name (2-100 chars)
SlugURL-safe identifier (3-50 chars, must be unique)
Logo URLCustom logo for the dashboard header

Organization-Level Configuration

Configure platform-wide settings for your organization:

# View settings
curl https://ocore.example.com/api/org/settings \
  -H "Authorization: Bearer $TOKEN"

# Update settings
curl -X PUT https://ocore.example.com/api/org/settings \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'

General Settings

Configure organization-level settings and preferences.

Open in Dashboard

Organization settings include:

  • Subscription management and license validation
  • Default server and instance preferences
  • Notification settings
  • DNS provider configuration
  • Backup destination defaults

Subscription Validation

If your organization uses a subscription code:

curl -X POST https://ocore.example.com/api/org/settings/validate-subscription \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"code": "YOUR_SUBSCRIPTION_CODE"}'

Multi-Organization Support

Users can belong to multiple organizations simultaneously. The dashboard provides an organization switcher to change context.

Switching Organizations

The current organization context is set via the JWT token's organization claim. When you switch organizations:

  • All API requests are scoped to the selected organization
  • Resources from other organizations are not visible
  • Permissions are evaluated against your role in the selected organization

Use Cases for Multiple Organizations

ScenarioSetup
Separate clientsOne org per client for data isolation
Agency modelAgency org + client orgs with agency features
Dev/Prod separationSeparate orgs for development and production
Department isolationDifferent departments each manage their own infrastructure

Disaster Recovery Export

Export a complete snapshot of your organization's configuration for disaster recovery:

# View disaster recovery info
curl https://ocore.example.com/api/org/disaster-recovery/info \
  -H "Authorization: Bearer $TOKEN"

# Export organization data
curl -X POST https://ocore.example.com/api/org/disaster-recovery/export \
  -H "Authorization: Bearer $TOKEN"

What Gets Exported

The disaster recovery export includes organization configuration, member list, role definitions, server connection details (encrypted), project settings, and backup schedules. It does not include instance data or database contents -- use backups for those.

Deleting an Organization

Permanent and Irreversible

Deleting an organization removes all associated data: servers, instances, projects, members, backups, and configuration. This action cannot be undone. Only the organization Owner can perform this action.

Before deleting:

  1. Export any data you want to keep (backups, DR export)
  2. Delete or migrate all instances
  3. Remove all team members (optional -- they will lose access automatically)
curl -X DELETE https://ocore.example.com/api/org \
  -H "Authorization: Bearer $TOKEN"

Required Permissions

ActionPermission
View organization detailsAny authenticated member
Update organization settingsmanage:org_settings
Validate subscriptionmanage:org_settings
Disaster recoverymanage:org_settings
Delete organizationOwner role only

Troubleshooting

Cannot create organization with desired slug

  • Slugs must be globally unique across all oCore organizations
  • Try a different slug or add a suffix (e.g., acme-corp-dev)
  • Slugs must be 3-50 characters, lowercase, and contain only letters, numbers, and hyphens

Organization settings not saving

  • Verify you have the manage:org_settings permission
  • Check that the request body is valid JSON
  • Some settings may require a subscription validation first

Cannot switch organizations

  • Verify you are a member of the target organization
  • Your authentication token may need to be refreshed after accepting an invitation
  • Check that the organization has not been deleted

Logo not displaying

  • Verify the logo URL is publicly accessible (HTTPS)
  • Check that the image format is supported (PNG, JPEG, SVG)
  • The URL must not be blocked by CORS policies
Was this page helpful?