# Dépendances, suppression, audit et versioning

## Dépendances et lineage

### Fonctionnel
Le système doit connaître les dépendances entre objets.

```txt
Source
 → Dataset
 → Pipeline
 → Dashboard
 → Widget
 → Alert
 → Export
```

### Technique
Mettre en place un dependency graph pour impact analysis, suppression protégée, refresh intelligent, lineage, IA contextuelle, audit et publication sécurisée.

## Suppression protégée

### Fonctionnel
Si un objet est utilisé ailleurs, sa suppression est bloquée.

### Technique
Avant suppression : interroger dependency graph, afficher les objets dépendants, bloquer tant que les références existent.

## Soft delete / corbeille

### Fonctionnel
Prévoir corbeille, restauration et suppression définitive plus tard.

### Technique

```txt
deletedAt
deletedBy
restoreUntil
```

## Versioning

### Fonctionnel
Versioning uniquement sur objets critiques : dashboards, pipelines, datasets structurants, semantic layer future, éventuellement widget collections.

### Technique

```txt
objectId
versionId
createdBy
createdAt
snapshot
changeSummary
```

## Audit logs

### Fonctionnel
Tracer les actions importantes.

### Technique

```txt
AuditLog
  organizationId
  workspaceId
  actorId
  action
  objectType
  objectId
  metadata
  timestamp
```
