# Permissions, sécurité et collaboration

## Cycle personnel / partagé / publié

### Fonctionnel
Cycle simple : création dans espace personnel, déplacement vers un dossier partagé accessible, publication selon permissions.

### Technique

```txt
canEdit
canMove
canPublish
canViewDraft
```

Créer / modifier ≠ publier.

## Permissions

### Fonctionnel
Permissions à plusieurs niveaux : organisation, workspace, dossier, objet. Décision : héritage depuis l’arborescence avec exceptions possibles sur certains objets.

### Technique

```txt
RBAC complet
+ permissions objet
+ exceptions objet
```

Compatible plus tard avec ABAC, policies, RLS et CLS.

## Authentification

### Fonctionnel
Support progressif : email/password, OAuth, SSO enterprise.

### Technique
Phase 1 : email/password, Google/Microsoft, RBAC de base.  
Phase 2 : OIDC, SAML, Azure AD, Okta, SCIM.

## Secrets

### Fonctionnel
Les identifiants de connexion aux sources de données doivent être sécurisés.

### Technique
Règles : jamais de secrets en clair, chiffrement dès le départ, abstraction `SecretsProvider`.

## Collaboration / verrouillage

### Fonctionnel
Quand un objet est en cours d’édition : indication visible, autres utilisateurs en lecture seule, message type “Dataset actuellement modifié par X”.

### Technique

```txt
Lock
  objectId
  objectType
  lockedBy
  lockedAt
  expiresAt
```
