
# Opschoning

Met opschoning verwijdert u sandboxes die niet langer nodig zijn. Bekijk eerst wat er gebeurt:

```bash
wp rudel cleanup --dry-run
```

`--dry-run` geeft weer wat er verwijderd zou worden en waarom. Voer het zonder de vlag uit om ze te verwijderen:

```bash
wp rudel cleanup
```

De opdracht vraagt niet om bevestiging.

## Beleid

Een onbeveiligde sandbox wordt verwijderd als een van de volgende voorwaarden geldt:

| Reden | Regel |
|--------|------|
| `expiry reached` | de `expires_at` ervan ligt in het verleden |
| `age policy matched` | deze is meer dan `max_age_days` geleden aangemaakt |
| `idle policy matched` | de laatste activiteit was meer dan `max_idle_days` geleden |

`max_age_days` en `max_idle_days` komen uit `rudel_config` (beide zijn standaard ingesteld op `0`, waarmee de regel wordt uitgeschakeld). Overschrijf ze voor één uitvoering:

```bash
wp rudel cleanup --max-age-days=30 --dry-run
wp rudel cleanup --max-idle-days=7
```

De laatste activiteit wordt bijgewerkt bij elk verzoek dat de sandbox selecteert en bij elke snapshot.

## Samengevoegde sandboxes

```bash
wp rudel cleanup --merged --dry-run
```

`--merged` voert een aparte ronde uit in plaats van het bovenstaande beleid. Het verwijdert een sandbox wanneer elke eraan gekoppelde Git-worktree die ervoor is geregistreerd, zich op een branch bevindt die is samengevoegd met de standaardbranch van de repository; vervolgens verwijdert het die branches. Gekoppelde worktrees ontstaan door een sandbox te klonen waarvan de themamap een Git-repository is (zie [Git](https://rudel.inline0.dev/nl/docs/features/git)). Sandboxes die met `--git` zijn aangemaakt, hebben geen worktreeregistraties en worden altijd overgeslagen ([issue #8](https://github.com/inline0/rudel/issues/8)).

## Beveiligde sandboxes

Beide rondes slaan beveiligde sandboxes over. Verwijder eerst de beveiliging met `wp rudel update <id> --unprotected` als de opschoning ze moet meenemen. `wp rudel destroy` negeert de beveiliging.

Bij het verwijderen van een sandbox worden de tabellen verwijderd, beheerde bestanden en worktrees gewist en de omgevingsregistratie van Rudel verwijderd. Zie [Automatisering](https://rudel.inline0.dev/nl/docs/features/automation) om opschoning volgens een schema uit te voeren.
