> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pulseguard.nl/llms.txt
> Use this file to discover all available pages before exploring further.

# Organisaties & Teams

> Multi-tenancy ondersteuning voor teams en ondernemingen

## Overview

PulseGuard's multi-tenancy systeem stelt je in staat om organisaties te beheren met team members, verschillende rollen en gedeelde resources. Dit is perfect voor bedrijven, development teams en managed service providers die monitoring willen organiseren per afdeling, klant of project.

<Note>
  Organisatie features zijn beschikbaar vanaf de Pro plannen. Advanced multi-tenancy vereist Expert abonnement.
</Note>

## Belangrijkste Features

<CardGroup cols={3}>
  <Card title="Team Management" icon="users" color="#3B82F6">
    Beheer team members met verschillende rollen en permissies
  </Card>

  <Card title="Resource Sharing" icon="share" color="#10B981">
    Deel monitoring resources binnen je organisatie
  </Card>

  <Card title="Role-based Access" icon="shield" color="#8B5CF6">
    Granulaire permissies per rol en resource
  </Card>

  <Card title="Billing Management" icon="credit-card" color="#F59E0B">
    Centrale billing en usage tracking per organisatie
  </Card>

  <Card title="Audit Logging" icon="clipboard-list" color="#EC4899">
    Complete audit trail van alle organisatie activiteiten
  </Card>

  <Card title="SSO Integration" icon="key" color="#6366F1">
    Single Sign-On ondersteuning voor enterprise
  </Card>
</CardGroup>

## Organisatie Aanmaken

### Als Individuele Gebruiker

<Steps>
  <Step title="Navigeer naar Organizations">
    Ga naar **Settings** → **Organizations**
  </Step>

  <Step title="Nieuwe Organisatie">
    Klik "Create Organization"
  </Step>

  <Step title="Basis Informatie">
    Voer naam, slug en beschrijving in
  </Step>

  <Step title="Branding">
    Upload logo en stel theme in
  </Step>

  <Step title="Team Members Uitnodigen">
    Nodig eerste team members uit
  </Step>
</Steps>

### Als Enterprise

Voor grote organisaties met complexe structuren:

```json theme={null}
{
  "name": "Acme Corporation",
  "slug": "acme",
  "description": "Enterprise monitoring voor Acme Corp",
  "settings": {
    "billing": {
      "costCenter": "IT-INFRA",
      "budgetAlerts": true
    },
    "security": {
      "requireMFA": true,
      "sessionTimeout": 480
    },
    "compliance": {
      "dataRetention": 2555, // dagen
      "auditLogging": true
    }
  }
}
```

## Rollen & Permissies

### Standaard Rollen

#### Owner

**Volledige toegang tot alle organisatie resources**

* Organisatie instellingen beheren
* Team members uitnodigen/verwijderen
* Billing en abonnementen beheren
* Alle monitoring resources beheren
* Security policies instellen

#### Admin

**Beheer toegang zonder eigenaar permissies**

* Team members beheren (behalve owners)
* Organisatie instellingen aanpassen
* Monitoring resources beheren
* Integraties configureren

#### Member

**Standaard team member toegang**

* Eigen monitoring resources beheren
* Team resources bekijken
* Incidenten melden en updaten
* Reports bekijken

#### Viewer

**Read-only toegang**

* Alle monitoring data bekijken
* Reports en dashboards bekijken
* Geen wijzigingen maken
* Incidenten volgen

### Custom Rollen

Voor geavanceerde permissie behoeften:

```json theme={null}
{
  "name": "DevOps Engineer",
  "permissions": [
    "domains:create",
    "domains:update",
    "devices:read",
    "services:manage",
    "incidents:create",
    "reports:view"
  ],
  "restrictions": {
    "maxDomains": 50,
    "allowedEnvironments": ["development", "staging"]
  }
}
```

## Team Member Management

### Members Uitnodigen

<Steps>
  <Step title="Ga naar Team Settings">
    **Settings** → **Team** → **Members**
  </Step>

  <Step title="Invite Member">
    Klik "Invite Member"
  </Step>

  <Step title="Email Adres">
    Voer email adres van de uit te nodigen persoon in
  </Step>

  <Step title="Rol Selecteren">
    Kies de juiste rol voor de nieuwe member
  </Step>

  <Step title="Persoonlijke Boodschap">
    Voeg optioneel een boodschap toe aan de uitnodiging
  </Step>

  <Step title="Verstuur Uitnodiging">
    De uitnodiging wordt per email verstuurd
  </Step>
</Steps>

### Uitnodiging Lifecycle

1. **Pending**: Uitnodiging verstuurd maar nog niet geaccepteerd
2. **Expired**: Uitnodiging verlopen (14 dagen geldig)
3. **Accepted**: Member heeft uitnodiging geaccepteerd
4. **Declined**: Member heeft uitnodiging afgewezen

### Member Actions

#### Rol Wijzigen

```json theme={null}
PUT /api/organizations/{orgId}/members/{userId}
{
  "role": "admin",
  "permissions": ["custom-permissions"]
}
```

