Organizations

Organizations represent the fundamental structural unit in Eden's architecture. They serve as secure, isolated containers for all resources, ensuring clear ownership and access boundaries. The organization-centric design enables multi-tenant deployments while maintaining strict data segregation.

Organization Structure and PurposeCopied!

Each organization in Eden functions as an independent entity with:

  • Its own set of users and permission structures

  • Dedicated resources (endpoints, templates, workflows)

  • Isolated data processing pipelines

  • Separate authentication context

This isolation ensures that operations in one organization cannot affect resources in another, providing strong security and governance. Organizations typically correspond to real-world entities such as companies, departments, or project teams.

Creating an OrganizationCopied!

  • Endpoint: POST /new

  • This endpoint is deliberately accessible without authentication to enable new users to create their first organization

  • The creation process provisions the necessary infrastructure for your organization to operate

  • The creator automatically becomes a SuperAdmin for the new organization

  • Example request:

    POST /new{  "name": "Acme Corporation",  "adminEmail": "admin@acmecorp.com",  "description": "Technology solutions provider",  "settings": {    "defaultRegion": "us-west-2",    "enableAdvancedFeatures": true  }}
    

Upon creation, a unique organization identifier is generated. This identifier must be used in the X-Org-Id header for all subsequent operations related to this organization.

Managing OrganizationsCopied!

  • Get Organization Details: GET /organizations

    • Retrieves comprehensive information about your organization

    • Includes metadata, settings, usage statistics, and feature enablements

    • Useful for administration dashboards and organization management interfaces

    • The response includes lists of organization resources (users, endpoints, templates, workflows)

  • Update Organization: PATCH /organizations

    • Allows modification of organization settings and metadata

    • Only SuperAdmins can perform updates to ensure proper governance

    • Supports partial updates, so you only need to include the fields you want to change

    • Changes to critical settings may trigger related infrastructure adjustments

    • Example update request:

      PATCH /organizations{  "name": "Acme Corp Global",  "settings": {    "dataRetentionDays": 90  }}
      
  • Delete Organization: DELETE /organizations

    • Permanently removes the organization and all its resources

    • Requires SuperAdmin privileges

    • This is an irreversible operation and should be used with caution

    • All associated endpoints, templates, workflows, and user associations are removed

    • A confirmation mechanism may be required for this destructive operation

Organization Design ConsiderationsCopied!

When working with Eden, consider these organization design principles:

  • Create separate organizations for production and development environments

  • Align organization boundaries with data access requirements

  • Use organizations to implement data governance policies

  • Consider regulatory requirements that might necessitate data separation

API ReferenceCopied!

Create Organization

  • URL: /new

  • Method: POST

  • Authentication: Not required

  • Request Body: Organization input details

  • Example Request:

    {  "name": "Acme Corporation",  "adminEmail": "admin@acmecorp.com",  "description": "Technology solutions provider",  "settings": {    "defaultRegion": "us-west-2",    "enableAdvancedFeatures": true,    "dataRetentionDays": 180,    "maxEndpoints": 50  }}
    
  • Success Response: 200 OK with the organization identifier

  • Example Response:

    {  "orgId": "acme-corp-123",  "message": "Organization created successfully",  "adminInvitation": {    "email": "admin@acmecorp.com",    "invitationId": "inv_987654",    "expires": "2025-05-19T09:45:22Z"  }}
    

