diff --git a/Cargo.lock b/Cargo.lock index c86cb8d5ee..252a4b0eef 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -827,7 +827,7 @@ dependencies = [ [[package]] name = "clickhouse-inserter" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "async-channel", @@ -851,7 +851,7 @@ dependencies = [ [[package]] name = "clickhouse-user-query" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "clickhouse", "serde", @@ -1476,7 +1476,7 @@ checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" [[package]] name = "epoxy" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "axum 0.8.4", @@ -1515,7 +1515,7 @@ dependencies = [ [[package]] name = "epoxy-protocol" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "rivet-util", @@ -1796,7 +1796,7 @@ dependencies = [ [[package]] name = "gasoline" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "async-stream", @@ -1844,7 +1844,7 @@ dependencies = [ [[package]] name = "gasoline-macros" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "proc-macro2", "quote", @@ -2502,7 +2502,7 @@ dependencies = [ [[package]] name = "internal" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "gasoline", @@ -2901,7 +2901,7 @@ dependencies = [ [[package]] name = "namespace" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "epoxy", @@ -2910,7 +2910,6 @@ dependencies = [ "internal", "reqwest", "rivet-api-builder", - "rivet-api-types", "rivet-api-util", "rivet-data", "rivet-error", @@ -3419,7 +3418,7 @@ checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" [[package]] name = "pegboard" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "base64 0.22.1", @@ -3451,7 +3450,7 @@ dependencies = [ [[package]] name = "pegboard-actor-kv" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "futures-util", @@ -3475,7 +3474,7 @@ dependencies = [ [[package]] name = "pegboard-gateway" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "async-trait", @@ -3507,7 +3506,7 @@ dependencies = [ [[package]] name = "pegboard-runner" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "async-trait", @@ -3541,7 +3540,7 @@ dependencies = [ [[package]] name = "pegboard-serverless" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "base64 0.22.1", @@ -4234,7 +4233,7 @@ dependencies = [ [[package]] name = "rivet-api-builder" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "axum 0.8.4", @@ -4277,7 +4276,7 @@ dependencies = [ [[package]] name = "rivet-api-peer" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "axum 0.8.4", @@ -4308,7 +4307,7 @@ dependencies = [ [[package]] name = "rivet-api-public" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "axum 0.8.4", @@ -4341,7 +4340,7 @@ dependencies = [ [[package]] name = "rivet-api-types" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "gasoline", @@ -4356,7 +4355,7 @@ dependencies = [ [[package]] name = "rivet-api-util" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "axum 0.8.4", @@ -4376,7 +4375,7 @@ dependencies = [ [[package]] name = "rivet-bootstrap" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "epoxy", "gasoline", @@ -4392,7 +4391,7 @@ dependencies = [ [[package]] name = "rivet-cache" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "futures-util", @@ -4433,14 +4432,14 @@ dependencies = [ [[package]] name = "rivet-cache-result" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "rivet-util", ] [[package]] name = "rivet-config" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "config", @@ -4458,7 +4457,7 @@ dependencies = [ [[package]] name = "rivet-data" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "gasoline", @@ -4472,7 +4471,7 @@ dependencies = [ [[package]] name = "rivet-dump-openapi" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "rivet-api-public", "serde_json", @@ -4481,7 +4480,7 @@ dependencies = [ [[package]] name = "rivet-engine" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "axum 0.8.4", @@ -4538,13 +4537,14 @@ dependencies = [ "tracing-subscriber", "universaldb", "url", + "urlencoding", "uuid", "vbare", ] [[package]] name = "rivet-env" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "lazy_static", @@ -4554,7 +4554,7 @@ dependencies = [ [[package]] name = "rivet-error" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "indoc", @@ -4566,7 +4566,7 @@ dependencies = [ [[package]] name = "rivet-error-macros" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "indoc", "proc-macro2", @@ -4577,7 +4577,7 @@ dependencies = [ [[package]] name = "rivet-guard" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "axum 0.8.4", @@ -4618,12 +4618,11 @@ dependencies = [ "universalpubsub", "url", "urlencoding", - "uuid", ] [[package]] name = "rivet-guard-core" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "async-trait", @@ -4669,7 +4668,7 @@ dependencies = [ [[package]] name = "rivet-logs" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "chrono", @@ -4683,7 +4682,7 @@ dependencies = [ [[package]] name = "rivet-metrics" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "console-subscriber", @@ -4701,7 +4700,7 @@ dependencies = [ [[package]] name = "rivet-pools" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "async-nats", @@ -4734,7 +4733,7 @@ dependencies = [ [[package]] name = "rivet-runner-protocol" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "gasoline", @@ -4751,7 +4750,7 @@ dependencies = [ [[package]] name = "rivet-runtime" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "console-subscriber", @@ -4778,7 +4777,7 @@ dependencies = [ [[package]] name = "rivet-service-manager" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "chrono", @@ -4795,7 +4794,7 @@ dependencies = [ [[package]] name = "rivet-telemetry" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "rivet-config", @@ -4819,7 +4818,7 @@ dependencies = [ [[package]] name = "rivet-test-deps" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "futures-util", @@ -4837,7 +4836,7 @@ dependencies = [ [[package]] name = "rivet-test-deps-docker" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "portpicker", @@ -4868,7 +4867,7 @@ dependencies = [ [[package]] name = "rivet-tracing-utils" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "futures-util", "lazy_static", @@ -4878,7 +4877,7 @@ dependencies = [ [[package]] name = "rivet-types" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "gasoline", @@ -4895,7 +4894,7 @@ dependencies = [ [[package]] name = "rivet-ups-protocol" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "base64 0.22.1", @@ -4908,7 +4907,7 @@ dependencies = [ [[package]] name = "rivet-util" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "async-trait", @@ -4940,7 +4939,7 @@ dependencies = [ [[package]] name = "rivet-util-id" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "serde", "thiserror 1.0.69", @@ -4951,7 +4950,7 @@ dependencies = [ [[package]] name = "rivet-workflow-worker" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "epoxy", @@ -6710,7 +6709,7 @@ checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c" [[package]] name = "universaldb" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "async-trait", @@ -6738,7 +6737,7 @@ dependencies = [ [[package]] name = "universalpubsub" -version = "2.0.24" +version = "2.0.25-rc.1" dependencies = [ "anyhow", "async-nats", diff --git a/engine/artifacts/openapi.json b/engine/artifacts/openapi.json index 396c4b1203..e0d8ffc94f 100644 --- a/engine/artifacts/openapi.json +++ b/engine/artifacts/openapi.json @@ -11,7 +11,7 @@ "name": "Apache-2.0", "identifier": "Apache-2.0" }, - "version": "2.0.24" + "version": "2.0.25-rc.1" }, "paths": { "/actors": { @@ -50,11 +50,23 @@ { "name": "actor_ids", "in": "query", + "description": "Deprecated.", "required": false, "schema": { "type": "string" } }, + { + "name": "actor_id", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RivetId" + } + } + }, { "name": "include_destroyed", "in": "query", @@ -402,10 +414,22 @@ { "name": "namespace_ids", "in": "query", + "description": "Deprecated.", "required": false, "schema": { "type": "string" } + }, + { + "name": "namespace_id", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RivetId" + } + } } ], "responses": { @@ -503,10 +527,22 @@ { "name": "runner_names", "in": "query", + "description": "Deprecated.", "required": false, "schema": { "type": "string" } + }, + { + "name": "runner_name", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } } ], "responses": { @@ -746,11 +782,23 @@ { "name": "runner_ids", "in": "query", + "description": "Deprecated.", "required": false, "schema": { "type": "string" } }, + { + "name": "runner_id", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RivetId" + } + } + }, { "name": "include_stopped", "in": "query", diff --git a/engine/docker/dev-host/rivet-engine/config.jsonc b/engine/docker/dev-host/rivet-engine/config.jsonc index 61a1fc5761..87a23b0e07 100644 --- a/engine/docker/dev-host/rivet-engine/config.jsonc +++ b/engine/docker/dev-host/rivet-engine/config.jsonc @@ -17,7 +17,12 @@ "datacenter_label": 1, "is_leader": true, "peer_url": "http://127.0.0.1:6421", - "public_url": "http://127.0.0.1:6420" + "public_url": "http://127.0.0.1:6420", + "valid_hosts": [ + "127.0.0.1", + "127.0.0.1", + "localhost" + ] } ] }, diff --git a/engine/docker/dev-multidc-multinode/datacenters/dc-a/rivet-engine/0/config.jsonc b/engine/docker/dev-multidc-multinode/datacenters/dc-a/rivet-engine/0/config.jsonc index 3b03026bee..0f74e2a346 100644 --- a/engine/docker/dev-multidc-multinode/datacenters/dc-a/rivet-engine/0/config.jsonc +++ b/engine/docker/dev-multidc-multinode/datacenters/dc-a/rivet-engine/0/config.jsonc @@ -17,21 +17,36 @@ "datacenter_label": 1, "is_leader": true, "peer_url": "http://rivet-engine-dc-a-0:6421", - "public_url": "http://rivet-engine-dc-a-0:6420" + "public_url": "http://rivet-engine-dc-a-0:6420", + "valid_hosts": [ + "rivet-engine-dc-a-0", + "127.0.0.1", + "localhost" + ] }, { "name": "dc-b", "datacenter_label": 2, "is_leader": false, "peer_url": "http://rivet-engine-dc-b-0:6421", - "public_url": "http://rivet-engine-dc-b-0:6420" + "public_url": "http://rivet-engine-dc-b-0:6420", + "valid_hosts": [ + "rivet-engine-dc-b-0", + "127.0.0.1", + "localhost" + ] }, { "name": "dc-c", "datacenter_label": 3, "is_leader": false, "peer_url": "http://rivet-engine-dc-c-0:6421", - "public_url": "http://rivet-engine-dc-c-0:6420" + "public_url": "http://rivet-engine-dc-c-0:6420", + "valid_hosts": [ + "rivet-engine-dc-c-0", + "127.0.0.1", + "localhost" + ] } ] }, diff --git a/engine/docker/dev-multidc-multinode/datacenters/dc-a/rivet-engine/1/config.jsonc b/engine/docker/dev-multidc-multinode/datacenters/dc-a/rivet-engine/1/config.jsonc index 3b03026bee..0f74e2a346 100644 --- a/engine/docker/dev-multidc-multinode/datacenters/dc-a/rivet-engine/1/config.jsonc +++ b/engine/docker/dev-multidc-multinode/datacenters/dc-a/rivet-engine/1/config.jsonc @@ -17,21 +17,36 @@ "datacenter_label": 1, "is_leader": true, "peer_url": "http://rivet-engine-dc-a-0:6421", - "public_url": "http://rivet-engine-dc-a-0:6420" + "public_url": "http://rivet-engine-dc-a-0:6420", + "valid_hosts": [ + "rivet-engine-dc-a-0", + "127.0.0.1", + "localhost" + ] }, { "name": "dc-b", "datacenter_label": 2, "is_leader": false, "peer_url": "http://rivet-engine-dc-b-0:6421", - "public_url": "http://rivet-engine-dc-b-0:6420" + "public_url": "http://rivet-engine-dc-b-0:6420", + "valid_hosts": [ + "rivet-engine-dc-b-0", + "127.0.0.1", + "localhost" + ] }, { "name": "dc-c", "datacenter_label": 3, "is_leader": false, "peer_url": "http://rivet-engine-dc-c-0:6421", - "public_url": "http://rivet-engine-dc-c-0:6420" + "public_url": "http://rivet-engine-dc-c-0:6420", + "valid_hosts": [ + "rivet-engine-dc-c-0", + "127.0.0.1", + "localhost" + ] } ] }, diff --git a/engine/docker/dev-multidc-multinode/datacenters/dc-a/rivet-engine/2/config.jsonc b/engine/docker/dev-multidc-multinode/datacenters/dc-a/rivet-engine/2/config.jsonc index 3b03026bee..0f74e2a346 100644 --- a/engine/docker/dev-multidc-multinode/datacenters/dc-a/rivet-engine/2/config.jsonc +++ b/engine/docker/dev-multidc-multinode/datacenters/dc-a/rivet-engine/2/config.jsonc @@ -17,21 +17,36 @@ "datacenter_label": 1, "is_leader": true, "peer_url": "http://rivet-engine-dc-a-0:6421", - "public_url": "http://rivet-engine-dc-a-0:6420" + "public_url": "http://rivet-engine-dc-a-0:6420", + "valid_hosts": [ + "rivet-engine-dc-a-0", + "127.0.0.1", + "localhost" + ] }, { "name": "dc-b", "datacenter_label": 2, "is_leader": false, "peer_url": "http://rivet-engine-dc-b-0:6421", - "public_url": "http://rivet-engine-dc-b-0:6420" + "public_url": "http://rivet-engine-dc-b-0:6420", + "valid_hosts": [ + "rivet-engine-dc-b-0", + "127.0.0.1", + "localhost" + ] }, { "name": "dc-c", "datacenter_label": 3, "is_leader": false, "peer_url": "http://rivet-engine-dc-c-0:6421", - "public_url": "http://rivet-engine-dc-c-0:6420" + "public_url": "http://rivet-engine-dc-c-0:6420", + "valid_hosts": [ + "rivet-engine-dc-c-0", + "127.0.0.1", + "localhost" + ] } ] }, diff --git a/engine/docker/dev-multidc-multinode/datacenters/dc-b/rivet-engine/0/config.jsonc b/engine/docker/dev-multidc-multinode/datacenters/dc-b/rivet-engine/0/config.jsonc index a4b0b3afef..0c940aaf6a 100644 --- a/engine/docker/dev-multidc-multinode/datacenters/dc-b/rivet-engine/0/config.jsonc +++ b/engine/docker/dev-multidc-multinode/datacenters/dc-b/rivet-engine/0/config.jsonc @@ -17,21 +17,36 @@ "datacenter_label": 1, "is_leader": true, "peer_url": "http://rivet-engine-dc-a-0:6421", - "public_url": "http://rivet-engine-dc-a-0:6420" + "public_url": "http://rivet-engine-dc-a-0:6420", + "valid_hosts": [ + "rivet-engine-dc-a-0", + "127.0.0.1", + "localhost" + ] }, { "name": "dc-b", "datacenter_label": 2, "is_leader": false, "peer_url": "http://rivet-engine-dc-b-0:6421", - "public_url": "http://rivet-engine-dc-b-0:6420" + "public_url": "http://rivet-engine-dc-b-0:6420", + "valid_hosts": [ + "rivet-engine-dc-b-0", + "127.0.0.1", + "localhost" + ] }, { "name": "dc-c", "datacenter_label": 3, "is_leader": false, "peer_url": "http://rivet-engine-dc-c-0:6421", - "public_url": "http://rivet-engine-dc-c-0:6420" + "public_url": "http://rivet-engine-dc-c-0:6420", + "valid_hosts": [ + "rivet-engine-dc-c-0", + "127.0.0.1", + "localhost" + ] } ] }, diff --git a/engine/docker/dev-multidc-multinode/datacenters/dc-b/rivet-engine/1/config.jsonc b/engine/docker/dev-multidc-multinode/datacenters/dc-b/rivet-engine/1/config.jsonc index a4b0b3afef..0c940aaf6a 100644 --- a/engine/docker/dev-multidc-multinode/datacenters/dc-b/rivet-engine/1/config.jsonc +++ b/engine/docker/dev-multidc-multinode/datacenters/dc-b/rivet-engine/1/config.jsonc @@ -17,21 +17,36 @@ "datacenter_label": 1, "is_leader": true, "peer_url": "http://rivet-engine-dc-a-0:6421", - "public_url": "http://rivet-engine-dc-a-0:6420" + "public_url": "http://rivet-engine-dc-a-0:6420", + "valid_hosts": [ + "rivet-engine-dc-a-0", + "127.0.0.1", + "localhost" + ] }, { "name": "dc-b", "datacenter_label": 2, "is_leader": false, "peer_url": "http://rivet-engine-dc-b-0:6421", - "public_url": "http://rivet-engine-dc-b-0:6420" + "public_url": "http://rivet-engine-dc-b-0:6420", + "valid_hosts": [ + "rivet-engine-dc-b-0", + "127.0.0.1", + "localhost" + ] }, { "name": "dc-c", "datacenter_label": 3, "is_leader": false, "peer_url": "http://rivet-engine-dc-c-0:6421", - "public_url": "http://rivet-engine-dc-c-0:6420" + "public_url": "http://rivet-engine-dc-c-0:6420", + "valid_hosts": [ + "rivet-engine-dc-c-0", + "127.0.0.1", + "localhost" + ] } ] }, diff --git a/engine/docker/dev-multidc-multinode/datacenters/dc-b/rivet-engine/2/config.jsonc b/engine/docker/dev-multidc-multinode/datacenters/dc-b/rivet-engine/2/config.jsonc index a4b0b3afef..0c940aaf6a 100644 --- a/engine/docker/dev-multidc-multinode/datacenters/dc-b/rivet-engine/2/config.jsonc +++ b/engine/docker/dev-multidc-multinode/datacenters/dc-b/rivet-engine/2/config.jsonc @@ -17,21 +17,36 @@ "datacenter_label": 1, "is_leader": true, "peer_url": "http://rivet-engine-dc-a-0:6421", - "public_url": "http://rivet-engine-dc-a-0:6420" + "public_url": "http://rivet-engine-dc-a-0:6420", + "valid_hosts": [ + "rivet-engine-dc-a-0", + "127.0.0.1", + "localhost" + ] }, { "name": "dc-b", "datacenter_label": 2, "is_leader": false, "peer_url": "http://rivet-engine-dc-b-0:6421", - "public_url": "http://rivet-engine-dc-b-0:6420" + "public_url": "http://rivet-engine-dc-b-0:6420", + "valid_hosts": [ + "rivet-engine-dc-b-0", + "127.0.0.1", + "localhost" + ] }, { "name": "dc-c", "datacenter_label": 3, "is_leader": false, "peer_url": "http://rivet-engine-dc-c-0:6421", - "public_url": "http://rivet-engine-dc-c-0:6420" + "public_url": "http://rivet-engine-dc-c-0:6420", + "valid_hosts": [ + "rivet-engine-dc-c-0", + "127.0.0.1", + "localhost" + ] } ] }, diff --git a/engine/docker/dev-multidc-multinode/datacenters/dc-c/rivet-engine/0/config.jsonc b/engine/docker/dev-multidc-multinode/datacenters/dc-c/rivet-engine/0/config.jsonc index 031928342a..b6218cd163 100644 --- a/engine/docker/dev-multidc-multinode/datacenters/dc-c/rivet-engine/0/config.jsonc +++ b/engine/docker/dev-multidc-multinode/datacenters/dc-c/rivet-engine/0/config.jsonc @@ -17,21 +17,36 @@ "datacenter_label": 1, "is_leader": true, "peer_url": "http://rivet-engine-dc-a-0:6421", - "public_url": "http://rivet-engine-dc-a-0:6420" + "public_url": "http://rivet-engine-dc-a-0:6420", + "valid_hosts": [ + "rivet-engine-dc-a-0", + "127.0.0.1", + "localhost" + ] }, { "name": "dc-b", "datacenter_label": 2, "is_leader": false, "peer_url": "http://rivet-engine-dc-b-0:6421", - "public_url": "http://rivet-engine-dc-b-0:6420" + "public_url": "http://rivet-engine-dc-b-0:6420", + "valid_hosts": [ + "rivet-engine-dc-b-0", + "127.0.0.1", + "localhost" + ] }, { "name": "dc-c", "datacenter_label": 3, "is_leader": false, "peer_url": "http://rivet-engine-dc-c-0:6421", - "public_url": "http://rivet-engine-dc-c-0:6420" + "public_url": "http://rivet-engine-dc-c-0:6420", + "valid_hosts": [ + "rivet-engine-dc-c-0", + "127.0.0.1", + "localhost" + ] } ] }, diff --git a/engine/docker/dev-multidc-multinode/datacenters/dc-c/rivet-engine/1/config.jsonc b/engine/docker/dev-multidc-multinode/datacenters/dc-c/rivet-engine/1/config.jsonc index 031928342a..b6218cd163 100644 --- a/engine/docker/dev-multidc-multinode/datacenters/dc-c/rivet-engine/1/config.jsonc +++ b/engine/docker/dev-multidc-multinode/datacenters/dc-c/rivet-engine/1/config.jsonc @@ -17,21 +17,36 @@ "datacenter_label": 1, "is_leader": true, "peer_url": "http://rivet-engine-dc-a-0:6421", - "public_url": "http://rivet-engine-dc-a-0:6420" + "public_url": "http://rivet-engine-dc-a-0:6420", + "valid_hosts": [ + "rivet-engine-dc-a-0", + "127.0.0.1", + "localhost" + ] }, { "name": "dc-b", "datacenter_label": 2, "is_leader": false, "peer_url": "http://rivet-engine-dc-b-0:6421", - "public_url": "http://rivet-engine-dc-b-0:6420" + "public_url": "http://rivet-engine-dc-b-0:6420", + "valid_hosts": [ + "rivet-engine-dc-b-0", + "127.0.0.1", + "localhost" + ] }, { "name": "dc-c", "datacenter_label": 3, "is_leader": false, "peer_url": "http://rivet-engine-dc-c-0:6421", - "public_url": "http://rivet-engine-dc-c-0:6420" + "public_url": "http://rivet-engine-dc-c-0:6420", + "valid_hosts": [ + "rivet-engine-dc-c-0", + "127.0.0.1", + "localhost" + ] } ] }, diff --git a/engine/docker/dev-multidc-multinode/datacenters/dc-c/rivet-engine/2/config.jsonc b/engine/docker/dev-multidc-multinode/datacenters/dc-c/rivet-engine/2/config.jsonc index 031928342a..b6218cd163 100644 --- a/engine/docker/dev-multidc-multinode/datacenters/dc-c/rivet-engine/2/config.jsonc +++ b/engine/docker/dev-multidc-multinode/datacenters/dc-c/rivet-engine/2/config.jsonc @@ -17,21 +17,36 @@ "datacenter_label": 1, "is_leader": true, "peer_url": "http://rivet-engine-dc-a-0:6421", - "public_url": "http://rivet-engine-dc-a-0:6420" + "public_url": "http://rivet-engine-dc-a-0:6420", + "valid_hosts": [ + "rivet-engine-dc-a-0", + "127.0.0.1", + "localhost" + ] }, { "name": "dc-b", "datacenter_label": 2, "is_leader": false, "peer_url": "http://rivet-engine-dc-b-0:6421", - "public_url": "http://rivet-engine-dc-b-0:6420" + "public_url": "http://rivet-engine-dc-b-0:6420", + "valid_hosts": [ + "rivet-engine-dc-b-0", + "127.0.0.1", + "localhost" + ] }, { "name": "dc-c", "datacenter_label": 3, "is_leader": false, "peer_url": "http://rivet-engine-dc-c-0:6421", - "public_url": "http://rivet-engine-dc-c-0:6420" + "public_url": "http://rivet-engine-dc-c-0:6420", + "valid_hosts": [ + "rivet-engine-dc-c-0", + "127.0.0.1", + "localhost" + ] } ] }, diff --git a/engine/docker/dev-multidc/datacenters/dc-a/rivet-engine/config.jsonc b/engine/docker/dev-multidc/datacenters/dc-a/rivet-engine/config.jsonc index 92aeec9834..dff69c3809 100644 --- a/engine/docker/dev-multidc/datacenters/dc-a/rivet-engine/config.jsonc +++ b/engine/docker/dev-multidc/datacenters/dc-a/rivet-engine/config.jsonc @@ -17,21 +17,36 @@ "datacenter_label": 1, "is_leader": true, "peer_url": "http://rivet-engine-dc-a:6421", - "public_url": "http://rivet-engine-dc-a:6420" + "public_url": "http://rivet-engine-dc-a:6420", + "valid_hosts": [ + "rivet-engine-dc-a", + "127.0.0.1", + "localhost" + ] }, { "name": "dc-b", "datacenter_label": 2, "is_leader": false, "peer_url": "http://rivet-engine-dc-b:6421", - "public_url": "http://rivet-engine-dc-b:6420" + "public_url": "http://rivet-engine-dc-b:6420", + "valid_hosts": [ + "rivet-engine-dc-b", + "127.0.0.1", + "localhost" + ] }, { "name": "dc-c", "datacenter_label": 3, "is_leader": false, "peer_url": "http://rivet-engine-dc-c:6421", - "public_url": "http://rivet-engine-dc-c:6420" + "public_url": "http://rivet-engine-dc-c:6420", + "valid_hosts": [ + "rivet-engine-dc-c", + "127.0.0.1", + "localhost" + ] } ] }, diff --git a/engine/docker/dev-multidc/datacenters/dc-b/rivet-engine/config.jsonc b/engine/docker/dev-multidc/datacenters/dc-b/rivet-engine/config.jsonc index d029159339..6fa7e3b42d 100644 --- a/engine/docker/dev-multidc/datacenters/dc-b/rivet-engine/config.jsonc +++ b/engine/docker/dev-multidc/datacenters/dc-b/rivet-engine/config.jsonc @@ -17,21 +17,36 @@ "datacenter_label": 1, "is_leader": true, "peer_url": "http://rivet-engine-dc-a:6421", - "public_url": "http://rivet-engine-dc-a:6420" + "public_url": "http://rivet-engine-dc-a:6420", + "valid_hosts": [ + "rivet-engine-dc-a", + "127.0.0.1", + "localhost" + ] }, { "name": "dc-b", "datacenter_label": 2, "is_leader": false, "peer_url": "http://rivet-engine-dc-b:6421", - "public_url": "http://rivet-engine-dc-b:6420" + "public_url": "http://rivet-engine-dc-b:6420", + "valid_hosts": [ + "rivet-engine-dc-b", + "127.0.0.1", + "localhost" + ] }, { "name": "dc-c", "datacenter_label": 3, "is_leader": false, "peer_url": "http://rivet-engine-dc-c:6421", - "public_url": "http://rivet-engine-dc-c:6420" + "public_url": "http://rivet-engine-dc-c:6420", + "valid_hosts": [ + "rivet-engine-dc-c", + "127.0.0.1", + "localhost" + ] } ] }, diff --git a/engine/docker/dev-multidc/datacenters/dc-c/rivet-engine/config.jsonc b/engine/docker/dev-multidc/datacenters/dc-c/rivet-engine/config.jsonc index 497e2c9d63..95818a2bfb 100644 --- a/engine/docker/dev-multidc/datacenters/dc-c/rivet-engine/config.jsonc +++ b/engine/docker/dev-multidc/datacenters/dc-c/rivet-engine/config.jsonc @@ -17,21 +17,36 @@ "datacenter_label": 1, "is_leader": true, "peer_url": "http://rivet-engine-dc-a:6421", - "public_url": "http://rivet-engine-dc-a:6420" + "public_url": "http://rivet-engine-dc-a:6420", + "valid_hosts": [ + "rivet-engine-dc-a", + "127.0.0.1", + "localhost" + ] }, { "name": "dc-b", "datacenter_label": 2, "is_leader": false, "peer_url": "http://rivet-engine-dc-b:6421", - "public_url": "http://rivet-engine-dc-b:6420" + "public_url": "http://rivet-engine-dc-b:6420", + "valid_hosts": [ + "rivet-engine-dc-b", + "127.0.0.1", + "localhost" + ] }, { "name": "dc-c", "datacenter_label": 3, "is_leader": false, "peer_url": "http://rivet-engine-dc-c:6421", - "public_url": "http://rivet-engine-dc-c:6420" + "public_url": "http://rivet-engine-dc-c:6420", + "valid_hosts": [ + "rivet-engine-dc-c", + "127.0.0.1", + "localhost" + ] } ] }, diff --git a/engine/docker/dev-multinode/rivet-engine/0/config.jsonc b/engine/docker/dev-multinode/rivet-engine/0/config.jsonc index 659d9b0f34..78d35ea7a7 100644 --- a/engine/docker/dev-multinode/rivet-engine/0/config.jsonc +++ b/engine/docker/dev-multinode/rivet-engine/0/config.jsonc @@ -17,7 +17,12 @@ "datacenter_label": 1, "is_leader": true, "peer_url": "http://rivet-engine-0:6421", - "public_url": "http://rivet-engine-0:6420" + "public_url": "http://rivet-engine-0:6420", + "valid_hosts": [ + "rivet-engine-0", + "127.0.0.1", + "localhost" + ] } ] }, diff --git a/engine/docker/dev-multinode/rivet-engine/1/config.jsonc b/engine/docker/dev-multinode/rivet-engine/1/config.jsonc index 659d9b0f34..78d35ea7a7 100644 --- a/engine/docker/dev-multinode/rivet-engine/1/config.jsonc +++ b/engine/docker/dev-multinode/rivet-engine/1/config.jsonc @@ -17,7 +17,12 @@ "datacenter_label": 1, "is_leader": true, "peer_url": "http://rivet-engine-0:6421", - "public_url": "http://rivet-engine-0:6420" + "public_url": "http://rivet-engine-0:6420", + "valid_hosts": [ + "rivet-engine-0", + "127.0.0.1", + "localhost" + ] } ] }, diff --git a/engine/docker/dev-multinode/rivet-engine/2/config.jsonc b/engine/docker/dev-multinode/rivet-engine/2/config.jsonc index 659d9b0f34..78d35ea7a7 100644 --- a/engine/docker/dev-multinode/rivet-engine/2/config.jsonc +++ b/engine/docker/dev-multinode/rivet-engine/2/config.jsonc @@ -17,7 +17,12 @@ "datacenter_label": 1, "is_leader": true, "peer_url": "http://rivet-engine-0:6421", - "public_url": "http://rivet-engine-0:6420" + "public_url": "http://rivet-engine-0:6420", + "valid_hosts": [ + "rivet-engine-0", + "127.0.0.1", + "localhost" + ] } ] }, diff --git a/engine/docker/dev/rivet-engine/config.jsonc b/engine/docker/dev/rivet-engine/config.jsonc index f760c38160..9c5ea86073 100644 --- a/engine/docker/dev/rivet-engine/config.jsonc +++ b/engine/docker/dev/rivet-engine/config.jsonc @@ -17,7 +17,12 @@ "datacenter_label": 1, "is_leader": true, "peer_url": "http://rivet-engine:6421", - "public_url": "http://rivet-engine:6420" + "public_url": "http://rivet-engine:6420", + "valid_hosts": [ + "rivet-engine", + "127.0.0.1", + "localhost" + ] } ] }, diff --git a/engine/docker/template/src/services/edge/rivet-engine.ts b/engine/docker/template/src/services/edge/rivet-engine.ts index b2c712fba9..9e9ae9e5f4 100644 --- a/engine/docker/template/src/services/edge/rivet-engine.ts +++ b/engine/docker/template/src/services/edge/rivet-engine.ts @@ -20,6 +20,7 @@ export function generateDatacenterRivetEngine( is_leader: dc.id === 1, peer_url: `http://${serviceHost}:${API_PEER_PORT}`, public_url: `http://${serviceHost}:${GUARD_PORT}`, + valid_hosts: [`${serviceHost}`, `127.0.0.1`, `localhost`], }); } diff --git a/engine/packages/api-peer/src/actors/list.rs b/engine/packages/api-peer/src/actors/list.rs index 6291e58caf..004eb8715a 100644 --- a/engine/packages/api-peer/src/actors/list.rs +++ b/engine/packages/api-peer/src/actors/list.rs @@ -14,18 +14,25 @@ use rivet_api_types::{actors::list::*, pagination::Pagination}; #[tracing::instrument(skip_all)] pub async fn list(ctx: ApiCtx, _path: (), query: ListQuery) -> Result { let key = query.key; - let actor_ids = query.actor_ids.as_ref().map(|x| { - x.split(',') - .filter_map(|s| s.trim().parse::().ok()) - .collect::>() - }); + let actor_ids = [ + query.actor_id, + query + .actor_ids + .map(|x| { + x.split(',') + .filter_map(|s| s.trim().parse::().ok()) + .collect::>() + }) + .unwrap_or_default(), + ] + .concat(); let include_destroyed = query.include_destroyed.unwrap_or(false); // TODO: Update api-peer to require including the reservation ID in the query if querying with // key in order to assert the request was sent to the correct datacenter // If actor_ids are provided, fetch actors directly by ID - if let Some(actor_ids) = actor_ids { + if !actor_ids.is_empty() { // Resolve namespace to verify actors belong to it let namespace = ctx .op(namespace::ops::resolve_for_name_global::Input { @@ -36,9 +43,7 @@ pub async fn list(ctx: ApiCtx, _path: (), query: ListQuery) -> Result Result { - let namespace_ids = query.namespace_ids.as_ref().map(|x| { - x.split(',') - .filter_map(|s| s.trim().parse::().ok()) - .collect::>() - }); + let namespace_ids = [ + query.namespace_id, + query + .namespace_ids + .map(|x| { + x.split(',') + .filter_map(|s| s.trim().parse::().ok()) + .collect::>() + }) + .unwrap_or_default(), + ] + .concat(); // If name filter is provided, resolve and return only that namespace if let Some(name) = query.name { @@ -30,7 +37,7 @@ pub async fn list(ctx: ApiCtx, _path: (), query: ListQuery) -> Result Result>()) + .unwrap_or_default(), + ] + .concat(); + + if !runner_names.is_empty() { let runner_configs = ctx .op(namespace::ops::runner_config::get::Input { runners: runner_names - .split(',') - .map(|name| (namespace.namespace_id, name.to_string())) + .into_iter() + .map(|name| (namespace.namespace_id, name)) .collect(), bypass_cache: false, }) diff --git a/engine/packages/api-peer/src/runners.rs b/engine/packages/api-peer/src/runners.rs index 2adbbee834..1422101c12 100644 --- a/engine/packages/api-peer/src/runners.rs +++ b/engine/packages/api-peer/src/runners.rs @@ -22,11 +22,20 @@ pub async fn list(ctx: ApiCtx, _path: (), query: ListQuery) -> Result().ok()) - .collect::>(); + let runner_ids = [ + query.runner_id, + query + .runner_ids + .map(|x| { + x.split(',') + .filter_map(|s| s.trim().parse::().ok()) + .collect::>() + }) + .unwrap_or_default(), + ] + .concat(); + + if !runner_ids.is_empty() { let runners = ctx .op(pegboard::ops::runner::get::Input { runner_ids }) .await? diff --git a/engine/packages/api-public/src/actors/list.rs b/engine/packages/api-public/src/actors/list.rs index 4aedf36583..005bc9f350 100644 --- a/engine/packages/api-public/src/actors/list.rs +++ b/engine/packages/api-public/src/actors/list.rs @@ -1,5 +1,6 @@ use anyhow::{Context, Result}; use axum::response::{IntoResponse, Response}; +use gas::prelude::*; use rivet_api_builder::{ ApiError, extract::{Extension, Json, Query}, @@ -18,7 +19,11 @@ pub struct ListQuery { pub namespace: String, pub name: Option, pub key: Option, + /// Deprecated. + #[serde(default)] pub actor_ids: Option, + #[serde(default)] + pub actor_id: Vec, pub include_destroyed: Option, pub limit: Option, pub cursor: Option, @@ -84,7 +89,7 @@ async fn list_inner(ctx: ApiCtx, query: ListQuery) -> Result { // Validate exclusive input: either (name + key) or actor_ids if actor_ids.is_some() && (query.name.is_some() || query.key.is_some()) { return Err(errors::Validation::InvalidInput { - message: "Cannot provide both actor_ids and (name + key). Use either actor_ids or (name + key).".to_string(), + message: "Cannot provide both actor_id and (name + key). Use either actor_id or (name + key).".to_string(), } .build()); } @@ -202,6 +207,7 @@ async fn list_inner(ctx: ApiCtx, query: ListQuery) -> Result { name: Some(query.name.as_ref().unwrap().clone()), key: query.key.clone(), actor_ids: None, + actor_id: Vec::new(), include_destroyed: query.include_destroyed, limit: query.limit, cursor: query.cursor.clone(), diff --git a/engine/packages/api-public/src/actors/utils.rs b/engine/packages/api-public/src/actors/utils.rs index 3fa74e13f7..746e9e8ca7 100644 --- a/engine/packages/api-public/src/actors/utils.rs +++ b/engine/packages/api-public/src/actors/utils.rs @@ -79,19 +79,13 @@ pub async fn fetch_actors_by_ids( let limit = limit; async move { - // Convert actor IDs to comma-separated string - let actor_ids_str = dc_actor_ids - .iter() - .map(|id| id.to_string()) - .collect::>() - .join(","); - // Prepare peer query with actor_ids let peer_query = rivet_api_types::actors::list::ListQuery { namespace: namespace.clone(), name: None, key: None, - actor_ids: Some(actor_ids_str), + actor_ids: None, + actor_id: dc_actor_ids, include_destroyed, limit, cursor: None, diff --git a/engine/packages/api-types/src/actors/list.rs b/engine/packages/api-types/src/actors/list.rs index 1efb53b4af..d7988f1b1c 100644 --- a/engine/packages/api-types/src/actors/list.rs +++ b/engine/packages/api-types/src/actors/list.rs @@ -1,3 +1,4 @@ +use gas::prelude::*; use serde::{Deserialize, Serialize}; use utoipa::{IntoParams, ToSchema}; @@ -8,7 +9,11 @@ pub struct ListQuery { pub namespace: String, pub name: Option, pub key: Option, + /// Deprecated. + #[serde(default)] pub actor_ids: Option, + #[serde(default)] + pub actor_id: Vec, pub include_destroyed: Option, pub limit: Option, pub cursor: Option, diff --git a/engine/packages/api-types/src/namespaces/list.rs b/engine/packages/api-types/src/namespaces/list.rs index bd84b83a45..40bdd29bc9 100644 --- a/engine/packages/api-types/src/namespaces/list.rs +++ b/engine/packages/api-types/src/namespaces/list.rs @@ -1,3 +1,4 @@ +use gas::prelude::*; use serde::{Deserialize, Serialize}; use utoipa::{IntoParams, ToSchema}; @@ -8,8 +9,11 @@ pub struct ListQuery { pub limit: Option, pub cursor: Option, pub name: Option, + /// Deprecated. #[serde(default)] pub namespace_ids: Option, + #[serde(default)] + pub namespace_id: Vec, } #[derive(Serialize, Deserialize, ToSchema)] diff --git a/engine/packages/api-types/src/runner_configs/list.rs b/engine/packages/api-types/src/runner_configs/list.rs index b9ded225d1..f8662fed3d 100644 --- a/engine/packages/api-types/src/runner_configs/list.rs +++ b/engine/packages/api-types/src/runner_configs/list.rs @@ -13,8 +13,11 @@ pub struct ListQuery { pub limit: Option, pub cursor: Option, pub variant: Option, + /// Deprecated. #[serde(default)] pub runner_names: Option, + #[serde(default)] + pub runner_name: Vec, } #[derive(Deserialize, Clone)] diff --git a/engine/packages/api-types/src/runners/list.rs b/engine/packages/api-types/src/runners/list.rs index 0b95489915..8cd976a458 100644 --- a/engine/packages/api-types/src/runners/list.rs +++ b/engine/packages/api-types/src/runners/list.rs @@ -1,3 +1,4 @@ +use gas::prelude::*; use serde::{Deserialize, Serialize}; use utoipa::{IntoParams, ToSchema}; @@ -9,8 +10,11 @@ use crate::pagination::Pagination; pub struct ListQuery { pub namespace: String, pub name: Option, + /// Deprecated. #[serde(default)] pub runner_ids: Option, + #[serde(default)] + pub runner_id: Vec, pub include_stopped: Option, pub limit: Option, pub cursor: Option, diff --git a/engine/packages/bootstrap/Cargo.toml b/engine/packages/bootstrap/Cargo.toml index 89f192869d..11331ca20b 100644 --- a/engine/packages/bootstrap/Cargo.toml +++ b/engine/packages/bootstrap/Cargo.toml @@ -6,7 +6,9 @@ authors.workspace = true license.workspace = true [dependencies] +epoxy.workspace = true gas.workspace = true +namespace.workspace = true rivet-config.workspace = true rivet-metrics.workspace = true rivet-runtime.workspace = true @@ -14,6 +16,3 @@ serde.workspace = true tokio-tungstenite.workspace = true tracing.workspace = true url.workspace = true - -namespace.workspace = true -epoxy.workspace = true diff --git a/engine/packages/engine/Cargo.toml b/engine/packages/engine/Cargo.toml index 5ec6d4b841..b74548bee0 100644 --- a/engine/packages/engine/Cargo.toml +++ b/engine/packages/engine/Cargo.toml @@ -71,4 +71,5 @@ rivet-util.workspace = true rstest.workspace = true tokio-tungstenite.workspace = true tracing-subscriber.workspace = true +urlencoding.workspace = true vbare.workspace = true diff --git a/engine/packages/engine/tests/common/actors.rs b/engine/packages/engine/tests/common/actors.rs index e8105e682b..993f166aa9 100644 --- a/engine/packages/engine/tests/common/actors.rs +++ b/engine/packages/engine/tests/common/actors.rs @@ -1,6 +1,7 @@ #![allow(dead_code, unused_variables)] use serde_json::json; +use url::Url; #[derive(Clone)] pub struct CreateActorOptions { @@ -292,34 +293,36 @@ pub async fn list_actors( guard_port: u16, ) -> reqwest::Response { let client = reqwest::Client::new(); - let mut url = format!( - "http://127.0.0.1:{}/actors?namespace={}", - guard_port, namespace - ); + let mut url = Url::parse(&format!("http://127.0.0.1:{guard_port}/actors")).unwrap(); + let mut query = url.query_pairs_mut(); + + query.append_pair("namespace", namespace); if let Some(name) = name { - url.push_str(&format!("&name={}", name)); + query.append_pair("name", name); } if let Some(key) = key { - url.push_str(&format!("&key={}", key)); + query.append_pair("key", &key); } - if let Some(actor_ids) = actor_ids { - url.push_str(&format!("&actor_ids={}", actor_ids.join(","))); + for actor_id in actor_ids.into_iter().flatten() { + query.append_pair("actor_id", &actor_id); } if let Some(include_destroyed) = include_destroyed { - url.push_str(&format!("&include_destroyed={}", include_destroyed)); + query.append_pair("include_destroyed", &include_destroyed.to_string()); } if let Some(limit) = limit { - url.push_str(&format!("&limit={}", limit)); + query.append_pair("limit", &limit.to_string()); } if let Some(cursor) = cursor { - url.push_str(&format!("&cursor={}", cursor)); + query.append_pair("cursor", cursor); } + drop(query); + tracing::info!(?url, "listing actors"); client - .get(&url) + .get(url) .send() .await .expect("Failed to send list request") diff --git a/engine/packages/epoxy/src/ops/propose.rs b/engine/packages/epoxy/src/ops/propose.rs index 3435aa97d8..81ced977ae 100644 --- a/engine/packages/epoxy/src/ops/propose.rs +++ b/engine/packages/epoxy/src/ops/propose.rs @@ -135,7 +135,7 @@ pub async fn commit( ) -> Result { // Commit locally // - // Receives command error aftoer committing to KV. Proposals are still committed even if there + // Receives command error after committing to KV. Proposals are still committed even if there // is a command error since command errors are purely feedback to the client that the command // was not applied. let cmd_err = { diff --git a/engine/packages/epoxy/tests/common/mod.rs b/engine/packages/epoxy/tests/common/mod.rs index 51bc65f8d6..d6295a9de5 100644 --- a/engine/packages/epoxy/tests/common/mod.rs +++ b/engine/packages/epoxy/tests/common/mod.rs @@ -4,7 +4,6 @@ use epoxy_protocol::protocol::ReplicaId; use gas::prelude::{TestCtx as WorkflowTestCtx, *}; // Note: workflows module no longer exposed in tests use rivet_util::Id; -use serde_json::json; use std::collections::HashMap; use url::Url; @@ -82,9 +81,7 @@ impl TestCtx { // Start coordinator workflow on leader let mut config_sub = test_ctx .get_ctx(leader_id) - .subscribe::( - json!({ "replica": leader_id }), - ) + .subscribe::(("replica", leader_id)) .await .unwrap(); @@ -284,9 +281,7 @@ async fn setup_epoxy_coordinator_wf( // Trigger reconfiguration let mut sub = leader_ctx - .subscribe::( - json!({ "replica": leader_id }), - ) + .subscribe::(("replica", leader_id)) .await?; leader_ctx .signal(epoxy::workflows::coordinator::Reconfigure {}) diff --git a/engine/packages/guard-core/Cargo.toml b/engine/packages/guard-core/Cargo.toml index aa1382ecd4..b29fbcb0e5 100644 --- a/engine/packages/guard-core/Cargo.toml +++ b/engine/packages/guard-core/Cargo.toml @@ -44,7 +44,6 @@ tokio.workspace = true tracing-subscriber = { workspace = true, features = ["env-filter"] } tracing.workspace = true url.workspace = true -uuid = { workspace = true, features = ["v4", "serde"] } # Optional dependencies for ops feature gas = { workspace = true, optional = true } @@ -56,3 +55,4 @@ futures-util.workspace = true futures.workspace = true reqwest.workspace = true tokio-stream.workspace = true +uuid.workspace = true \ No newline at end of file diff --git a/engine/packages/guard-core/tests/custom_serve.rs b/engine/packages/guard-core/tests/custom_serve.rs index af87a82097..3cd3d3eaa5 100644 --- a/engine/packages/guard-core/tests/custom_serve.rs +++ b/engine/packages/guard-core/tests/custom_serve.rs @@ -8,6 +8,7 @@ use bytes::Bytes; use futures_util::{SinkExt, StreamExt}; use http_body_util::Full; use hyper::{Method, Request, Response, StatusCode}; +use rivet_runner_protocol as protocol; use tokio_tungstenite::{connect_async, tungstenite::protocol::Message}; use common::{create_test_config, init_tracing, start_guard}; @@ -17,7 +18,6 @@ use rivet_guard_core::errors::WebSocketServiceHibernate; use rivet_guard_core::proxy_service::{ResponseBody, RoutingFn, RoutingOutput}; use rivet_guard_core::request_context::RequestContext; use tokio_tungstenite::tungstenite::protocol::frame::CloseFrame; -use uuid::Uuid; const HIBERNATION_TIMEOUT: std::time::Duration = std::time::Duration::from_secs(2); @@ -40,6 +40,7 @@ impl CustomServeTrait for TestCustomServe { &self, req: Request>, _request_context: &mut RequestContext, + _unique_request_id: protocol::RequestId, ) -> Result> { // Track this HTTP call let path = req.uri().path().to_string(); @@ -71,7 +72,7 @@ impl CustomServeTrait for TestCustomServe { _headers: &hyper::HeaderMap, _path: &str, _request_context: &mut RequestContext, - _unique_request_id: Uuid, + _unique_request_id: protocol::RequestId, _after_hibernation: bool, ) -> Result> { // Track this WebSocket call @@ -116,7 +117,7 @@ impl CustomServeTrait for TestCustomServe { async fn handle_websocket_hibernation( &self, _websocket: WebSocketHandle, - _unique_request_id: Uuid, + _unique_request_id: protocol::RequestId, ) -> Result { // Track this WebSocket call self.tracker diff --git a/engine/packages/guard/Cargo.toml b/engine/packages/guard/Cargo.toml index f7d8307d43..40ad190457 100644 --- a/engine/packages/guard/Cargo.toml +++ b/engine/packages/guard/Cargo.toml @@ -13,19 +13,19 @@ path = "src/lib.rs" anyhow.workspace = true axum.workspace = true bytes.workspace = true +futures.workspace = true gas.workspace = true -http-body.workspace = true http-body-util.workspace = true +http-body.workspace = true hyper-tungstenite.workspace = true tower.workspace = true -futures.workspace = true # TODO: Make this use workspace version hyper = "1.6.0" indoc.workspace = true once_cell.workspace = true pegboard-gateway.workspace = true -pegboard.workspace = true pegboard-runner.workspace = true +pegboard.workspace = true regex.workspace = true rivet-api-builder.workspace = true rivet-api-public.workspace = true @@ -43,14 +43,10 @@ rustls-pemfile.workspace = true rustls.workspace = true serde_json.workspace = true serde.workspace = true -tokio.workspace = true tokio-tungstenite.workspace = true +tokio.workspace = true tracing.workspace = true universaldb.workspace = true universalpubsub.workspace = true url.workspace = true urlencoding.workspace = true -uuid.workspace = true - -[dev-dependencies] -uuid.workspace = true diff --git a/engine/packages/namespace/Cargo.toml b/engine/packages/namespace/Cargo.toml index c9d6e953e4..9696ecc0a4 100644 --- a/engine/packages/namespace/Cargo.toml +++ b/engine/packages/namespace/Cargo.toml @@ -13,7 +13,6 @@ gas.workspace = true internal.workspace = true reqwest.workspace = true rivet-api-builder.workspace = true -rivet-api-types.workspace = true rivet-api-util.workspace = true rivet-data.workspace = true rivet-error.workspace = true diff --git a/engine/packages/namespace/src/ops/get_global.rs b/engine/packages/namespace/src/ops/get_global.rs index 3ad9f7ae2b..8ee7b6df4b 100644 --- a/engine/packages/namespace/src/ops/get_global.rs +++ b/engine/packages/namespace/src/ops/get_global.rs @@ -39,10 +39,7 @@ pub async fn namespace_get_global(ctx: &OperationCtx, input: &Input) -> Result(res) - .await?; + let res = rivet_api_util::parse_response::(res).await?; for ns in res.namespaces { let namespace_id = ns.namespace_id; @@ -56,3 +53,9 @@ pub async fn namespace_get_global(ctx: &OperationCtx, input: &Input) -> Result, +} diff --git a/engine/packages/namespace/src/ops/resolve_for_name_global.rs b/engine/packages/namespace/src/ops/resolve_for_name_global.rs index c78089b6af..dec633c53d 100644 --- a/engine/packages/namespace/src/ops/resolve_for_name_global.rs +++ b/engine/packages/namespace/src/ops/resolve_for_name_global.rs @@ -38,10 +38,7 @@ pub async fn namespace_resolve_for_name_global( .custom_instrument(tracing::info_span!("namespaces_http_request")) .await?; - let res = rivet_api_util::parse_response::< - rivet_api_types::namespaces::list::ListResponse, - >(res) - .await?; + let res = rivet_api_util::parse_response::(res).await?; let ns = res.namespaces.into_iter().next(); @@ -55,3 +52,9 @@ pub async fn namespace_resolve_for_name_global( .map(|x| x.flatten()) } } + +// TODO: Cyclical dependency with rivet_api_types +#[derive(Deserialize)] +struct ListResponse { + namespaces: Vec, +} diff --git a/engine/packages/pegboard/src/ops/actor/get_for_key.rs b/engine/packages/pegboard/src/ops/actor/get_for_key.rs index 271d1a28d3..3fdbd23210 100644 --- a/engine/packages/pegboard/src/ops/actor/get_for_key.rs +++ b/engine/packages/pegboard/src/ops/actor/get_for_key.rs @@ -78,6 +78,7 @@ pub async fn pegboard_actor_get_for_key(ctx: &OperationCtx, input: &Input) -> Re name: Some(input.name.clone()), key: Some(input.key.clone()), actor_ids: None, + actor_id: Vec::new(), include_destroyed: Some(false), limit: Some(1), cursor: None, diff --git a/engine/packages/pegboard/src/ops/runner/find_dc_with_runner.rs b/engine/packages/pegboard/src/ops/runner/find_dc_with_runner.rs index bb8f3a2efc..c3c969cee9 100644 --- a/engine/packages/pegboard/src/ops/runner/find_dc_with_runner.rs +++ b/engine/packages/pegboard/src/ops/runner/find_dc_with_runner.rs @@ -108,6 +108,7 @@ async fn find_dc_with_runner_inner(ctx: &OperationCtx, input: &Input) -> Result< namespace: namespace.name.clone(), name: Some(input.runner_name.clone()), runner_ids: None, + runner_id: Vec::new(), include_stopped: Some(false), limit: Some(16), cursor: None, @@ -133,7 +134,8 @@ async fn find_dc_with_runner_inner(ctx: &OperationCtx, input: &Input) -> Result< runner_configs_list::ListQuery { namespace: namespace.name.clone(), variant: None, - runner_names: Some(input.runner_name.clone()), + runner_names: None, + runner_name: vec![input.runner_name.clone()], limit: None, cursor: None, },