72 lines
2.2 KiB
Markdown
72 lines
2.2 KiB
Markdown
# Destroying Actors
|
|
|
|
> Source: `src/content/docs/actors/destroy.mdx`
|
|
> Canonical URL: https://rivet.dev/docs/actors/destroy
|
|
> Description: Actors can be permanently destroyed. Common use cases include:
|
|
|
|
---
|
|
- User account deletion
|
|
- Ending a user session
|
|
- Closing a room or game
|
|
- Cleaning up temporary resources
|
|
- GDPR/compliance data removal
|
|
|
|
Actors sleep when idle, so destruction is only needed to permanently remove data — not to save compute.
|
|
|
|
## Destroying An Actor
|
|
|
|
### Destroy via Action
|
|
|
|
To destroy an actor, use `c.destroy()` like this:
|
|
|
|
### Destroy via HTTP
|
|
|
|
Send a DELETE request to destroy an actor. This requires a token for authentication:
|
|
|
|
- **Rivet Cloud**: Use the service key (`sk_*`) from your `RIVET_ENDPOINT` URL. Find this in the dashboard under **Settings > Advanced > Backend Configuration** (e.g. the `sk_...` portion of `https://default:sk_abc123@api.rivet.dev`).
|
|
- **Self-hosted**: Use an admin token.
|
|
|
|
```typescript
|
|
const actorId = "your-actor-id";
|
|
const namespace = "default";
|
|
const token = "your-token";
|
|
|
|
await fetch(`https://api.rivet.dev/actors/${actorId}?namespace=${namespace}`, {
|
|
method: "DELETE",
|
|
headers: {
|
|
Authorization: `Bearer ${token}`,
|
|
},
|
|
});
|
|
```
|
|
|
|
```bash
|
|
curl -X DELETE "https://api.rivet.dev/actors/{actorId}?namespace={namespace}" \
|
|
-H "Authorization: Bearer {token}"
|
|
```
|
|
|
|
To find the actor ID, you can list actors first:
|
|
|
|
```bash
|
|
curl "https://api.rivet.dev/actors?namespace={namespace}" \
|
|
-H "Authorization: Bearer {token}"
|
|
```
|
|
|
|
### Destroy via Dashboard
|
|
|
|
To destroy an actor via the dashboard, navigate to the actor and press the red "X" in the top right.
|
|
|
|
## Lifecycle Hook
|
|
|
|
Once destroyed, the `onDestroy` hook will be called. This can be used to clean up resources related to the actor. For example:
|
|
|
|
## Accessing Actor After Destroy
|
|
|
|
Once an actor is destroyed, any subsequent requests to it will fail with an `actor.not_found` error (`{ group: "actor", code: "not_found" }`). The actor's state is permanently deleted.
|
|
|
|
## API Reference
|
|
|
|
- [`ActorHandle`](/typedoc/types/rivetkit.client_mod.ActorHandle.html) - Has destroy methods
|
|
- [`ActorContext`](/typedoc/interfaces/rivetkit.mod.ActorContext.html) - Context during destruction
|
|
|
|
_Source doc path: /docs/actors/destroy_
|