diff --git a/gateway/Cargo.lock b/gateway/Cargo.lock index b28100eb..9bf30a3b 100644 --- a/gateway/Cargo.lock +++ b/gateway/Cargo.lock @@ -286,18 +286,6 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" -[[package]] -name = "aws-credential-types" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e93964ffdaf57857f544be3666a5f57570bb699e934700f11b49708f61bb556e" -dependencies = [ - "aws-smithy-async", - "aws-smithy-runtime-api", - "aws-smithy-types", - "zeroize", -] - [[package]] name = "aws-lc-rs" version = "1.18.1" @@ -322,66 +310,6 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "aws-smithy-async" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f02e407fb3b54891734224b9ffac8a71fdd35f542500fa1af95754a6b2beb316" -dependencies = [ - "futures-util", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "aws-smithy-runtime-api" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bb0deb40a69de59f7809251cfe1ab16de135f42c49d222d1202b4d0ce19720f" -dependencies = [ - "aws-smithy-async", - "aws-smithy-runtime-api-macros", - "aws-smithy-types", - "bytes", - "http", - "pin-project-lite", - "tokio", - "tracing", - "zeroize", -] - -[[package]] -name = "aws-smithy-runtime-api-macros" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "221eaa237ddf1ca79b60d1372aad77e47f9c0ea5b3ce5099da8c61d027dc77b3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.119", -] - -[[package]] -name = "aws-smithy-types" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69bb407740a197147da48238ecc94498493c9e85445732360cec180296ca45f1" -dependencies = [ - "base64-simd", - "bytes", - "bytes-utils", - "http", - "http-body", - "http-body-util", - "itoa", - "num-integer", - "pin-project-lite", - "pin-utils", - "ryu", - "serde", - "time", -] - [[package]] name = "backon" version = "1.6.0" @@ -403,16 +331,6 @@ version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" -[[package]] -name = "base64-simd" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195" -dependencies = [ - "outref", - "vsimd", -] - [[package]] name = "better_any" version = "0.2.1" @@ -425,7 +343,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" dependencies = [ - "bit-vec 0.8.0", + "bit-vec", ] [[package]] @@ -434,15 +352,6 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" -[[package]] -name = "bit-vec" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b71798fca2c1fe1086445a7258a4bc81e6e49dcd24c8d0dd9a1e57395b603f51" -dependencies = [ - "serde", -] - [[package]] name = "bitflags" version = "1.3.2" @@ -551,16 +460,6 @@ version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" -[[package]] -name = "bytes-utils" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dafe3a8757b027e2be6e4e5601ed563c55989fcf1546e933c66c8eb3a058d35" -dependencies = [ - "bytes", - "either", -] - [[package]] name = "camino" version = "1.2.6" @@ -692,9 +591,7 @@ version = "0.1.4" dependencies = [ "openssl", "pem 4.0.0", - "rcgen", "rustls", - "sha2 0.10.9", "thiserror", "time", "x509-parser", @@ -867,6 +764,12 @@ dependencies = [ "tiny-keccak", ] +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + [[package]] name = "core-foundation" version = "0.9.4" @@ -2646,12 +2549,6 @@ dependencies = [ "syn 2.0.119", ] -[[package]] -name = "outref" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e" - [[package]] name = "parking" version = "2.2.1" @@ -2762,12 +2659,6 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - [[package]] name = "pkg-config" version = "0.3.34" @@ -2827,20 +2718,23 @@ dependencies = [ [[package]] name = "praxis-ai-apis" -version = "0.4.1" -source = "git+https://github.com/praxis-proxy/ai.git?tag=v0.4.1#b9d6016764888e02dc049ec088496b10b7e886c1" +version = "0.5.0" +source = "git+https://github.com/praxis-proxy/ai.git?rev=17b41771fcd53b22ab5c6f9badede0de9021404c#17b41771fcd53b22ab5c6f9badede0de9021404c" dependencies = [ "async-trait", "base64 0.23.1", "bytes", + "crc32fast", "futures", "http", "openssl", "percent-encoding", + "praxis-ai-store", "praxis-proxy-core", "praxis-proxy-filter", "praxis-proxy-tls", "quixotic-plecostomus-core", + "regex", "secrecy", "serde", "serde_json", @@ -2853,12 +2747,11 @@ dependencies = [ [[package]] name = "praxis-ai-filters" -version = "0.4.1" -source = "git+https://github.com/praxis-proxy/ai.git?tag=v0.4.1#b9d6016764888e02dc049ec088496b10b7e886c1" +version = "0.5.0" +source = "git+https://github.com/praxis-proxy/ai.git?rev=17b41771fcd53b22ab5c6f9badede0de9021404c#17b41771fcd53b22ab5c6f9badede0de9021404c" dependencies = [ "arc-swap", "async-trait", - "aws-credential-types", "base64 0.23.1", "bytes", "chrono", @@ -2883,30 +2776,35 @@ dependencies = [ "zeroize", ] +[[package]] +name = "praxis-ai-store" +version = "0.5.0" +source = "git+https://github.com/praxis-proxy/ai.git?rev=17b41771fcd53b22ab5c6f9badede0de9021404c#17b41771fcd53b22ab5c6f9badede0de9021404c" +dependencies = [ + "async-trait", + "dashmap", + "serde", + "serde_json", +] + [[package]] name = "praxis-policy" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a8ca4ee31652a41abaa513e7ba83ff2720bd049f206dbf03d8004ed2cc632b" +checksum = "c29127807143a63fa3945ce53eb12f7d8c9d1054f50212ddeeea40cb5f04b476" dependencies = [ "praxis-policy-apl-cmf", "praxis-policy-apl-core", "praxis-policy-apl-runtime", + "praxis-policy-builtins", "praxis-policy-core", - "praxis-policy-pdp-cedar-direct", - "praxis-policy-pdp-cel", - "praxis-policy-pdp-opa", - "praxis-policy-plugin-delegator-oauth", - "praxis-policy-plugin-elicitation-ciba", - "praxis-policy-plugin-identity-jwt", - "praxis-policy-session-valkey", ] [[package]] name = "praxis-policy-apl-cmf" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73fb7174cbfb3910333da6785c0a334197545b74795f4c3c2a4529121d36f323" +checksum = "936c4d020239bec0ce98668dd64911e7c7f955d4d0d84c05459e298715cc86d4" dependencies = [ "praxis-policy-apl-core", "praxis-policy-core", @@ -2915,9 +2813,9 @@ dependencies = [ [[package]] name = "praxis-policy-apl-core" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d623aaac798c46ef6b65bc20687260c8e81b78c3dc8f21e4842f21bc7cf117ed" +checksum = "4904bf1243f151b5d5863362f819be52603eb049db50aedb3afd2156499ee9ed" dependencies = [ "async-trait", "futures", @@ -2925,16 +2823,16 @@ dependencies = [ "regex", "serde", "serde_json", - "serde_yaml", "thiserror", "tokio", + "yaml_serde", ] [[package]] name = "praxis-policy-apl-runtime" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "085dab775f296ef4bab474b88f3658a29712e15c57c9638a9297acea468c75a4" +checksum = "fd4cd985fca958142381efbe765ce54248bb187bf097a752b68c62251ce0fbbc" dependencies = [ "async-trait", "chrono", @@ -2942,172 +2840,89 @@ dependencies = [ "praxis-policy-apl-core", "praxis-policy-core", "serde_json", - "serde_yaml", - "sha2 0.11.0", + "sha2", "thiserror", "tokio", "tracing", + "yaml_serde", ] [[package]] -name = "praxis-policy-core" -version = "0.3.1" +name = "praxis-policy-builtins" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a42d7b1ba4144ba03fe67a43a2310993a9f86505f1b2664cb012202b3e02453" +checksum = "f3594abb9927fc58e15b50847cf51389b7975ed9607b11925f965da0f06e99db" dependencies = [ "arc-swap", "async-trait", + "base64 0.23.1", "bytes", - "chrono", - "hashbrown 0.17.1", - "http", - "praxis-policy-orchestration", - "serde", - "serde_json", - "serde_yaml", - "thiserror", - "tokio", - "tokio-util", - "tracing", - "uuid", - "wildmatch", - "zeroize", -] - -[[package]] -name = "praxis-policy-orchestration" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83adb04a772578fd76807ac80a228bc79f97484713228942e1ac1f76f55a9897" -dependencies = [ - "futures", - "tokio", -] - -[[package]] -name = "praxis-policy-pdp-cedar-direct" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d4f2fa4c3ce1e3e7b996331a8072a1325702bef9dee747b1e14a16c8cceffab" -dependencies = [ - "async-trait", "cedar-policy", - "praxis-policy-apl-core", - "serde_json", - "serde_yaml", - "stacker", - "thiserror", -] - -[[package]] -name = "praxis-policy-pdp-cel" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14b5e6d4c0953c9d05635bda377c2e28aca3a6bcee55ac9ca078fd46ecd8eb96" -dependencies = [ - "async-trait", "cel", - "praxis-policy-apl-core", - "serde_yaml", - "thiserror", - "tracing", -] - -[[package]] -name = "praxis-policy-pdp-opa" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ffca5e5784a03278f8bb11816aa232d45622b3651ce6db9d5ac5269fff9aac2" -dependencies = [ - "async-trait", - "praxis-policy-apl-core", - "regorus", - "serde_json", - "serde_yaml", - "thiserror", - "tokio", - "tracing", -] - -[[package]] -name = "praxis-policy-plugin-delegator-oauth" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62a4b7b75abdd7cab397ea48386abd66f378ef9bea4d3d2a9a9604211e43b2f" -dependencies = [ - "async-trait", - "base64 0.23.1", "chrono", + "deadpool-redis", + "futures", "getrandom 0.4.3", "hmac", + "jsonwebtoken", "moka", + "praxis-policy-apl-core", + "praxis-policy-apl-runtime", "praxis-policy-core", + "redis", + "regorus", "serde", "serde_json", - "sha2 0.11.0", + "sha2", + "stacker", + "thiserror", "tokio", "tracing", + "url", + "yaml_serde", "zeroize", ] [[package]] -name = "praxis-policy-plugin-elicitation-ciba" -version = "0.3.1" +name = "praxis-policy-core" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "127173c6290d19aa85b044b173bb2c20b38c15a9953d5c794297012611c260ba" +checksum = "e6e92e0efaa06b49c0b0fc44e0e44cd12cbc95e81ce7c70ac191c4a6940d7475" dependencies = [ + "arc-swap", "async-trait", - "base64 0.23.1", + "bytes", "chrono", - "praxis-policy-core", + "hashbrown 0.17.1", + "http", + "praxis-policy-orchestration", "serde", "serde_json", + "thiserror", "tokio", + "tokio-util", + "tracing", + "uuid", + "wildmatch", + "yaml_serde", "zeroize", ] [[package]] -name = "praxis-policy-plugin-identity-jwt" -version = "0.3.1" +name = "praxis-policy-orchestration" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d123c9325791463fd88f03e028d484e81cd91bafd7b3fff081aa78e89e4e4f1d" +checksum = "68bf14dc4bbff55bf6357733d76f1320343e69339c366b22b6b3bc6ff2707586" dependencies = [ - "async-trait", - "base64 0.23.1", - "chrono", "futures", - "jsonwebtoken", - "praxis-policy-core", - "serde", - "serde_json", - "tokio", - "tracing", -] - -[[package]] -name = "praxis-policy-session-valkey" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0559a3cc86f7528cb7d28a4b5a9ba4751d8f6855698a2a4bc752a3fcc04cdf67" -dependencies = [ - "async-trait", - "deadpool-redis", - "praxis-policy-apl-runtime", - "redis", - "serde", - "serde_yaml", - "sha2 0.11.0", - "thiserror", "tokio", - "tracing", - "url", ] [[package]] name = "praxis-proxy" -version = "0.7.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17129b0b04fc21f0d9d9687d1fd5c697eafa866fa0085b18b7aeaa2790080b44" +checksum = "b6f402714db9ad19f8d7ab47b1dec83533412d0f3fd1b214a6d55606a66a8bfc" dependencies = [ "cargo_metadata", "clap", @@ -3127,9 +2942,9 @@ dependencies = [ [[package]] name = "praxis-proxy-core" -version = "0.7.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef5ed70124f3d5e89bcb61924fdcd0ad611f0c4c981a9b3e62bb45233bff8d53" +checksum = "be9a64d340db0f296e91b71aedebeb2b612d9c227879c0406b05ac211030b2d0" dependencies = [ "bytes", "chrono", @@ -3153,9 +2968,9 @@ dependencies = [ [[package]] name = "praxis-proxy-filter" -version = "0.7.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "561a7bf857ff1c673ae74362e18ed8f4c2ce903406b0d9fe093dc43705572c87" +checksum = "47953af135b13051fb858fc8a47ef1f85c195a842d878d094e062004fd8644d8" dependencies = [ "arc-swap", "async-trait", @@ -3187,9 +3002,9 @@ dependencies = [ [[package]] name = "praxis-proxy-protocol" -version = "0.7.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "023dcec07bb35f9cc15c892aa1b3f6ca0e4f44b3fdb610a2b6e69abf2a4a697f" +checksum = "ddf2ff46c78f58f444459394b470b5b25c7bd4ba76ff82c2b9d6ae211207cf82" dependencies = [ "arc-swap", "async-trait", @@ -3216,9 +3031,9 @@ dependencies = [ [[package]] name = "praxis-proxy-tls" -version = "0.7.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99a3391cc07ff6061392a8a77f926451953ed557daaa7cc6b117a6b7bf0975c1" +checksum = "b79d96e17d8d3c65da4c42cfe5ce8f9f7b1380940cd080f728234af6a1c4158e" dependencies = [ "arc-swap", "notify", @@ -3635,20 +3450,6 @@ dependencies = [ "bitflags 2.13.2", ] -[[package]] -name = "rcgen" -version = "0.14.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8774e05a7d0de114588e6a28fe7e71694b82614ed569d86d8b389dfbc98b8ad8" -dependencies = [ - "pem 4.0.0", - "ring", - "rustls-pki-types", - "time", - "x509-parser", - "yasna", -] - [[package]] name = "redis" version = "1.7.1" @@ -3738,9 +3539,9 @@ checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" [[package]] name = "regorus" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cc4dc91481b1d4001ba7f2e81f7faf674142e0ac36d37d79e5f02764d06571e" +checksum = "94d90cbdbc4d2900378cf7dbb0c8df85a28e6de07fad75c60cd4d73283eded23" dependencies = [ "anyhow", "chrono", @@ -3760,11 +3561,12 @@ dependencies = [ "semver", "serde", "serde_json", - "serde_yaml", "spin", "thiserror", "url", "uuid", + "vstd", + "yaml_serde", ] [[package]] @@ -4118,19 +3920,6 @@ dependencies = [ "syn 3.0.6", ] -[[package]] -name = "serde_yaml" -version = "0.9.34+deprecated" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" -dependencies = [ - "indexmap 2.14.2", - "itoa", - "ryu", - "serde", - "unsafe-libyaml", -] - [[package]] name = "sfv" version = "0.10.4" @@ -4142,17 +3931,6 @@ dependencies = [ "rust_decimal", ] -[[package]] -name = "sha2" -version = "0.10.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" -dependencies = [ - "cfg-if", - "cpufeatures 0.2.17", - "digest 0.10.7", -] - [[package]] name = "sha2" version = "0.11.0" @@ -4759,12 +4537,6 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" -[[package]] -name = "unsafe-libyaml" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" - [[package]] name = "untrusted" version = "0.7.1" @@ -4833,10 +4605,69 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] -name = "vsimd" -version = "0.8.0" +name = "verus_builtin" +version = "0.0.0-2026-08-09-0044" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5f2985ebd252c492375e32f2bfcff6e6a04523009a0d624785d3468f3729158" + +[[package]] +name = "verus_builtin_macros" +version = "0.0.0-2026-08-23-0033" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62f5b1ed2151955cfe25ebfc1382ab422ae004e5cda6c502871425cc9e2ad5f3" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "syn 2.0.119", + "synstructure 0.13.2", + "verus_prettyplease", + "verus_syn", +] + +[[package]] +name = "verus_prettyplease" +version = "0.0.0-2026-08-09-0044" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51fc115de5fb3806bc362060bb683024660ed2bc13c1183d1f01d464e4537139" +dependencies = [ + "proc-macro2", + "verus_syn", +] + +[[package]] +name = "verus_state_machines_macros" +version = "0.0.0-2026-08-02-0125" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93f77ff8d121edb1bf2651335769a80a2f611da8573c3b498434a66b3162805f" +dependencies = [ + "indexmap 2.14.2", + "proc-macro2", + "quote", + "verus_syn", +] + +[[package]] +name = "verus_syn" +version = "0.0.0-2026-08-02-0125" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f17237ea6d267e457d53ce36f55b315fc9edd26eb88c765dd95e035c0b415869" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "vstd" +version = "0.0.0-2026-08-23-0033" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" +checksum = "93b32ef60c0a4ce7d85691135c15fada7ab84b2c1471322d320fba313190e2e9" +dependencies = [ + "verus_builtin", + "verus_builtin_macros", + "verus_state_machines_macros", +] [[package]] name = "walkdir" @@ -5212,7 +5043,6 @@ dependencies = [ "lazy_static", "nom", "oid-registry", - "ring", "rusticata-macros", "thiserror", "time", @@ -5243,16 +5073,6 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" -[[package]] -name = "yasna" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5f6765e852b9b4dc8e2a76843e4d64d1cea8e79bcde0b6901aea8e7c7f08282" -dependencies = [ - "bit-vec 0.9.1", - "time", -] - [[package]] name = "yoke" version = "0.8.3" diff --git a/gateway/Cargo.toml b/gateway/Cargo.toml index 2c734c81..e36c2b44 100644 --- a/gateway/Cargo.toml +++ b/gateway/Cargo.toml @@ -308,10 +308,10 @@ name = "grid-gateway" path = "src/main.rs" [dependencies] -praxis-proxy = { version = "0.7.1", features = ["spiffe"] } -praxis-proxy-filter = "0.7.1" -praxis-proxy-core = "0.7.1" -praxis-ai-filters = { git = "https://github.com/praxis-proxy/ai.git", tag = "v0.4.1" } +praxis-proxy = { version = "0.7.3", features = ["spiffe"] } +praxis-proxy-filter = "0.7.3" +praxis-proxy-core = "0.7.3" +praxis-ai-filters = { git = "https://github.com/praxis-proxy/ai.git", rev = "17b41771fcd53b22ab5c6f9badede0de9021404c", default-features = false } ai-grid-filters = { path = "ai-grid-filters" } tracing = "0.1.44" diff --git a/scripts/e2e-hub-site.sh b/scripts/e2e-hub-site.sh index b64adb8d..45844dbf 100755 --- a/scripts/e2e-hub-site.sh +++ b/scripts/e2e-hub-site.sh @@ -540,8 +540,9 @@ assert_serving() { # The backend serves /health, so a 404 here is the gateway refusing it. refused_path "disallowed path /health" 404 /health - refused_path "traversal /v1/models/../../health" 404 /v1/models/../../health - refused_path "encoded traversal /v1/models/%2e%2e/%2e%2e/health" 404 /v1/models/%2e%2e/%2e%2e/health + # praxis rejects dot-dot segments with 400 before routing. + refused_path "traversal /v1/models/../../health" 400 /v1/models/../../health + refused_path "encoded traversal /v1/models/%2e%2e/%2e%2e/health" 400 /v1/models/%2e%2e/%2e%2e/health refused_path "prefix boundary /v1/modelsX" 404 /v1/modelsX refused_path "method DELETE /v1/models" 405 /v1/models -X DELETE