Get Organization

  • URL: /organizations

  • Method: GET

  • Headers Required: Authorization with JWT token

  • Success Response: 200 OK with organization details

  • Example Response:

    {  "orgId": "acme-corp-123",  "name": "Acme Corporation",  "description": "Technology solutions provider",  "created": "2025-05-01T10:15:22Z",  "createdBy": "admin@acmecorp.com",  "lastModified": "2025-05-10T14:30:45Z",  "lastModifiedBy": "admin@acmecorp.com",  "settings": {    "defaultRegion": "us-west-2",    "enableAdvancedFeatures": true,    "dataRetentionDays": 180,    "maxEndpoints": 50  },  "usage": {    "endpoints": {      "count": 12,      "limit": 50    },    "templates": {      "count": 25,      "limit": 100    },    "workflows": {      "count": 8,      "limit": 20    },    "storage": {      "used": "1.2GB",      "limit": "10GB"    }  },  "resources": {    "users": [      {        "email": "admin@acmecorp.com",        "accessLevel": "SuperAdmin",        "lastActive": "2025-05-12T08:45:22Z"      },      {        "email": "john.dev@acmecorp.com",        "accessLevel": "Write",        "lastActive": "2025-05-11T16:22:10Z"      }    ],    "resourceCounts": {      "endpoints": 12,      "templates": 25,      "workflows": 8    }  }}
    

Update Organization

  • URL: /organizations

  • Method: PATCH

  • Headers Required: Authorization with JWT token (SuperAdmin only)

  • Request Body: Updated organization details

  • Example Request:

    {  "name": "Acme Corp Global",  "description": "Global technology solutions provider",  "settings": {    "dataRetentionDays": 90,    "maxEndpoints": 75  }}
    
  • Success Response: 200 OK with confirmation message

  • Example Response:

    {  "message": "Organization updated successfully",  "updatedFields": ["name", "description", "settings.dataRetentionDays", "settings.maxEndpoints"]}
    

Delete Organization

  • URL: /organizations

  • Method: DELETE

  • Headers Required: Authorization with JWT token (SuperAdmin only)

  • Success Response: 200 OK with confirmation message

  • Example Response:

    {  "message": "Organization deleted successfully",  "orgId": "acme-corp-123"}
    

Multi-Organization StrategiesCopied!

Development/Testing/Production Separation

A common pattern is to create separate organizations for different environments:

Acme Corp Development
├── Relaxed security settings
├── Sandbox endpoints for experimentation
├── Higher logging verbosity
├── Frequent updates and changes
├── Development team access

Acme Corp Testing
├── Production-like security settings
├── Test endpoints with controlled data
├── Comprehensive logging
├── Scheduled releases
├── QA team access

Acme Corp Production
├── Strict security controls
├── Production endpoints with real data
├── Audit-focused logging
├── Controlled release cycle
├── Operations team access

Business Unit Separation

For large enterprises, separating organizations by business unit may be appropriate:

Acme Corp - Retail Division
├── Retail-specific endpoints
├── Customer-focused workflows
├── Store operation templates
├── Retail team access

Acme Corp - Manufacturing Division
├── Supply chain endpoints
├── Production workflows
├── Quality control templates
├── Manufacturing team access

Acme Corp - Corporate
├── Finance endpoints
├── HR workflows
├── Company-wide templates
├── Executive team access

Regional Separation

For organizations with region-specific requirements:

Acme Corp - North America
├── US/Canada-specific endpoints
├── USD currency handling
├── NA compliance workflows
├── Regional team access

Acme Corp - Europe
├── EU-specific endpoints
├── EUR currency handling
├── GDPR compliance workflows
├── European team access

Acme Corp - Global Operations
├── Cross-region coordination
├── Global reporting
├── Common templates and standards
├── Global management access

Organization MigrationCopied!

When moving resources between organizations:

  1. Export resources from the source organization

  2. Import resources into the destination organization

  3. Update references to ensure proper connections

  4. Verify functionality in the new organization

  5. Decommission resources in the original organization if no longer needed

Best PracticesCopied!

  1. Clear Naming Conventions

    • Use consistent, descriptive names for organizations

    • Include purpose or environment in the name

    • Document the naming scheme

  2. Organization Hierarchy

    • Design organization structure before implementation

    • Consider access control requirements

    • Plan for future growth and division

  3. Resource Allocation

    • Set appropriate limits based on expected usage

    • Monitor resource utilization

    • Adjust limits proactively before reaching capacity

  4. Documentation

    • Maintain clear documentation of organization's purpose

    • Document ownership and administrative contacts

    • Include migration procedures between organizations