diff --git a/vendor/api/docs/content/actors/create.mdx b/vendor/api/docs/content/actors/create.mdx index e510dc90..e3bc2be7 100644 --- a/vendor/api/docs/content/actors/create.mdx +++ b/vendor/api/docs/content/actors/create.mdx @@ -1,11 +1,11 @@ --- title: "Create Actor" -description: "Create a new actor. Fails if a live actor with the same name and key already exists." +description: "Create a new actor. Fails if an actor with the same name and key already exists." --- {/* Generated by scripts/docs/gen-api-reference.mjs from engine/artifacts/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} -Prefer [Get or Create Actor](/docs/api/actors/get-or-create) for idempotent access by key. Use this endpoint when you need a fresh actor every time, for example with a random key. The request returns once the actor's record exists, and fails after 30 seconds. A namespace token needs a grant on `actor` with `create`. +Prefer [Get or Create Actor](/docs/api/actors/get-or-create) for idempotent access by key. Use this endpoint when you need a fresh actor every time, for example with a random key. ```http POST https://rivet.example.com/actors @@ -22,7 +22,8 @@ curl -X POST "https://rivet.example.com/actors?namespace=$RIVET_NAMESPACE" \ -d '{ "name": "counter", "key": "my-counter", - "runner_name_selector": "default" + "runner_name_selector": "default", + "crash_policy": "sleep" }' ``` @@ -32,13 +33,13 @@ curl -X POST "https://rivet.example.com/actors?namespace=$RIVET_NAMESPACE" \ ## Authentication -Send the admin token, or a namespace token from [Create Token](/docs/api/tokens/create) whose grants cover the request, as a bearer token in the `Authorization` header. The `x-rivet-token` header is also accepted. Routes with a `namespace` query parameter use the `default` namespace when it is omitted. See [Authentication](/docs/api/authentication). +Send your namespace token as a bearer token in the `Authorization` header. Every control plane request also requires the `namespace` query parameter. See [Authentication](/docs/api/authentication). ## Query Parameters | Name | Type | Required | Description | | --- | --- | --- | --- | -| `namespace` | `string` | No | Name of the namespace to operate in. Defaults to `default`. | +| `namespace` | `string` | No | Name of the namespace to operate in. | ## Request Body @@ -46,25 +47,25 @@ Content type: `application/json`. | Field | Type | Required | Description | | --- | --- | --- | --- | -| `name` | `string` | Yes | Name of the actor as registered in your RivetKit registry. 1 to 64 bytes. | -| `key` | `string \| null` | No | Key identifying this actor within its name. Multi-part keys are joined with `/`, see [Actor Keys](/docs/api/actor-keys). Omit for an actor without a key. | -| `input` | `string \| null` | No | Input passed to the actor, encoded as standard base64 (not base64url). | -| `runner_name_selector` | `string \| null` | No | Node pool that runs the actor. Defaults to `default`. | +| `name` | `string` | Yes | Name of the actor as registered in your RivetKit registry. | +| `key` | `string \| null` | No | Key identifying this actor within its name. Multi-part keys are joined with `/`, see [Actor Keys](/docs/api/actor-keys). Omit for a keyless actor. | +| `input` | `string \| null` | No | Base64url-encoded CBOR input passed to the actor's `createState` and `onCreate` hooks. | +| `pool` | `string \| null` | No | Name of the node pool to run the actor in. Defaults to `default`. | ## Responses ### 200 -The created actor. `created` is always `true`. +The created actor. | Field | Type | Description | | --- | --- | --- | | `actor` | `object` | | | `actor.actor_id` | `string` | Unique ID of the actor. | | `actor.name` | `string` | Actor name as registered in your RivetKit registry. | -| `actor.key` | `string` | Actor key. Multi-part keys are joined with `/`, see [Actor Keys](/docs/api/actor-keys). An empty string for an actor without a key. | +| `actor.key` | `string` | Actor key. Multi-part keys are joined with `/`, see [Actor Keys](/docs/api/actor-keys). | | `actor.namespace` | `string` | Name of the namespace the actor belongs to. | -| `actor.runner_name_selector` | `string` | Node pool the actor runs in. | +| `actor.pool` | `string` | Name of the node pool the actor runs in. | | `actor.create_ts` | `integer` | When the actor was created, in Unix milliseconds. | | `actor.start_ts` | `integer \| null` | When the actor first started. Not recorded by this version, so always `null`. | | `actor.pending_allocation_ts` | `integer \| null` | When the actor started waiting for a node. Not recorded by this version, so always `null`. | @@ -72,7 +73,7 @@ The created actor. `created` is always `true`. | `actor.sleep_ts` | `integer \| null` | When the actor went to sleep. Not recorded by this version, so always `null`. | | `actor.reschedule_ts` | `integer \| null` | When the actor will next try to allocate. Not recorded by this version, so always `null`. | | `actor.destroy_ts` | `integer \| null` | When the actor was destroyed, in Unix milliseconds. Only set in listings that include destroyed actors; otherwise `null`. | -| `created` | `boolean` | Always `true`. | +| `created` | `boolean` | `true` if this request created the actor, `false` if it already existed. | ```json { @@ -81,7 +82,7 @@ The created actor. `created` is always `true`. "name": "my-actor", "key": "my-key", "namespace": "my-namespace", - "runner_name_selector": "default", + "pool": "default", "create_ts": 1700000000000, "start_ts": null, "pending_allocation_ts": null, @@ -96,7 +97,7 @@ The created actor. `created` is always `true`. ### 400 -`actor.invalid_name`: `name` is empty or longer than 64 bytes. `actor.invalid_key`: `key` is longer than 1024 bytes. `actor.invalid_key_encoding`: `key` is not in canonical slash-separated form. `actor.key_owned_elsewhere`: another datacenter owns the key. `envoy.invalid_pool_name`: `runner_name_selector` is not a valid pool name. `envoy.invalid_namespace_name`: the `namespace` value is not a DNS label of 1 to 63 lowercase letters, digits and hyphens. +`actor.invalid_name`: `name` is empty or longer than 64 bytes. `actor.invalid_key`: `key` is longer than 1024 bytes. `actor.invalid_key_encoding`: `key` is not in canonical slash-separated form. `actor.key_owned_elsewhere`: another datacenter owns the key. `envoy.invalid_pool_name`: `pool` is not a valid pool name. `envoy.invalid_namespace_name`: the `namespace` value is not a DNS label of 1 to 63 lowercase letters, digits and hyphens. | Field | Type | Description | | --- | --- | --- | diff --git a/vendor/api/docs/content/actors/destroy.mdx b/vendor/api/docs/content/actors/destroy.mdx index c70aa07a..17ebc703 100644 --- a/vendor/api/docs/content/actors/destroy.mdx +++ b/vendor/api/docs/content/actors/destroy.mdx @@ -5,8 +5,6 @@ description: "Destroy an actor. The actor's onDestroy hook runs, then its state {/* Generated by scripts/docs/gen-api-reference.mjs from engine/artifacts/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} -A namespace token needs a grant on `actor` with `delete`. - ```http DELETE https://rivet.example.com/actors/{actor_id} ``` @@ -26,7 +24,7 @@ curl -X DELETE "https://rivet.example.com/actors/$ACTOR_ID?namespace=$RIVET_NAME ## Authentication -Send the admin token, or a namespace token from [Create Token](/docs/api/tokens/create) whose grants cover the request, as a bearer token in the `Authorization` header. The `x-rivet-token` header is also accepted. Routes with a `namespace` query parameter use the `default` namespace when it is omitted. See [Authentication](/docs/api/authentication). +Send your namespace token as a bearer token in the `Authorization` header. Every control plane request also requires the `namespace` query parameter. See [Authentication](/docs/api/authentication). ## Path Parameters @@ -38,13 +36,13 @@ Send the admin token, or a namespace token from [Create Token](/docs/api/tokens/ | Name | Type | Required | Description | | --- | --- | --- | --- | -| `namespace` | `string` | No | Name of the namespace to operate in. Defaults to `default`. | +| `namespace` | `string` | No | Name of the namespace to operate in. | ## Responses ### 200 -The destroy was accepted. The response body is an empty object. +The destroy was accepted. ```json {} diff --git a/vendor/api/docs/content/actors/get-or-create.mdx b/vendor/api/docs/content/actors/get-or-create.mdx index 34fe6b77..1e2f3140 100644 --- a/vendor/api/docs/content/actors/get-or-create.mdx +++ b/vendor/api/docs/content/actors/get-or-create.mdx @@ -5,7 +5,7 @@ description: "Return the actor with the given name and key, creating it if it do {/* Generated by scripts/docs/gen-api-reference.mjs from engine/artifacts/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} -The response includes `created`, which is `true` when this call created the actor. A sleeping actor is woken. Without `key`, a new actor is created every time. Gateway endpoints can perform the same lookup inline with the `rvt-*` selector parameters, so you only need this endpoint when you want the `actor_id` up front. A namespace token needs a grant on `actor` with `create`. +The response includes `created`, which is `true` when this call created the actor. Gateway endpoints can perform the same lookup inline with the `rvt-*` selector parameters, so you only need this endpoint when you want the `actor_id` up front. ```http PUT https://rivet.example.com/actors @@ -22,7 +22,8 @@ curl -X PUT "https://rivet.example.com/actors?namespace=$RIVET_NAMESPACE" \ -d '{ "name": "counter", "key": "my-counter", - "runner_name_selector": "default" + "runner_name_selector": "default", + "crash_policy": "sleep" }' ``` @@ -32,13 +33,13 @@ curl -X PUT "https://rivet.example.com/actors?namespace=$RIVET_NAMESPACE" \ ## Authentication -Send the admin token, or a namespace token from [Create Token](/docs/api/tokens/create) whose grants cover the request, as a bearer token in the `Authorization` header. The `x-rivet-token` header is also accepted. Routes with a `namespace` query parameter use the `default` namespace when it is omitted. See [Authentication](/docs/api/authentication). +Send your namespace token as a bearer token in the `Authorization` header. Every control plane request also requires the `namespace` query parameter. See [Authentication](/docs/api/authentication). ## Query Parameters | Name | Type | Required | Description | | --- | --- | --- | --- | -| `namespace` | `string` | No | Name of the namespace to operate in. Defaults to `default`. | +| `namespace` | `string` | No | Name of the namespace to operate in. | ## Request Body @@ -46,10 +47,10 @@ Content type: `application/json`. | Field | Type | Required | Description | | --- | --- | --- | --- | -| `name` | `string` | Yes | Name of the actor as registered in your RivetKit registry. 1 to 64 bytes. | +| `name` | `string` | Yes | Name of the actor as registered in your RivetKit registry. | | `key` | `string \| null` | No | Key identifying this actor within its name. Multi-part keys are joined with `/`, see [Actor Keys](/docs/api/actor-keys). | -| `input` | `string \| null` | No | Input passed to the actor if this request creates it, encoded as standard base64 (not base64url). | -| `runner_name_selector` | `string \| null` | No | Node pool that runs the actor. Defaults to `default`. | +| `input` | `string \| null` | No | Base64url-encoded CBOR input passed to the actor's `createState` and `onCreate` hooks when the actor is created. | +| `pool` | `string \| null` | No | Name of the node pool to run the actor in. Defaults to `default`. | ## Responses @@ -62,9 +63,9 @@ The existing or created actor. | `actor` | `object` | | | `actor.actor_id` | `string` | Unique ID of the actor. | | `actor.name` | `string` | Actor name as registered in your RivetKit registry. | -| `actor.key` | `string` | Actor key. Multi-part keys are joined with `/`, see [Actor Keys](/docs/api/actor-keys). An empty string for an actor without a key. | +| `actor.key` | `string` | Actor key. Multi-part keys are joined with `/`, see [Actor Keys](/docs/api/actor-keys). | | `actor.namespace` | `string` | Name of the namespace the actor belongs to. | -| `actor.runner_name_selector` | `string` | Node pool the actor runs in. | +| `actor.pool` | `string` | Name of the node pool the actor runs in. | | `actor.create_ts` | `integer` | When the actor was created, in Unix milliseconds. | | `actor.start_ts` | `integer \| null` | When the actor first started. Not recorded by this version, so always `null`. | | `actor.pending_allocation_ts` | `integer \| null` | When the actor started waiting for a node. Not recorded by this version, so always `null`. | @@ -81,7 +82,7 @@ The existing or created actor. "name": "my-actor", "key": "my-key", "namespace": "my-namespace", - "runner_name_selector": "default", + "pool": "default", "create_ts": 1700000000000, "start_ts": null, "pending_allocation_ts": null, @@ -96,7 +97,7 @@ The existing or created actor. ### 400 -`actor.invalid_name`: `name` is empty or longer than 64 bytes. `actor.invalid_key`: `key` is longer than 1024 bytes. `actor.invalid_key_encoding`: `key` is not in canonical slash-separated form. `actor.key_owned_elsewhere`: another datacenter owns the key. `envoy.invalid_pool_name`: `runner_name_selector` is not a valid pool name. `envoy.invalid_namespace_name`: the `namespace` value is not a DNS label of 1 to 63 lowercase letters, digits and hyphens. +`actor.invalid_name`: `name` is empty or longer than 64 bytes. `actor.invalid_key`: `key` is longer than 1024 bytes. `actor.invalid_key_encoding`: `key` is not in canonical slash-separated form. `actor.key_owned_elsewhere`: another datacenter owns the key. `envoy.invalid_pool_name`: `pool` is not a valid pool name. `envoy.invalid_namespace_name`: the `namespace` value is not a DNS label of 1 to 63 lowercase letters, digits and hyphens. | Field | Type | Description | | --- | --- | --- | diff --git a/vendor/api/docs/content/actors/get.mdx b/vendor/api/docs/content/actors/get.mdx deleted file mode 100644 index ced55eba..00000000 --- a/vendor/api/docs/content/actors/get.mdx +++ /dev/null @@ -1,194 +0,0 @@ ---- -title: "Get Actor" -description: "Get a live actor by ID." ---- - -{/* Generated by scripts/docs/gen-api-reference.mjs from engine/artifacts/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} - -Returns `actor.not_found` for an actor that was destroyed or belongs to another namespace. A namespace token needs a grant on `actor` with `read`. - -```http -GET https://rivet.example.com/actors/{actor_id} -``` - -## Examples - - - -```bash cURL -curl "https://rivet.example.com/actors/$ACTOR_ID?namespace=$RIVET_NAMESPACE" \ - -H "Authorization: Bearer $RIVET_TOKEN" -``` - - - -## Authentication - -Send the admin token, or a namespace token from [Create Token](/docs/api/tokens/create) whose grants cover the request, as a bearer token in the `Authorization` header. The `x-rivet-token` header is also accepted. Routes with a `namespace` query parameter use the `default` namespace when it is omitted. See [Authentication](/docs/api/authentication). - -## Path Parameters - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `actor_id` | `string` | Yes | ID of the actor. | - -## Query Parameters - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `namespace` | `string` | No | Name of the namespace to operate in. Defaults to `default`. | - -## Responses - -### 200 - -The actor. - -| Field | Type | Description | -| --- | --- | --- | -| `actor` | `object` | | -| `actor.actor_id` | `string` | Unique ID of the actor. | -| `actor.name` | `string` | Actor name as registered in your RivetKit registry. | -| `actor.key` | `string` | Actor key. Multi-part keys are joined with `/`, see [Actor Keys](/docs/api/actor-keys). An empty string for an actor without a key. | -| `actor.namespace` | `string` | Name of the namespace the actor belongs to. | -| `actor.runner_name_selector` | `string` | Node pool the actor runs in. | -| `actor.create_ts` | `integer` | When the actor was created, in Unix milliseconds. | -| `actor.start_ts` | `integer \| null` | When the actor first started. Not recorded by this version, so always `null`. | -| `actor.pending_allocation_ts` | `integer \| null` | When the actor started waiting for a node. Not recorded by this version, so always `null`. | -| `actor.connectable_ts` | `integer \| null` | When the actor last became connectable. Not recorded by this version, so always `null`. | -| `actor.sleep_ts` | `integer \| null` | When the actor went to sleep. Not recorded by this version, so always `null`. | -| `actor.reschedule_ts` | `integer \| null` | When the actor will next try to allocate. Not recorded by this version, so always `null`. | -| `actor.destroy_ts` | `integer \| null` | When the actor was destroyed, in Unix milliseconds. Only set in listings that include destroyed actors; otherwise `null`. | - -```json -{ - "actor": { - "actor_id": "d97pbq1nyqxw1w5qdwz0iirbqiblh2", - "name": "my-actor", - "key": "my-key", - "namespace": "my-namespace", - "runner_name_selector": "default", - "create_ts": 1700000000000, - "start_ts": null, - "pending_allocation_ts": null, - "connectable_ts": null, - "sleep_ts": null, - "reschedule_ts": null, - "destroy_ts": null - } -} -``` - -### 400 - -`envoy.invalid_namespace_name`: the `namespace` value is not a DNS label of 1 to 63 lowercase letters, digits and hyphens. - -| Field | Type | Description | -| --- | --- | --- | -| `group` | `string` | Error group, for example `actor`. | -| `code` | `string` | Error code within the group, for example `not_found`. | -| `message` | `string` | Human-readable error message. | -| `metadata` | `any` | Extra details. Only present on some errors raised while authenticating or authorizing the request. | - -```json -{ - "group": "envoy", - "code": "invalid_namespace_name", - "message": "Namespace name must be a DNS label of 1 to 63 lowercase letters, digits and hyphens." -} -``` - -### 401 - -`auth.invalid_token`: the request carries no token, or the token is not valid. `auth.token_expired`: the token has expired. - -| Field | Type | Description | -| --- | --- | --- | -| `group` | `string` | Error group, for example `actor`. | -| `code` | `string` | Error code within the group, for example `not_found`. | -| `message` | `string` | Human-readable error message. | -| `metadata` | `any` | Extra details. Only present on some errors raised while authenticating or authorizing the request. | - -```json -{ - "group": "auth", - "code": "invalid_token", - "message": "Authentication token is invalid." -} -``` - -### 403 - -`auth.insufficient_permissions`: the token's grants do not cover this request. For a namespace token this is also returned when the actor does not exist. - -| Field | Type | Description | -| --- | --- | --- | -| `group` | `string` | Error group, for example `actor`. | -| `code` | `string` | Error code within the group, for example `not_found`. | -| `message` | `string` | Human-readable error message. | -| `metadata` | `any` | Extra details. Only present on some errors raised while authenticating or authorizing the request. | - -```json -{ - "group": "auth", - "code": "insufficient_permissions", - "message": "Insufficient permissions to access this resource." -} -``` - -### 404 - -`actor.not_found`: the actor does not exist, was destroyed, or belongs to another namespace. `namespace.not_found`: the namespace does not exist. - -| Field | Type | Description | -| --- | --- | --- | -| `group` | `string` | Error group, for example `actor`. | -| `code` | `string` | Error code within the group, for example `not_found`. | -| `message` | `string` | Human-readable error message. | -| `metadata` | `any` | Extra details. Only present on some errors raised while authenticating or authorizing the request. | - -```json -{ - "group": "actor", - "code": "not_found", - "message": "The actor does not exist or was destroyed." -} -``` - -### 500 - -`core.internal_error`: an unexpected failure, including an `actor_id` that is not a valid Rivet ID. - -| Field | Type | Description | -| --- | --- | --- | -| `group` | `string` | Error group, for example `actor`. | -| `code` | `string` | Error code within the group, for example `not_found`. | -| `message` | `string` | Human-readable error message. | -| `metadata` | `any` | Extra details. Only present on some errors raised while authenticating or authorizing the request. | - -```json -{ - "group": "core", - "code": "internal_error", - "message": "An internal error occurred" -} -``` - -### 503 - -`auth.verification_unavailable`: token verification keys are temporarily unavailable. Retry the request. - -| Field | Type | Description | -| --- | --- | --- | -| `group` | `string` | Error group, for example `actor`. | -| `code` | `string` | Error code within the group, for example `not_found`. | -| `message` | `string` | Human-readable error message. | -| `metadata` | `any` | Extra details. Only present on some errors raised while authenticating or authorizing the request. | - -```json -{ - "group": "auth", - "code": "verification_unavailable", - "message": "The server could not verify the authentication token because verification keys are temporarily unavailable. Retry the request." -} -``` diff --git a/vendor/api/docs/content/actors/list-names.mdx b/vendor/api/docs/content/actors/list-names.mdx index 81974f0a..26c8134b 100644 --- a/vendor/api/docs/content/actors/list-names.mdx +++ b/vendor/api/docs/content/actors/list-names.mdx @@ -1,12 +1,10 @@ --- title: "List Actor Names" -description: "List the actor names that the namespace's connected nodes accept." +description: "List the distinct actor names that have been created in a namespace." --- {/* Generated by scripts/docs/gen-api-reference.mjs from engine/artifacts/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} -A namespace token needs a grant on `actor` with `list`. - ```http GET https://rivet.example.com/actors/names ``` @@ -26,19 +24,19 @@ curl "https://rivet.example.com/actors/names?namespace=$RIVET_NAMESPACE" \ ## Authentication -Send the admin token, or a namespace token from [Create Token](/docs/api/tokens/create) whose grants cover the request, as a bearer token in the `Authorization` header. The `x-rivet-token` header is also accepted. Routes with a `namespace` query parameter use the `default` namespace when it is omitted. See [Authentication](/docs/api/authentication). +Send your namespace token as a bearer token in the `Authorization` header. Every control plane request also requires the `namespace` query parameter. See [Authentication](/docs/api/authentication). ## Query Parameters | Name | Type | Required | Description | | --- | --- | --- | --- | -| `namespace` | `string` | No | Name of the namespace to operate in. Defaults to `default`. | +| `namespace` | `string` | No | Name of the namespace to operate in. | ## Responses ### 200 -Map of actor name to metadata. +The actor names. | Field | Type | Description | | --- | --- | --- | diff --git a/vendor/api/docs/content/actors/list.mdx b/vendor/api/docs/content/actors/list.mdx index 5ca3fdb1..5f777403 100644 --- a/vendor/api/docs/content/actors/list.mdx +++ b/vendor/api/docs/content/actors/list.mdx @@ -1,11 +1,11 @@ --- title: "List Actors" -description: "List actors in a namespace by ID, by name and key, or by name. Listings by name are paginated." +description: "List actors in a namespace, optionally filtered by name, key, or ID. Results are paginated." --- {/* Generated by scripts/docs/gen-api-reference.mjs from engine/artifacts/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} -Pass `actor_ids` (comma-separated) to look up actors by ID, or `name` with an optional `key`. `actor_ids` takes precedence over `name` and `key`. Only a listing by `name` without `key` is paginated; a page can hold fewer than `limit` actors while `pagination.cursor` is still set. Destroyed actors are excluded unless `include_destroyed` is `true`. A namespace token needs a grant on `actor` with `list`. +`key` requires `name`. `actor_id` cannot be combined with `name` or `key`. Destroyed actors are excluded unless `include_destroyed` is `true`. ```http GET https://rivet.example.com/actors @@ -26,19 +26,19 @@ curl "https://rivet.example.com/actors?namespace=$RIVET_NAMESPACE&name=counter" ## Authentication -Send the admin token, or a namespace token from [Create Token](/docs/api/tokens/create) whose grants cover the request, as a bearer token in the `Authorization` header. The `x-rivet-token` header is also accepted. Routes with a `namespace` query parameter use the `default` namespace when it is omitted. See [Authentication](/docs/api/authentication). +Send your namespace token as a bearer token in the `Authorization` header. Every control plane request also requires the `namespace` query parameter. See [Authentication](/docs/api/authentication). ## Query Parameters | Name | Type | Required | Description | | --- | --- | --- | --- | -| `namespace` | `string` | No | Name of the namespace to operate in. Defaults to `default`. | -| `name` | `string` | No | Only return actors with this name. Required unless `actor_ids` or `actor_id` is set. | +| `namespace` | `string` | No | Name of the namespace to operate in. | +| `name` | `string` | No | Only return actors with this name. | | `key` | `string` | No | Only return the actor with this key. Requires `name`. Multi-part keys are joined with `/`, see [Actor Keys](/docs/api/actor-keys). | -| `actor_ids` | `string` | No | Comma-separated IDs of the actors to return. | -| `actor_id` | `string` | No | Same as `actor_ids`. Used only when `actor_ids` is absent. | -| `include_destroyed` | `boolean` | No | Include destroyed actors. Must be `true` or `false`. | -| `limit` | `integer` | No | Maximum number of results to return, from 1 to 100. Defaults to 100. | +| `actor_ids` | `string` | No | Deprecated. Use `actor_id` instead. | +| `actor_id` | `string` | No | Only return actors with these IDs. Repeat the parameter for multiple IDs. | +| `include_destroyed` | `boolean` | No | Include actors that have been destroyed. | +| `limit` | `integer` | No | Maximum number of results to return. | | `cursor` | `string` | No | Pagination cursor. Pass the `pagination.cursor` value from the previous response to fetch the next page. | ## Responses @@ -52,9 +52,9 @@ Matching actors and a cursor for the next page. `pagination.cursor` is `null` on | `actors` | `object[]` | | | `actors[].actor_id` | `string` | Unique ID of the actor. | | `actors[].name` | `string` | Actor name as registered in your RivetKit registry. | -| `actors[].key` | `string` | Actor key. Multi-part keys are joined with `/`, see [Actor Keys](/docs/api/actor-keys). An empty string for an actor without a key. | +| `actors[].key` | `string` | Actor key. Multi-part keys are joined with `/`, see [Actor Keys](/docs/api/actor-keys). | | `actors[].namespace` | `string` | Name of the namespace the actor belongs to. | -| `actors[].runner_name_selector` | `string` | Node pool the actor runs in. | +| `actors[].pool` | `string` | Name of the node pool the actor runs in. | | `actors[].create_ts` | `integer` | When the actor was created, in Unix milliseconds. | | `actors[].start_ts` | `integer \| null` | When the actor first started. Not recorded by this version, so always `null`. | | `actors[].pending_allocation_ts` | `integer \| null` | When the actor started waiting for a node. Not recorded by this version, so always `null`. | @@ -73,7 +73,7 @@ Matching actors and a cursor for the next page. `pagination.cursor` is `null` on "name": "my-actor", "key": "my-key", "namespace": "my-namespace", - "runner_name_selector": "default", + "pool": "default", "create_ts": 1700000000000, "start_ts": null, "pending_allocation_ts": null, diff --git a/vendor/api/docs/content/actors/reschedule.mdx b/vendor/api/docs/content/actors/reschedule.mdx index da874ed2..b7e78498 100644 --- a/vendor/api/docs/content/actors/reschedule.mdx +++ b/vendor/api/docs/content/actors/reschedule.mdx @@ -1,12 +1,10 @@ --- title: "Reschedule Actor" -description: "Move an actor to a new allocation. A running actor is stopped and starts again, possibly on another node, with its persisted state." +description: "Move an actor to a different worker. The actor runs its shutdown sequence, then restarts elsewhere with its persisted state." --- {/* Generated by scripts/docs/gen-api-reference.mjs from engine/artifacts/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} -A running or stopping actor is stopped and allocated again, and a sleeping actor is allocated now. An actor that is still starting, or is destroyed, is left as is and the request still succeeds. The request body is ignored. A namespace token needs a grant on `actor` with `update`. - ```http POST https://rivet.example.com/actors/{actor_id}/reschedule ``` @@ -26,7 +24,7 @@ curl -X POST "https://rivet.example.com/actors/$ACTOR_ID/reschedule?namespace=$R ## Authentication -Send the admin token, or a namespace token from [Create Token](/docs/api/tokens/create) whose grants cover the request, as a bearer token in the `Authorization` header. The `x-rivet-token` header is also accepted. Routes with a `namespace` query parameter use the `default` namespace when it is omitted. See [Authentication](/docs/api/authentication). +Send your namespace token as a bearer token in the `Authorization` header. Every control plane request also requires the `namespace` query parameter. See [Authentication](/docs/api/authentication). ## Path Parameters @@ -38,13 +36,13 @@ Send the admin token, or a namespace token from [Create Token](/docs/api/tokens/ | Name | Type | Required | Description | | --- | --- | --- | --- | -| `namespace` | `string` | No | Name of the namespace to operate in. Defaults to `default`. | +| `namespace` | `string` | No | Name of the namespace to operate in. | ## Responses ### 200 -The reschedule was accepted, or there was nothing to move. The response body is an empty object. +The reschedule was accepted, or there was nothing to move. ```json {} diff --git a/vendor/api/docs/content/actors/sleep.mdx b/vendor/api/docs/content/actors/sleep.mdx index b3adae65..84015757 100644 --- a/vendor/api/docs/content/actors/sleep.mdx +++ b/vendor/api/docs/content/actors/sleep.mdx @@ -5,8 +5,6 @@ description: "Put an actor to sleep. The actor runs its shutdown sequence and pe {/* Generated by scripts/docs/gen-api-reference.mjs from engine/artifacts/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} -The request body is ignored. A namespace token needs a grant on `actor` with `update`. - ```http POST https://rivet.example.com/actors/{actor_id}/sleep ``` @@ -26,7 +24,7 @@ curl -X POST "https://rivet.example.com/actors/$ACTOR_ID/sleep?namespace=$RIVET_ ## Authentication -Send the admin token, or a namespace token from [Create Token](/docs/api/tokens/create) whose grants cover the request, as a bearer token in the `Authorization` header. The `x-rivet-token` header is also accepted. Routes with a `namespace` query parameter use the `default` namespace when it is omitted. See [Authentication](/docs/api/authentication). +Send your namespace token as a bearer token in the `Authorization` header. Every control plane request also requires the `namespace` query parameter. See [Authentication](/docs/api/authentication). ## Path Parameters @@ -38,13 +36,13 @@ Send the admin token, or a namespace token from [Create Token](/docs/api/tokens/ | Name | Type | Required | Description | | --- | --- | --- | --- | -| `namespace` | `string` | No | Name of the namespace to operate in. Defaults to `default`. | +| `namespace` | `string` | No | Name of the namespace to operate in. | ## Responses ### 200 -The sleep was accepted. The response body is an empty object. +The sleep was accepted. ```json {} diff --git a/vendor/api/docs/content/authentication.mdx b/vendor/api/docs/content/authentication.mdx index cdb0ade7..5a7d27c3 100644 --- a/vendor/api/docs/content/authentication.mdx +++ b/vendor/api/docs/content/authentication.mdx @@ -81,7 +81,7 @@ const ws = new WebSocket( ); ``` -The inline `{actor_id}@{token}` path form and the `rvt-token` query parameter also work on gateway WebSockets, and are simpler for clients that cannot set subprotocols. This applies to [Raw WebSocket](/docs/api/websockets), [Connect](/docs/api/gateway/connect), [Inspector Connect](/docs/api/inspector-connect), and [Node Connection](/docs/api/worker-connect). +The inline `{actor_id}@{token}` path form and the `rvt-token` query parameter also work on gateway WebSockets, and are simpler for clients that cannot set subprotocols. This applies to [Raw WebSocket](/docs/api/websockets), [Connect](/docs/api/gateway/connect), and [Node Connection](/docs/api/worker-connect). ## Control Plane Requests diff --git a/vendor/api/docs/content/control-plane/datacenters.mdx b/vendor/api/docs/content/control-plane/datacenters.mdx index 87f64dfa..bdc57c24 100644 --- a/vendor/api/docs/content/control-plane/datacenters.mdx +++ b/vendor/api/docs/content/control-plane/datacenters.mdx @@ -5,8 +5,6 @@ description: "List the datacenters configured for the control plane." {/* Generated by scripts/docs/gen-api-reference.mjs from engine/artifacts/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} -A namespace token needs a grant on `datacenter` with `list`. - ```http GET https://rivet.example.com/datacenters ``` @@ -26,13 +24,13 @@ curl "https://rivet.example.com/datacenters" \ ## Authentication -Send the admin token, or a namespace token from [Create Token](/docs/api/tokens/create) whose grants cover the request, as a bearer token in the `Authorization` header. The `x-rivet-token` header is also accepted. Routes with a `namespace` query parameter use the `default` namespace when it is omitted. See [Authentication](/docs/api/authentication). +Send your namespace token as a bearer token in the `Authorization` header. Every control plane request also requires the `namespace` query parameter. See [Authentication](/docs/api/authentication). ## Responses ### 200 -Configured datacenters. +Configured datacenters and an empty pagination cursor. | Field | Type | Description | | --- | --- | --- | diff --git a/vendor/api/docs/content/control-plane/metadata.mdx b/vendor/api/docs/content/control-plane/metadata.mdx index ff17f1d3..fcdd2fde 100644 --- a/vendor/api/docs/content/control-plane/metadata.mdx +++ b/vendor/api/docs/content/control-plane/metadata.mdx @@ -1,11 +1,11 @@ --- title: "Get Metadata" -description: "Get the runtime and version of the control plane." +description: "Get build, runtime, compiler, and fleet protocol metadata for the control plane." --- {/* Generated by scripts/docs/gen-api-reference.mjs from engine/artifacts/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} -A request made with the admin token also receives `actorNames`. +The protocol versions are the versions agreed on by the fleet, which can differ from the versions compiled into the responding node. ```http GET https://rivet.example.com/metadata @@ -31,7 +31,7 @@ No authentication is required. ### 200 -Runtime and version metadata. +Build and protocol metadata for the responding node and its fleet. | Field | Type | Description | | --- | --- | --- | diff --git a/vendor/api/docs/content/gateway/request.mdx b/vendor/api/docs/content/gateway/request.mdx deleted file mode 100644 index 58de2dff..00000000 --- a/vendor/api/docs/content/gateway/request.mdx +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: "Raw HTTP Request" -description: "Forward a raw HTTP request to an actor's onRequest handler. The method, headers, body, and the path after /request/ are passed through unchanged." ---- - -{/* Generated by scripts/docs/gen-api-reference.mjs from rivetkit-openapi/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} - -Use this when an actor exposes its own HTTP routes, streams responses (for example Server-Sent Events), or needs to accept non-JSON payloads. The response is whatever the actor's `onRequest` handler returns. - -```http -ANY https://rivet.example.com/gateway/{actor}/request/{path} -``` - -Accepts `GET`, `POST`, `PUT`, `DELETE`, `PATCH`, `HEAD`, `OPTIONS`. - -## Examples - - - -```bash cURL -curl -X POST "https://rivet.example.com/gateway/counter/request/increment?rvt-namespace=$RIVET_NAMESPACE&rvt-method=getOrCreate&rvt-key=my-counter&rvt-pool=default" \ - -H "x-rivet-token: $RIVET_TOKEN" -``` - - - - - -## Authentication - -Send a token in the `x-rivet-token` header, inline in the path as `{actor_id}@{token}`, or in the `rvt-token` query parameter. Use a [scoped token](/docs/jwt) from browsers and your Rivet token from trusted backends. See [Authentication](/docs/api/authentication). - -## Path Parameters - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `actor` | `string` | Yes | Actor ID, actor ID with an inline token (`{actor_id}@{token}`), or actor name combined with the `rvt-*` query parameters. | -| `path` | `string` | Yes | Path forwarded to the actor. The actor sees a request whose URL path is `/{path}`. | - -## Actor Selector - -`{actor}` accepts an actor ID, an actor ID with an inline routing token (`{actor_id}@{token}`), or an actor name combined with the `rvt-*` query parameters below. See [Actor Routing](/docs/api/actor-routing) for the full rules. - - - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `rvt-namespace` | `string` | No | Namespace the actor lives in. Required when `{actor}` is an actor name. | -| `rvt-method` | `string` | No | How to resolve an actor name to an actor. `getOrCreate` requires `rvt-pool`. One of `"get"`, `"getOrCreate"`. | -| `rvt-key` | `string` | No | Actor key. Separate multi-part keys with commas. | -| `rvt-pool` | `string` | No | Pool to create the actor on when `rvt-method=getOrCreate`. RivetKit registers the `default` pool unless configured otherwise. | -| `rvt-runner` | `string` | No | Deprecated alias for `rvt-pool`. | -| `rvt-input` | `string` | No | Base64url-encoded CBOR input passed to `createState` and `onCreate` when `rvt-method=getOrCreate` creates the actor. | -| `rvt-region` | `string` | No | Preferred region when `rvt-method=getOrCreate` creates the actor. | -| `rvt-crash-policy` | `string` | No | Crash policy when `rvt-method=getOrCreate` creates the actor. RivetKit defaults to `sleep`. One of `"restart"`, `"sleep"`, `"destroy"`. | -| `rvt-skip-ready-wait` | `boolean` | No | Return as soon as the actor is resolved instead of waiting for it to be ready. | -| `rvt-token` | `string` | No | Token to authenticate with. Prefer the `x-rivet-token` header or inline path token when possible. | - - - -## Responses - -### 200 - -The response returned by the actor's `onRequest` handler. - -## Related - -- [Low-Level HTTP Handler](/actors/docs/request-handler) -- [Raw WebSocket](/docs/api/websockets) diff --git a/vendor/api/docs/content/index.mdx b/vendor/api/docs/content/index.mdx index 59f7975c..f03aeb40 100644 --- a/vendor/api/docs/content/index.mdx +++ b/vendor/api/docs/content/index.mdx @@ -10,7 +10,7 @@ Everything the RivetKit client does happens over HTTP. This reference documents https://rivet.example.com ``` -Self-hosted deployments use the endpoint from your `RIVET_ENDPOINT` URL instead. See [Endpoints](/docs/connect). +Self-hosted deployments use the endpoint from your `RIVET_ENDPOINT` URL instead. See [Endpoints](/docs/endpoints). ## Two Surfaces @@ -42,7 +42,6 @@ Most applications only need the gateway. The RivetKit client resolves actors by ## When to Use HTTP Directly - Calling actors from a language without a RivetKit client (Go, Ruby, PHP, shell scripts). -- Serverless platforms or edge runtimes where you want zero dependencies. - Operational scripts that list, destroy, or sleep actors in bulk. - Debugging: reproducing what the client sends with curl. diff --git a/vendor/api/docs/content/inspector-connect.mdx b/vendor/api/docs/content/inspector-connect.mdx deleted file mode 100644 index 00f700ae..00000000 --- a/vendor/api/docs/content/inspector-connect.mdx +++ /dev/null @@ -1,525 +0,0 @@ ---- -title: "Inspector Connect" -description: "Open the Inspector WebSocket used for live actor inspection." ---- - - -The inspector API is subject to change without notice. Do not build production integrations on it. - - -The inspector connection streams live data about one actor. `{actor}` is an actor ID. See [Actor Routing](/docs/api/actor-routing). - -```http -GET wss://rivet.example.com/gateway/{actor}/inspector/connect?protocol_version=6 -``` - -## Handshake - -Pass these WebSocket subprotocols in this order: - -| Subprotocol | Purpose | -| --- | --- | -| `rivet` | Selects the Rivet WebSocket protocol. | -| `rivet_target.actor` | Routes the connection to an actor. | -| `rivet_actor.{actor}` | Identifies the actor. | -| `rivet_encoding.bare` | Selects BARE binary messages. | -| `rivet_token.{token}` | Authenticates the gateway request. | -| `rivet_inspector_token.{token}` | Authenticates access to the inspector. | - -{/* TODO(code): document how to read an Actor's inspector token once an API returns it (ACT-6493). */} - -Set `protocol_version=6` for the message shapes on this page. Supported values are `1` through `6`. Omitting the parameter selects the legacy version 5 framing, which embeds a version in every message. - - - -```javascript Raw WebSocket -import * as cbor from "cbor-x"; -import { - CURRENT_VERSION, - TO_CLIENT_VERSIONED, - TO_SERVER_VERSIONED, -} from "rivetkit/inspector/client"; - -const ws = new WebSocket( - `wss://rivet.example.com/gateway/${actorId}/inspector/connect?protocol_version=${CURRENT_VERSION}`, - [ - "rivet", - "rivet_target.actor", - `rivet_actor.${actorId}`, - "rivet_encoding.bare", - `rivet_token.${apiToken}`, - `rivet_inspector_token.${inspectorToken}`, - ], -); -ws.binaryType = "arraybuffer"; - -ws.onmessage = (event) => { - const message = TO_CLIENT_VERSIONED.deserialize( - new Uint8Array(event.data), - CURRENT_VERSION, - ); - if (message.body.tag === "StateUpdated") { - console.log(cbor.decode(new Uint8Array(message.body.val.state))); - } - console.log(message.body); -}; - -ws.onopen = () => { - ws.send(TO_SERVER_VERSIONED.serialize({ - body: { tag: "StateRequest", val: { id: 1n } }, - }, CURRENT_VERSION)); -}; -``` - - - -## Message envelope - -Messages are binary BARE frames, not JSON text. Import the versioned codecs from `rivetkit/inspector/client` as shown above. The decoded envelope is `{ body: { tag, val } }`. Fields with type `data` contain CBOR bytes. Decode those bytes with a CBOR codec. The JSON examples below show the decoded logical shape, with CBOR values expanded for readability. Unsigned integers decode to JavaScript `bigint`. - -Most requests have a client-selected `id`. Their response uses the same value as `rid`. `PatchStateRequest` has no response. - -## Client to actor messages - -### PatchStateRequest - -Replaces the actor state. - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `state` | `data` | Yes | New state encoded as CBOR. | - -```json -{ "body": { "tag": "PatchStateRequest", "val": { "state": { "count": 2 } } } } -``` - -### StateRequest - -Requests the current state. - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `id` | `uint` | Yes | Request identifier. | - -```json -{ "body": { "tag": "StateRequest", "val": { "id": 1 } } } -``` - -### ConnectionsRequest - -Requests the current connections. - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `id` | `uint` | Yes | Request identifier. | - -```json -{ "body": { "tag": "ConnectionsRequest", "val": { "id": 2 } } } -``` - -### ActionRequest - -Calls an actor action. - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `id` | `uint` | Yes | Request identifier. | -| `name` | `string` | Yes | Action name. | -| `args` | `data` | Yes | Action arguments encoded as CBOR. | - -```json -{ "body": { "tag": "ActionRequest", "val": { "id": 3, "name": "increment", "args": [1] } } } -``` - -### RpcsListRequest - -Requests the available action names. - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `id` | `uint` | Yes | Request identifier. | - -```json -{ "body": { "tag": "RpcsListRequest", "val": { "id": 4 } } } -``` - -### TraceQueryRequest - -Queries traces in a time range. - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `id` | `uint` | Yes | Request identifier. | -| `startMs` | `uint` | Yes | Inclusive start time in Unix milliseconds. | -| `endMs` | `uint` | Yes | End time in Unix milliseconds. | -| `limit` | `uint` | Yes | Maximum number of records. | - -```json -{ "body": { "tag": "TraceQueryRequest", "val": { "id": 5, "startMs": 1735689600000, "endMs": 1735689660000, "limit": 100 } } } -``` - -### QueueRequest - -Requests queue status. The actor limits `limit` to 200. - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `id` | `uint` | Yes | Request identifier. | -| `limit` | `uint` | Yes | Maximum number of message summaries. | - -```json -{ "body": { "tag": "QueueRequest", "val": { "id": 6, "limit": 50 } } } -``` - -### WorkflowHistoryRequest - -Requests workflow history. - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `id` | `uint` | Yes | Request identifier. | - -```json -{ "body": { "tag": "WorkflowHistoryRequest", "val": { "id": 7 } } } -``` - -### WorkflowReplayRequest - -Replays a workflow from an optional history entry. - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `id` | `uint` | Yes | Request identifier. | -| `entryId` | `string` | No | History entry to replay from. `null` starts from the beginning. | - -```json -{ "body": { "tag": "WorkflowReplayRequest", "val": { "id": 8, "entryId": "step-2" } } } -``` - -### DatabaseSchemaRequest - -Requests the SQLite schema. - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `id` | `uint` | Yes | Request identifier. | - -```json -{ "body": { "tag": "DatabaseSchemaRequest", "val": { "id": 9 } } } -``` - -### DatabaseTableRowsRequest - -Requests rows from a SQLite table. - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `id` | `uint` | Yes | Request identifier. | -| `table` | `string` | Yes | Table name. | -| `limit` | `uint` | Yes | Maximum rows to return. | -| `offset` | `uint` | Yes | Number of rows to skip. | - -```json -{ "body": { "tag": "DatabaseTableRowsRequest", "val": { "id": 10, "table": "users", "limit": 50, "offset": 0 } } } -``` - -### SchedulesRequest - -Requests all schedules. - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `id` | `uint` | Yes | Request identifier. | - -```json -{ "body": { "tag": "SchedulesRequest", "val": { "id": 11 } } } -``` - -### ScheduleHistoryRequest - -Requests recent fires for one schedule. - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `id` | `uint` | Yes | Request identifier. | -| `scheduleId` | `string` | Yes | Schedule identifier. | -| `limit` | `uint` | Yes | Maximum history entries. | - -```json -{ "body": { "tag": "ScheduleHistoryRequest", "val": { "id": 12, "scheduleId": "cleanup", "limit": 20 } } } -``` - -### ScheduleDeleteRequest - -Deletes a schedule. - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `id` | `uint` | Yes | Request identifier. | -| `scheduleId` | `string` | Yes | Schedule identifier. | -| `kind` | `string` | Yes | Schedule kind: `at`, `cron`, or `every`. | - -```json -{ "body": { "tag": "ScheduleDeleteRequest", "val": { "id": 13, "scheduleId": "cleanup", "kind": "cron" } } } -``` - -## Actor to client messages - -### Init - -Sent when inspection starts. It contains the initial snapshot. - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `connections` | `Connection[]` | Yes | Current connections. Each item has string `id` and CBOR `details`. | -| `state` | `data` | No | Current state encoded as CBOR. | -| `isStateEnabled` | `boolean` | Yes | Whether the actor uses state. | -| `rpcs` | `string[]` | Yes | Available action names. | -| `isDatabaseEnabled` | `boolean` | Yes | Whether SQLite is enabled. | -| `queueSize` | `uint` | Yes | Current queued message count. | -| `workflowHistory` | `data` | No | Workflow history transport data. | -| `isWorkflowEnabled` | `boolean` | Yes | Whether workflows are enabled. | -| `tabConfig` | `TabConfigEntry[]` | Yes | Inspector tabs. Each item has `id`, optional `label`, optional `icon`, and boolean `hidden`. | -| `schedules` | `Schedule[]` | Yes | Current schedules. | - -```json -{ "body": { "tag": "Init", "val": { "connections": [], "state": { "count": 1 }, "isStateEnabled": true, "rpcs": ["increment"], "isDatabaseEnabled": true, "queueSize": 0, "workflowHistory": null, "isWorkflowEnabled": false, "tabConfig": [{ "id": "state", "label": null, "icon": null, "hidden": false }], "schedules": [] } } } -``` - -### StateResponse - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `rid` | `uint` | Yes | Matching request identifier. | -| `state` | `data` | No | State encoded as CBOR. | -| `isStateEnabled` | `boolean` | Yes | Whether state is enabled. | - -```json -{ "body": { "tag": "StateResponse", "val": { "rid": 1, "state": { "count": 2 }, "isStateEnabled": true } } } -``` - -### ConnectionsResponse - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `rid` | `uint` | Yes | Matching request identifier. | -| `connections` | `Connection[]` | Yes | Connections with string `id` and CBOR `details`. | - -```json -{ "body": { "tag": "ConnectionsResponse", "val": { "rid": 2, "connections": [{ "id": "conn-1", "details": { "name": "Sam" } }] } } } -``` - -### ActionResponse - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `rid` | `uint` | Yes | Matching request identifier. | -| `output` | `data` | Yes | Action output encoded as CBOR. | - -```json -{ "body": { "tag": "ActionResponse", "val": { "rid": 3, "output": 2 } } } -``` - -### RpcsListResponse - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `rid` | `uint` | Yes | Matching request identifier. | -| `rpcs` | `string[]` | Yes | Available action names. | - -```json -{ "body": { "tag": "RpcsListResponse", "val": { "rid": 4, "rpcs": ["increment"] } } } -``` - -### TraceQueryResponse - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `rid` | `uint` | Yes | Matching request identifier. | -| `payload` | `data` | Yes | Trace range transport payload. | - -```json -{ "body": { "tag": "TraceQueryResponse", "val": { "rid": 5, "payload": { "records": [] } } } } -``` - -### QueueResponse - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `rid` | `uint` | Yes | Matching request identifier. | -| `status.size` | `uint` | Yes | Current queue size. | -| `status.maxSize` | `uint` | Yes | Queue capacity. | -| `status.messages` | `QueueMessageSummary[]` | Yes | Summaries with uint `id`, string `name`, and uint `createdAtMs`. | -| `status.truncated` | `boolean` | Yes | Whether more summaries were available. | - -```json -{ "body": { "tag": "QueueResponse", "val": { "rid": 6, "status": { "size": 1, "maxSize": 1000, "messages": [{ "id": 42, "name": "email", "createdAtMs": 1735689600000 }], "truncated": false } } } } -``` - -### WorkflowHistoryResponse - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `rid` | `uint` | Yes | Matching request identifier. | -| `history` | `data` | No | Workflow history transport data. | -| `isWorkflowEnabled` | `boolean` | Yes | Whether workflows are enabled. | - -```json -{ "body": { "tag": "WorkflowHistoryResponse", "val": { "rid": 7, "history": null, "isWorkflowEnabled": false } } } -``` - -### WorkflowReplayResponse - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `rid` | `uint` | Yes | Matching request identifier. | -| `history` | `data` | No | Updated workflow history transport data. | -| `isWorkflowEnabled` | `boolean` | Yes | Whether workflows are enabled. | - -```json -{ "body": { "tag": "WorkflowReplayResponse", "val": { "rid": 8, "history": { "entries": [] }, "isWorkflowEnabled": true } } } -``` - -### DatabaseSchemaResponse - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `rid` | `uint` | Yes | Matching request identifier. | -| `schema` | `data` | Yes | SQLite schema encoded as CBOR. | - -```json -{ "body": { "tag": "DatabaseSchemaResponse", "val": { "rid": 9, "schema": { "tables": [] } } } } -``` - -### DatabaseTableRowsResponse - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `rid` | `uint` | Yes | Matching request identifier. | -| `result` | `data` | Yes | Rows encoded as CBOR. | - -```json -{ "body": { "tag": "DatabaseTableRowsResponse", "val": { "rid": 10, "result": [{ "id": 1 }] } } } -``` - -### SchedulesResponse - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `rid` | `uint` | Yes | Matching request identifier. | -| `schedules` | `Schedule[]` | Yes | Current schedules. | - -```json -{ "body": { "tag": "SchedulesResponse", "val": { "rid": 11, "schedules": [] } } } -``` - -### ScheduleHistoryResponse - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `rid` | `uint` | Yes | Matching request identifier. | -| `scheduleId` | `string` | Yes | Schedule identifier. | -| `history` | `ScheduleFire[]` | Yes | Schedule fire history. | - -```json -{ "body": { "tag": "ScheduleHistoryResponse", "val": { "rid": 12, "scheduleId": "cleanup", "history": [{ "action": "cleanup", "scheduledAt": 1735689600000, "firedAt": 1735689600010, "finishedAt": 1735689600040, "result": "ok", "error": null }] } } } -``` - -### ScheduleDeleteResponse - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `rid` | `uint` | Yes | Matching request identifier. | -| `scheduleId` | `string` | Yes | Schedule identifier. | -| `deleted` | `boolean` | Yes | Whether a schedule was deleted. | - -```json -{ "body": { "tag": "ScheduleDeleteResponse", "val": { "rid": 13, "scheduleId": "cleanup", "deleted": true } } } -``` - -### ConnectionsUpdated - -Sent when the connection list changes. - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `connections` | `Connection[]` | Yes | Current connections. | - -```json -{ "body": { "tag": "ConnectionsUpdated", "val": { "connections": [] } } } -``` - -### StateUpdated - -Sent when state changes. - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `state` | `data` | Yes | State encoded as CBOR. | - -```json -{ "body": { "tag": "StateUpdated", "val": { "state": { "count": 3 } } } } -``` - -### QueueUpdated - -Sent when the queue size changes. - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `queueSize` | `uint` | Yes | Current queue size. | - -```json -{ "body": { "tag": "QueueUpdated", "val": { "queueSize": 2 } } } -``` - -### WorkflowHistoryUpdated - -Sent when workflow history changes. - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `history` | `data` | Yes | Workflow history transport data. | - -```json -{ "body": { "tag": "WorkflowHistoryUpdated", "val": { "history": { "entries": [] } } } } -``` - -### SchedulesUpdated - -Sent when schedules change. - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `schedules` | `Schedule[]` | Yes | Current schedules. | - -```json -{ "body": { "tag": "SchedulesUpdated", "val": { "schedules": [] } } } -``` - -### Error - -Reports an inspector protocol error. This message does not carry a request identifier. - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `message` | `string` | Yes | Error identifier or description. | - -```json -{ "body": { "tag": "Error", "val": { "message": "inspector.events_dropped" } } } -``` - -## Shared structures - -`Schedule` contains `id`, optional `name`, `kind`, `action`, CBOR `args`, `nextRunAt`, optional `lastRunAt`, optional `expression`, optional `timezone`, optional `intervalMs`, and optional `maxHistory`. All time and interval values are unsigned integers in milliseconds. - -`ScheduleFire` contains `action`, `scheduledAt`, `firedAt`, optional `finishedAt`, `result`, and optional `error`. An error contains `group`, `code`, `message`, and optional CBOR `metadata`. - -## Close behavior - -An invalid or unsupported `protocol_version` closes the socket with code `1002` and reason `inspector.invalid_protocol_version`. A missing or invalid inspector token closes it with code `1008` and reason `inspector.unauthorized`. Other established-connection errors can arrive as `Error` messages. - -## Related - -- [Actor Routing](/docs/api/actor-routing) -- [Raw WebSocket](/docs/api/websockets) diff --git a/vendor/api/docs/content/inspector/action.mdx b/vendor/api/docs/content/inspector/action.mdx deleted file mode 100644 index 15cf2f22..00000000 --- a/vendor/api/docs/content/inspector/action.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: "Invoke Action" -description: "Invoke an actor action through the inspector." ---- - -{/* Generated by scripts/docs/gen-api-reference.mjs from rivetkit-openapi/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} - - -The inspector API is subject to change without notice. Do not build production integrations on it. - - -```http -POST https://rivet.example.com/gateway/{actor}/inspector/action/{name} -``` - -## Examples - - - -```bash cURL -curl -X POST "https://rivet.example.com/gateway/$ACTOR_ID/inspector/action/increment" \ - -H "Authorization: Bearer $INSPECTOR_TOKEN" \ - -H "Content-Type: application/json" \ - -d '{ - "args": [ - 1 - ] - }' -``` - - - - - -## Authentication - -Inspector endpoints do not accept namespace tokens. Send the actor's inspector token as a bearer token in the `Authorization` header. {/* TODO(code): document how to read an Actor's inspector token once an API returns it (ACT-6493). */} - -## Path Parameters - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `actor` | `string` | Yes | Actor ID, actor ID with an inline token (`{actor_id}@{token}`), or actor name combined with the `rvt-*` query parameters. | -| `name` | `string` | Yes | Name of the action to invoke. | - -## Headers - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `Authorization` | `string` | No | Bearer token for inspector authentication. Required in production, optional in development. | - -## Actor Selector - -`{actor}` accepts an actor ID, an actor ID with an inline routing token (`{actor_id}@{token}`), or an actor name combined with the `rvt-*` query parameters below. See [Actor Routing](/docs/api/actor-routing) for the full rules. - - - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `rvt-namespace` | `string` | No | Namespace the actor lives in. Required when `{actor}` is an actor name. | -| `rvt-method` | `string` | No | How to resolve an actor name to an actor. `getOrCreate` requires `rvt-pool`. One of `"get"`, `"getOrCreate"`. | -| `rvt-key` | `string` | No | Actor key. Separate multi-part keys with commas. | -| `rvt-pool` | `string` | No | Pool to create the actor on when `rvt-method=getOrCreate`. RivetKit registers the `default` pool unless configured otherwise. | -| `rvt-runner` | `string` | No | Deprecated alias for `rvt-pool`. | -| `rvt-input` | `string` | No | Base64url-encoded CBOR input passed to `createState` and `onCreate` when `rvt-method=getOrCreate` creates the actor. | -| `rvt-region` | `string` | No | Preferred region when `rvt-method=getOrCreate` creates the actor. | -| `rvt-crash-policy` | `string` | No | Crash policy when `rvt-method=getOrCreate` creates the actor. RivetKit defaults to `sleep`. One of `"restart"`, `"sleep"`, `"destroy"`. | -| `rvt-skip-ready-wait` | `boolean` | No | Return as soon as the actor is resolved instead of waiting for it to be ready. | -| `rvt-token` | `string` | No | Token to authenticate with. Prefer the `x-rivet-token` header or inline path token when possible. | - - - -## Request Body - -Content type: `application/json` (optional). - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `args` | `any[]` | No | Positional arguments passed to the action, in order. | - -## Responses - -### 200 - -The action result. - -| Field | Type | Description | -| --- | --- | --- | -| `output` | `any` | Value returned by the action. `null` if the action returned `undefined`. | - -```json -{ - "output": 1 -} -``` - -### 401 - -The inspector token is missing or invalid. diff --git a/vendor/api/docs/content/inspector/connections.mdx b/vendor/api/docs/content/inspector/connections.mdx deleted file mode 100644 index 0e994292..00000000 --- a/vendor/api/docs/content/inspector/connections.mdx +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: "List Connections" -description: "List the actor's active connections." ---- - -{/* Generated by scripts/docs/gen-api-reference.mjs from rivetkit-openapi/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} - - -The inspector API is subject to change without notice. Do not build production integrations on it. - - -```http -GET https://rivet.example.com/gateway/{actor}/inspector/connections -``` - -## Examples - - - -```bash cURL -curl "https://rivet.example.com/gateway/$ACTOR_ID/inspector/connections" \ - -H "Authorization: Bearer $INSPECTOR_TOKEN" -``` - - - - - -## Authentication - -Inspector endpoints do not accept namespace tokens. Send the actor's inspector token as a bearer token in the `Authorization` header. {/* TODO(code): document how to read an Actor's inspector token once an API returns it (ACT-6493). */} - -## Path Parameters - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `actor` | `string` | Yes | Actor ID, actor ID with an inline token (`{actor_id}@{token}`), or actor name combined with the `rvt-*` query parameters. | - -## Headers - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `Authorization` | `string` | No | Bearer token for inspector authentication. Required in production, optional in development. | - -## Actor Selector - -`{actor}` accepts an actor ID, an actor ID with an inline routing token (`{actor_id}@{token}`), or an actor name combined with the `rvt-*` query parameters below. See [Actor Routing](/docs/api/actor-routing) for the full rules. - - - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `rvt-namespace` | `string` | No | Namespace the actor lives in. Required when `{actor}` is an actor name. | -| `rvt-method` | `string` | No | How to resolve an actor name to an actor. `getOrCreate` requires `rvt-pool`. One of `"get"`, `"getOrCreate"`. | -| `rvt-key` | `string` | No | Actor key. Separate multi-part keys with commas. | -| `rvt-pool` | `string` | No | Pool to create the actor on when `rvt-method=getOrCreate`. RivetKit registers the `default` pool unless configured otherwise. | -| `rvt-runner` | `string` | No | Deprecated alias for `rvt-pool`. | -| `rvt-input` | `string` | No | Base64url-encoded CBOR input passed to `createState` and `onCreate` when `rvt-method=getOrCreate` creates the actor. | -| `rvt-region` | `string` | No | Preferred region when `rvt-method=getOrCreate` creates the actor. | -| `rvt-crash-policy` | `string` | No | Crash policy when `rvt-method=getOrCreate` creates the actor. RivetKit defaults to `sleep`. One of `"restart"`, `"sleep"`, `"destroy"`. | -| `rvt-skip-ready-wait` | `boolean` | No | Return as soon as the actor is resolved instead of waiting for it to be ready. | -| `rvt-token` | `string` | No | Token to authenticate with. Prefer the `x-rivet-token` header or inline path token when possible. | - - - -## Responses - -### 200 - -The active connections. - -| Field | Type | Description | -| --- | --- | --- | -| `connections` | `object[]` | | - -```json -{ - "connections": [ - {} - ] -} -``` - -### 401 - -The inspector token is missing or invalid. diff --git a/vendor/api/docs/content/inspector/database-execute.mdx b/vendor/api/docs/content/inspector/database-execute.mdx deleted file mode 100644 index b0697cf8..00000000 --- a/vendor/api/docs/content/inspector/database-execute.mdx +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: "Execute SQL" -description: "Run a SQL statement against the actor's SQLite database." ---- - -{/* Generated by scripts/docs/gen-api-reference.mjs from rivetkit-openapi/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} - - -The inspector API is subject to change without notice. Do not build production integrations on it. - - -SQL executes directly against actor storage. Use bind parameters for values. - -```http -POST https://rivet.example.com/gateway/{actor}/inspector/database/execute -``` - -## Examples - - - -```bash cURL -curl -X POST "https://rivet.example.com/gateway/$ACTOR_ID/inspector/database/execute" \ - -H "Authorization: Bearer $INSPECTOR_TOKEN" \ - -H "Content-Type: application/json" \ - -d '{ - "sql": "SELECT * FROM users WHERE id = ?", - "args": [ - "user-123" - ] - }' -``` - - - - - -## Authentication - -Inspector endpoints do not accept namespace tokens. Send the actor's inspector token as a bearer token in the `Authorization` header. {/* TODO(code): document how to read an Actor's inspector token once an API returns it (ACT-6493). */} - -## Path Parameters - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `actor` | `string` | Yes | Actor ID, actor ID with an inline token (`{actor_id}@{token}`), or actor name combined with the `rvt-*` query parameters. | - -## Headers - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `Authorization` | `string` | No | Bearer token for inspector authentication. Required in production, optional in development. | - -## Request Body - -Content type: `application/json`. - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `sql` | `string` | Yes | SQL statement to run against the actor's SQLite database. | -| `args` | `any[]` | No | Positional arguments passed to the action, in order. | -| `properties` | `object` | No | Driver-specific execution options. | - -## Responses - -### 200 - -Rows returned by the statement. - -| Field | Type | Description | -| --- | --- | --- | -| `rows` | `object[]` | | - -```json -{ - "rows": [ - {} - ] -} -``` - -### 401 - -The inspector token is missing or invalid. diff --git a/vendor/api/docs/content/inspector/database-rows.mdx b/vendor/api/docs/content/inspector/database-rows.mdx deleted file mode 100644 index f966c2d3..00000000 --- a/vendor/api/docs/content/inspector/database-rows.mdx +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: "Query Database Rows" -description: "Read a page of rows from an actor database table or view." ---- - -{/* Generated by scripts/docs/gen-api-reference.mjs from rivetkit-openapi/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} - - -The inspector API is subject to change without notice. Do not build production integrations on it. - - -```http -GET https://rivet.example.com/gateway/{actor}/inspector/database/rows -``` - -## Examples - - - -```bash cURL -curl "https://rivet.example.com/gateway/$ACTOR_ID/inspector/database/rows?table=users&limit=100&offset=0" \ - -H "Authorization: Bearer $INSPECTOR_TOKEN" -``` - - - - - -## Authentication - -Inspector endpoints do not accept namespace tokens. Send the actor's inspector token as a bearer token in the `Authorization` header. {/* TODO(code): document how to read an Actor's inspector token once an API returns it (ACT-6493). */} - -## Path Parameters - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `actor` | `string` | Yes | Actor ID, actor ID with an inline token (`{actor_id}@{token}`), or actor name combined with the `rvt-*` query parameters. | - -## Query Parameters - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `table` | `string` | Yes | Table or view to read. | -| `limit` | `integer` | No | Maximum rows to return. | -| `offset` | `integer` | No | Rows to skip. | - -## Headers - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `Authorization` | `string` | No | Bearer token for inspector authentication. Required in production, optional in development. | - -## Responses - -### 200 - -The selected rows. - -| Field | Type | Description | -| --- | --- | --- | -| `rows` | `object[]` | | - -```json -{ - "rows": [ - {} - ] -} -``` - -### 401 - -The inspector token is missing or invalid. diff --git a/vendor/api/docs/content/inspector/database-schema.mdx b/vendor/api/docs/content/inspector/database-schema.mdx deleted file mode 100644 index beb6dada..00000000 --- a/vendor/api/docs/content/inspector/database-schema.mdx +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: "Get Database Schema" -description: "List tables, views, and columns in the actor's SQLite database." ---- - -{/* Generated by scripts/docs/gen-api-reference.mjs from rivetkit-openapi/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} - - -The inspector API is subject to change without notice. Do not build production integrations on it. - - -```http -GET https://rivet.example.com/gateway/{actor}/inspector/database/schema -``` - -## Examples - - - -```bash cURL -curl "https://rivet.example.com/gateway/$ACTOR_ID/inspector/database/schema" \ - -H "Authorization: Bearer $INSPECTOR_TOKEN" -``` - - - - - -## Authentication - -Inspector endpoints do not accept namespace tokens. Send the actor's inspector token as a bearer token in the `Authorization` header. {/* TODO(code): document how to read an Actor's inspector token once an API returns it (ACT-6493). */} - -## Path Parameters - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `actor` | `string` | Yes | Actor ID, actor ID with an inline token (`{actor_id}@{token}`), or actor name combined with the `rvt-*` query parameters. | - -## Headers - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `Authorization` | `string` | No | Bearer token for inspector authentication. Required in production, optional in development. | - -## Responses - -### 200 - -The actor database schema. - -| Field | Type | Description | -| --- | --- | --- | -| `schema` | `object` | | -| `schema.tables` | `object[]` | | -| `schema.tables[].name` | `string` | | -| `schema.tables[].type` | `"table" \| "view"` | | -| `schema.tables[].columns` | `object[]` | | -| `schema.tables[].columns[].name` | `string` | | -| `schema.tables[].columns[].type` | `string` | | -| `schema.tables[].columns[].notnull` | `boolean` | | -| `schema.tables[].columns[].pk` | `boolean` | | - -```json -{ - "schema": { - "tables": [ - { - "name": "my-actor", - "type": "table", - "columns": [ - { - "name": "my-actor", - "type": "", - "notnull": false, - "pk": false - } - ] - } - ] - } -} -``` - -### 401 - -The inspector token is missing or invalid. diff --git a/vendor/api/docs/content/inspector/queue-delete.mdx b/vendor/api/docs/content/inspector/queue-delete.mdx deleted file mode 100644 index 154f8246..00000000 --- a/vendor/api/docs/content/inspector/queue-delete.mdx +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: "Clear Queue" -description: "Remove all pending messages from the actor's queue." ---- - -{/* Generated by scripts/docs/gen-api-reference.mjs from rivetkit-openapi/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} - - -The inspector API is subject to change without notice. Do not build production integrations on it. - - -```http -DELETE https://rivet.example.com/gateway/{actor}/inspector/queue -``` - -## Examples - - - -```bash cURL -curl -X DELETE "https://rivet.example.com/gateway/$ACTOR_ID/inspector/queue" \ - -H "Authorization: Bearer $INSPECTOR_TOKEN" -``` - - - - - -## Authentication - -Inspector endpoints do not accept namespace tokens. Send the actor's inspector token as a bearer token in the `Authorization` header. {/* TODO(code): document how to read an Actor's inspector token once an API returns it (ACT-6493). */} - -## Path Parameters - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `actor` | `string` | Yes | Actor ID, actor ID with an inline token (`{actor_id}@{token}`), or actor name combined with the `rvt-*` query parameters. | - -## Headers - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `Authorization` | `string` | No | Bearer token for inspector authentication. Required in production, optional in development. | - -## Responses - -### 200 - -The queue was cleared. - -```json -{} -``` - -### 401 - -The inspector token is missing or invalid. diff --git a/vendor/api/docs/content/inspector/queue-get.mdx b/vendor/api/docs/content/inspector/queue-get.mdx deleted file mode 100644 index 9939d3a6..00000000 --- a/vendor/api/docs/content/inspector/queue-get.mdx +++ /dev/null @@ -1,105 +0,0 @@ ---- -title: "Get Queue" -description: "List pending queue messages and queue capacity details." ---- - -{/* Generated by scripts/docs/gen-api-reference.mjs from rivetkit-openapi/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} - - -The inspector API is subject to change without notice. Do not build production integrations on it. - - -```http -GET https://rivet.example.com/gateway/{actor}/inspector/queue -``` - -## Examples - - - -```bash cURL -curl "https://rivet.example.com/gateway/$ACTOR_ID/inspector/queue?limit=50" \ - -H "Authorization: Bearer $INSPECTOR_TOKEN" -``` - - - - - -## Authentication - -Inspector endpoints do not accept namespace tokens. Send the actor's inspector token as a bearer token in the `Authorization` header. {/* TODO(code): document how to read an Actor's inspector token once an API returns it (ACT-6493). */} - -## Path Parameters - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `actor` | `string` | Yes | Actor ID, actor ID with an inline token (`{actor_id}@{token}`), or actor name combined with the `rvt-*` query parameters. | - -## Query Parameters - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `limit` | `integer` | No | Maximum number of queue messages to return | - -## Headers - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `Authorization` | `string` | No | Bearer token for inspector authentication. Required in production, optional in development. | - -## Actor Selector - -`{actor}` accepts an actor ID, an actor ID with an inline routing token (`{actor_id}@{token}`), or an actor name combined with the `rvt-*` query parameters below. See [Actor Routing](/docs/api/actor-routing) for the full rules. - - - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `rvt-namespace` | `string` | No | Namespace the actor lives in. Required when `{actor}` is an actor name. | -| `rvt-method` | `string` | No | How to resolve an actor name to an actor. `getOrCreate` requires `rvt-pool`. One of `"get"`, `"getOrCreate"`. | -| `rvt-key` | `string` | No | Actor key. Separate multi-part keys with commas. | -| `rvt-pool` | `string` | No | Pool to create the actor on when `rvt-method=getOrCreate`. RivetKit registers the `default` pool unless configured otherwise. | -| `rvt-runner` | `string` | No | Deprecated alias for `rvt-pool`. | -| `rvt-input` | `string` | No | Base64url-encoded CBOR input passed to `createState` and `onCreate` when `rvt-method=getOrCreate` creates the actor. | -| `rvt-region` | `string` | No | Preferred region when `rvt-method=getOrCreate` creates the actor. | -| `rvt-crash-policy` | `string` | No | Crash policy when `rvt-method=getOrCreate` creates the actor. RivetKit defaults to `sleep`. One of `"restart"`, `"sleep"`, `"destroy"`. | -| `rvt-skip-ready-wait` | `boolean` | No | Return as soon as the actor is resolved instead of waiting for it to be ready. | -| `rvt-token` | `string` | No | Token to authenticate with. Prefer the `x-rivet-token` header or inline path token when possible. | - - - -## Responses - -### 200 - -Queue size, capacity, truncation status, and pending message metadata. - -| Field | Type | Description | -| --- | --- | --- | -| `size` | `integer` | | -| `maxSize` | `integer` | | -| `truncated` | `boolean` | | -| `messages` | `object[]` | | -| `messages[].id` | `string` | | -| `messages[].name` | `string` | | -| `messages[].createdAtMs` | `integer` | | - -```json -{ - "size": 0, - "maxSize": 0, - "truncated": false, - "messages": [ - { - "id": "", - "name": "my-actor", - "createdAtMs": 0 - } - ] -} -``` - -### 401 - -The inspector token is missing or invalid. diff --git a/vendor/api/docs/content/inspector/queue-post.mdx b/vendor/api/docs/content/inspector/queue-post.mdx deleted file mode 100644 index c7ecef96..00000000 --- a/vendor/api/docs/content/inspector/queue-post.mdx +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: "Enqueue Message" -description: "Enqueue a message through the inspector." ---- - -{/* Generated by scripts/docs/gen-api-reference.mjs from rivetkit-openapi/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} - - -The inspector API is subject to change without notice. Do not build production integrations on it. - - -```http -POST https://rivet.example.com/gateway/{actor}/inspector/queue -``` - -## Examples - - - -```bash cURL -curl -X POST "https://rivet.example.com/gateway/$ACTOR_ID/inspector/queue" \ - -H "Authorization: Bearer $INSPECTOR_TOKEN" \ - -H "Content-Type: application/json" \ - -d '{ - "name": "increment", - "body": { - "amount": 1 - } - }' -``` - - - - - -## Authentication - -Inspector endpoints do not accept namespace tokens. Send the actor's inspector token as a bearer token in the `Authorization` header. {/* TODO(code): document how to read an Actor's inspector token once an API returns it (ACT-6493). */} - -## Path Parameters - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `actor` | `string` | Yes | Actor ID, actor ID with an inline token (`{actor_id}@{token}`), or actor name combined with the `rvt-*` query parameters. | - -## Headers - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `Authorization` | `string` | No | Bearer token for inspector authentication. Required in production, optional in development. | - -## Request Body - -Content type: `application/json`. - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `name` | `string` | Yes | Queue message name. | -| `body` | `any` | No | Message payload. Any JSON value. | - -## Responses - -### 200 - -Metadata for the enqueued message. - -| Field | Type | Description | -| --- | --- | --- | -| `id` | `string` | | -| `name` | `string` | | -| `createdAtMs` | `integer` | | - -```json -{ - "id": "", - "name": "my-actor", - "createdAtMs": 0 -} -``` - -### 401 - -The inspector token is missing or invalid. diff --git a/vendor/api/docs/content/inspector/rpcs.mdx b/vendor/api/docs/content/inspector/rpcs.mdx deleted file mode 100644 index 3807e06a..00000000 --- a/vendor/api/docs/content/inspector/rpcs.mdx +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: "List Actions" -description: "List the actions exposed by the actor." ---- - -{/* Generated by scripts/docs/gen-api-reference.mjs from rivetkit-openapi/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} - - -The inspector API is subject to change without notice. Do not build production integrations on it. - - -```http -GET https://rivet.example.com/gateway/{actor}/inspector/rpcs -``` - -## Examples - - - -```bash cURL -curl "https://rivet.example.com/gateway/$ACTOR_ID/inspector/rpcs" \ - -H "Authorization: Bearer $INSPECTOR_TOKEN" -``` - - - - - -## Authentication - -Inspector endpoints do not accept namespace tokens. Send the actor's inspector token as a bearer token in the `Authorization` header. {/* TODO(code): document how to read an Actor's inspector token once an API returns it (ACT-6493). */} - -## Path Parameters - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `actor` | `string` | Yes | Actor ID, actor ID with an inline token (`{actor_id}@{token}`), or actor name combined with the `rvt-*` query parameters. | - -## Headers - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `Authorization` | `string` | No | Bearer token for inspector authentication. Required in production, optional in development. | - -## Actor Selector - -`{actor}` accepts an actor ID, an actor ID with an inline routing token (`{actor_id}@{token}`), or an actor name combined with the `rvt-*` query parameters below. See [Actor Routing](/docs/api/actor-routing) for the full rules. - - - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `rvt-namespace` | `string` | No | Namespace the actor lives in. Required when `{actor}` is an actor name. | -| `rvt-method` | `string` | No | How to resolve an actor name to an actor. `getOrCreate` requires `rvt-pool`. One of `"get"`, `"getOrCreate"`. | -| `rvt-key` | `string` | No | Actor key. Separate multi-part keys with commas. | -| `rvt-pool` | `string` | No | Pool to create the actor on when `rvt-method=getOrCreate`. RivetKit registers the `default` pool unless configured otherwise. | -| `rvt-runner` | `string` | No | Deprecated alias for `rvt-pool`. | -| `rvt-input` | `string` | No | Base64url-encoded CBOR input passed to `createState` and `onCreate` when `rvt-method=getOrCreate` creates the actor. | -| `rvt-region` | `string` | No | Preferred region when `rvt-method=getOrCreate` creates the actor. | -| `rvt-crash-policy` | `string` | No | Crash policy when `rvt-method=getOrCreate` creates the actor. RivetKit defaults to `sleep`. One of `"restart"`, `"sleep"`, `"destroy"`. | -| `rvt-skip-ready-wait` | `boolean` | No | Return as soon as the actor is resolved instead of waiting for it to be ready. | -| `rvt-token` | `string` | No | Token to authenticate with. Prefer the `x-rivet-token` header or inline path token when possible. | - - - -## Responses - -### 200 - -The actor's action definitions. - -| Field | Type | Description | -| --- | --- | --- | -| `rpcs` | `object` | | - -```json -{ - "rpcs": {} -} -``` - -### 401 - -The inspector token is missing or invalid. diff --git a/vendor/api/docs/content/inspector/state-get.mdx b/vendor/api/docs/content/inspector/state-get.mdx deleted file mode 100644 index c4605844..00000000 --- a/vendor/api/docs/content/inspector/state-get.mdx +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: "Get State" -description: "Read the actor's current state." ---- - -{/* Generated by scripts/docs/gen-api-reference.mjs from rivetkit-openapi/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} - - -The inspector API is subject to change without notice. Do not build production integrations on it. - - -```http -GET https://rivet.example.com/gateway/{actor}/inspector/state -``` - -## Examples - - - -```bash cURL -curl "https://rivet.example.com/gateway/$ACTOR_ID/inspector/state" \ - -H "Authorization: Bearer $INSPECTOR_TOKEN" -``` - - - - - -## Authentication - -Inspector endpoints do not accept namespace tokens. Send the actor's inspector token as a bearer token in the `Authorization` header. {/* TODO(code): document how to read an Actor's inspector token once an API returns it (ACT-6493). */} - -## Path Parameters - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `actor` | `string` | Yes | Actor ID, actor ID with an inline token (`{actor_id}@{token}`), or actor name combined with the `rvt-*` query parameters. | - -## Headers - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `Authorization` | `string` | No | Bearer token for inspector authentication. Required in production, optional in development. | - -## Actor Selector - -`{actor}` accepts an actor ID, an actor ID with an inline routing token (`{actor_id}@{token}`), or an actor name combined with the `rvt-*` query parameters below. See [Actor Routing](/docs/api/actor-routing) for the full rules. - - - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `rvt-namespace` | `string` | No | Namespace the actor lives in. Required when `{actor}` is an actor name. | -| `rvt-method` | `string` | No | How to resolve an actor name to an actor. `getOrCreate` requires `rvt-pool`. One of `"get"`, `"getOrCreate"`. | -| `rvt-key` | `string` | No | Actor key. Separate multi-part keys with commas. | -| `rvt-pool` | `string` | No | Pool to create the actor on when `rvt-method=getOrCreate`. RivetKit registers the `default` pool unless configured otherwise. | -| `rvt-runner` | `string` | No | Deprecated alias for `rvt-pool`. | -| `rvt-input` | `string` | No | Base64url-encoded CBOR input passed to `createState` and `onCreate` when `rvt-method=getOrCreate` creates the actor. | -| `rvt-region` | `string` | No | Preferred region when `rvt-method=getOrCreate` creates the actor. | -| `rvt-crash-policy` | `string` | No | Crash policy when `rvt-method=getOrCreate` creates the actor. RivetKit defaults to `sleep`. One of `"restart"`, `"sleep"`, `"destroy"`. | -| `rvt-skip-ready-wait` | `boolean` | No | Return as soon as the actor is resolved instead of waiting for it to be ready. | -| `rvt-token` | `string` | No | Token to authenticate with. Prefer the `x-rivet-token` header or inline path token when possible. | - - - -## Responses - -### 200 - -The current actor state. - -| Field | Type | Description | -| --- | --- | --- | -| `state` | `any` | | - -```json -{ - "state": { - "count": 1 - } -} -``` - -### 401 - -The inspector token is missing or invalid. diff --git a/vendor/api/docs/content/inspector/state-patch.mdx b/vendor/api/docs/content/inspector/state-patch.mdx deleted file mode 100644 index 10156caa..00000000 --- a/vendor/api/docs/content/inspector/state-patch.mdx +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: "Patch State" -description: "Replace the actor's current state." ---- - -{/* Generated by scripts/docs/gen-api-reference.mjs from rivetkit-openapi/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} - - -The inspector API is subject to change without notice. Do not build production integrations on it. - - -This writes state directly and bypasses actor actions. Use it only for inspection and recovery. - -```http -PATCH https://rivet.example.com/gateway/{actor}/inspector/state -``` - -## Examples - - - -```bash cURL -curl -X PATCH "https://rivet.example.com/gateway/$ACTOR_ID/inspector/state" \ - -H "Authorization: Bearer $INSPECTOR_TOKEN" \ - -H "Content-Type: application/json" \ - -d '{ - "state": { - "count": 2 - } - }' -``` - - - - - -## Authentication - -Inspector endpoints do not accept namespace tokens. Send the actor's inspector token as a bearer token in the `Authorization` header. {/* TODO(code): document how to read an Actor's inspector token once an API returns it (ACT-6493). */} - -## Path Parameters - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `actor` | `string` | Yes | Actor ID, actor ID with an inline token (`{actor_id}@{token}`), or actor name combined with the `rvt-*` query parameters. | - -## Headers - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `Authorization` | `string` | No | Bearer token for inspector authentication. Required in production, optional in development. | - -## Actor Selector - -`{actor}` accepts an actor ID, an actor ID with an inline routing token (`{actor_id}@{token}`), or an actor name combined with the `rvt-*` query parameters below. See [Actor Routing](/docs/api/actor-routing) for the full rules. - - - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `rvt-namespace` | `string` | No | Namespace the actor lives in. Required when `{actor}` is an actor name. | -| `rvt-method` | `string` | No | How to resolve an actor name to an actor. `getOrCreate` requires `rvt-pool`. One of `"get"`, `"getOrCreate"`. | -| `rvt-key` | `string` | No | Actor key. Separate multi-part keys with commas. | -| `rvt-pool` | `string` | No | Pool to create the actor on when `rvt-method=getOrCreate`. RivetKit registers the `default` pool unless configured otherwise. | -| `rvt-runner` | `string` | No | Deprecated alias for `rvt-pool`. | -| `rvt-input` | `string` | No | Base64url-encoded CBOR input passed to `createState` and `onCreate` when `rvt-method=getOrCreate` creates the actor. | -| `rvt-region` | `string` | No | Preferred region when `rvt-method=getOrCreate` creates the actor. | -| `rvt-crash-policy` | `string` | No | Crash policy when `rvt-method=getOrCreate` creates the actor. RivetKit defaults to `sleep`. One of `"restart"`, `"sleep"`, `"destroy"`. | -| `rvt-skip-ready-wait` | `boolean` | No | Return as soon as the actor is resolved instead of waiting for it to be ready. | -| `rvt-token` | `string` | No | Token to authenticate with. Prefer the `x-rivet-token` header or inline path token when possible. | - - - -## Request Body - -Content type: `application/json` (optional). - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `state` | `any` | Yes | | - -## Responses - -### 200 - -The state was saved. - -| Field | Type | Description | -| --- | --- | --- | -| `ok` | `boolean` | | - -```json -{ - "ok": true -} -``` - -### 401 - -The inspector token is missing or invalid. diff --git a/vendor/api/docs/content/inspector/summary.mdx b/vendor/api/docs/content/inspector/summary.mdx deleted file mode 100644 index e280b745..00000000 --- a/vendor/api/docs/content/inspector/summary.mdx +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: "Get Summary" -description: "Get an overview of an actor's state, connections, actions, queue, database, and workflow." ---- - -{/* Generated by scripts/docs/gen-api-reference.mjs from rivetkit-openapi/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} - - -The inspector API is subject to change without notice. Do not build production integrations on it. - - -```http -GET https://rivet.example.com/gateway/{actor}/inspector/summary -``` - -## Examples - - - -```bash cURL -curl "https://rivet.example.com/gateway/$ACTOR_ID/inspector/summary" \ - -H "Authorization: Bearer $INSPECTOR_TOKEN" -``` - - - - - -## Authentication - -Inspector endpoints do not accept namespace tokens. Send the actor's inspector token as a bearer token in the `Authorization` header. {/* TODO(code): document how to read an Actor's inspector token once an API returns it (ACT-6493). */} - -## Path Parameters - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `actor` | `string` | Yes | Actor ID, actor ID with an inline token (`{actor_id}@{token}`), or actor name combined with the `rvt-*` query parameters. | - -## Headers - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `Authorization` | `string` | No | Bearer token for inspector authentication. Required in production, optional in development. | - -## Actor Selector - -`{actor}` accepts an actor ID, an actor ID with an inline routing token (`{actor_id}@{token}`), or an actor name combined with the `rvt-*` query parameters below. See [Actor Routing](/docs/api/actor-routing) for the full rules. - - - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `rvt-namespace` | `string` | No | Namespace the actor lives in. Required when `{actor}` is an actor name. | -| `rvt-method` | `string` | No | How to resolve an actor name to an actor. `getOrCreate` requires `rvt-pool`. One of `"get"`, `"getOrCreate"`. | -| `rvt-key` | `string` | No | Actor key. Separate multi-part keys with commas. | -| `rvt-pool` | `string` | No | Pool to create the actor on when `rvt-method=getOrCreate`. RivetKit registers the `default` pool unless configured otherwise. | -| `rvt-runner` | `string` | No | Deprecated alias for `rvt-pool`. | -| `rvt-input` | `string` | No | Base64url-encoded CBOR input passed to `createState` and `onCreate` when `rvt-method=getOrCreate` creates the actor. | -| `rvt-region` | `string` | No | Preferred region when `rvt-method=getOrCreate` creates the actor. | -| `rvt-crash-policy` | `string` | No | Crash policy when `rvt-method=getOrCreate` creates the actor. RivetKit defaults to `sleep`. One of `"restart"`, `"sleep"`, `"destroy"`. | -| `rvt-skip-ready-wait` | `boolean` | No | Return as soon as the actor is resolved instead of waiting for it to be ready. | -| `rvt-token` | `string` | No | Token to authenticate with. Prefer the `x-rivet-token` header or inline path token when possible. | - - - -## Responses - -### 200 - -The actor inspector summary. - -| Field | Type | Description | -| --- | --- | --- | -| `state` | `any` | | -| `connections` | `object[]` | | -| `rpcs` | `object` | | -| `queueSize` | `integer` | | -| `isStateEnabled` | `boolean` | | -| `isDatabaseEnabled` | `boolean` | | -| `isWorkflowEnabled` | `boolean` | | -| `workflowHistory` | `any` | | - -```json -{ - "state": "", - "connections": [ - {} - ], - "rpcs": {}, - "queueSize": 0, - "isStateEnabled": false, - "isDatabaseEnabled": false, - "isWorkflowEnabled": false, - "workflowHistory": "" -} -``` - -### 401 - -The inspector token is missing or invalid. diff --git a/vendor/api/docs/content/inspector/traces.mdx b/vendor/api/docs/content/inspector/traces.mdx deleted file mode 100644 index 97b100c4..00000000 --- a/vendor/api/docs/content/inspector/traces.mdx +++ /dev/null @@ -1,96 +0,0 @@ ---- -title: "Get Traces" -description: "Get actor trace spans in OTLP JSON format." ---- - -{/* Generated by scripts/docs/gen-api-reference.mjs from rivetkit-openapi/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} - - -The inspector API is subject to change without notice. Do not build production integrations on it. - - -Trace collection is not implemented yet, so this route currently returns an empty result. - -```http -GET https://rivet.example.com/gateway/{actor}/inspector/traces -``` - -## Examples - - - -```bash cURL -curl "https://rivet.example.com/gateway/$ACTOR_ID/inspector/traces?startMs=0&limit=100" \ - -H "Authorization: Bearer $INSPECTOR_TOKEN" -``` - - - - - -## Authentication - -Inspector endpoints do not accept namespace tokens. Send the actor's inspector token as a bearer token in the `Authorization` header. {/* TODO(code): document how to read an Actor's inspector token once an API returns it (ACT-6493). */} - -## Path Parameters - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `actor` | `string` | Yes | Actor ID, actor ID with an inline token (`{actor_id}@{token}`), or actor name combined with the `rvt-*` query parameters. | - -## Query Parameters - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `startMs` | `integer` | No | Start of time range in epoch milliseconds | -| `endMs` | `integer` | No | End of time range in epoch milliseconds. Defaults to now. | -| `limit` | `integer` | No | Maximum number of spans to return | - -## Headers - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `Authorization` | `string` | No | Bearer token for inspector authentication. Required in production, optional in development. | - -## Actor Selector - -`{actor}` accepts an actor ID, an actor ID with an inline routing token (`{actor_id}@{token}`), or an actor name combined with the `rvt-*` query parameters below. See [Actor Routing](/docs/api/actor-routing) for the full rules. - - - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `rvt-namespace` | `string` | No | Namespace the actor lives in. Required when `{actor}` is an actor name. | -| `rvt-method` | `string` | No | How to resolve an actor name to an actor. `getOrCreate` requires `rvt-pool`. One of `"get"`, `"getOrCreate"`. | -| `rvt-key` | `string` | No | Actor key. Separate multi-part keys with commas. | -| `rvt-pool` | `string` | No | Pool to create the actor on when `rvt-method=getOrCreate`. RivetKit registers the `default` pool unless configured otherwise. | -| `rvt-runner` | `string` | No | Deprecated alias for `rvt-pool`. | -| `rvt-input` | `string` | No | Base64url-encoded CBOR input passed to `createState` and `onCreate` when `rvt-method=getOrCreate` creates the actor. | -| `rvt-region` | `string` | No | Preferred region when `rvt-method=getOrCreate` creates the actor. | -| `rvt-crash-policy` | `string` | No | Crash policy when `rvt-method=getOrCreate` creates the actor. RivetKit defaults to `sleep`. One of `"restart"`, `"sleep"`, `"destroy"`. | -| `rvt-skip-ready-wait` | `boolean` | No | Return as soon as the actor is resolved instead of waiting for it to be ready. | -| `rvt-token` | `string` | No | Token to authenticate with. Prefer the `x-rivet-token` header or inline path token when possible. | - - - -## Responses - -### 200 - -Trace data and whether the requested range was clamped. - -| Field | Type | Description | -| --- | --- | --- | -| `otlp` | `object` | | -| `clamped` | `boolean` | | - -```json -{ - "otlp": {}, - "clamped": false -} -``` - -### 401 - -The inspector token is missing or invalid. diff --git a/vendor/api/docs/content/inspector/workflow-history.mdx b/vendor/api/docs/content/inspector/workflow-history.mdx deleted file mode 100644 index 16cef287..00000000 --- a/vendor/api/docs/content/inspector/workflow-history.mdx +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: "Get Workflow History" -description: "Read workflow history and whether workflows are enabled for the actor." ---- - -{/* Generated by scripts/docs/gen-api-reference.mjs from rivetkit-openapi/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} - - -The inspector API is subject to change without notice. Do not build production integrations on it. - - -```http -GET https://rivet.example.com/gateway/{actor}/inspector/workflow-history -``` - -## Examples - - - -```bash cURL -curl "https://rivet.example.com/gateway/$ACTOR_ID/inspector/workflow-history" \ - -H "Authorization: Bearer $INSPECTOR_TOKEN" -``` - - - - - -## Authentication - -Inspector endpoints do not accept namespace tokens. Send the actor's inspector token as a bearer token in the `Authorization` header. {/* TODO(code): document how to read an Actor's inspector token once an API returns it (ACT-6493). */} - -## Path Parameters - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `actor` | `string` | Yes | Actor ID, actor ID with an inline token (`{actor_id}@{token}`), or actor name combined with the `rvt-*` query parameters. | - -## Headers - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `Authorization` | `string` | No | Bearer token for inspector authentication. Required in production, optional in development. | - -## Actor Selector - -`{actor}` accepts an actor ID, an actor ID with an inline routing token (`{actor_id}@{token}`), or an actor name combined with the `rvt-*` query parameters below. See [Actor Routing](/docs/api/actor-routing) for the full rules. - - - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `rvt-namespace` | `string` | No | Namespace the actor lives in. Required when `{actor}` is an actor name. | -| `rvt-method` | `string` | No | How to resolve an actor name to an actor. `getOrCreate` requires `rvt-pool`. One of `"get"`, `"getOrCreate"`. | -| `rvt-key` | `string` | No | Actor key. Separate multi-part keys with commas. | -| `rvt-pool` | `string` | No | Pool to create the actor on when `rvt-method=getOrCreate`. RivetKit registers the `default` pool unless configured otherwise. | -| `rvt-runner` | `string` | No | Deprecated alias for `rvt-pool`. | -| `rvt-input` | `string` | No | Base64url-encoded CBOR input passed to `createState` and `onCreate` when `rvt-method=getOrCreate` creates the actor. | -| `rvt-region` | `string` | No | Preferred region when `rvt-method=getOrCreate` creates the actor. | -| `rvt-crash-policy` | `string` | No | Crash policy when `rvt-method=getOrCreate` creates the actor. RivetKit defaults to `sleep`. One of `"restart"`, `"sleep"`, `"destroy"`. | -| `rvt-skip-ready-wait` | `boolean` | No | Return as soon as the actor is resolved instead of waiting for it to be ready. | -| `rvt-token` | `string` | No | Token to authenticate with. Prefer the `x-rivet-token` header or inline path token when possible. | - - - -## Responses - -### 200 - -Workflow history and availability. - -| Field | Type | Description | -| --- | --- | --- | -| `history` | `any` | | -| `isWorkflowEnabled` | `boolean` | | - -```json -{ - "history": "", - "isWorkflowEnabled": false -} -``` - -### 401 - -The inspector token is missing or invalid. diff --git a/vendor/api/docs/content/inspector/workflow-replay.mdx b/vendor/api/docs/content/inspector/workflow-replay.mdx deleted file mode 100644 index a879d913..00000000 --- a/vendor/api/docs/content/inspector/workflow-replay.mdx +++ /dev/null @@ -1,98 +0,0 @@ ---- -title: "Replay Workflow" -description: "Schedule a workflow replay from an optional history entry." ---- - -{/* Generated by scripts/docs/gen-api-reference.mjs from rivetkit-openapi/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} - - -The inspector API is subject to change without notice. Do not build production integrations on it. - - -```http -POST https://rivet.example.com/gateway/{actor}/inspector/workflow/replay -``` - -## Examples - - - -```bash cURL -curl -X POST "https://rivet.example.com/gateway/$ACTOR_ID/inspector/workflow/replay" \ - -H "Authorization: Bearer $INSPECTOR_TOKEN" \ - -H "Content-Type: application/json" \ - -d '{ - "entryId": "entry-123" - }' -``` - - - - - -## Authentication - -Inspector endpoints do not accept namespace tokens. Send the actor's inspector token as a bearer token in the `Authorization` header. {/* TODO(code): document how to read an Actor's inspector token once an API returns it (ACT-6493). */} - -## Path Parameters - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `actor` | `string` | Yes | Actor ID, actor ID with an inline token (`{actor_id}@{token}`), or actor name combined with the `rvt-*` query parameters. | - -## Headers - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `Authorization` | `string` | No | Bearer token for inspector authentication. Required in production, optional in development. | - -## Actor Selector - -`{actor}` accepts an actor ID, an actor ID with an inline routing token (`{actor_id}@{token}`), or an actor name combined with the `rvt-*` query parameters below. See [Actor Routing](/docs/api/actor-routing) for the full rules. - - - -| Name | Type | Required | Description | -| --- | --- | --- | --- | -| `rvt-namespace` | `string` | No | Namespace the actor lives in. Required when `{actor}` is an actor name. | -| `rvt-method` | `string` | No | How to resolve an actor name to an actor. `getOrCreate` requires `rvt-pool`. One of `"get"`, `"getOrCreate"`. | -| `rvt-key` | `string` | No | Actor key. Separate multi-part keys with commas. | -| `rvt-pool` | `string` | No | Pool to create the actor on when `rvt-method=getOrCreate`. RivetKit registers the `default` pool unless configured otherwise. | -| `rvt-runner` | `string` | No | Deprecated alias for `rvt-pool`. | -| `rvt-input` | `string` | No | Base64url-encoded CBOR input passed to `createState` and `onCreate` when `rvt-method=getOrCreate` creates the actor. | -| `rvt-region` | `string` | No | Preferred region when `rvt-method=getOrCreate` creates the actor. | -| `rvt-crash-policy` | `string` | No | Crash policy when `rvt-method=getOrCreate` creates the actor. RivetKit defaults to `sleep`. One of `"restart"`, `"sleep"`, `"destroy"`. | -| `rvt-skip-ready-wait` | `boolean` | No | Return as soon as the actor is resolved instead of waiting for it to be ready. | -| `rvt-token` | `string` | No | Token to authenticate with. Prefer the `x-rivet-token` header or inline path token when possible. | - - - -## Request Body - -Content type: `application/json` (optional). - -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `entryId` | `string` | No | | - -## Responses - -### 200 - -Workflow history after scheduling the replay. - -| Field | Type | Description | -| --- | --- | --- | -| `history` | `any` | | -| `isWorkflowEnabled` | `boolean` | | - -```json -{ - "history": "", - "isWorkflowEnabled": false -} -``` - -### 401 - -The inspector token is missing or invalid. diff --git a/vendor/api/docs/content/namespaces/create.mdx b/vendor/api/docs/content/namespaces/create.mdx index 79fb7779..7ee5d607 100644 --- a/vendor/api/docs/content/namespaces/create.mdx +++ b/vendor/api/docs/content/namespaces/create.mdx @@ -1,6 +1,6 @@ --- title: "Create Namespace" -description: "Create a namespace with a unique name." +description: "Create a namespace with a unique name and a display name." --- {/* Generated by scripts/docs/gen-api-reference.mjs from engine/artifacts/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} @@ -18,7 +18,8 @@ curl -X POST "https://rivet.example.com/namespaces" \ -H "Authorization: Bearer $RIVET_TOKEN" \ -H "Content-Type: application/json" \ -d '{ - "name": "my-app" + "name": "my-app", + "display_name": "My App" }' ``` @@ -28,7 +29,7 @@ curl -X POST "https://rivet.example.com/namespaces" \ ## Authentication -Requires the admin token, sent as a bearer token in the `Authorization` header. Namespace tokens are rejected. See [Authentication](/docs/api/authentication). +Send your namespace token as a bearer token in the `Authorization` header. Every control plane request also requires the `namespace` query parameter. See [Authentication](/docs/api/authentication). ## Request Body @@ -36,7 +37,7 @@ Content type: `application/json`. | Field | Type | Required | Description | | --- | --- | --- | --- | -| `name` | `string` | Yes | Unique name of the namespace. A DNS label of 1 to 63 lowercase letters, digits and hyphens. | +| `name` | `string` | Yes | Unique name used to identify the namespace. | ## Responses @@ -46,7 +47,7 @@ The newly created namespace. | Field | Type | Description | | --- | --- | --- | -| `namespace` | `object` | The created namespace. | +| `namespace` | `object` | Name of the namespace to operate in. | | `namespace.name` | `string` | Namespace name. | | `namespace.create_ts` | `integer` | When the namespace was created, in Unix milliseconds. | diff --git a/vendor/api/docs/content/namespaces/list.mdx b/vendor/api/docs/content/namespaces/list.mdx index 5593a1bb..0ae1d39d 100644 --- a/vendor/api/docs/content/namespaces/list.mdx +++ b/vendor/api/docs/content/namespaces/list.mdx @@ -1,11 +1,11 @@ --- title: "List Namespaces" -description: "List namespaces in name order, or look up one namespace by name. Results are paginated." +description: "List namespaces, optionally filtered by name or ID. Results are paginated." --- {/* Generated by scripts/docs/gen-api-reference.mjs from engine/artifacts/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} -`name` returns zero or one namespace and ignores `limit` and `cursor`. Any other query parameter, including `namespace`, is rejected. +Use `namespace_id` for multiple IDs. `namespace_ids` is deprecated. ```http GET https://rivet.example.com/namespaces @@ -26,15 +26,15 @@ curl "https://rivet.example.com/namespaces" \ ## Authentication -Requires the admin token, sent as a bearer token in the `Authorization` header. Namespace tokens are rejected. See [Authentication](/docs/api/authentication). +Send your namespace token as a bearer token in the `Authorization` header. Every control plane request also requires the `namespace` query parameter. See [Authentication](/docs/api/authentication). ## Query Parameters | Name | Type | Required | Description | | --- | --- | --- | --- | -| `name` | `string` | No | Only return the namespace with this name. | +| `name` | `string` | No | Only return namespaces with this name. | | `cursor` | `string` | No | Pagination cursor. Pass the `pagination.cursor` value from the previous response to fetch the next page. | -| `limit` | `integer` | No | Maximum number of results to return, from 1 to 100. Defaults to 100. | +| `limit` | `integer` | No | Maximum number of results to return. | ## Responses diff --git a/vendor/api/docs/content/pools/delete.mdx b/vendor/api/docs/content/pools/delete.mdx index a50f177d..dabd4039 100644 --- a/vendor/api/docs/content/pools/delete.mdx +++ b/vendor/api/docs/content/pools/delete.mdx @@ -1,11 +1,11 @@ --- -title: "Delete Node Pool" -description: "Delete a node pool's configuration." +title: "Delete Pool" +description: "Delete a node pool." --- {/* Generated by scripts/docs/gen-api-reference.mjs from engine/artifacts/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} -Fails with `pool.nodes_connected` while any node of the pool is connected. A namespace token needs a grant on `pool` with `delete`. +Fails with `pool.nodes_connected` while any node of the pool is connected. ```http DELETE https://rivet.example.com/pools/{pool} @@ -16,15 +16,17 @@ DELETE https://rivet.example.com/pools/{pool} ```bash cURL -curl -X DELETE "https://rivet.example.com/pools/default?namespace=$RIVET_NAMESPACE" \ +curl -X DELETE "https://rivet.example.com/pools/$RIVET_POOL?namespace=$RIVET_NAMESPACE" \ -H "Authorization: Bearer $RIVET_TOKEN" ``` + + ## Authentication -Send the admin token, or a namespace token from [Create Token](/docs/api/tokens/create) whose grants cover the request, as a bearer token in the `Authorization` header. The `x-rivet-token` header is also accepted. Routes with a `namespace` query parameter use the `default` namespace when it is omitted. See [Authentication](/docs/api/authentication). +Send your namespace token as a bearer token in the `Authorization` header. Every control plane request also requires the `namespace` query parameter. See [Authentication](/docs/api/authentication). ## Path Parameters @@ -36,13 +38,13 @@ Send the admin token, or a namespace token from [Create Token](/docs/api/tokens/ | Name | Type | Required | Description | | --- | --- | --- | --- | -| `namespace` | `string` | No | Name of the namespace to operate in. Defaults to `default`. | +| `namespace` | `string` | No | Name of the namespace to operate in. | ## Responses ### 200 -The node pool was deleted. The response body is an empty object. +The node pool was deleted. ```json {} diff --git a/vendor/api/docs/content/pools/get.mdx b/vendor/api/docs/content/pools/get.mdx index 84b6b555..522f3509 100644 --- a/vendor/api/docs/content/pools/get.mdx +++ b/vendor/api/docs/content/pools/get.mdx @@ -1,12 +1,10 @@ --- -title: "Get Node Pool" +title: "Get Pool" description: "Get a node pool's configuration." --- {/* Generated by scripts/docs/gen-api-reference.mjs from engine/artifacts/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} -A namespace token needs a grant on `pool` with `read`. - ```http GET https://rivet.example.com/pools/{pool} ``` @@ -16,15 +14,17 @@ GET https://rivet.example.com/pools/{pool} ```bash cURL -curl "https://rivet.example.com/pools/default?namespace=$RIVET_NAMESPACE" \ +curl "https://rivet.example.com/pools/$RIVET_POOL?namespace=$RIVET_NAMESPACE" \ -H "Authorization: Bearer $RIVET_TOKEN" ``` + + ## Authentication -Send the admin token, or a namespace token from [Create Token](/docs/api/tokens/create) whose grants cover the request, as a bearer token in the `Authorization` header. The `x-rivet-token` header is also accepted. Routes with a `namespace` query parameter use the `default` namespace when it is omitted. See [Authentication](/docs/api/authentication). +Send your namespace token as a bearer token in the `Authorization` header. Every control plane request also requires the `namespace` query parameter. See [Authentication](/docs/api/authentication). ## Path Parameters @@ -36,7 +36,7 @@ Send the admin token, or a namespace token from [Create Token](/docs/api/tokens/ | Name | Type | Required | Description | | --- | --- | --- | --- | -| `namespace` | `string` | No | Name of the namespace to operate in. Defaults to `default`. | +| `namespace` | `string` | No | Name of the namespace to operate in. | ## Responses diff --git a/vendor/api/docs/content/pools/list-nodes.mdx b/vendor/api/docs/content/pools/list-nodes.mdx index 547810a8..59dbfcea 100644 --- a/vendor/api/docs/content/pools/list-nodes.mdx +++ b/vendor/api/docs/content/pools/list-nodes.mdx @@ -1,12 +1,10 @@ --- -title: "List Nodes" +title: "List Pool Nodes" description: "List the live nodes of a node pool in node key order. Results are paginated." --- {/* Generated by scripts/docs/gen-api-reference.mjs from engine/artifacts/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} -A node is listed while its heartbeat is recent enough for it to receive actors. A page can hold fewer than `limit` nodes while `pagination.cursor` is still set. A namespace token needs a grant on `node` with `list`. - ```http GET https://rivet.example.com/pools/{pool}/nodes ``` @@ -16,15 +14,17 @@ GET https://rivet.example.com/pools/{pool}/nodes ```bash cURL -curl "https://rivet.example.com/pools/default/nodes?namespace=$RIVET_NAMESPACE" \ +curl "https://rivet.example.com/pools/$RIVET_POOL/nodes?namespace=$RIVET_NAMESPACE" \ -H "Authorization: Bearer $RIVET_TOKEN" ``` + + ## Authentication -Send the admin token, or a namespace token from [Create Token](/docs/api/tokens/create) whose grants cover the request, as a bearer token in the `Authorization` header. The `x-rivet-token` header is also accepted. Routes with a `namespace` query parameter use the `default` namespace when it is omitted. See [Authentication](/docs/api/authentication). +Send your namespace token as a bearer token in the `Authorization` header. Every control plane request also requires the `namespace` query parameter. See [Authentication](/docs/api/authentication). ## Path Parameters @@ -36,15 +36,15 @@ Send the admin token, or a namespace token from [Create Token](/docs/api/tokens/ | Name | Type | Required | Description | | --- | --- | --- | --- | -| `namespace` | `string` | No | Name of the namespace to operate in. Defaults to `default`. | -| `limit` | `integer` | No | Maximum number of results to return, from 1 to 100. Defaults to 100. | +| `namespace` | `string` | No | Name of the namespace to operate in. | +| `limit` | `integer` | No | Maximum number of results to return. | | `cursor` | `string` | No | Pagination cursor. Pass the `pagination.cursor` value from the previous response to fetch the next page. | ## Responses ### 200 -A page of live nodes and a cursor for the next page. +A page of live nodes. | Field | Type | Description | | --- | --- | --- | diff --git a/vendor/api/docs/content/pools/list.mdx b/vendor/api/docs/content/pools/list.mdx index 40e8dd11..7c975b92 100644 --- a/vendor/api/docs/content/pools/list.mdx +++ b/vendor/api/docs/content/pools/list.mdx @@ -1,12 +1,10 @@ --- -title: "List Node Pools" +title: "List Pools" description: "List the node pools configured in a namespace, ordered by name. Results are paginated." --- {/* Generated by scripts/docs/gen-api-reference.mjs from engine/artifacts/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} -A pool is listed once it is configured, whether or not any node is connected. A namespace token needs a grant on `pool` with `list`. - ```http GET https://rivet.example.com/pools ``` @@ -20,25 +18,27 @@ curl "https://rivet.example.com/pools?namespace=$RIVET_NAMESPACE" \ -H "Authorization: Bearer $RIVET_TOKEN" ``` + + ## Authentication -Send the admin token, or a namespace token from [Create Token](/docs/api/tokens/create) whose grants cover the request, as a bearer token in the `Authorization` header. The `x-rivet-token` header is also accepted. Routes with a `namespace` query parameter use the `default` namespace when it is omitted. See [Authentication](/docs/api/authentication). +Send your namespace token as a bearer token in the `Authorization` header. Every control plane request also requires the `namespace` query parameter. See [Authentication](/docs/api/authentication). ## Query Parameters | Name | Type | Required | Description | | --- | --- | --- | --- | -| `namespace` | `string` | No | Name of the namespace to operate in. Defaults to `default`. | -| `limit` | `integer` | No | Maximum number of results to return, from 1 to 100. Defaults to 100. | +| `namespace` | `string` | No | Name of the namespace to operate in. | +| `limit` | `integer` | No | Maximum number of results to return. | | `cursor` | `string` | No | Pagination cursor. Pass the `pagination.cursor` value from the previous response to fetch the next page. | ## Responses ### 200 -A page of node pools and a cursor for the next page. +A page of node pools. | Field | Type | Description | | --- | --- | --- | diff --git a/vendor/api/docs/content/pools/upsert.mdx b/vendor/api/docs/content/pools/upsert.mdx index f2c35909..4945e4ac 100644 --- a/vendor/api/docs/content/pools/upsert.mdx +++ b/vendor/api/docs/content/pools/upsert.mdx @@ -1,11 +1,11 @@ --- -title: "Upsert Node Pool" +title: "Upsert Pool" description: "Create or replace a node pool's configuration." --- {/* Generated by scripts/docs/gen-api-reference.mjs from engine/artifacts/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} -Every field is optional and omitted fields take their defaults, so a request replaces the whole configuration. Unknown fields are rejected. Serverless pools are not supported. Nodes pick up the new configuration on their next connection. A namespace token needs a grant on `pool` with `update`. +Omitted fields take their defaults. Unknown fields are rejected. ```http PUT https://rivet.example.com/pools/{pool} @@ -16,22 +16,21 @@ PUT https://rivet.example.com/pools/{pool} ```bash cURL -curl -X PUT "https://rivet.example.com/pools/default?namespace=$RIVET_NAMESPACE" \ +curl -X PUT "https://rivet.example.com/pools/$RIVET_POOL?namespace=$RIVET_NAMESPACE" \ -H "Authorization: Bearer $RIVET_TOKEN" \ -H "Content-Type: application/json" \ -d '{ - "drain_on_version_upgrade": true, - "actor_eviction_delay": 0, - "actor_eviction_period": 0, - "actor_eviction_rate": 1 + "drain_on_version_upgrade": true }' ``` + + ## Authentication -Send the admin token, or a namespace token from [Create Token](/docs/api/tokens/create) whose grants cover the request, as a bearer token in the `Authorization` header. The `x-rivet-token` header is also accepted. Routes with a `namespace` query parameter use the `default` namespace when it is omitted. See [Authentication](/docs/api/authentication). +Send your namespace token as a bearer token in the `Authorization` header. Every control plane request also requires the `namespace` query parameter. See [Authentication](/docs/api/authentication). ## Path Parameters @@ -43,7 +42,7 @@ Send the admin token, or a namespace token from [Create Token](/docs/api/tokens/ | Name | Type | Required | Description | | --- | --- | --- | --- | -| `namespace` | `string` | No | Name of the namespace to operate in. Defaults to `default`. | +| `namespace` | `string` | No | Name of the namespace to operate in. | ## Request Body diff --git a/vendor/api/docs/content/tokens/create.mdx b/vendor/api/docs/content/tokens/create.mdx index efc7a752..c7fd2e91 100644 --- a/vendor/api/docs/content/tokens/create.mdx +++ b/vendor/api/docs/content/tokens/create.mdx @@ -5,7 +5,7 @@ description: "Issue a scoped token. Use this to mint short-lived tokens that gra {/* Generated by scripts/docs/gen-api-reference.mjs from engine/artifacts/openapi.json and docs/api/endpoints.json. Do not edit by hand. */} -Each grant names a resource type, a target (`"any"` or a specific `{ "id": ... }`), and the operations it allows. A token carries 1 to 32 grants with 1 to 5 operations each. The RivetKit client wraps this as `handle.issueToken()`. +Each grant names a resource type, a target (`"any"` or a specific `{ "id": ... }`), and the operations it allows. The RivetKit client wraps this as `handle.issueToken()`. ```http POST https://rivet.example.com/auth/tokens @@ -27,7 +27,7 @@ curl -X POST "https://rivet.example.com/auth/tokens" \ { "resource": "actor_gateway", "target": { - "id": "d97pbq1nyqxw1w5qdwz0iirbqiblh2" + "id": "00000000-0000-0000-0000-000000000000" }, "operations": [ "read" @@ -43,7 +43,7 @@ curl -X POST "https://rivet.example.com/auth/tokens" \ ## Authentication -Requires the admin token, sent as a bearer token in the `Authorization` header. Namespace tokens are rejected. See [Authentication](/docs/api/authentication). +Send your namespace token as a bearer token in the `Authorization` header. Every control plane request also requires the `namespace` query parameter. See [Authentication](/docs/api/authentication). ## Request Body @@ -51,9 +51,9 @@ Content type: `application/json`. | Field | Type | Required | Description | | --- | --- | --- | --- | -| `namespace` | `string` | Yes | Namespace the token is valid in. It must exist. | -| `duration` | `integer \| null` | No | Lifetime in seconds, from 1 to the deployment's maximum. Omit for the default lifetime. | -| `subject` | `string \| null` | No | Free-form subject to attach to the token, such as a user ID. At most 256 UTF-8 bytes. | +| `namespace` | `string` | Yes | Namespace the token is valid in. | +| `duration` | `integer \| null` | No | Lifetime in seconds. Omit for the default lifetime. | +| `subject` | `string \| null` | No | Free-form subject to attach to the token, such as a user ID. | | `grants` | `object[]` | Yes | Permissions the token carries. | | `grants[].resource` | `"namespace" \| "actor" \| "node" \| "pool" \| "datacenter" \| "actor_gateway" \| "actor_kv"` | Yes | Resource type the grant applies to. | | `grants[].target` | `"any" \| object` | Yes | `"any"` for every resource of this type, or `{ "id": "..." }` for one resource. | @@ -81,7 +81,7 @@ The issued token. The response carries `Cache-Control: no-store`. ### 400 -`validation.invalid_input`: the subject exceeds 256 UTF-8 bytes, the duration is outside the allowed range, or the grant set is invalid (empty, more than 32 grants, a grant without operations or with more than 5, or a `token`, `acl` or `jwt` resource). `envoy.invalid_namespace_name`: the `namespace` value is not a DNS label of 1 to 63 lowercase letters, digits and hyphens. +`validation.invalid_input`: the subject exceeds 256 UTF-8 bytes, the duration is outside the allowed range, or the grant set is invalid (empty, more than 32 grants, a grant without operations or with more than 5, or a `token` or `jwt` resource). `envoy.invalid_namespace_name`: the `namespace` value is not a DNS label of 1 to 63 lowercase letters, digits and hyphens. | Field | Type | Description | | --- | --- | --- | diff --git a/vendor/api/docs/content/tokens/inspect.mdx b/vendor/api/docs/content/tokens/inspect.mdx index 8500a974..56bb5026 100644 --- a/vendor/api/docs/content/tokens/inspect.mdx +++ b/vendor/api/docs/content/tokens/inspect.mdx @@ -24,7 +24,7 @@ curl "https://rivet.example.com/auth/tokens/inspect" \ ## Authentication -Send the namespace token to inspect as a bearer token in the `Authorization` header. The admin token is rejected. See [Authentication](/docs/api/authentication). +Send your namespace token as a bearer token in the `Authorization` header. Every control plane request also requires the `namespace` query parameter. See [Authentication](/docs/api/authentication). ## Responses @@ -34,8 +34,8 @@ The token's claims. The response carries `Cache-Control: no-store`. | Field | Type | Description | | --- | --- | --- | -| `namespace` | `string` | Namespace the token is scoped to. | -| `subject` | `string \| null` | Subject attached to the token, or `null`. | +| `namespace` | `string` | Name of the namespace to operate in. | +| `subject` | `string \| null` | Subject attached to the token, if any. | | `grants` | `object[]` | Permissions the token carries. | | `grants[].resource` | `"namespace" \| "actor" \| "node" \| "pool" \| "datacenter" \| "actor_gateway" \| "actor_kv"` | Resource type the grant applies to. | | `grants[].target` | `"any" \| object` | `"any"` for every resource of this type, or `{ "id": "..." }` for one resource. | diff --git a/vendor/api/docs/content/worker-connect.mdx b/vendor/api/docs/content/worker-connect.mdx index eff92982..616be0a6 100644 --- a/vendor/api/docs/content/worker-connect.mdx +++ b/vendor/api/docs/content/worker-connect.mdx @@ -26,8 +26,6 @@ The token travels as a `rivet_token.{token}` subprotocol, the same as other WebS Messages are binary [BARE](https://baremessages.org/) frames. The schema, versioned message types, and a reference client live in the repository: -- [Protocol schemas](https://github.com/rivet-dev/rivet/tree/main/engine/sdks/schemas/envoy-protocol), one `.bare` file per protocol version +- [Protocol schemas](https://github.com/rivet-dev/rivet/tree/main/engine/sdks/rust/envoy-protocol/schemas), one `.bare` file per protocol version - [Rust protocol types](https://github.com/rivet-dev/rivet/tree/main/engine/sdks/rust/envoy-protocol) generated from the schemas - [Rust client](https://github.com/rivet-dev/rivet/tree/main/engine/sdks/rust/envoy-client), the transport rivetkit-core uses to hold this connection - -To see which nodes are connected, use [List Nodes](/docs/api/pools/list-nodes). diff --git a/vendor/api/docs/endpoints.json b/vendor/api/docs/endpoints.json index f004f2a8..c605faab 100644 --- a/vendor/api/docs/endpoints.json +++ b/vendor/api/docs/endpoints.json @@ -1,1334 +1,892 @@ { - "$comment": "Source of truth for the generated HTTP API reference. Run `node scripts/docs/gen-api-reference.mjs` after editing.", - "baseUrl": "https://rivet.example.com", - "specs": { - "engine": { - "file": "engine/artifacts/openapi.json", - "auth": { - "curlHeaders": [ - "Authorization: Bearer $RIVET_TOKEN" - ], - "description": "Send the admin token, or a namespace token from [Create Token](/docs/api/tokens/create) whose grants cover the request, as a bearer token in the `Authorization` header. The `x-rivet-token` header is also accepted. Routes with a `namespace` query parameter use the `default` namespace when it is omitted. See [Authentication](/docs/api/authentication)." - }, - "parameters": { - "namespace": "Name of the namespace to operate in. Defaults to `default`.", - "actor_id": "ID of the actor.", - "limit": "Maximum number of results to return, from 1 to 100. Defaults to 100.", - "cursor": "Pagination cursor. Pass the `pagination.cursor` value from the previous response to fetch the next page.", - "pagination.cursor": "Cursor for the next page, or `null` when there are no more results.", - "actor.actor_id": "Unique ID of the actor.", - "actor.name": "Actor name as registered in your RivetKit registry.", - "actor.key": "Actor key. Multi-part keys are joined with `/`, see [Actor Keys](/docs/api/actor-keys). An empty string for an actor without a key.", - "actor.runner_name_selector": "Node pool the actor runs in.", - "actors[].actor_id": "Unique ID of the actor.", - "actors[].name": "Actor name as registered in your RivetKit registry.", - "actors[].key": "Actor key. Multi-part keys are joined with `/`, see [Actor Keys](/docs/api/actor-keys). An empty string for an actor without a key.", - "actors[].runner_name_selector": "Node pool the actor runs in.", - "names": "Map of actor name to metadata.", - "token": "The issued token. Treat it as a secret.", - "issued_ts": "When the token was issued, in Unix milliseconds.", - "expires_ts": "When the token expires, in Unix milliseconds.", - "subject": "Subject attached to the token, or `null`.", - "grants": "Permissions the token carries.", - "grants[].resource": "Resource type the grant applies to.", - "grants[].target": "`\"any\"` for every resource of this type, or `{ \"id\": \"...\" }` for one resource.", - "grants[].operations": "Operations the token may perform on the target." - }, - "authProfiles": { - "none": { - "curlHeaders": [], - "description": "No authentication is required." - }, - "admin": { - "curlHeaders": [ - "Authorization: Bearer $RIVET_TOKEN" - ], - "description": "Requires the admin token, sent as a bearer token in the `Authorization` header. Namespace tokens are rejected. See [Authentication](/docs/api/authentication)." - }, - "token": { - "curlHeaders": [ - "Authorization: Bearer $RIVET_TOKEN" - ], - "description": "Send the namespace token to inspect as a bearer token in the `Authorization` header. The admin token is rejected. See [Authentication](/docs/api/authentication)." - } - } - }, - "rivetkit": { - "file": "rivetkit-openapi/openapi.json", - "auth": { - "curlHeaders": [ - "x-rivet-token: $RIVET_TOKEN" - ], - "description": "Send a token in the `x-rivet-token` header, inline in the path as `{actor_id}@{token}`, or in the `rvt-token` query parameter. Use a [scoped token](/docs/jwt) from browsers and your Rivet token from trusted backends. See [Authentication](/docs/api/authentication)." - }, - "parameters": { - "actor": "Actor ID, actor ID with an inline token (`{actor_id}@{token}`), or actor name combined with the `rvt-*` query parameters.", - "rvt-namespace": "Namespace the actor lives in. Required when `{actor}` is an actor name.", - "rvt-method": "How to resolve an actor name to an actor. `getOrCreate` requires `rvt-pool`.", - "rvt-key": "Actor key. Separate multi-part keys with commas.", - "rvt-pool": "Pool to create the actor on when `rvt-method=getOrCreate`. RivetKit registers the `default` pool unless configured otherwise.", - "rvt-runner": "Deprecated alias for `rvt-pool`.", - "rvt-input": "Base64url-encoded CBOR input passed to `createState` and `onCreate` when `rvt-method=getOrCreate` creates the actor.", - "rvt-region": "Preferred region when `rvt-method=getOrCreate` creates the actor.", - "rvt-crash-policy": "Crash policy when `rvt-method=getOrCreate` creates the actor. RivetKit defaults to `sleep`.", - "rvt-skip-ready-wait": "Return as soon as the actor is resolved instead of waiting for it to be ready.", - "rvt-token": "Token to authenticate with. Prefer the `x-rivet-token` header or inline path token when possible.", - "args": "Positional arguments passed to the action, in order.", - "output": "Value returned by the action. `null` if the action returned `undefined`." - }, - "authProfiles": { - "inspector": { - "curlHeaders": [ - "Authorization: Bearer $INSPECTOR_TOKEN" - ], - "description": "Inspector endpoints do not accept namespace tokens. Send the actor's inspector token as a bearer token in the `Authorization` header. {/* TODO(code): document how to read an Actor's inspector token once an API returns it (ACT-6493). */}" - } - } - }, - "asyncapi": { - "file": "rivetkit-asyncapi/asyncapi.json" - } - }, - "errorCodes": { - "artifacts": "engine/artifacts/errors", - "exclude": [ - "test" - ], - "output": "error-registry.json", - "statusSources": [ - { - "label": "gateway", - "file": "engine/packages/guard-core/src/errors.rs" - }, - { - "label": "control plane", - "file": "engine/packages/api-public-shim/src/lib.rs" - }, - { - "label": "gateway", - "file": "rivetkit-rust/packages/rivetkit-core/src/registry/http.rs" - }, - { - "label": "gateway", - "file": "rivetkit-rust/packages/rivetkit-core/src/error.rs" - } - ], - "groups": { - "actor": "Actor lifecycle, addressing, and actions.", - "api": "Malformed requests to the control plane.", - "auth": "Token validation and permissions.", - "connection": "Actor connections opened through the connection protocol.", - "envoy": "Node connections, and validation of namespace and pool names.", - "guard": "The gateway that routes requests to actors, including request parsing, rate limits, and timeouts.", - "message": "Message size limits on connections.", - "namespace": "Namespace lookup and creation.", - "pool": "Node pool configuration.", - "protocol": "Encoding and framing of connection protocol messages.", - "queue": "Actor queues.", - "user": "Errors thrown by your actor code. The code is whatever you pass to `UserError`.", - "validation": "Request validation.", - "ws": "WebSocket handling for the connection protocol and `onWebSocket` handlers." - } - }, - "groups": [ - { - "title": "General", - "pages": [ - { - "title": "Overview", - "href": "/docs/api", - "icon": "faSquareInfo" - }, - { - "title": "Authentication", - "href": "/docs/api/authentication", - "icon": "faKey" - }, - { - "title": "Actor Keys", - "href": "/docs/api/actor-keys", - "icon": "faIdCard" - }, - { - "title": "Actor Routing", - "href": "/docs/api/actor-routing", - "icon": "faRoute" - }, - { - "title": "Errors", - "href": "/docs/api/errors", - "icon": "faTriangleExclamation" - }, - { - "title": "Error Codes", - "href": "/docs/api/error-codes", - "icon": "faListUl" - } - ] - }, - { - "title": "Manage Actors", - "dir": "actors", - "endpoints": [ - { - "spec": "engine", - "method": "get", - "path": "/actors", - "slug": "list", - "title": "List Actors", - "description": "List actors in a namespace by ID, by name and key, or by name. Listings by name are paginated.", - "notes": "Pass `actor_ids` (comma-separated) to look up actors by ID, or `name` with an optional `key`. `actor_ids` takes precedence over `name` and `key`. Only a listing by `name` without `key` is paginated; a page can hold fewer than `limit` actors while `pagination.cursor` is still set. Destroyed actors are excluded unless `include_destroyed` is `true`. A namespace token needs a grant on `actor` with `list`.", - "typescript": "examples/docs/api/actors-list.ts", - "parameters": { - "name": "Only return actors with this name. Required unless `actor_ids` or `actor_id` is set.", - "key": "Only return the actor with this key. Requires `name`. Multi-part keys are joined with `/`, see [Actor Keys](/docs/api/actor-keys).", - "actor_ids": "Comma-separated IDs of the actors to return.", - "actor_id": "Same as `actor_ids`. Used only when `actor_ids` is absent.", - "include_destroyed": "Include destroyed actors. Must be `true` or `false`." - }, - "examples": { - "query": { - "namespace": "$RIVET_NAMESPACE", - "name": "counter" - } - }, - "responses": { - "200": "Matching actors and a cursor for the next page. `pagination.cursor` is `null` on the last page." - } - }, - { - "spec": "engine", - "method": "get", - "path": "/actors/{actor_id}", - "slug": "get", - "title": "Get Actor", - "description": "Get a live actor by ID.", - "notes": "Returns `actor.not_found` for an actor that was destroyed or belongs to another namespace. A namespace token needs a grant on `actor` with `read`.", - "examples": { - "query": { - "namespace": "$RIVET_NAMESPACE" - } - }, - "responses": { - "200": "The actor." - } - }, - { - "spec": "engine", - "method": "post", - "path": "/actors", - "slug": "create", - "title": "Create Actor", - "description": "Create a new actor. Fails if a live actor with the same name and key already exists.", - "notes": "Prefer [Get or Create Actor](/docs/api/actors/get-or-create) for idempotent access by key. Use this endpoint when you need a fresh actor every time, for example with a random key. The request returns once the actor's record exists, and fails after 30 seconds. A namespace token needs a grant on `actor` with `create`.", - "typescript": "examples/docs/api/actors-create.ts", - "parameters": { - "name": "Name of the actor as registered in your RivetKit registry. 1 to 64 bytes.", - "key": "Key identifying this actor within its name. Multi-part keys are joined with `/`, see [Actor Keys](/docs/api/actor-keys). Omit for an actor without a key.", - "runner_name_selector": "Node pool that runs the actor. Defaults to `default`.", - "input": "Input passed to the actor, encoded as standard base64 (not base64url)." - }, - "examples": { - "query": { - "namespace": "$RIVET_NAMESPACE" - }, - "body": { - "name": "counter", - "key": "my-counter", - "runner_name_selector": "default" - } - }, - "responses": { - "200": "The created actor. `created` is always `true`." - } - }, - { - "spec": "engine", - "method": "put", - "path": "/actors", - "slug": "get-or-create", - "title": "Get or Create Actor", - "description": "Return the actor with the given name and key, creating it if it does not exist. This is the HTTP equivalent of client.actor.getOrCreate(key).", - "notes": "The response includes `created`, which is `true` when this call created the actor. A sleeping actor is woken. Without `key`, a new actor is created every time. Gateway endpoints can perform the same lookup inline with the `rvt-*` selector parameters, so you only need this endpoint when you want the `actor_id` up front. A namespace token needs a grant on `actor` with `create`.", - "typescript": "examples/docs/api/actors-get-or-create.ts", - "parameters": { - "name": "Name of the actor as registered in your RivetKit registry. 1 to 64 bytes.", - "key": "Key identifying this actor within its name. Multi-part keys are joined with `/`, see [Actor Keys](/docs/api/actor-keys).", - "runner_name_selector": "Node pool that runs the actor. Defaults to `default`.", - "input": "Input passed to the actor if this request creates it, encoded as standard base64 (not base64url)." - }, - "examples": { - "query": { - "namespace": "$RIVET_NAMESPACE" - }, - "body": { - "name": "counter", - "key": "my-counter", - "runner_name_selector": "default" - } - } - }, - { - "spec": "engine", - "method": "delete", - "path": "/actors/{actor_id}", - "slug": "destroy", - "title": "Destroy Actor", - "description": "Destroy an actor. The actor's onDestroy hook runs, then its state is deleted permanently.", - "typescript": "examples/docs/api/actors-destroy.ts", - "examples": { - "query": { - "namespace": "$RIVET_NAMESPACE" - } - }, - "related": [ - { - "title": "Destroying Actors", - "href": "/actors/docs/destroy" - } - ], - "notes": "A namespace token needs a grant on `actor` with `delete`.", - "responses": { - "200": "The destroy was accepted. The response body is an empty object." - } - }, - { - "spec": "engine", - "method": "post", - "path": "/actors/{actor_id}/sleep", - "slug": "sleep", - "title": "Sleep Actor", - "description": "Put an actor to sleep. The actor runs its shutdown sequence and persists its state, then wakes on the next request.", - "typescript": "examples/docs/api/actors-sleep.ts", - "examples": { - "query": { - "namespace": "$RIVET_NAMESPACE" - } - }, - "related": [ - { - "title": "Lifecycle", - "href": "/actors/docs/lifecycle" - } - ], - "notes": "The request body is ignored. A namespace token needs a grant on `actor` with `update`.", - "responses": { - "200": "The sleep was accepted. The response body is an empty object." - } - }, - { - "spec": "engine", - "method": "post", - "path": "/actors/{actor_id}/reschedule", - "slug": "reschedule", - "title": "Reschedule Actor", - "description": "Move an actor to a new allocation. A running actor is stopped and starts again, possibly on another node, with its persisted state.", - "typescript": "examples/docs/api/actors-reschedule.ts", - "examples": { - "query": { - "namespace": "$RIVET_NAMESPACE" - } - }, - "related": [ - { - "title": "Lifecycle", - "href": "/actors/docs/lifecycle" - } - ], - "notes": "A running or stopping actor is stopped and allocated again, and a sleeping actor is allocated now. An actor that is still starting, or is destroyed, is left as is and the request still succeeds. The request body is ignored. A namespace token needs a grant on `actor` with `update`.", - "responses": { - "200": "The reschedule was accepted, or there was nothing to move. The response body is an empty object." - } - }, - { - "spec": "engine", - "method": "get", - "path": "/actors/names", - "slug": "list-names", - "title": "List Actor Names", - "description": "List the actor names that the namespace's connected nodes accept.", - "typescript": "examples/docs/api/actors-list-names.ts", - "examples": { - "query": { - "namespace": "$RIVET_NAMESPACE" - } - }, - "notes": "A namespace token needs a grant on `actor` with `list`.", - "responses": { - "200": "Map of actor name to metadata." - } - } - ] - }, - { - "title": "Call Actors", - "dir": "gateway", - "spec": "asyncapi", - "endpoints": [ - { - "spec": "rivetkit", - "method": "post", - "path": "/gateway/{actor}/action/{action}", - "slug": "call-action", - "title": "Call Action", - "description": "Invoke an action defined on an actor and return its result. This is the HTTP equivalent of calling a method on an actor handle in the RivetKit client.", - "notes": "Arguments are passed as a JSON array in `args` and spread into the action's parameters. The action's return value comes back in `output`. Actions that return `undefined` respond with `{ \"output\": null }`.", - "typescript": "examples/docs/api/gateway-call-action.ts", - "parameters": { - "action": "Name of the action as defined in the actor's `actions` map." - }, - "examples": { - "path": { - "actor": "counter", - "action": "increment" - }, - "selector": { - "rvt-namespace": "$RIVET_NAMESPACE", - "rvt-method": "getOrCreate", - "rvt-key": "my-counter", - "rvt-pool": "default" - }, - "body": { - "args": [ - 1 - ] - }, - "response": { - "output": 1 - } - }, - "related": [ - { - "title": "Actions", - "href": "/actors/docs/actions" - }, - { - "title": "Actor Routing", - "href": "/docs/api/actor-routing" - } - ] - }, - { - "spec": "rivetkit", - "method": "any", - "path": "/gateway/{actor}/request/{path}", - "slug": "request", - "title": "Raw HTTP Request", - "description": "Forward a raw HTTP request to an actor's onRequest handler. The method, headers, body, and the path after /request/ are passed through unchanged.", - "notes": "Use this when an actor exposes its own HTTP routes, streams responses (for example Server-Sent Events), or needs to accept non-JSON payloads. The response is whatever the actor's `onRequest` handler returns.", - "typescript": "examples/docs/api/gateway-request.ts", - "parameters": { - "path": "Path forwarded to the actor. The actor sees a request whose URL path is `/{path}`." - }, - "examples": { - "method": "post", - "path": { - "actor": "counter", - "path": "increment" - }, - "selector": { - "rvt-namespace": "$RIVET_NAMESPACE", - "rvt-method": "getOrCreate", - "rvt-key": "my-counter", - "rvt-pool": "default" - } - }, - "responses": { - "200": "The response returned by the actor's `onRequest` handler." - }, - "related": [ - { - "title": "Low-Level HTTP Handler", - "href": "/actors/docs/request-handler" - }, - { - "title": "Raw WebSocket", - "href": "/docs/api/websockets" - } - ] - }, - { - "spec": "rivetkit", - "method": "get", - "path": "/gateway/{actor}/health", - "slug": "health", - "title": "Check Health", - "description": "Check that an actor is reachable through the gateway. Resolves the actor, waits for it to be ready unless rvt-skip-ready-wait is set, and returns a plain-text ok.", - "typescript": "examples/docs/api/gateway-health.ts", - "examples": { - "path": { - "actor": "$ACTOR_ID" - } - }, - "responses": { - "200": "The actor is running and reachable. Body is the text `ok`." - }, - "after": "connect" - }, - { - "spec": "rivetkit", - "method": "post", - "path": "/gateway/{actor}/queue/{name}", - "slug": "queue", - "title": "Send Queue Message", - "description": "Enqueue a durable message for an actor. Optionally wait for the actor to complete it and return a response.", - "notes": "By default, the request returns after the message is enqueued. Set `wait` to `true` to wait for `message.complete(...)`; `timeout` sets that wait in milliseconds, and a timeout returns `status: \"timedOut\"` without canceling the queued work.", - "typescript": "examples/docs/api/gateway-queue.ts", - "parameters": { - "name": "Name of the queue message as defined in the actor's `queues` map." - }, - "examples": { - "path": { - "actor": "counter", - "name": "increment" - }, - "selector": { - "rvt-namespace": "$RIVET_NAMESPACE", - "rvt-method": "getOrCreate", - "rvt-key": "my-counter", - "rvt-pool": "default" - }, - "body": { - "body": { - "amount": 1 - }, - "wait": true, - "timeout": 5000 - }, - "response": { - "status": "completed", - "response": { - "count": 1 - } - } - }, - "responses": { - "200": "The message was enqueued, with its completion status when waiting." - }, - "related": [ - { - "title": "Queues", - "href": "/actors/docs/queues" - } - ], - "after": "call-action" - }, - { - "spec": "rivetkit", - "method": "get", - "path": "/gateway/{actor}/metadata", - "slug": "metadata", - "title": "Get Runtime Metadata", - "description": "Identify the RivetKit runtime serving an actor.", - "typescript": "examples/docs/api/gateway-metadata.ts", - "examples": { - "path": { - "actor": "$ACTOR_ID" - }, - "response": { - "runtime": "rivetkit", - "version": "1.0.0", - "type": "native" - } - }, - "responses": { - "200": "Runtime name, version, and runtime type." - }, - "after": "health" - } - ], - "protocol": [ - { - "slug": "connect", - "title": "Connect", - "description": "Open a persistent WebSocket connection to an actor. One connection carries action calls, event subscriptions, and errors as JSON messages, which is what handle.connect() does in the RivetKit client.", - "url": "wss://rivet.example.com/gateway/{actor}/connect", - "notes": "`{actor}` accepts the same forms as every gateway endpoint: an actor ID, `{actor_id}@{token}`, or an actor name with `rvt-*` query parameters. See [Actor Routing](/docs/api/actor-routing).\n\nConnection options travel as WebSocket subprotocols in the `Sec-WebSocket-Protocol` header because browsers cannot set arbitrary headers on an upgrade. Always include `rivet`, then add any of the prefixed entries below.\n\n| Subprotocol | Purpose |\n| --- | --- |\n| `rivet` | Required. Lets servers that insist on a matching protocol accept the upgrade. |\n| `rivet_encoding.json` | Message encoding. `json` is the default and is documented here. The RivetKit client uses `cbor` or `bare`; the payloads are the same, only the framing differs. |\n| `rivet_token.{token}` | Token to authenticate with. See [WebSocket Requests](/docs/api/authentication#websocket-requests). |\n| `rivet_conn_params.{params}` | Optional connection parameters passed to the actor's `createConnState` and `onBeforeConnect` hooks, as URL-encoded JSON. |\n| `rivet_skip_ready_wait` | Complete the upgrade as soon as the actor is resolved instead of waiting for it to be ready. |\n\nEvery message in both directions is a JSON object of the form `{ \"body\": { \"tag\": \"\", \"val\": { ... } } }`. The server sends `Init` first; nothing else arrives before it. There is no ping or heartbeat message. Rely on WebSocket ping frames or your own timeout to detect a dead connection.", - "sections": [ - { - "title": "Handshake", - "notes": "After the upgrade completes, the server sends `Init` before any other message. Store `connectionId` if you need to correlate connection-scoped state; nothing else needs to be sent before calling actions or subscribing to events.", - "messages": [ - "Init" - ], - "snippets": [ - { - "file": "examples/docs/api/connection-connect.ts", - "title": "WebSocket" - }, - { - "file": "examples/docs/api/connection-connect-client.ts", - "title": "TypeScript" - } - ] - }, - { - "title": "Actions", - "notes": "Send an `ActionRequest` with a client-chosen `id`. The server answers with an `ActionResponse` carrying the same `id`, or with an [`Error`](#errors) whose `actionId` matches. Requests may be pipelined; responses are not guaranteed to arrive in order, so match on `id` rather than position.\n\nThis is the connection equivalent of [Call Action](/docs/api/gateway/call-action) over HTTP. Actions called on a connection can also read connection state set in `createConnState`.", - "messages": [ - "ActionRequest", - "ActionResponse" - ], - "snippets": [ - { - "file": "examples/docs/api/connection-actions.ts", - "title": "WebSocket" - }, - { - "file": "examples/docs/api/connection-actions-client.ts", - "title": "TypeScript" - } - ] - }, - { - "title": "Events", - "notes": "Send a `SubscriptionRequest` with `subscribe: true` to start receiving `Event` messages for an event name, and `subscribe: false` to stop. Subscriptions are per connection and are lost when the connection closes, so resubscribe after reconnecting. The server does not acknowledge subscription changes. If the actor rejects a subscription, the connection is closed with the error as the close reason.\n\nEvents sent by the actor to a connection that has not subscribed to that event name are dropped.", - "messages": [ - "SubscriptionRequest", - "Event" - ], - "snippets": [ - { - "file": "examples/docs/api/connection-events.ts", - "title": "WebSocket" - }, - { - "file": "examples/docs/api/connection-events-client.ts", - "title": "TypeScript" - } - ] - }, - { - "title": "Errors", - "notes": "Errors on an established connection arrive as `Error` messages. `actionId` is set when the error answers a specific `ActionRequest` and `null` for connection-level errors such as a malformed message. The `group` and `code` values are the same ones the HTTP API returns; see [Error Codes](/docs/api/error-codes).\n\nErrors that prevent the connection from being established, such as an invalid token or an actor that does not exist, are reported by closing the WebSocket with a reason of the form `{group}.{code}#{ray_id}`. See [WebSockets](/docs/api/websockets#close-codes).", - "messages": [ - "Error" - ], - "snippets": [ - { - "file": "examples/docs/api/connection-errors.ts", - "title": "WebSocket" - }, - { - "file": "examples/docs/api/connection-errors-client.ts", - "title": "TypeScript" - } - ] - } - ], - "fields": { - "Init.actorId": "ID of the actor this connection is attached to.", - "Init.connectionId": "ID of this connection. Matches `c.conn.id` inside the actor.", - "ActionRequest.id": "Client-chosen identifier used to match the response. Any integer that is unique among in-flight requests on this connection.", - "ActionRequest.name": "Name of the action as defined in the actor's `actions` map.", - "ActionRequest.args": "Positional arguments passed to the action, as a JSON array.", - "ActionResponse.id": "The `id` from the matching `ActionRequest`.", - "ActionResponse.output": "Value returned by the action. `null` if the action returned `undefined`.", - "SubscriptionRequest.eventName": "Name of the event as defined in the actor's `events` map.", - "SubscriptionRequest.subscribe": "`true` to subscribe, `false` to unsubscribe.", - "Event.name": "Name of the event.", - "Event.args": "Arguments passed to `c.broadcast()` or `conn.send()`, as a JSON array.", - "Error.group": "Subsystem that produced the error, such as `actor`, `auth`, or `user`.", - "Error.code": "Error identifier within the group.", - "Error.message": "Human-readable explanation. Do not match on it.", - "Error.metadata": "Structured details attached by the actor or gateway, if any.", - "Error.actionId": "`id` of the `ActionRequest` this error answers, or `null` for connection-level errors.", - "Error.actor": "Actor that handled the message, when known.", - "Error.actor.actorId": "ID of the actor.", - "Error.actor.generation": "Generation of the actor process. Increments each time the actor restarts.", - "Error.actor.key": "Key of the actor, if it has one." - }, - "examples": { - "Init": { - "actorId": "00000000-0000-0000-0000-000000000000", - "connectionId": "00000000-0000-0000-0000-000000000000" - }, - "ActionRequest": { - "id": 1, - "name": "increment", - "args": [ - 1 - ] - }, - "ActionResponse": { - "id": 1, - "output": 1 - }, - "SubscriptionRequest": { - "eventName": "countChanged", - "subscribe": true - }, - "Event": { - "name": "countChanged", - "args": [ - 1 - ] - }, - "Error": { - "group": "user", - "code": "insufficient_funds", - "message": "Balance is too low.", - "metadata": { - "balance": 5 - }, - "actionId": 1, - "actor": { - "actorId": "00000000-0000-0000-0000-000000000000", - "generation": 1, - "key": "my-counter" - } - } - }, - "related": [ - { - "title": "Connections", - "href": "/actors/docs/connections" - }, - { - "title": "Actions", - "href": "/actors/docs/actions" - }, - { - "title": "Events", - "href": "/actors/docs/events" - }, - { - "title": "Errors", - "href": "/docs/api/errors" - }, - { - "title": "Call Action over HTTP", - "href": "/docs/api/gateway/call-action" - }, - { - "title": "Raw WebSocket", - "href": "/docs/api/websockets" - }, - { - "title": "AsyncAPI specification", - "href": "https://github.com/rivet-dev/rivet/tree/main/rivetkit-asyncapi" - } - ] - } - ], - "pages": [ - { - "title": "Raw WebSocket", - "href": "/docs/api/websockets", - "badge": "WS", - "after": "request" - } - ], - "children": [ - { - "title": "Inspector", - "dir": "inspector", - "icon": "faMagnifyingGlass", - "notes": "These endpoints power the actor inspector.", - "endpoints": [ - { - "spec": "rivetkit", - "method": "get", - "path": "/gateway/{actor}/inspector/summary", - "slug": "summary", - "title": "Get Summary", - "description": "Get an overview of an actor's state, connections, actions, queue, database, and workflow.", - "auth": "inspector", - "typescript": "examples/docs/api/inspector-summary.ts", - "examples": { - "path": { - "actor": "$ACTOR_ID" - } - }, - "responses": { - "200": "The actor inspector summary.", - "401": "The inspector token is missing or invalid." - } - }, - { - "spec": "rivetkit", - "method": "get", - "path": "/gateway/{actor}/inspector/state", - "slug": "state-get", - "title": "Get State", - "description": "Read the actor's current state.", - "auth": "inspector", - "typescript": "examples/docs/api/inspector-state-get.ts", - "examples": { - "path": { - "actor": "$ACTOR_ID" - }, - "response": { - "state": { - "count": 1 - } - } - }, - "responses": { - "200": "The current actor state.", - "401": "The inspector token is missing or invalid." - } - }, - { - "spec": "rivetkit", - "method": "patch", - "path": "/gateway/{actor}/inspector/state", - "slug": "state-patch", - "title": "Patch State", - "description": "Replace the actor's current state.", - "notes": "This writes state directly and bypasses actor actions. Use it only for inspection and recovery.", - "auth": "inspector", - "typescript": "examples/docs/api/inspector-state-patch.ts", - "examples": { - "path": { - "actor": "$ACTOR_ID" - }, - "body": { - "state": { - "count": 2 - } - }, - "response": { - "ok": true - } - }, - "responses": { - "200": "The state was saved.", - "401": "The inspector token is missing or invalid." - } - }, - { - "spec": "rivetkit", - "method": "get", - "path": "/gateway/{actor}/inspector/connections", - "slug": "connections", - "title": "List Connections", - "description": "List the actor's active connections.", - "auth": "inspector", - "typescript": "examples/docs/api/inspector-connections.ts", - "examples": { - "path": { - "actor": "$ACTOR_ID" - } - }, - "responses": { - "200": "The active connections.", - "401": "The inspector token is missing or invalid." - } - }, - { - "spec": "rivetkit", - "method": "get", - "path": "/gateway/{actor}/inspector/rpcs", - "slug": "rpcs", - "title": "List Actions", - "description": "List the actions exposed by the actor.", - "auth": "inspector", - "typescript": "examples/docs/api/inspector-rpcs.ts", - "examples": { - "path": { - "actor": "$ACTOR_ID" - } - }, - "responses": { - "200": "The actor's action definitions.", - "401": "The inspector token is missing or invalid." - } - }, - { - "spec": "rivetkit", - "method": "post", - "path": "/gateway/{actor}/inspector/action/{name}", - "slug": "action", - "title": "Invoke Action", - "description": "Invoke an actor action through the inspector.", - "auth": "inspector", - "typescript": "examples/docs/api/inspector-action.ts", - "parameters": { - "name": "Name of the action to invoke." - }, - "examples": { - "path": { - "actor": "$ACTOR_ID", - "name": "increment" - }, - "body": { - "args": [ - 1 - ] - }, - "response": { - "output": 1 - } - }, - "responses": { - "200": "The action result.", - "401": "The inspector token is missing or invalid." - } - }, - { - "spec": "rivetkit", - "method": "get", - "path": "/gateway/{actor}/inspector/queue", - "slug": "queue-get", - "title": "Get Queue", - "description": "List pending queue messages and queue capacity details.", - "auth": "inspector", - "typescript": "examples/docs/api/inspector-queue-get.ts", - "examples": { - "path": { - "actor": "$ACTOR_ID" - }, - "query": { - "limit": 50 - } - }, - "responses": { - "200": "Queue size, capacity, truncation status, and pending message metadata.", - "401": "The inspector token is missing or invalid." - } - }, - { - "spec": "rivetkit", - "method": "post", - "path": "/gateway/{actor}/inspector/queue", - "slug": "queue-post", - "title": "Enqueue Message", - "description": "Enqueue a message through the inspector.", - "auth": "inspector", - "typescript": "examples/docs/api/inspector-queue-post.ts", - "examples": { - "path": { - "actor": "$ACTOR_ID" - }, - "body": { - "name": "increment", - "body": { - "amount": 1 - } - } - }, - "responses": { - "200": "Metadata for the enqueued message.", - "401": "The inspector token is missing or invalid." - } - }, - { - "spec": "rivetkit", - "method": "delete", - "path": "/gateway/{actor}/inspector/queue", - "slug": "queue-delete", - "title": "Clear Queue", - "description": "Remove all pending messages from the actor's queue.", - "auth": "inspector", - "typescript": "examples/docs/api/inspector-queue-delete.ts", - "examples": { - "path": { - "actor": "$ACTOR_ID" - } - }, - "responses": { - "200": "The queue was cleared.", - "401": "The inspector token is missing or invalid." - } - }, - { - "spec": "rivetkit", - "method": "get", - "path": "/gateway/{actor}/inspector/traces", - "slug": "traces", - "title": "Get Traces", - "description": "Get actor trace spans in OTLP JSON format.", - "notes": "Trace collection is not implemented yet, so this route currently returns an empty result.", - "auth": "inspector", - "typescript": "examples/docs/api/inspector-traces.ts", - "examples": { - "path": { - "actor": "$ACTOR_ID" - }, - "query": { - "startMs": 0, - "limit": 100 - } - }, - "responses": { - "200": "Trace data and whether the requested range was clamped.", - "401": "The inspector token is missing or invalid." - } - }, - { - "spec": "rivetkit", - "method": "get", - "path": "/gateway/{actor}/inspector/workflow-history", - "slug": "workflow-history", - "title": "Get Workflow History", - "description": "Read workflow history and whether workflows are enabled for the actor.", - "auth": "inspector", - "typescript": "examples/docs/api/inspector-workflow-history.ts", - "examples": { - "path": { - "actor": "$ACTOR_ID" - } - }, - "responses": { - "200": "Workflow history and availability.", - "401": "The inspector token is missing or invalid." - } - }, - { - "spec": "rivetkit", - "method": "post", - "path": "/gateway/{actor}/inspector/workflow/replay", - "slug": "workflow-replay", - "title": "Replay Workflow", - "description": "Schedule a workflow replay from an optional history entry.", - "auth": "inspector", - "typescript": "examples/docs/api/inspector-workflow-replay.ts", - "examples": { - "path": { - "actor": "$ACTOR_ID" - }, - "body": { - "entryId": "entry-123" - } - }, - "responses": { - "200": "Workflow history after scheduling the replay.", - "401": "The inspector token is missing or invalid." - } - }, - { - "spec": "rivetkit", - "method": "get", - "path": "/gateway/{actor}/inspector/database/schema", - "slug": "database-schema", - "title": "Get Database Schema", - "description": "List tables, views, and columns in the actor's SQLite database.", - "auth": "inspector", - "typescript": "examples/docs/api/inspector-database-schema.ts", - "examples": { - "path": { - "actor": "$ACTOR_ID" - } - }, - "responses": { - "200": "The actor database schema.", - "401": "The inspector token is missing or invalid." - } - }, - { - "spec": "rivetkit", - "method": "get", - "path": "/gateway/{actor}/inspector/database/rows", - "slug": "database-rows", - "title": "Query Database Rows", - "description": "Read a page of rows from an actor database table or view.", - "auth": "inspector", - "typescript": "examples/docs/api/inspector-database-rows.ts", - "examples": { - "path": { - "actor": "$ACTOR_ID" - }, - "query": { - "table": "users", - "limit": 100, - "offset": 0 - } - }, - "responses": { - "200": "The selected rows.", - "401": "The inspector token is missing or invalid." - } - }, - { - "spec": "rivetkit", - "method": "post", - "path": "/gateway/{actor}/inspector/database/execute", - "slug": "database-execute", - "title": "Execute SQL", - "description": "Run a SQL statement against the actor's SQLite database.", - "notes": "SQL executes directly against actor storage. Use bind parameters for values.", - "auth": "inspector", - "typescript": "examples/docs/api/inspector-database-execute.ts", - "examples": { - "path": { - "actor": "$ACTOR_ID" - }, - "body": { - "sql": "SELECT * FROM users WHERE id = ?", - "args": [ - "user-123" - ] - } - }, - "responses": { - "200": "Rows returned by the statement.", - "401": "The inspector token is missing or invalid." - } - } - ], - "pages": [ - { - "title": "Inspector Connect", - "href": "/docs/api/inspector-connect", - "badge": "WS" - } - ], - "notice": "The inspector API is subject to change without notice. Do not build production integrations on it." - } - ] - }, - { - "title": "Tokens", - "dir": "tokens", - "endpoints": [ - { - "spec": "engine", - "method": "post", - "path": "/auth/tokens", - "slug": "create", - "title": "Create Token", - "description": "Issue a scoped token. Use this to mint short-lived tokens that grant a client access to a single actor instead of sharing your namespace token.", - "notes": "Each grant names a resource type, a target (`\"any\"` or a specific `{ \"id\": ... }`), and the operations it allows. A token carries 1 to 32 grants with 1 to 5 operations each. The RivetKit client wraps this as `handle.issueToken()`.", - "typescript": "examples/docs/api/tokens-create.ts", - "parameters": { - "namespace": "Namespace the token is valid in. It must exist.", - "duration": "Lifetime in seconds, from 1 to the deployment's maximum. Omit for the default lifetime.", - "subject": "Free-form subject to attach to the token, such as a user ID. At most 256 UTF-8 bytes.", - "grants": "Permissions the token carries.", - "grants[].resource": "Resource type the grant applies to.", - "grants[].target": "`\"any\"` for every resource of this type, or `{ \"id\": \"...\" }` for one resource.", - "grants[].operations": "Operations the token may perform on the target." - }, - "examples": { - "body": { - "namespace": "my-namespace", - "subject": "user-123", - "duration": 3600, - "grants": [ - { - "resource": "actor_gateway", - "target": { - "id": "d97pbq1nyqxw1w5qdwz0iirbqiblh2" - }, - "operations": [ - "read" - ] - } - ] - } - }, - "auth": "admin" - }, - { - "spec": "engine", - "method": "get", - "path": "/auth/tokens/inspect", - "slug": "inspect", - "title": "Inspect Token", - "description": "Return the namespace, grants, and expiry of the token used to authenticate the request.", - "typescript": "examples/docs/api/tokens-inspect.ts", - "auth": "token", - "parameters": { - "namespace": "Namespace the token is scoped to." - } - } - ] - }, - { - "title": "Namespaces", - "dir": "namespaces", - "endpoints": [ - { - "spec": "engine", - "method": "get", - "path": "/namespaces", - "slug": "list", - "title": "List Namespaces", - "description": "List namespaces in name order, or look up one namespace by name. Results are paginated.", - "notes": "`name` returns zero or one namespace and ignores `limit` and `cursor`. Any other query parameter, including `namespace`, is rejected.", - "typescript": "examples/docs/api/namespaces-list.ts", - "parameters": { - "name": "Only return the namespace with this name." - }, - "responses": { - "200": "Matching namespaces and a cursor for the next page." - }, - "auth": "admin" - }, - { - "spec": "engine", - "method": "post", - "path": "/namespaces", - "slug": "create", - "title": "Create Namespace", - "description": "Create a namespace with a unique name.", - "typescript": "examples/docs/api/namespaces-create.ts", - "parameters": { - "name": "Unique name of the namespace. A DNS label of 1 to 63 lowercase letters, digits and hyphens.", - "namespace": "The created namespace." - }, - "examples": { - "body": { - "name": "my-app" - } - }, - "responses": { - "200": "The newly created namespace." - }, - "auth": "admin" - } - ] - }, - { - "title": "Node Pools", - "dir": "pools", - "endpoints": [ - { - "spec": "engine", - "method": "get", - "path": "/pools", - "slug": "list", - "title": "List Node Pools", - "description": "List the node pools configured in a namespace, ordered by name. Results are paginated.", - "notes": "A pool is listed once it is configured, whether or not any node is connected. A namespace token needs a grant on `pool` with `list`.", - "examples": { - "query": { - "namespace": "$RIVET_NAMESPACE" - } - }, - "responses": { - "200": "A page of node pools and a cursor for the next page." - } - }, - { - "spec": "engine", - "method": "get", - "path": "/pools/{pool}", - "slug": "get", - "title": "Get Node Pool", - "description": "Get a node pool's configuration.", - "notes": "A namespace token needs a grant on `pool` with `read`.", - "examples": { - "path": { - "pool": "default" - }, - "query": { - "namespace": "$RIVET_NAMESPACE" - } - }, - "responses": { - "200": "The node pool." - } - }, - { - "spec": "engine", - "method": "put", - "path": "/pools/{pool}", - "slug": "upsert", - "title": "Upsert Node Pool", - "description": "Create or replace a node pool's configuration.", - "notes": "Every field is optional and omitted fields take their defaults, so a request replaces the whole configuration. Unknown fields are rejected. Serverless pools are not supported. Nodes pick up the new configuration on their next connection. A namespace token needs a grant on `pool` with `update`.", - "examples": { - "path": { - "pool": "default" - }, - "query": { - "namespace": "$RIVET_NAMESPACE" - }, - "body": { - "drain_on_version_upgrade": true, - "actor_eviction_delay": 0, - "actor_eviction_period": 0, - "actor_eviction_rate": 1 - } - }, - "responses": { - "200": "The stored node pool." - } - }, - { - "spec": "engine", - "method": "delete", - "path": "/pools/{pool}", - "slug": "delete", - "title": "Delete Node Pool", - "description": "Delete a node pool's configuration.", - "notes": "Fails with `pool.nodes_connected` while any node of the pool is connected. A namespace token needs a grant on `pool` with `delete`.", - "examples": { - "path": { - "pool": "default" - }, - "query": { - "namespace": "$RIVET_NAMESPACE" - } - }, - "responses": { - "200": "The node pool was deleted. The response body is an empty object." - } - }, - { - "spec": "engine", - "method": "get", - "path": "/pools/{pool}/nodes", - "slug": "list-nodes", - "title": "List Nodes", - "description": "List the live nodes of a node pool in node key order. Results are paginated.", - "notes": "A node is listed while its heartbeat is recent enough for it to receive actors. A page can hold fewer than `limit` nodes while `pagination.cursor` is still set. A namespace token needs a grant on `node` with `list`.", - "examples": { - "path": { - "pool": "default" - }, - "query": { - "namespace": "$RIVET_NAMESPACE" - } - }, - "responses": { - "200": "A page of live nodes and a cursor for the next page." - } - } - ], - "pages": [ - { - "title": "Worker Connection", - "href": "/docs/api/worker-connect", - "badge": "WS", - "after": "list-nodes" - } - ] - }, - { - "title": "Control Plane", - "dir": "control-plane", - "endpoints": [ - { - "spec": "engine", - "method": "get", - "path": "/metadata", - "slug": "metadata", - "title": "Get Metadata", - "description": "Get the runtime and version of the control plane.", - "notes": "A request made with the admin token also receives `actorNames`.", - "typescript": "examples/docs/api/control-plane-metadata.ts", - "auth": "none", - "responses": { - "200": "Runtime and version metadata." - } - }, - { - "spec": "engine", - "method": "get", - "path": "/datacenters", - "slug": "datacenters", - "title": "List Datacenters", - "description": "List the datacenters configured for the control plane.", - "typescript": "examples/docs/api/control-plane-datacenters.ts", - "responses": { - "200": "Configured datacenters." - }, - "notes": "A namespace token needs a grant on `datacenter` with `list`." - } - ] - } - ] + "$comment": "Source of truth for the generated HTTP API reference. Run `node scripts/docs/gen-api-reference.mjs` after editing.", + "baseUrl": "https://rivet.example.com", + "specs": { + "engine": { + "file": "engine/artifacts/openapi.json", + "auth": { + "curlHeaders": [ + "Authorization: Bearer $RIVET_TOKEN" + ], + "description": "Send your namespace token as a bearer token in the `Authorization` header. Every control plane request also requires the `namespace` query parameter. See [Authentication](/docs/api/authentication)." + }, + "parameters": { + "namespace": "Name of the namespace to operate in.", + "actor_id": "ID of the actor.", + "limit": "Maximum number of results to return.", + "cursor": "Pagination cursor. Pass the `pagination.cursor` value from the previous response to fetch the next page.", + "pagination.cursor": "Cursor for the next page, or `null` when there are no more results.", + "actor.actor_id": "Unique ID of the actor.", + "actor.name": "Actor name as registered in your RivetKit registry.", + "actor.key": "Actor key. Multi-part keys are joined with `/`, see [Actor Keys](/docs/api/actor-keys).", + "actor.namespace_id": "ID of the namespace the actor belongs to.", + "actor.datacenter": "Datacenter the actor is scheduled in.", + "actor.runner_name_selector": "Pool the actor runs on.", + "actor.crash_policy": "What happens when the actor crashes.", + "actors[].actor_id": "Unique ID of the actor.", + "actors[].name": "Actor name as registered in your RivetKit registry.", + "actors[].key": "Actor key. Multi-part keys are joined with `/`, see [Actor Keys](/docs/api/actor-keys).", + "actors[].namespace_id": "ID of the namespace the actor belongs to.", + "actors[].datacenter": "Datacenter the actor is scheduled in.", + "actors[].runner_name_selector": "Pool the actor runs on.", + "actors[].crash_policy": "What happens when the actor crashes.", + "created": "`true` if this request created the actor, `false` if it already existed.", + "names": "Map of actor name to metadata.", + "names.metadata": "Free-form metadata attached to the actor name.", + "token": "The issued token. Treat it as a secret.", + "issued_ts": "When the token was issued, in Unix milliseconds.", + "expires_ts": "When the token expires, in Unix milliseconds.", + "namespace_id": "ID of the namespace the token is scoped to.", + "subject": "Subject attached to the token, if any.", + "grants": "Permissions the token carries.", + "grants[].resource": "Resource type the grant applies to.", + "grants[].target": "`\"any\"` for every resource of this type, or `{ \"id\": \"...\" }` for one resource.", + "grants[].operations": "Operations the token may perform on the target.", + "value": "Base64-encoded value bytes.", + "update_ts": "When the key was last written, in Unix milliseconds." + }, + "authProfiles": { + "none": { + "curlHeaders": [], + "description": "No authentication is required." + } + } + }, + "rivetkit": { + "file": "rivetkit-openapi/openapi.json", + "auth": { + "curlHeaders": [ + "x-rivet-token: $RIVET_TOKEN" + ], + "description": "Send a token in the `x-rivet-token` header, inline in the path as `{actor_id}@{token}`, or in the `rvt-token` query parameter. Use a [scoped token](/docs/jwt) from browsers and your Rivet token from trusted backends. See [Authentication](/docs/api/authentication)." + }, + "parameters": { + "actor": "Actor ID, actor ID with an inline token (`{actor_id}@{token}`), or actor name combined with the `rvt-*` query parameters.", + "rvt-namespace": "Namespace the actor lives in. Required when `{actor}` is an actor name.", + "rvt-method": "How to resolve an actor name to an actor. `getOrCreate` requires `rvt-pool`.", + "rvt-key": "Actor key. Separate multi-part keys with commas.", + "rvt-pool": "Pool to create the actor on when `rvt-method=getOrCreate`. RivetKit registers the `default` pool unless configured otherwise.", + "rvt-runner": "Deprecated alias for `rvt-pool`.", + "rvt-input": "Base64url-encoded CBOR input passed to `createState` and `onCreate` when `rvt-method=getOrCreate` creates the actor.", + "rvt-region": "Preferred region when `rvt-method=getOrCreate` creates the actor.", + "rvt-crash-policy": "Crash policy when `rvt-method=getOrCreate` creates the actor. RivetKit defaults to `sleep`.", + "rvt-skip-ready-wait": "Return as soon as the actor is resolved instead of waiting for it to be ready.", + "rvt-token": "Token to authenticate with. Prefer the `x-rivet-token` header or inline path token when possible.", + "args": "Positional arguments passed to the action, in order.", + "output": "Value returned by the action. `null` if the action returned `undefined`." + } + }, + "asyncapi": { + "file": "rivetkit-asyncapi/asyncapi.json" + } + }, + "errorCodes": { + "artifacts": "engine/artifacts/errors", + "exclude": [ + "test" + ], + "output": "error-registry.json", + "statusSources": [ + { + "label": "gateway", + "file": "engine/packages/guard-core/src/errors.rs" + }, + { + "label": "control plane", + "file": "engine/packages/api-builder/src/error_response.rs" + }, + { + "label": "gateway", + "file": "rivetkit-rust/packages/rivetkit-core/src/registry/http.rs" + }, + { + "label": "gateway", + "file": "rivetkit-rust/packages/rivetkit-core/src/error.rs" + } + ], + "groups": { + "actor": "Actor lifecycle, addressing, and actions.", + "api": "Malformed requests to the control plane.", + "auth": "Token validation and permissions.", + "connection": "Actor connections opened through the connection protocol.", + "guard": "The gateway that routes requests to actors, including request parsing, rate limits, and timeouts.", + "kv": "Low-level KV storage inside an actor.", + "message": "Message size limits on connections.", + "namespace": "Namespace lookup and creation.", + "protocol": "Encoding and framing of connection protocol messages.", + "queue": "Actor queues.", + "user": "Errors thrown by your actor code. The code is whatever you pass to `UserError`.", + "validation": "Request validation.", + "ws": "WebSocket handling for the connection protocol and `onWebSocket` handlers." + } + }, + "groups": [ + { + "title": "General", + "pages": [ + { + "title": "Overview", + "href": "/docs/api", + "icon": "faSquareInfo" + }, + { + "title": "Authentication", + "href": "/docs/api/authentication", + "icon": "faKey" + }, + { + "title": "Actor Keys", + "href": "/docs/api/actor-keys", + "icon": "faIdCard" + }, + { + "title": "Actor Routing", + "href": "/docs/api/actor-routing", + "icon": "faRoute" + }, + { + "title": "Errors", + "href": "/docs/api/errors", + "icon": "faTriangleExclamation" + }, + { + "title": "Error Codes", + "href": "/docs/api/error-codes", + "icon": "faListUl" + } + ] + }, + { + "title": "Manage Actors", + "dir": "actors", + "endpoints": [ + { + "spec": "engine", + "method": "get", + "path": "/actors", + "slug": "list", + "title": "List Actors", + "description": "List actors in a namespace, optionally filtered by name, key, or ID. Results are paginated.", + "notes": "`key` requires `name`. `actor_id` cannot be combined with `name` or `key`. Destroyed actors are excluded unless `include_destroyed` is `true`.", + "typescript": "examples/docs/api/actors-list.ts", + "parameters": { + "name": "Only return actors with this name.", + "key": "Only return the actor with this key. Requires `name`. Multi-part keys are joined with `/`, see [Actor Keys](/docs/api/actor-keys).", + "actor_id": "Only return actors with these IDs. Repeat the parameter for multiple IDs.", + "actor_ids": "Deprecated. Use `actor_id` instead.", + "include_destroyed": "Include actors that have been destroyed." + }, + "examples": { + "query": { + "namespace": "$RIVET_NAMESPACE", + "name": "counter" + } + }, + "responses": { + "200": "Matching actors and a cursor for the next page. `pagination.cursor` is `null` on the last page." + } + }, + { + "spec": "engine", + "method": "post", + "path": "/actors", + "slug": "create", + "title": "Create Actor", + "description": "Create a new actor. Fails if an actor with the same name and key already exists.", + "notes": "Prefer [Get or Create Actor](/docs/api/actors/get-or-create) for idempotent access by key. Use this endpoint when you need a fresh actor every time, for example with a random key.", + "typescript": "examples/docs/api/actors-create.ts", + "parameters": { + "name": "Name of the actor as registered in your RivetKit registry.", + "key": "Key identifying this actor within its name. Multi-part keys are joined with `/`, see [Actor Keys](/docs/api/actor-keys). Omit for a keyless actor.", + "runner_name_selector": "Pool that runs the actor. RivetKit registers the `default` pool unless configured otherwise.", + "crash_policy": "What happens when the actor crashes. RivetKit defaults to `sleep`.", + "datacenter": "Datacenter to create the actor in. Defaults to the datacenter serving the request.", + "input": "Base64url-encoded CBOR input passed to the actor's `createState` and `onCreate` hooks." + }, + "examples": { + "query": { + "namespace": "$RIVET_NAMESPACE" + }, + "body": { + "name": "counter", + "key": "my-counter", + "runner_name_selector": "default", + "crash_policy": "sleep" + } + } + }, + { + "spec": "engine", + "method": "put", + "path": "/actors", + "slug": "get-or-create", + "title": "Get or Create Actor", + "description": "Return the actor with the given name and key, creating it if it does not exist. This is the HTTP equivalent of client.actor.getOrCreate(key).", + "notes": "The response includes `created`, which is `true` when this call created the actor. Gateway endpoints can perform the same lookup inline with the `rvt-*` selector parameters, so you only need this endpoint when you want the `actor_id` up front.", + "typescript": "examples/docs/api/actors-get-or-create.ts", + "parameters": { + "name": "Name of the actor as registered in your RivetKit registry.", + "key": "Key identifying this actor within its name. Multi-part keys are joined with `/`, see [Actor Keys](/docs/api/actor-keys).", + "runner_name_selector": "Pool that runs the actor. RivetKit registers the `default` pool unless configured otherwise.", + "crash_policy": "What happens when the actor crashes. RivetKit defaults to `sleep`.", + "datacenter": "Datacenter to create the actor in if it does not exist. Defaults to the datacenter serving the request.", + "input": "Base64url-encoded CBOR input passed to the actor's `createState` and `onCreate` hooks when the actor is created." + }, + "examples": { + "query": { + "namespace": "$RIVET_NAMESPACE" + }, + "body": { + "name": "counter", + "key": "my-counter", + "runner_name_selector": "default", + "crash_policy": "sleep" + } + } + }, + { + "spec": "engine", + "method": "delete", + "path": "/actors/{actor_id}", + "slug": "destroy", + "title": "Destroy Actor", + "description": "Destroy an actor. The actor's onDestroy hook runs, then its state is deleted permanently.", + "typescript": "examples/docs/api/actors-destroy.ts", + "examples": { + "query": { + "namespace": "$RIVET_NAMESPACE" + } + }, + "related": [ + { + "title": "Destroying Actors", + "href": "/actors/docs/destroy" + } + ] + }, + { + "spec": "engine", + "method": "post", + "path": "/actors/{actor_id}/sleep", + "slug": "sleep", + "title": "Sleep Actor", + "description": "Put an actor to sleep. The actor runs its shutdown sequence and persists its state, then wakes on the next request.", + "typescript": "examples/docs/api/actors-sleep.ts", + "examples": { + "query": { + "namespace": "$RIVET_NAMESPACE" + }, + "body": {} + }, + "related": [ + { + "title": "Lifecycle", + "href": "/actors/docs/lifecycle" + } + ] + }, + { + "spec": "engine", + "method": "post", + "path": "/actors/{actor_id}/reschedule", + "slug": "reschedule", + "title": "Reschedule Actor", + "description": "Move an actor to a different worker. The actor runs its shutdown sequence, then restarts elsewhere with its persisted state.", + "typescript": "examples/docs/api/actors-reschedule.ts", + "examples": { + "query": { + "namespace": "$RIVET_NAMESPACE" + }, + "body": {} + }, + "related": [ + { + "title": "Lifecycle", + "href": "/actors/docs/lifecycle" + } + ] + }, + { + "spec": "engine", + "method": "get", + "path": "/actors/names", + "slug": "list-names", + "title": "List Actor Names", + "description": "List the distinct actor names that have been created in a namespace.", + "typescript": "examples/docs/api/actors-list-names.ts", + "examples": { + "query": { + "namespace": "$RIVET_NAMESPACE" + } + } + } + ] + }, + { + "title": "Call Actors", + "dir": "gateway", + "spec": "asyncapi", + "endpoints": [ + { + "spec": "rivetkit", + "method": "post", + "path": "/gateway/{actor}/action/{action}", + "slug": "call-action", + "title": "Call Action", + "description": "Invoke an action defined on an actor and return its result. This is the HTTP equivalent of calling a method on an actor handle in the RivetKit client.", + "notes": "Arguments are passed as a JSON array in `args` and spread into the action's parameters. The action's return value comes back in `output`. Actions that return `undefined` respond with `{ \"output\": null }`.", + "typescript": "examples/docs/api/gateway-call-action.ts", + "parameters": { + "action": "Name of the action as defined in the actor's `actions` map." + }, + "examples": { + "path": { + "actor": "counter", + "action": "increment" + }, + "selector": { + "rvt-namespace": "$RIVET_NAMESPACE", + "rvt-method": "getOrCreate", + "rvt-key": "my-counter", + "rvt-pool": "default" + }, + "body": { + "args": [ + 1 + ] + }, + "response": { + "output": 1 + } + }, + "related": [ + { + "title": "Actions", + "href": "/actors/docs/actions" + }, + { + "title": "Actor Routing", + "href": "/docs/api/actor-routing" + } + ] + }, + { + "spec": "rivetkit", + "method": "get", + "path": "/gateway/{actor}/health", + "slug": "health", + "title": "Check Health", + "description": "Check that an actor is reachable through the gateway. Resolves the actor, waits for it to be ready unless rvt-skip-ready-wait is set, and returns a plain-text ok.", + "typescript": "examples/docs/api/gateway-health.ts", + "examples": { + "path": { + "actor": "$ACTOR_ID" + } + }, + "responses": { + "200": "The actor is running and reachable. Body is the text `ok`." + }, + "after": "connect" + }, + { + "spec": "rivetkit", + "method": "post", + "path": "/gateway/{actor}/queue/{name}", + "slug": "queue", + "title": "Send Queue Message", + "description": "Enqueue a durable message for an actor. Optionally wait for the actor to complete it and return a response.", + "notes": "By default, the request returns after the message is enqueued. Set `wait` to `true` to wait for `message.complete(...)`; `timeout` sets that wait in milliseconds, and a timeout returns `status: \"timedOut\"` without canceling the queued work.", + "typescript": "examples/docs/api/gateway-queue.ts", + "parameters": { + "name": "Name of the queue message as defined in the actor's `queues` map." + }, + "examples": { + "path": { + "actor": "counter", + "name": "increment" + }, + "selector": { + "rvt-namespace": "$RIVET_NAMESPACE", + "rvt-method": "getOrCreate", + "rvt-key": "my-counter", + "rvt-pool": "default" + }, + "body": { + "body": { + "amount": 1 + }, + "wait": true, + "timeout": 5000 + }, + "response": { + "status": "completed", + "response": { + "count": 1 + } + } + }, + "responses": { + "200": "The message was enqueued, with its completion status when waiting." + }, + "related": [ + { + "title": "Queues", + "href": "/actors/docs/queues" + } + ], + "after": "call-action" + }, + { + "spec": "rivetkit", + "method": "get", + "path": "/gateway/{actor}/metadata", + "slug": "metadata", + "title": "Get Runtime Metadata", + "description": "Identify the RivetKit runtime serving an actor.", + "typescript": "examples/docs/api/gateway-metadata.ts", + "examples": { + "path": { + "actor": "$ACTOR_ID" + }, + "response": { + "runtime": "rivetkit", + "version": "1.0.0", + "type": "native" + } + }, + "responses": { + "200": "Runtime name, version, and runtime type." + }, + "after": "health" + } + ], + "protocol": [ + { + "slug": "connect", + "title": "Connect", + "description": "Open a persistent WebSocket connection to an actor. One connection carries action calls, event subscriptions, and errors as JSON messages, which is what handle.connect() does in the RivetKit client.", + "url": "wss://rivet.example.com/gateway/{actor}/connect", + "notes": "`{actor}` accepts the same forms as every gateway endpoint: an actor ID, `{actor_id}@{token}`, or an actor name with `rvt-*` query parameters. See [Actor Routing](/docs/api/actor-routing).\n\nConnection options travel as WebSocket subprotocols in the `Sec-WebSocket-Protocol` header because browsers cannot set arbitrary headers on an upgrade. Always include `rivet`, then add any of the prefixed entries below.\n\n| Subprotocol | Purpose |\n| --- | --- |\n| `rivet` | Required. Lets servers that insist on a matching protocol accept the upgrade. |\n| `rivet_encoding.json` | Message encoding. `json` is the default and is documented here. The RivetKit client uses `cbor` or `bare`; the payloads are the same, only the framing differs. |\n| `rivet_token.{token}` | Token to authenticate with. See [WebSocket Requests](/docs/api/authentication#websocket-requests). |\n| `rivet_conn_params.{params}` | Optional connection parameters passed to the actor's `createConnState` and `onBeforeConnect` hooks, as URL-encoded JSON. |\n| `rivet_skip_ready_wait` | Complete the upgrade as soon as the actor is resolved instead of waiting for it to be ready. |\n\nEvery message in both directions is a JSON object of the form `{ \"body\": { \"tag\": \"\", \"val\": { ... } } }`. The server sends `Init` first; nothing else arrives before it. There is no ping or heartbeat message. Rely on WebSocket ping frames or your own timeout to detect a dead connection.", + "sections": [ + { + "title": "Handshake", + "notes": "After the upgrade completes, the server sends `Init` before any other message. Store `connectionId` if you need to correlate connection-scoped state; nothing else needs to be sent before calling actions or subscribing to events.", + "messages": [ + "Init" + ], + "snippets": [ + { + "file": "examples/docs/api/connection-connect.ts", + "title": "WebSocket" + }, + { + "file": "examples/docs/api/connection-connect-client.ts", + "title": "TypeScript" + } + ] + }, + { + "title": "Actions", + "notes": "Send an `ActionRequest` with a client-chosen `id`. The server answers with an `ActionResponse` carrying the same `id`, or with an [`Error`](#errors) whose `actionId` matches. Requests may be pipelined; responses are not guaranteed to arrive in order, so match on `id` rather than position.\n\nThis is the connection equivalent of [Call Action](/docs/api/gateway/call-action) over HTTP. Actions called on a connection can also read connection state set in `createConnState`.", + "messages": [ + "ActionRequest", + "ActionResponse" + ], + "snippets": [ + { + "file": "examples/docs/api/connection-actions.ts", + "title": "WebSocket" + }, + { + "file": "examples/docs/api/connection-actions-client.ts", + "title": "TypeScript" + } + ] + }, + { + "title": "Events", + "notes": "Send a `SubscriptionRequest` with `subscribe: true` to start receiving `Event` messages for an event name, and `subscribe: false` to stop. Subscriptions are per connection and are lost when the connection closes, so resubscribe after reconnecting. The server does not acknowledge subscription changes. If the actor rejects a subscription, the connection is closed with the error as the close reason.\n\nEvents sent by the actor to a connection that has not subscribed to that event name are dropped.", + "messages": [ + "SubscriptionRequest", + "Event" + ], + "snippets": [ + { + "file": "examples/docs/api/connection-events.ts", + "title": "WebSocket" + }, + { + "file": "examples/docs/api/connection-events-client.ts", + "title": "TypeScript" + } + ] + }, + { + "title": "Errors", + "notes": "Errors on an established connection arrive as `Error` messages. `actionId` is set when the error answers a specific `ActionRequest` and `null` for connection-level errors such as a malformed message. The `group` and `code` values are the same ones the HTTP API returns; see [Error Codes](/docs/api/error-codes).\n\nErrors that prevent the connection from being established, such as an invalid token or an actor that does not exist, are reported by closing the WebSocket with a reason of the form `{group}.{code}#{ray_id}`. See [WebSockets](/docs/api/websockets#close-codes).", + "messages": [ + "Error" + ], + "snippets": [ + { + "file": "examples/docs/api/connection-errors.ts", + "title": "WebSocket" + }, + { + "file": "examples/docs/api/connection-errors-client.ts", + "title": "TypeScript" + } + ] + } + ], + "fields": { + "Init.actorId": "ID of the actor this connection is attached to.", + "Init.connectionId": "ID of this connection. Matches `c.conn.id` inside the actor.", + "ActionRequest.id": "Client-chosen identifier used to match the response. Any integer that is unique among in-flight requests on this connection.", + "ActionRequest.name": "Name of the action as defined in the actor's `actions` map.", + "ActionRequest.args": "Positional arguments passed to the action, as a JSON array.", + "ActionResponse.id": "The `id` from the matching `ActionRequest`.", + "ActionResponse.output": "Value returned by the action. `null` if the action returned `undefined`.", + "SubscriptionRequest.eventName": "Name of the event as defined in the actor's `events` map.", + "SubscriptionRequest.subscribe": "`true` to subscribe, `false` to unsubscribe.", + "Event.name": "Name of the event.", + "Event.args": "Arguments passed to `c.broadcast()` or `conn.send()`, as a JSON array.", + "Error.group": "Subsystem that produced the error, such as `actor`, `auth`, or `user`.", + "Error.code": "Error identifier within the group.", + "Error.message": "Human-readable explanation. Do not match on it.", + "Error.metadata": "Structured details attached by the actor or gateway, if any.", + "Error.actionId": "`id` of the `ActionRequest` this error answers, or `null` for connection-level errors.", + "Error.actor": "Actor that handled the message, when known.", + "Error.actor.actorId": "ID of the actor.", + "Error.actor.generation": "Generation of the actor process. Increments each time the actor restarts.", + "Error.actor.key": "Key of the actor, if it has one." + }, + "examples": { + "Init": { + "actorId": "00000000-0000-0000-0000-000000000000", + "connectionId": "00000000-0000-0000-0000-000000000000" + }, + "ActionRequest": { + "id": 1, + "name": "increment", + "args": [ + 1 + ] + }, + "ActionResponse": { + "id": 1, + "output": 1 + }, + "SubscriptionRequest": { + "eventName": "countChanged", + "subscribe": true + }, + "Event": { + "name": "countChanged", + "args": [ + 1 + ] + }, + "Error": { + "group": "user", + "code": "insufficient_funds", + "message": "Balance is too low.", + "metadata": { + "balance": 5 + }, + "actionId": 1, + "actor": { + "actorId": "00000000-0000-0000-0000-000000000000", + "generation": 1, + "key": "my-counter" + } + } + }, + "related": [ + { + "title": "Connections", + "href": "/actors/docs/connections" + }, + { + "title": "Actions", + "href": "/actors/docs/actions" + }, + { + "title": "Events", + "href": "/actors/docs/events" + }, + { + "title": "Errors", + "href": "/docs/api/errors" + }, + { + "title": "Call Action over HTTP", + "href": "/docs/api/gateway/call-action" + }, + { + "title": "Raw WebSocket", + "href": "/docs/api/websockets" + }, + { + "title": "AsyncAPI specification", + "href": "https://github.com/rivet-dev/rivet/tree/main/rivetkit-asyncapi" + } + ] + } + ], + "pages": [ + { + "title": "Raw WebSocket", + "href": "/docs/api/websockets", + "badge": "WS" + } + ] + }, + { + "title": "Tokens", + "dir": "tokens", + "endpoints": [ + { + "spec": "engine", + "method": "post", + "path": "/auth/tokens", + "slug": "create", + "title": "Create Token", + "description": "Issue a scoped token. Use this to mint short-lived tokens that grant a client access to a single actor instead of sharing your namespace token.", + "notes": "Each grant names a resource type, a target (`\"any\"` or a specific `{ \"id\": ... }`), and the operations it allows. The RivetKit client wraps this as `handle.issueToken()`.", + "typescript": "examples/docs/api/tokens-create.ts", + "parameters": { + "namespace": "Namespace the token is valid in.", + "duration": "Lifetime in seconds. Omit for the default lifetime.", + "subject": "Free-form subject to attach to the token, such as a user ID.", + "grants": "Permissions the token carries.", + "grants[].resource": "Resource type the grant applies to.", + "grants[].target": "`\"any\"` for every resource of this type, or `{ \"id\": \"...\" }` for one resource.", + "grants[].operations": "Operations the token may perform on the target." + }, + "examples": { + "body": { + "namespace": "my-namespace", + "subject": "user-123", + "duration": 3600, + "grants": [ + { + "resource": "actor_gateway", + "target": { + "id": "00000000-0000-0000-0000-000000000000" + }, + "operations": [ + "read" + ] + } + ] + } + } + }, + { + "spec": "engine", + "method": "get", + "path": "/auth/tokens/inspect", + "slug": "inspect", + "title": "Inspect Token", + "description": "Return the namespace, grants, and expiry of the token used to authenticate the request.", + "typescript": "examples/docs/api/tokens-inspect.ts" + } + ] + }, + { + "title": "Namespaces", + "dir": "namespaces", + "endpoints": [ + { + "spec": "engine", + "method": "get", + "path": "/namespaces", + "slug": "list", + "title": "List Namespaces", + "description": "List namespaces, optionally filtered by name or ID. Results are paginated.", + "notes": "Use `namespace_id` for multiple IDs. `namespace_ids` is deprecated.", + "typescript": "examples/docs/api/namespaces-list.ts", + "parameters": { + "name": "Only return namespaces with this name.", + "namespace_ids": "Deprecated. Use `namespace_id` instead.", + "namespace_id": "Only return namespaces with these IDs. Repeat the parameter for multiple IDs." + }, + "responses": { + "200": "Matching namespaces and a cursor for the next page." + } + }, + { + "spec": "engine", + "method": "post", + "path": "/namespaces", + "slug": "create", + "title": "Create Namespace", + "description": "Create a namespace with a unique name and a display name.", + "typescript": "examples/docs/api/namespaces-create.ts", + "parameters": { + "name": "Unique name used to identify the namespace.", + "display_name": "Human-readable name for the namespace." + }, + "examples": { + "body": { + "name": "my-app", + "display_name": "My App" + } + }, + "responses": { + "200": "The newly created namespace." + } + } + ] + }, + { + "title": "Pools", + "dir": "pools", + "endpoints": [ + { + "spec": "engine", + "method": "get", + "path": "/pools", + "slug": "list", + "title": "List Pools", + "description": "List the node pools configured in a namespace, ordered by name. Results are paginated.", + "typescript": "examples/docs/api/pools-list.ts", + "examples": { + "query": { + "namespace": "$RIVET_NAMESPACE" + } + }, + "responses": { + "200": "A page of node pools." + } + }, + { + "spec": "engine", + "method": "get", + "path": "/pools/{pool}", + "slug": "get", + "title": "Get Pool", + "description": "Get a node pool's configuration.", + "typescript": "examples/docs/api/pools-get.ts", + "examples": { + "path": { + "pool": "$RIVET_POOL" + }, + "query": { + "namespace": "$RIVET_NAMESPACE" + } + }, + "responses": { + "200": "The node pool." + } + }, + { + "spec": "engine", + "method": "put", + "path": "/pools/{pool}", + "slug": "upsert", + "title": "Upsert Pool", + "description": "Create or replace a node pool's configuration.", + "notes": "Omitted fields take their defaults. Unknown fields are rejected.", + "typescript": "examples/docs/api/pools-upsert.ts", + "examples": { + "path": { + "pool": "$RIVET_POOL" + }, + "query": { + "namespace": "$RIVET_NAMESPACE" + }, + "body": { + "drain_on_version_upgrade": true + } + }, + "responses": { + "200": "The stored node pool." + } + }, + { + "spec": "engine", + "method": "delete", + "path": "/pools/{pool}", + "slug": "delete", + "title": "Delete Pool", + "description": "Delete a node pool.", + "notes": "Fails with `pool.nodes_connected` while any node of the pool is connected.", + "typescript": "examples/docs/api/pools-delete.ts", + "examples": { + "path": { + "pool": "$RIVET_POOL" + }, + "query": { + "namespace": "$RIVET_NAMESPACE" + } + }, + "responses": { + "200": "The node pool was deleted." + } + }, + { + "spec": "engine", + "method": "get", + "path": "/pools/{pool}/nodes", + "slug": "list-nodes", + "title": "List Pool Nodes", + "description": "List the live nodes of a node pool in node key order. Results are paginated.", + "typescript": "examples/docs/api/pools-list-nodes.ts", + "examples": { + "path": { + "pool": "$RIVET_POOL" + }, + "query": { + "namespace": "$RIVET_NAMESPACE" + } + }, + "responses": { + "200": "A page of live nodes." + } + } + ], + "pages": [ + { + "title": "Worker Connection", + "href": "/docs/api/worker-connect", + "badge": "WS", + "after": "list-nodes" + } + ] + }, + { + "title": "Control Plane", + "dir": "control-plane", + "endpoints": [ + { + "spec": "engine", + "method": "get", + "path": "/metadata", + "slug": "metadata", + "title": "Get Metadata", + "description": "Get build, runtime, compiler, and fleet protocol metadata for the control plane.", + "notes": "The protocol versions are the versions agreed on by the fleet, which can differ from the versions compiled into the responding node.", + "typescript": "examples/docs/api/control-plane-metadata.ts", + "auth": "none", + "responses": { + "200": "Build and protocol metadata for the responding node and its fleet." + } + }, + { + "spec": "engine", + "method": "get", + "path": "/datacenters", + "slug": "datacenters", + "title": "List Datacenters", + "description": "List the datacenters configured for the control plane.", + "typescript": "examples/docs/api/control-plane-datacenters.ts", + "responses": { + "200": "Configured datacenters and an empty pagination cursor." + } + } + ] + } + ] } diff --git a/vendor/api/docs/error-registry.json b/vendor/api/docs/error-registry.json index 01f74932..1376586f 100644 --- a/vendor/api/docs/error-registry.json +++ b/vendor/api/docs/error-registry.json @@ -42,14 +42,7 @@ { "code": "duplicate_key", "message": "Actor key already in use.", - "statuses": [ - { - "status": 409, - "surfaces": [ - "control plane" - ] - } - ] + "statuses": [] }, { "code": "input_too_large", @@ -167,7 +160,6 @@ { "status": 404, "surfaces": [ - "control plane", "gateway" ] } @@ -221,6 +213,7 @@ { "status": 403, "surfaces": [ + "control plane", "gateway" ] } @@ -238,6 +231,7 @@ { "status": 404, "surfaces": [ + "control plane", "gateway" ] } @@ -250,6 +244,7 @@ { "status": 401, "surfaces": [ + "control plane", "gateway" ] } @@ -291,12 +286,6 @@ "code": "issuance_disabled", "message": "JWT issuance is not enabled for this deployment.", "statuses": [ - { - "status": 403, - "surfaces": [ - "control plane" - ] - }, { "status": 503, "surfaces": [ @@ -607,7 +596,7 @@ }, { "name": "envoy", - "description": "Node connections, and validation of namespace and pool names.", + "description": null, "errors": [ { "code": "connect_overloaded", @@ -721,6 +710,11 @@ } ] }, + { + "name": "kv", + "description": "Low-level KV storage inside an actor.", + "errors": [] + }, { "name": "message", "description": "Message size limits on connections.", @@ -763,26 +757,12 @@ { "code": "name_not_unique", "message": "A namespace with this name already exists.", - "statuses": [ - { - "status": 409, - "surfaces": [ - "control plane" - ] - } - ] + "statuses": [] }, { "code": "not_found", "message": "The namespace does not exist.", - "statuses": [ - { - "status": 404, - "surfaces": [ - "control plane" - ] - } - ] + "statuses": [] } ] }, @@ -804,7 +784,7 @@ }, { "name": "pool", - "description": "Node pool configuration.", + "description": null, "errors": [ { "code": "invalid", @@ -814,26 +794,12 @@ { "code": "nodes_connected", "message": "The node pool still has connected nodes.", - "statuses": [ - { - "status": 409, - "surfaces": [ - "control plane" - ] - } - ] + "statuses": [] }, { "code": "not_found", "message": "The node pool does not exist.", - "statuses": [ - { - "status": 404, - "surfaces": [ - "control plane" - ] - } - ] + "statuses": [] }, { "code": "serverless_unsupported", diff --git a/vendor/api/docs/sidebar.json b/vendor/api/docs/sidebar.json index 2fd79095..85746204 100644 --- a/vendor/api/docs/sidebar.json +++ b/vendor/api/docs/sidebar.json @@ -43,11 +43,6 @@ "href": "/docs/api/actors/list", "badge": "GET" }, - { - "title": "Get Actor", - "href": "/docs/api/actors/get", - "badge": "GET" - }, { "title": "Create Actor", "href": "/docs/api/actors/create", @@ -93,16 +88,6 @@ "href": "/docs/api/gateway/queue", "badge": "POST" }, - { - "title": "Raw HTTP Request", - "href": "/docs/api/gateway/request", - "badge": "ANY" - }, - { - "title": "Raw WebSocket", - "href": "/docs/api/websockets", - "badge": "WS" - }, { "title": "Connect", "href": "/docs/api/gateway/connect", @@ -119,91 +104,9 @@ "badge": "GET" }, { - "title": "Inspector", - "icon": "faMagnifyingGlass", - "pages": [ - { - "title": "Get Summary", - "href": "/docs/api/inspector/summary", - "badge": "GET" - }, - { - "title": "Get State", - "href": "/docs/api/inspector/state-get", - "badge": "GET" - }, - { - "title": "Patch State", - "href": "/docs/api/inspector/state-patch", - "badge": "PATCH" - }, - { - "title": "List Connections", - "href": "/docs/api/inspector/connections", - "badge": "GET" - }, - { - "title": "List Actions", - "href": "/docs/api/inspector/rpcs", - "badge": "GET" - }, - { - "title": "Invoke Action", - "href": "/docs/api/inspector/action", - "badge": "POST" - }, - { - "title": "Get Queue", - "href": "/docs/api/inspector/queue-get", - "badge": "GET" - }, - { - "title": "Enqueue Message", - "href": "/docs/api/inspector/queue-post", - "badge": "POST" - }, - { - "title": "Clear Queue", - "href": "/docs/api/inspector/queue-delete", - "badge": "DELETE" - }, - { - "title": "Get Traces", - "href": "/docs/api/inspector/traces", - "badge": "GET" - }, - { - "title": "Get Workflow History", - "href": "/docs/api/inspector/workflow-history", - "badge": "GET" - }, - { - "title": "Replay Workflow", - "href": "/docs/api/inspector/workflow-replay", - "badge": "POST" - }, - { - "title": "Get Database Schema", - "href": "/docs/api/inspector/database-schema", - "badge": "GET" - }, - { - "title": "Query Database Rows", - "href": "/docs/api/inspector/database-rows", - "badge": "GET" - }, - { - "title": "Execute SQL", - "href": "/docs/api/inspector/database-execute", - "badge": "POST" - }, - { - "title": "Inspector Connect", - "href": "/docs/api/inspector-connect", - "badge": "WS" - } - ], - "collapsible": true + "title": "Raw WebSocket", + "href": "/docs/api/websockets", + "badge": "WS" } ] }, @@ -238,35 +141,35 @@ ] }, { - "title": "Node Pools", + "title": "Pools", "pages": [ { - "title": "List Node Pools", + "title": "List Pools", "href": "/docs/api/pools/list", "badge": "GET" }, { - "title": "Get Node Pool", + "title": "Get Pool", "href": "/docs/api/pools/get", "badge": "GET" }, { - "title": "Upsert Node Pool", + "title": "Upsert Pool", "href": "/docs/api/pools/upsert", "badge": "PUT" }, { - "title": "Delete Node Pool", + "title": "Delete Pool", "href": "/docs/api/pools/delete", "badge": "DELETE" }, { - "title": "List Nodes", + "title": "List Pool Nodes", "href": "/docs/api/pools/list-nodes", "badge": "GET" }, { - "title": "Node Connection", + "title": "Worker Connection", "href": "/docs/api/worker-connect", "badge": "WS" } diff --git a/vendor/api/engine/artifacts/openapi.json b/vendor/api/engine/artifacts/openapi.json index eab3912a..99eb056f 100644 --- a/vendor/api/engine/artifacts/openapi.json +++ b/vendor/api/engine/artifacts/openapi.json @@ -8,10 +8,10 @@ "email": "developer@rivet.dev" }, "license": { - "name": "LicenseRef-RivetEnterprise", - "identifier": "LicenseRef-RivetEnterprise" + "name": "Apache-2.0", + "identifier": "Apache-2.0" }, - "version": "2.3.20" + "version": "2.3.31" }, "servers": [ { @@ -93,7 +93,7 @@ } }, "400": { - "description": "`validation.invalid_input`: the subject exceeds 256 UTF-8 bytes, the duration is outside the allowed range, or the grant set is invalid (empty, more than 32 grants, a grant without operations or with more than 5, or a `token`, `acl` or `jwt` resource). `envoy.invalid_namespace_name`: the `namespace` value is not a DNS label of 1 to 63 lowercase letters, digits and hyphens.", + "description": "`validation.invalid_input`: the subject exceeds 256 UTF-8 bytes, the duration is outside the allowed range, or the grant set is invalid (empty, more than 32 grants, a grant without operations or with more than 5, or a `token` or `jwt` resource). `envoy.invalid_namespace_name`: the `namespace` value is not a DNS label of 1 to 63 lowercase letters, digits and hyphens.", "content": { "application/json": { "schema": { @@ -1685,7 +1685,7 @@ } }, "400": { - "description": "`actor.invalid_name`: `name` is empty or longer than 64 bytes. `actor.invalid_key`: `key` is longer than 1024 bytes. `actor.invalid_key_encoding`: `key` is not in canonical slash-separated form. `actor.key_owned_elsewhere`: another datacenter owns the key. `envoy.invalid_pool_name`: `runner_name_selector` is not a valid pool name. `envoy.invalid_namespace_name`: the `namespace` value is not a DNS label of 1 to 63 lowercase letters, digits and hyphens.", + "description": "`actor.invalid_name`: `name` is empty or longer than 64 bytes. `actor.invalid_key`: `key` is longer than 1024 bytes. `actor.invalid_key_encoding`: `key` is not in canonical slash-separated form. `actor.key_owned_elsewhere`: another datacenter owns the key. `envoy.invalid_pool_name`: `pool` is not a valid pool name. `envoy.invalid_namespace_name`: the `namespace` value is not a DNS label of 1 to 63 lowercase letters, digits and hyphens.", "content": { "application/json": { "schema": { @@ -1861,7 +1861,7 @@ } }, "400": { - "description": "`actor.invalid_name`: `name` is empty or longer than 64 bytes. `actor.invalid_key`: `key` is longer than 1024 bytes. `actor.invalid_key_encoding`: `key` is not in canonical slash-separated form. `actor.key_owned_elsewhere`: another datacenter owns the key. `envoy.invalid_pool_name`: `runner_name_selector` is not a valid pool name. `envoy.invalid_namespace_name`: the `namespace` value is not a DNS label of 1 to 63 lowercase letters, digits and hyphens.", + "description": "`actor.invalid_name`: `name` is empty or longer than 64 bytes. `actor.invalid_key`: `key` is longer than 1024 bytes. `actor.invalid_key_encoding`: `key` is not in canonical slash-separated form. `actor.key_owned_elsewhere`: another datacenter owns the key. `envoy.invalid_pool_name`: `pool` is not a valid pool name. `envoy.invalid_namespace_name`: the `namespace` value is not a DNS label of 1 to 63 lowercase letters, digits and hyphens.", "content": { "application/json": { "schema": { @@ -2690,7 +2690,7 @@ "name", "key", "namespace", - "runner_name_selector", + "pool", "create_ts", "start_ts", "pending_allocation_ts", @@ -2715,7 +2715,7 @@ "type": "string", "description": "Name of the namespace the actor belongs to." }, - "runner_name_selector": { + "pool": { "type": "string", "description": "Name of the node pool the actor runs in." }, @@ -2817,7 +2817,7 @@ ], "description": "Actor input as standard base64 (with padding)." }, - "runner_name_selector": { + "pool": { "type": [ "string", "null" @@ -2877,7 +2877,7 @@ ], "description": "Actor input as standard base64 (with padding)." }, - "runner_name_selector": { + "pool": { "type": [ "string", "null" diff --git a/vendor/api/examples/docs/actors-integrations-durable-streams/client.ts b/vendor/api/examples/docs/actors-integrations-durable-streams/client.ts new file mode 100644 index 00000000..c541cfdd --- /dev/null +++ b/vendor/api/examples/docs/actors-integrations-durable-streams/client.ts @@ -0,0 +1,8 @@ +import { DurableStream } from "@durable-streams/client"; + +const stream = await DurableStream.create({ + url: "http://127.0.0.1:8642/durable-streams/v1/stream/demo", + contentType: "application/json", +}); + +await stream.append(JSON.stringify({ message: "hello" })); diff --git a/vendor/api/examples/docs/actors-quickstart-next-js/registry.ts b/vendor/api/examples/docs/actors-quickstart-next-js/registry.ts deleted file mode 100644 index 4afe732a..00000000 --- a/vendor/api/examples/docs/actors-quickstart-next-js/registry.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { actor, setup } from "rivetkit"; - -export const counter = actor({ - state: { count: 0 }, - actions: { - increment: (c, x: number) => { - c.state.count += x; - c.broadcast("newCount", c.state.count); - return c.state.count; - }, - }, -}); - -export const registry = setup({ - use: { counter }, -}); diff --git a/vendor/api/examples/docs/actors-quickstart-react/index.ts b/vendor/api/examples/docs/actors-quickstart-react/backend/index.ts similarity index 100% rename from vendor/api/examples/docs/actors-quickstart-react/index.ts rename to vendor/api/examples/docs/actors-quickstart-react/backend/index.ts diff --git a/vendor/api/examples/docs/actors-quickstart-react/Counter.tsx b/vendor/api/examples/docs/actors-quickstart-react/frontend/Counter.tsx similarity index 85% rename from vendor/api/examples/docs/actors-quickstart-react/Counter.tsx rename to vendor/api/examples/docs/actors-quickstart-react/frontend/Counter.tsx index a62ee024..26aa5be7 100644 --- a/vendor/api/examples/docs/actors-quickstart-react/Counter.tsx +++ b/vendor/api/examples/docs/actors-quickstart-react/frontend/Counter.tsx @@ -1,16 +1,16 @@ import { createRivetKit } from "@rivetkit/react"; import { useState } from "react"; -import type { registry } from "./index"; +import type { registry } from "../backend/index"; const { useActor } = createRivetKit("http://localhost:6420"); -function Counter() { +export function Counter() { const [count, setCount] = useState(0); // Get or create a counter actor for the key "my-counter" const counter = useActor({ name: "counter", - key: ["my-counter"] + key: ["my-counter"], }); // Listen to realtime events diff --git a/vendor/api/examples/docs/actors-quickstart-react/frontend/main.tsx b/vendor/api/examples/docs/actors-quickstart-react/frontend/main.tsx new file mode 100644 index 00000000..a8e4ea9d --- /dev/null +++ b/vendor/api/examples/docs/actors-quickstart-react/frontend/main.tsx @@ -0,0 +1,9 @@ +import { StrictMode } from "react"; +import { createRoot } from "react-dom/client"; +import { Counter } from "./Counter"; + +createRoot(document.getElementById("root")!).render( + + + , +); diff --git a/vendor/api/examples/docs/actors-versions/programmatic-version.ts b/vendor/api/examples/docs/actors-versions/programmatic-version.ts deleted file mode 100644 index 9763d971..00000000 --- a/vendor/api/examples/docs/actors-versions/programmatic-version.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { actor, setup } from "rivetkit"; - -const myActor = actor({ state: {}, actions: {} }); - -const registry = setup({ - use: { myActor }, - envoy: { - version: 2, - }, -}); diff --git a/vendor/api/examples/docs/api/actors-destroy.ts b/vendor/api/examples/docs/api/actors-destroy.ts index 7718ad8c..d76fa102 100644 --- a/vendor/api/examples/docs/api/actors-destroy.ts +++ b/vendor/api/examples/docs/api/actors-destroy.ts @@ -1,4 +1,4 @@ -const endpoint = "https://rivet.example.com"; +const endpoint = "https://api.rivet.dev"; const namespace = process.env.RIVET_NAMESPACE ?? "default"; const token = process.env.RIVET_TOKEN ?? ""; const actorId = "00000000-0000-0000-0000-000000000000"; diff --git a/vendor/api/examples/docs/api/actors-list-names.ts b/vendor/api/examples/docs/api/actors-list-names.ts index ce5f865f..19ca05e2 100644 --- a/vendor/api/examples/docs/api/actors-list-names.ts +++ b/vendor/api/examples/docs/api/actors-list-names.ts @@ -1,4 +1,4 @@ -const endpoint = "https://rivet.example.com"; +const endpoint = "https://api.rivet.dev"; const namespace = process.env.RIVET_NAMESPACE ?? "default"; const token = process.env.RIVET_TOKEN ?? ""; diff --git a/vendor/api/examples/docs/api/actors-list.ts b/vendor/api/examples/docs/api/actors-list.ts index fcca97ee..55a79fcb 100644 --- a/vendor/api/examples/docs/api/actors-list.ts +++ b/vendor/api/examples/docs/api/actors-list.ts @@ -1,4 +1,4 @@ -const endpoint = "https://rivet.example.com"; +const endpoint = "https://api.rivet.dev"; const namespace = process.env.RIVET_NAMESPACE ?? "default"; const token = process.env.RIVET_TOKEN ?? ""; diff --git a/vendor/api/examples/docs/api/actors-reschedule.ts b/vendor/api/examples/docs/api/actors-reschedule.ts index 3a2f9b23..3bb1a563 100644 --- a/vendor/api/examples/docs/api/actors-reschedule.ts +++ b/vendor/api/examples/docs/api/actors-reschedule.ts @@ -1,4 +1,4 @@ -const endpoint = "https://rivet.example.com"; +const endpoint = "https://api.rivet.dev"; const namespace = process.env.RIVET_NAMESPACE ?? "default"; const token = process.env.RIVET_TOKEN ?? ""; const actorId = "00000000-0000-0000-0000-000000000000"; diff --git a/vendor/api/examples/docs/api/actors-sleep.ts b/vendor/api/examples/docs/api/actors-sleep.ts index e1232b21..a1d07784 100644 --- a/vendor/api/examples/docs/api/actors-sleep.ts +++ b/vendor/api/examples/docs/api/actors-sleep.ts @@ -1,4 +1,4 @@ -const endpoint = "https://rivet.example.com"; +const endpoint = "https://api.rivet.dev"; const namespace = process.env.RIVET_NAMESPACE ?? "default"; const token = process.env.RIVET_TOKEN ?? ""; const actorId = "00000000-0000-0000-0000-000000000000"; diff --git a/vendor/api/examples/docs/api/connection-actions.ts b/vendor/api/examples/docs/api/connection-actions.ts index d90ec127..3de81cd1 100644 --- a/vendor/api/examples/docs/api/connection-actions.ts +++ b/vendor/api/examples/docs/api/connection-actions.ts @@ -1,5 +1,5 @@ const ws = new WebSocket( - `wss://rivet.example.com/gateway/${process.env.ACTOR_ID}/connect`, + `wss://api.rivet.dev/gateway/${process.env.ACTOR_ID}/connect`, ["rivet", "rivet_encoding.json", `rivet_token.${process.env.RIVET_TOKEN}`], ); diff --git a/vendor/api/examples/docs/api/connection-connect.ts b/vendor/api/examples/docs/api/connection-connect.ts index ee4bf891..88e74ed3 100644 --- a/vendor/api/examples/docs/api/connection-connect.ts +++ b/vendor/api/examples/docs/api/connection-connect.ts @@ -1,7 +1,7 @@ // Open a connection by actor name. The selector query parameters are the same // ones used by the HTTP endpoints; the token and encoding travel as // WebSocket subprotocols because browsers cannot set headers on an upgrade. -const url = new URL("wss://rivet.example.com/gateway/counter/connect"); +const url = new URL("wss://api.rivet.dev/gateway/counter/connect"); url.searchParams.set("rvt-namespace", process.env.RIVET_NAMESPACE!); url.searchParams.set("rvt-method", "getOrCreate"); url.searchParams.set("rvt-key", "my-counter"); diff --git a/vendor/api/examples/docs/api/connection-errors.ts b/vendor/api/examples/docs/api/connection-errors.ts index f8e796c7..6345825a 100644 --- a/vendor/api/examples/docs/api/connection-errors.ts +++ b/vendor/api/examples/docs/api/connection-errors.ts @@ -1,5 +1,5 @@ const ws = new WebSocket( - `wss://rivet.example.com/gateway/${process.env.ACTOR_ID}/connect`, + `wss://api.rivet.dev/gateway/${process.env.ACTOR_ID}/connect`, ["rivet", "rivet_encoding.json", `rivet_token.${process.env.RIVET_TOKEN}`], ); diff --git a/vendor/api/examples/docs/api/connection-events.ts b/vendor/api/examples/docs/api/connection-events.ts index 71ad178a..7e85c61b 100644 --- a/vendor/api/examples/docs/api/connection-events.ts +++ b/vendor/api/examples/docs/api/connection-events.ts @@ -1,5 +1,5 @@ const ws = new WebSocket( - `wss://rivet.example.com/gateway/${process.env.ACTOR_ID}/connect`, + `wss://api.rivet.dev/gateway/${process.env.ACTOR_ID}/connect`, ["rivet", "rivet_encoding.json", `rivet_token.${process.env.RIVET_TOKEN}`], ); diff --git a/vendor/api/examples/docs/api/control-plane-datacenters.ts b/vendor/api/examples/docs/api/control-plane-datacenters.ts index 6f14c5eb..d5afca6c 100644 --- a/vendor/api/examples/docs/api/control-plane-datacenters.ts +++ b/vendor/api/examples/docs/api/control-plane-datacenters.ts @@ -1,4 +1,4 @@ -const endpoint = "https://rivet.example.com"; +const endpoint = "https://api.rivet.dev"; const token = process.env.RIVET_TOKEN ?? ""; const response = await fetch(`${endpoint}/datacenters`, { diff --git a/vendor/api/examples/docs/api/control-plane-metadata.ts b/vendor/api/examples/docs/api/control-plane-metadata.ts index ea784880..43300b91 100644 --- a/vendor/api/examples/docs/api/control-plane-metadata.ts +++ b/vendor/api/examples/docs/api/control-plane-metadata.ts @@ -1,4 +1,4 @@ -const endpoint = "https://rivet.example.com"; +const endpoint = "https://api.rivet.dev"; const response = await fetch(`${endpoint}/metadata`); const metadata = await response.json(); diff --git a/vendor/api/examples/docs/api/gateway-metadata.ts b/vendor/api/examples/docs/api/gateway-metadata.ts index 95da90f4..d677d2dd 100644 --- a/vendor/api/examples/docs/api/gateway-metadata.ts +++ b/vendor/api/examples/docs/api/gateway-metadata.ts @@ -1,4 +1,4 @@ -const endpoint = "https://rivet.example.com"; +const endpoint = "https://api.rivet.dev"; const response = await fetch( `${endpoint}/gateway/${process.env.ACTOR_ID}/metadata`, { diff --git a/vendor/api/examples/docs/api/gateway-queue.ts b/vendor/api/examples/docs/api/gateway-queue.ts index 73f95114..8d6a2aa6 100644 --- a/vendor/api/examples/docs/api/gateway-queue.ts +++ b/vendor/api/examples/docs/api/gateway-queue.ts @@ -1,4 +1,4 @@ -const endpoint = "https://rivet.example.com"; +const endpoint = "https://api.rivet.dev"; const actorId = process.env.ACTOR_ID; const response = await fetch(`${endpoint}/gateway/${actorId}/queue/increment`, { method: "POST", diff --git a/vendor/api/examples/docs/api/inspector-action.ts b/vendor/api/examples/docs/api/inspector-action.ts deleted file mode 100644 index ac8aca2c..00000000 --- a/vendor/api/examples/docs/api/inspector-action.ts +++ /dev/null @@ -1,14 +0,0 @@ -const endpoint = "https://rivet.example.com"; -const response = await fetch( - `${endpoint}/gateway/${process.env.ACTOR_ID}/inspector/action/increment`, - { - method: "POST", - headers: { - Authorization: `Bearer ${process.env.INSPECTOR_TOKEN}`, - "Content-Type": "application/json", - }, - body: JSON.stringify({ args: [1] }), - }, -); -console.log(await response.json()); -export {}; diff --git a/vendor/api/examples/docs/api/inspector-connections.ts b/vendor/api/examples/docs/api/inspector-connections.ts deleted file mode 100644 index cebb890d..00000000 --- a/vendor/api/examples/docs/api/inspector-connections.ts +++ /dev/null @@ -1,7 +0,0 @@ -const endpoint = "https://rivet.example.com"; -const response = await fetch( - `${endpoint}/gateway/${process.env.ACTOR_ID}/inspector/connections`, - { headers: { Authorization: `Bearer ${process.env.INSPECTOR_TOKEN}` } }, -); -console.log(await response.json()); -export {}; diff --git a/vendor/api/examples/docs/api/inspector-database-execute.ts b/vendor/api/examples/docs/api/inspector-database-execute.ts deleted file mode 100644 index 0786a92e..00000000 --- a/vendor/api/examples/docs/api/inspector-database-execute.ts +++ /dev/null @@ -1,17 +0,0 @@ -const endpoint = "https://rivet.example.com"; -const response = await fetch( - `${endpoint}/gateway/${process.env.ACTOR_ID}/inspector/database/execute`, - { - method: "POST", - headers: { - Authorization: `Bearer ${process.env.INSPECTOR_TOKEN}`, - "Content-Type": "application/json", - }, - body: JSON.stringify({ - sql: "SELECT * FROM users WHERE id = ?", - args: ["user-123"], - }), - }, -); -console.log(await response.json()); -export {}; diff --git a/vendor/api/examples/docs/api/inspector-database-rows.ts b/vendor/api/examples/docs/api/inspector-database-rows.ts deleted file mode 100644 index a21e1be3..00000000 --- a/vendor/api/examples/docs/api/inspector-database-rows.ts +++ /dev/null @@ -1,12 +0,0 @@ -const endpoint = "https://rivet.example.com"; -const query = new URLSearchParams({ - table: "users", - limit: "100", - offset: "0", -}); -const response = await fetch( - `${endpoint}/gateway/${process.env.ACTOR_ID}/inspector/database/rows?${query}`, - { headers: { Authorization: `Bearer ${process.env.INSPECTOR_TOKEN}` } }, -); -console.log(await response.json()); -export {}; diff --git a/vendor/api/examples/docs/api/inspector-database-schema.ts b/vendor/api/examples/docs/api/inspector-database-schema.ts deleted file mode 100644 index e6d5acdc..00000000 --- a/vendor/api/examples/docs/api/inspector-database-schema.ts +++ /dev/null @@ -1,7 +0,0 @@ -const endpoint = "https://rivet.example.com"; -const response = await fetch( - `${endpoint}/gateway/${process.env.ACTOR_ID}/inspector/database/schema`, - { headers: { Authorization: `Bearer ${process.env.INSPECTOR_TOKEN}` } }, -); -console.log(await response.json()); -export {}; diff --git a/vendor/api/examples/docs/api/inspector-queue-delete.ts b/vendor/api/examples/docs/api/inspector-queue-delete.ts deleted file mode 100644 index 748c1b4c..00000000 --- a/vendor/api/examples/docs/api/inspector-queue-delete.ts +++ /dev/null @@ -1,10 +0,0 @@ -const endpoint = "https://rivet.example.com"; -const response = await fetch( - `${endpoint}/gateway/${process.env.ACTOR_ID}/inspector/queue`, - { - method: "DELETE", - headers: { Authorization: `Bearer ${process.env.INSPECTOR_TOKEN}` }, - }, -); -console.log(await response.json()); -export {}; diff --git a/vendor/api/examples/docs/api/inspector-queue-get.ts b/vendor/api/examples/docs/api/inspector-queue-get.ts deleted file mode 100644 index a55ec407..00000000 --- a/vendor/api/examples/docs/api/inspector-queue-get.ts +++ /dev/null @@ -1,7 +0,0 @@ -const endpoint = "https://rivet.example.com"; -const response = await fetch( - `${endpoint}/gateway/${process.env.ACTOR_ID}/inspector/queue?limit=50`, - { headers: { Authorization: `Bearer ${process.env.INSPECTOR_TOKEN}` } }, -); -console.log(await response.json()); -export {}; diff --git a/vendor/api/examples/docs/api/inspector-queue-post.ts b/vendor/api/examples/docs/api/inspector-queue-post.ts deleted file mode 100644 index d5c71989..00000000 --- a/vendor/api/examples/docs/api/inspector-queue-post.ts +++ /dev/null @@ -1,14 +0,0 @@ -const endpoint = "https://rivet.example.com"; -const response = await fetch( - `${endpoint}/gateway/${process.env.ACTOR_ID}/inspector/queue`, - { - method: "POST", - headers: { - Authorization: `Bearer ${process.env.INSPECTOR_TOKEN}`, - "Content-Type": "application/json", - }, - body: JSON.stringify({ name: "increment", body: { amount: 1 } }), - }, -); -console.log(await response.json()); -export {}; diff --git a/vendor/api/examples/docs/api/inspector-rpcs.ts b/vendor/api/examples/docs/api/inspector-rpcs.ts deleted file mode 100644 index 356e615e..00000000 --- a/vendor/api/examples/docs/api/inspector-rpcs.ts +++ /dev/null @@ -1,7 +0,0 @@ -const endpoint = "https://rivet.example.com"; -const response = await fetch( - `${endpoint}/gateway/${process.env.ACTOR_ID}/inspector/rpcs`, - { headers: { Authorization: `Bearer ${process.env.INSPECTOR_TOKEN}` } }, -); -console.log(await response.json()); -export {}; diff --git a/vendor/api/examples/docs/api/inspector-state-get.ts b/vendor/api/examples/docs/api/inspector-state-get.ts deleted file mode 100644 index 783deb57..00000000 --- a/vendor/api/examples/docs/api/inspector-state-get.ts +++ /dev/null @@ -1,7 +0,0 @@ -const endpoint = "https://rivet.example.com"; -const response = await fetch( - `${endpoint}/gateway/${process.env.ACTOR_ID}/inspector/state`, - { headers: { Authorization: `Bearer ${process.env.INSPECTOR_TOKEN}` } }, -); -console.log(await response.json()); -export {}; diff --git a/vendor/api/examples/docs/api/inspector-state-patch.ts b/vendor/api/examples/docs/api/inspector-state-patch.ts deleted file mode 100644 index 36ef34dc..00000000 --- a/vendor/api/examples/docs/api/inspector-state-patch.ts +++ /dev/null @@ -1,14 +0,0 @@ -const endpoint = "https://rivet.example.com"; -const response = await fetch( - `${endpoint}/gateway/${process.env.ACTOR_ID}/inspector/state`, - { - method: "PATCH", - headers: { - Authorization: `Bearer ${process.env.INSPECTOR_TOKEN}`, - "Content-Type": "application/json", - }, - body: JSON.stringify({ state: { count: 2 } }), - }, -); -console.log(await response.json()); -export {}; diff --git a/vendor/api/examples/docs/api/inspector-summary.ts b/vendor/api/examples/docs/api/inspector-summary.ts deleted file mode 100644 index 37f0f793..00000000 --- a/vendor/api/examples/docs/api/inspector-summary.ts +++ /dev/null @@ -1,7 +0,0 @@ -const endpoint = "https://rivet.example.com"; -const response = await fetch( - `${endpoint}/gateway/${process.env.ACTOR_ID}/inspector/summary`, - { headers: { Authorization: `Bearer ${process.env.INSPECTOR_TOKEN}` } }, -); -console.log(await response.json()); -export {}; diff --git a/vendor/api/examples/docs/api/inspector-traces.ts b/vendor/api/examples/docs/api/inspector-traces.ts deleted file mode 100644 index 9a3c1a62..00000000 --- a/vendor/api/examples/docs/api/inspector-traces.ts +++ /dev/null @@ -1,7 +0,0 @@ -const endpoint = "https://rivet.example.com"; -const response = await fetch( - `${endpoint}/gateway/${process.env.ACTOR_ID}/inspector/traces?startMs=0&limit=100`, - { headers: { Authorization: `Bearer ${process.env.INSPECTOR_TOKEN}` } }, -); -console.log(await response.json()); -export {}; diff --git a/vendor/api/examples/docs/api/inspector-workflow-history.ts b/vendor/api/examples/docs/api/inspector-workflow-history.ts deleted file mode 100644 index 64d289d0..00000000 --- a/vendor/api/examples/docs/api/inspector-workflow-history.ts +++ /dev/null @@ -1,7 +0,0 @@ -const endpoint = "https://rivet.example.com"; -const response = await fetch( - `${endpoint}/gateway/${process.env.ACTOR_ID}/inspector/workflow-history`, - { headers: { Authorization: `Bearer ${process.env.INSPECTOR_TOKEN}` } }, -); -console.log(await response.json()); -export {}; diff --git a/vendor/api/examples/docs/api/inspector-workflow-replay.ts b/vendor/api/examples/docs/api/inspector-workflow-replay.ts deleted file mode 100644 index 3bf3cdc8..00000000 --- a/vendor/api/examples/docs/api/inspector-workflow-replay.ts +++ /dev/null @@ -1,14 +0,0 @@ -const endpoint = "https://rivet.example.com"; -const response = await fetch( - `${endpoint}/gateway/${process.env.ACTOR_ID}/inspector/workflow/replay`, - { - method: "POST", - headers: { - Authorization: `Bearer ${process.env.INSPECTOR_TOKEN}`, - "Content-Type": "application/json", - }, - body: JSON.stringify({ entryId: "entry-123" }), - }, -); -console.log(await response.json()); -export {}; diff --git a/vendor/api/examples/docs/api/namespaces-create.ts b/vendor/api/examples/docs/api/namespaces-create.ts index c2f92ff5..3bda46bc 100644 --- a/vendor/api/examples/docs/api/namespaces-create.ts +++ b/vendor/api/examples/docs/api/namespaces-create.ts @@ -1,4 +1,4 @@ -const endpoint = "https://rivet.example.com"; +const endpoint = "https://api.rivet.dev"; const token = process.env.RIVET_TOKEN ?? ""; const response = await fetch(`${endpoint}/namespaces`, { diff --git a/vendor/api/examples/docs/api/namespaces-list.ts b/vendor/api/examples/docs/api/namespaces-list.ts index 5b598685..34700884 100644 --- a/vendor/api/examples/docs/api/namespaces-list.ts +++ b/vendor/api/examples/docs/api/namespaces-list.ts @@ -1,4 +1,4 @@ -const endpoint = "https://rivet.example.com"; +const endpoint = "https://api.rivet.dev"; const token = process.env.RIVET_TOKEN ?? ""; const response = await fetch(`${endpoint}/namespaces`, { diff --git a/vendor/api/examples/docs/api/pools-delete.ts b/vendor/api/examples/docs/api/pools-delete.ts new file mode 100644 index 00000000..ad9c5134 --- /dev/null +++ b/vendor/api/examples/docs/api/pools-delete.ts @@ -0,0 +1,16 @@ +const endpoint = "https://api.rivet.dev"; +const namespace = process.env.RIVET_NAMESPACE ?? "default"; +const token = process.env.RIVET_TOKEN ?? ""; +const pool = process.env.RIVET_POOL ?? "default"; + +const params = new URLSearchParams({ namespace }); +const response = await fetch( + `${endpoint}/pools/${encodeURIComponent(pool)}?${params}`, + { + method: "DELETE", + headers: { Authorization: `Bearer ${token}` }, + }, +); +console.log(response.status); + +export {}; diff --git a/vendor/api/examples/docs/api/pools-get.ts b/vendor/api/examples/docs/api/pools-get.ts new file mode 100644 index 00000000..852a5f71 --- /dev/null +++ b/vendor/api/examples/docs/api/pools-get.ts @@ -0,0 +1,13 @@ +const endpoint = "https://api.rivet.dev"; +const namespace = process.env.RIVET_NAMESPACE ?? "default"; +const token = process.env.RIVET_TOKEN ?? ""; +const pool = process.env.RIVET_POOL ?? "default"; + +const params = new URLSearchParams({ namespace }); +const response = await fetch( + `${endpoint}/pools/${encodeURIComponent(pool)}?${params}`, + { headers: { Authorization: `Bearer ${token}` } }, +); +console.log(await response.json()); + +export {}; diff --git a/vendor/api/examples/docs/api/pools-list-nodes.ts b/vendor/api/examples/docs/api/pools-list-nodes.ts new file mode 100644 index 00000000..b55c107f --- /dev/null +++ b/vendor/api/examples/docs/api/pools-list-nodes.ts @@ -0,0 +1,14 @@ +const endpoint = "https://api.rivet.dev"; +const namespace = process.env.RIVET_NAMESPACE ?? "default"; +const token = process.env.RIVET_TOKEN ?? ""; +const pool = process.env.RIVET_POOL ?? "default"; + +const params = new URLSearchParams({ namespace }); +const response = await fetch( + `${endpoint}/pools/${encodeURIComponent(pool)}/nodes?${params}`, + { headers: { Authorization: `Bearer ${token}` } }, +); +const { nodes, pagination } = await response.json(); +console.log(nodes, pagination.cursor); + +export {}; diff --git a/vendor/api/examples/docs/api/workers-configs-list.ts b/vendor/api/examples/docs/api/pools-list.ts similarity index 52% rename from vendor/api/examples/docs/api/workers-configs-list.ts rename to vendor/api/examples/docs/api/pools-list.ts index 1f1c8521..eac08588 100644 --- a/vendor/api/examples/docs/api/workers-configs-list.ts +++ b/vendor/api/examples/docs/api/pools-list.ts @@ -1,12 +1,12 @@ -const endpoint = "https://rivet.example.com"; +const endpoint = "https://api.rivet.dev"; const namespace = process.env.RIVET_NAMESPACE ?? "default"; const token = process.env.RIVET_TOKEN ?? ""; const params = new URLSearchParams({ namespace }); -const response = await fetch(`${endpoint}/runner-configs?${params}`, { +const response = await fetch(`${endpoint}/pools?${params}`, { headers: { Authorization: `Bearer ${token}` }, }); -const { runner_configs } = await response.json(); -console.log(runner_configs); +const { pools, pagination } = await response.json(); +console.log(pools, pagination.cursor); export {}; diff --git a/vendor/api/examples/docs/api/workers-configs-upsert.ts b/vendor/api/examples/docs/api/pools-upsert.ts similarity index 59% rename from vendor/api/examples/docs/api/workers-configs-upsert.ts rename to vendor/api/examples/docs/api/pools-upsert.ts index 50a37d3d..0097c1c7 100644 --- a/vendor/api/examples/docs/api/workers-configs-upsert.ts +++ b/vendor/api/examples/docs/api/pools-upsert.ts @@ -1,18 +1,18 @@ -const endpoint = "https://rivet.example.com"; +const endpoint = "https://api.rivet.dev"; const namespace = process.env.RIVET_NAMESPACE ?? "default"; const token = process.env.RIVET_TOKEN ?? ""; -const workerName = process.env.RUNNER_NAME ?? "default"; +const pool = process.env.RIVET_POOL ?? "default"; const params = new URLSearchParams({ namespace }); const response = await fetch( - `${endpoint}/runner-configs/${encodeURIComponent(workerName)}?${params}`, + `${endpoint}/pools/${encodeURIComponent(pool)}?${params}`, { method: "PUT", headers: { Authorization: `Bearer ${token}`, "Content-Type": "application/json", }, - body: JSON.stringify({ datacenters: { local: { normal: {} } } }), + body: JSON.stringify({ drain_on_version_upgrade: true }), }, ); console.log(await response.json()); diff --git a/vendor/api/examples/docs/api/tokens-inspect.ts b/vendor/api/examples/docs/api/tokens-inspect.ts index c562d121..7573b89f 100644 --- a/vendor/api/examples/docs/api/tokens-inspect.ts +++ b/vendor/api/examples/docs/api/tokens-inspect.ts @@ -1,4 +1,4 @@ -const endpoint = "https://rivet.example.com"; +const endpoint = "https://api.rivet.dev"; const token = process.env.RIVET_TOKEN ?? ""; // Inspect reports on the token used to authenticate the request itself. diff --git a/vendor/api/examples/docs/api/workers-configs-delete.ts b/vendor/api/examples/docs/api/workers-configs-delete.ts deleted file mode 100644 index cdc01d9e..00000000 --- a/vendor/api/examples/docs/api/workers-configs-delete.ts +++ /dev/null @@ -1,13 +0,0 @@ -const endpoint = "https://rivet.example.com"; -const namespace = process.env.RIVET_NAMESPACE ?? "default"; -const token = process.env.RIVET_TOKEN ?? ""; -const workerName = process.env.RUNNER_NAME ?? "default"; - -const params = new URLSearchParams({ namespace }); -const response = await fetch( - `${endpoint}/runner-configs/${encodeURIComponent(workerName)}?${params}`, - { method: "DELETE", headers: { Authorization: `Bearer ${token}` } }, -); -console.log(response.ok); - -export {}; diff --git a/vendor/api/examples/docs/api/workers-configs-refresh-metadata.ts b/vendor/api/examples/docs/api/workers-configs-refresh-metadata.ts index 337d7c97..1f1a7c02 100644 --- a/vendor/api/examples/docs/api/workers-configs-refresh-metadata.ts +++ b/vendor/api/examples/docs/api/workers-configs-refresh-metadata.ts @@ -1,4 +1,4 @@ -const endpoint = "https://rivet.example.com"; +const endpoint = "https://api.rivet.dev"; const namespace = process.env.RIVET_NAMESPACE ?? "default"; const token = process.env.RIVET_TOKEN ?? ""; const workerName = process.env.RUNNER_NAME ?? "default"; diff --git a/vendor/api/examples/docs/api/workers-list.ts b/vendor/api/examples/docs/api/workers-list.ts deleted file mode 100644 index 06f1d56e..00000000 --- a/vendor/api/examples/docs/api/workers-list.ts +++ /dev/null @@ -1,12 +0,0 @@ -const endpoint = "https://rivet.example.com"; -const namespace = process.env.RIVET_NAMESPACE ?? "default"; -const token = process.env.RIVET_TOKEN ?? ""; - -const params = new URLSearchParams({ namespace }); -const response = await fetch(`${endpoint}/envoys?${params}`, { - headers: { Authorization: `Bearer ${token}` }, -}); -const { envoys: workers, pagination } = await response.json(); -console.log(workers, pagination.cursor); - -export {}; diff --git a/vendor/api/examples/docs/api/workers-serverless-health-check.ts b/vendor/api/examples/docs/api/workers-serverless-health-check.ts index 860536f6..c6e0c54f 100644 --- a/vendor/api/examples/docs/api/workers-serverless-health-check.ts +++ b/vendor/api/examples/docs/api/workers-serverless-health-check.ts @@ -1,4 +1,4 @@ -const endpoint = "https://rivet.example.com"; +const endpoint = "https://api.rivet.dev"; const namespace = process.env.RIVET_NAMESPACE ?? "default"; const token = process.env.RIVET_TOKEN ?? ""; diff --git a/vendor/api/examples/docs/cookbook-cron-jobs/daily-report.ts b/vendor/api/examples/docs/cookbook-cron-jobs/daily-report.ts deleted file mode 100644 index c434d36c..00000000 --- a/vendor/api/examples/docs/cookbook-cron-jobs/daily-report.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { actor } from "rivetkit"; - -export const dailyReport = actor({ - state: { lastRunAt: 0 }, - onCreate: async (c) => { - await c.cron.set({ - name: "daily-report", - expression: "0 9 * * *", - action: "runReport", - }); - }, - actions: { - runReport: (c) => { - // Do the job's work, then record the run. - c.state.lastRunAt = Date.now(); - }, - }, -}); diff --git a/vendor/api/examples/docs/general-edge/client.ts b/vendor/api/examples/docs/general-edge/client.ts new file mode 100644 index 00000000..fde898f5 --- /dev/null +++ b/vendor/api/examples/docs/general-edge/client.ts @@ -0,0 +1,12 @@ +import { createClient } from "rivetkit/client"; +import { actor, setup } from "rivetkit"; + +const example = actor({ state: {}, actions: {} }); +const registry = setup({ use: { example } }); + +const client = createClient("http://localhost:6420"); + +// Create actor in a specific region using getOrCreate +const actorHandle = client.example.getOrCreate(["my-actor"], { + createInRegion: "atl" +}); diff --git a/vendor/api/examples/docs/general-jwt/quickstart/client.ts b/vendor/api/examples/docs/general-jwt/quickstart/client.ts index bf78e5d5..49cbb1ed 100644 --- a/vendor/api/examples/docs/general-jwt/quickstart/client.ts +++ b/vendor/api/examples/docs/general-jwt/quickstart/client.ts @@ -14,7 +14,7 @@ async function fetchToken(): Promise<{ actorId: string; token: string }> { const { actorId } = await fetchToken(); const client = createClient({ - endpoint: "https://my-namespace@rivet.example.com", + endpoint: "https://rivet.example.com", namespace: "production", // Called whenever RivetKit needs a credential, including after one expires. diff --git a/vendor/api/examples/docs/package.json b/vendor/api/examples/docs/package.json index a0e98db3..3ddcea78 100644 --- a/vendor/api/examples/docs/package.json +++ b/vendor/api/examples/docs/package.json @@ -1,4 +1,5 @@ { + "license": "MIT", "name": "docs-snippets", "version": "2.0.21", "private": true, @@ -11,10 +12,7 @@ "rivetkit": "workspace:*", "@rivetkit/react": "workspace:*", "@rivetkit/engine-api-full": "workspace:*", - "@rivetkit/next-js": "workspace:*", - "@rivetkit/cloudflare-workers": "workspace:*", "@rivetkit/rivetkit-wasm": "workspace:*", - "@rivetkit/supabase": "workspace:*", "@rivetkit/effect": "workspace:*", "effect": "4.0.0", "@effect/platform-node": "4.0.0", diff --git a/vendor/api/examples/docs/tsconfig.json b/vendor/api/examples/docs/tsconfig.json index 498e3a9a..ee88fd1d 100644 --- a/vendor/api/examples/docs/tsconfig.json +++ b/vendor/api/examples/docs/tsconfig.json @@ -13,5 +13,12 @@ "jsx": "react-jsx" }, "include": ["**/*.ts", "**/*.tsx"], - "exclude": ["node_modules"] + "exclude": [ + "node_modules", + "actors-quickstart-next-js", + "general-http-server/elysia-handler.ts", + "general-http-server/hono-handler.ts", + "general-http-server/serve.ts", + "actors-actions/calling-backend.ts" + ] } diff --git a/vendor/api/rivetkit-asyncapi/asyncapi.json b/vendor/api/rivetkit-asyncapi/asyncapi.json index 32b33213..bf2ae11f 100644 --- a/vendor/api/rivetkit-asyncapi/asyncapi.json +++ b/vendor/api/rivetkit-asyncapi/asyncapi.json @@ -2,7 +2,7 @@ "asyncapi": "3.0.0", "info": { "title": "RivetKit WebSocket Protocol", - "version": "2.4.0", + "version": "3.0.0-preview.5", "description": "WebSocket protocol for bidirectional communication between RivetKit clients and actors" }, "channels": {