#### Member Verwijderen

```json theme={null}
DELETE /api/organizations/{orgId}/members/{userId}
```

#### Bulk Operations

```json theme={null}
POST /api/organizations/{orgId}/members/bulk
{
  "operation": "update_role",
  "memberIds": ["user1", "user2"],
  "newRole": "viewer"
}
```

## Resource Sharing

### Shared Resources

Alle monitoring resources kunnen gedeeld worden binnen organisaties:

#### Domains

* **Personal**: Alleen eigenaar heeft toegang
* **Organization**: Alle team members hebben toegang
* **Team-specific**: Alleen specifieke team members

#### Devices

* **Personal Devices**: Alleen eigenaar
* **Organization Devices**: Alle members
* **Department Devices**: Per afdeling

#### Services

* **API Services**: Gedeeld met development teams
* **Infrastructure Services**: Gedeeld met ops teams
* **Application Services**: Per applicatie team

### Resource Permissions

```json theme={null}
{
  "resourceId": "domain-uuid",
  "resourceType": "domain",
  "permissions": {
    "read": ["role:member", "user:specific-user"],
    "write": ["role:admin"],
    "delete": ["role:owner"],
    "manage": ["user:team-lead"]
  }
}
```

## Billing & Usage

### Organisatie Billing

#### Centralized Billing

* Eén factuur voor de hele organisatie
* Usage tracking per team/afdeling
* Cost allocation per project

#### Cost Centers

```json theme={null}
{
  "organizationId": "org-uuid",
  "costCenters": [
    {
      "name": "Development",
      "budget": 5000,
      "currentUsage": 3200,
      "alertThreshold": 80
    },
    {
      "name": "Production",
      "budget": 15000,
      "currentUsage": 8900,
      "alertThreshold": 90
    }
  ]
}
```

#### Usage Reports

* **Per Team**: Usage breakdown per team member
* **Per Resource**: Cost per domain, device, service
* **Per Period**: Monthly, quarterly reports
* **Budget Alerts**: Automatische alerts bij budget overschrijding

## Security & Compliance

### Access Control

#### Multi-Factor Authentication

* **Required MFA**: Voor alle organization members
* **MFA Methods**: TOTP, SMS, hardware keys
* **MFA Bypass**: Voor service accounts indien nodig

#### Session Management

```json theme={null}
{
  "sessionSettings": {
    "maxConcurrentSessions": 5,
    "sessionTimeout": 480, // minuten
    "requireMFA": true,
    "allowedIPs": ["192.168.1.0/24"],
    "deviceRestrictions": {
      "allowMobile": true,
      "allowDesktop": true,
      "requireCompanyDevice": false
    }
  }
}
```

### Audit Logging

#### Comprehensive Auditing

* **User Actions**: Login, logout, resource changes
* **Resource Changes**: Create, update, delete operations
* **Permission Changes**: Role en access modifications
* **Security Events**: Failed login attempts, suspicious activity

#### Audit Reports

```json theme={null}
{
  "auditEntry": {
    "id": "audit-uuid",
    "timestamp": "2024-01-01T10:00:00Z",
    "userId": "user-uuid",
    "action": "domain.create",
    "resourceId": "domain-uuid",
    "resourceType": "domain",
    "ipAddress": "192.168.1.100",
    "userAgent": "Mozilla/5.0...",
    "changes": {
      "before": null,
      "after": {"name": "New Domain"}
    }
  }
}
```

## Single Sign-On (SSO)

### SSO Providers

PulseGuard ondersteunt enterprise SSO:

* **SAML 2.0**: Voor enterprise identity providers
* **OAuth 2.0**: Voor cloud identity providers
* **LDAP**: Voor on-premise directory services
* **Azure AD**: Native Azure Active Directory integratie

### SSO Setup

#### SAML Configuration

```xml theme={null}
<EntityDescriptor entityID="pulseguard">
  <SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
    <AssertionConsumerService
      index="0"
      Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
      Location="https://guard.ipulse.one/auth/saml/callback" />
  </SPSSODescriptor>
</EntityDescriptor>
```

#### Azure AD Setup

```json theme={null}
{
  "azureAd": {
    "tenantId": "azure-tenant-id",
    "clientId": "azure-client-id",
    "clientSecret": "azure-client-secret",
    "redirectUri": "https://guard.ipulse.one/auth/azure/callback"
  }
}
```

## Organization Settings

### General Settings

```json theme={null}
{
  "organization": {
    "name": "Acme Corporation",
    "slug": "acme",
    "description": "Enterprise monitoring platform",
    "logo": "https://acme.com/logo.png",
    "website": "https://acme.com",
    "timezone": "Europe/Amsterdam",
    "language": "nl"
  }
}
```

### Notification Settings

```json theme={null}
{
  "notifications": {
    "emailDomain": "acme.com",
    "slackWebhook": "https://hooks.slack.com/...",
    "teamsWebhook": "https://outlook.office.com/...",
    "pagerdutyIntegrationKey": "pd-integration-key"
  }
}
```

