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.
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-corpValidation Rules
| Field | Rules |
|---|---|
| Name | 2-100 characters |
| Slug | 3-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:
- The creator is automatically added as the Owner member
- System roles (Owner, Admin, Developer, Viewer) are cloned into the organization
- Default permissions are assigned to each system role
- 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
| Field | Description |
|---|---|
| Name | Organization display name (2-100 chars) |
| Slug | URL-safe identifier (3-50 chars, must be unique) |
| Logo URL | Custom 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.
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
| Scenario | Setup |
|---|---|
| Separate clients | One org per client for data isolation |
| Agency model | Agency org + client orgs with agency features |
| Dev/Prod separation | Separate orgs for development and production |
| Department isolation | Different 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:
- Export any data you want to keep (backups, DR export)
- Delete or migrate all instances
- 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
| Action | Permission |
|---|---|
| View organization details | Any authenticated member |
| Update organization settings | manage:org_settings |
| Validate subscription | manage:org_settings |
| Disaster recovery | manage:org_settings |
| Delete organization | Owner 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_settingspermission - 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