### Compliance Settings

```json theme={null}
{
  "compliance": {
    "dataRetentionDays": 2555,
    "auditLoggingEnabled": true,
    "gdprCompliant": true,
    "hipaaCompliant": false,
    "encryptionAtRest": true,
    "backupFrequency": "daily"
  }
}
```

## API Access

### Organization-scoped API

```bash theme={null}
# Organization members ophalen
curl -H "Authorization: Bearer YOUR_TOKEN" \
  https://api.ipulse.one/organizations/current/members

# Organization resources ophalen
curl -H "Authorization: Bearer YOUR_TOKEN" \
  https://api.ipulse.one/organizations/current/domains

# Organization statistieken
curl -H "Authorization: Bearer YOUR_TOKEN" \
  https://api.ipulse.one/organizations/current/stats
```

### Service Account API Keys

Voor automatisering en integraties:

```json theme={null}
{
  "serviceAccount": {
    "name": "CI/CD Pipeline",
    "permissions": ["domains:read", "services:write"],
    "expiresAt": "2024-12-31T00:00:00Z",
    "ipRestrictions": ["192.168.1.0/24"],
    "apiKey": "generated-api-key-here"
  }
}
```

## Best Practices

### Organization Structure

#### Kleine Organisaties (\< 50 users)

* Eenvoudige structuur met Owner + Members
* Alle resources organization-wide gedeeld
* Basis rollen (Owner, Admin, Member)

#### Grote Organisaties (50-500 users)

* Department-based structuur
* Cost centers per afdeling
* Advanced rollen en permissies
* SSO integratie

#### Enterprise (> 500 users)

* Complexe multi-level structuur
* Advanced security policies
* Compliance en audit requirements
* Custom integraties

### Security Best Practices

1. **Principle of Least Privilege**: Geef alleen benodigde permissies
2. **Regular Audits**: Controleer access logs maandelijks
3. **MFA Required**: Voor alle privileged accounts
4. **Session Timeouts**: Korte timeouts voor sensitive operations
5. **IP Restrictions**: Beperk toegang tot company networks

### Cost Management

1. **Budget Alerts**: Stel alerts in bij 80% budget gebruik
2. **Usage Monitoring**: Track usage per team/afdeling
3. **Cost Allocation**: Tag resources voor cost tracking
4. **Regular Reviews**: Maandelijkse budget reviews

### Team Onboarding

1. **Role Definition**: Definieer rollen voordat je members uitnodigt
2. **Documentation**: Creëer organization guidelines
3. **Training**: Zorg voor adequate training
4. **Support**: Bied support tijdens onboarding

## Troubleshooting

### Veelvoorkomende Problemen

#### Member Cannot Access Resources

**Oorzaken:**

* Incorrecte rol toegewezen
* Resource niet gedeeld met organization
* Permission cache issues

**Oplossingen:**

1. Controleer member rol
2. Verificeer resource sharing settings
3. Clear permission cache

#### Billing Overages

**Oorzaken:**

* Onverwachte resource creation
* Team members exceeding limits
* Incorrect plan selection

**Oplossingen:**

1. Review recent resource additions
2. Check per-user usage limits
3. Upgrade plan indien nodig

#### SSO Configuration Issues

**Oorzaken:**

* Incorrect metadata exchange
* Certificate problemen
* Redirect URI mismatches

**Oplossingen:**

1. Verify SAML metadata
2. Check certificate validity
3. Confirm redirect URIs match

## Migration Guide

### Van Personal naar Organization

<Steps>
  <Step title="Organisatie Aanmaken">
    Creëer nieuwe organization als owner
  </Step>

  <Step title="Resources Migreren">
    Verplaats bestaande domains/devices naar organization
  </Step>

  <Step title="Team Members Uitnodigen">
    Nodig bestaande users uit voor organization
  </Step>

  <Step title="Permissies Instellen">
    Stel juiste rollen in voor alle members
  </Step>

  <Step title="Billing Overzetten">
    Update billing naar organization account
  </Step>
</Steps>

### Bulk Migration Script

```bash theme={null}
# Export personal resources
curl -H "Authorization: Bearer PERSONAL_TOKEN" \
  https://api.ipulse.one/domains > domains.json

# Import into organization
curl -X POST https://api.ipulse.one/organizations/ORG_ID/domains/bulk \
  -H "Authorization: Bearer ORG_TOKEN" \
  -H "Content-Type: application/json" \
  -d @domains.json
```

## Support & Resources

### Enterprise Support

* **Dedicated Account Manager**: Voor grote organisaties
* **Priority Support**: Snellere response times
* **Custom Training**: Organization-specifieke training
* **Migration Assistance**: Hulp bij grote migraties

### Documentation

* **Organization Setup Guide**: Stap-voor-stap setup
* **Role Definitions**: Detailed permission matrices
* **Security Best Practices**: Enterprise security guidelines
* **API Reference**: Complete organization API docs

***

*Organisaties bieden de structuur die grote teams nodig hebben voor effectieve monitoring collaboration.*
