From: Wolfgang Bumiller <w.bumiller@proxmox.com>
To: Christian Ebner <c.ebner@proxmox.com>
Cc: pbs-devel@lists.proxmox.com
Subject: Re: [PATCH proxmox v3 1/2] http: move http proxy schema from PBS to crate's api types
Date: Tue, 24 Mar 2026 16:26:06 +0100 [thread overview]
Message-ID: <3hjhlavwqmpqrv5s4lofq2vtdtu7e6gvlcwie5sght6l3xtccu@k3ddseqa3n3w> (raw)
In-Reply-To: <20260312114208.514373-2-c.ebner@proxmox.com>
On Thu, Mar 12, 2026 at 12:42:01PM +0100, Christian Ebner wrote:
> The http proxy schema is used in combination with the ProxyConfig for
> verification, the latter being part of the crate already.
>
> Move also the schema to the crate and guard it behind a api-types
> feature to allow for conditional compilation thereof.
>
> This will easy refactoring the node config in PBS.
>
> Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
> ---
> proxmox-http/Cargo.toml | 2 ++
> proxmox-http/debian/control | 18 ++++++++++++++++++
> proxmox-http/src/lib.rs | 8 +++++---
> proxmox-http/src/proxy_config.rs | 16 ++++++++++++++++
> 4 files changed, 41 insertions(+), 3 deletions(-)
>
> diff --git a/proxmox-http/Cargo.toml b/proxmox-http/Cargo.toml
> index 61a45d1c..f8dde588 100644
> --- a/proxmox-http/Cargo.toml
> +++ b/proxmox-http/Cargo.toml
> @@ -33,6 +33,7 @@ url = { workspace = true, optional = true }
> proxmox-async = { workspace = true, optional = true }
> proxmox-base64 = { workspace = true, optional = true }
> proxmox-rate-limiter = { workspace = true, optional = true, features = [ "rate-limiter" ] }
> +proxmox-schema = { workspace = true, optional = true, features = ["api-types"] }
You don't seem to be using the `api-types` feature of `proxmox-schema`.
> proxmox-sys = { workspace = true, optional = true }
> proxmox-io = { workspace = true, optional = true }
> proxmox-lang = { workspace = true, optional = true }
> @@ -89,6 +90,7 @@ client = [
> client-sync = [ "client-trait", "http-helpers", "dep:ureq", "dep:native-tls" ]
> client-trait = [ "dep:http" ]
> http-helpers = [ "dep:http", "dep:proxmox-base64", "dep:proxmox-sys", "dep:serde_json", "dep:url" ]
> +api-types = [ "dep:http", "dep:proxmox-schema", "dep:serde_json", "dep:url" ]
> websocket = [
> "dep:futures",
> "dep:http",
> diff --git a/proxmox-http/debian/control b/proxmox-http/debian/control
> index 92daac47..b30c3e61 100644
> --- a/proxmox-http/debian/control
> +++ b/proxmox-http/debian/control
> @@ -21,6 +21,7 @@ Depends:
> ${misc:Depends},
> librust-anyhow-1+default-dev
> Suggests:
> + librust-proxmox-http+api-types-dev (= ${binary:Version}),
> librust-proxmox-http+body-dev (= ${binary:Version}),
> librust-proxmox-http+client-dev (= ${binary:Version}),
> librust-proxmox-http+client-sync-dev (= ${binary:Version}),
> @@ -40,6 +41,23 @@ Provides:
> Description: Proxmox HTTP library - Rust source code
> Source code for Debianized Rust crate "proxmox-http"
>
> +Package: librust-proxmox-http+api-types-dev
> +Architecture: any
> +Multi-Arch: same
> +Depends:
> + ${misc:Depends},
> + librust-proxmox-http-dev (= ${binary:Version}),
> + librust-http-1+default-dev,
> + librust-proxmox-schema-5+api-types-dev (>= 5.0.1-~~),
> + librust-proxmox-schema-5+default-dev (>= 5.0.1-~~)
> +Provides:
> + librust-proxmox-http-1+api-types-dev (= ${binary:Version}),
> + librust-proxmox-http-1.0+api-types-dev (= ${binary:Version}),
> + librust-proxmox-http-1.0.5+api-types-dev (= ${binary:Version})
> +Description: Proxmox HTTP library - feature "api-types"
> + This metapackage enables feature "api-types" for the Rust proxmox-http crate,
> + by pulling in any additional dependencies needed by that feature.
> +
> Package: librust-proxmox-http+body-dev
> Architecture: any
> Multi-Arch: same
> diff --git a/proxmox-http/src/lib.rs b/proxmox-http/src/lib.rs
> index 406f5b8b..79caa23e 100644
> --- a/proxmox-http/src/lib.rs
> +++ b/proxmox-http/src/lib.rs
> @@ -5,13 +5,15 @@
> #[cfg(feature = "websocket")]
> pub mod websocket;
>
> -#[cfg(feature = "http-helpers")]
> +#[cfg(any(feature = "http-helpers", feature = "api-types"))]
> pub mod uri;
>
> -#[cfg(feature = "http-helpers")]
> +#[cfg(any(feature = "http-helpers", feature = "api-types"))]
> pub mod proxy_config;
> -#[cfg(feature = "http-helpers")]
> +#[cfg(any(feature = "http-helpers", feature = "api-types"))]
> pub use proxy_config::ProxyConfig;
> +#[cfg(feature = "api-types")]
> +pub use proxy_config::HTTP_PROXY_SCHEMA;
>
> #[cfg(feature = "http-helpers")]
> mod http_options;
> diff --git a/proxmox-http/src/proxy_config.rs b/proxmox-http/src/proxy_config.rs
> index 7ec68998..8bec3acd 100644
> --- a/proxmox-http/src/proxy_config.rs
> +++ b/proxmox-http/src/proxy_config.rs
> @@ -6,6 +6,9 @@ use anyhow::{bail, format_err, Error};
>
> use http::Uri;
>
> +#[cfg(feature = "api-types")]
> +use proxmox_schema::{ApiStringFormat, Schema, StringSchema};
> +
> use crate::uri::build_authority;
>
> /// HTTP Proxy Configuration
> @@ -88,3 +91,16 @@ impl ProxyConfig {
> })
> }
> }
> +
> +#[cfg(feature = "api-types")]
> +/// Schema for the http proxy configuration
> +pub const HTTP_PROXY_SCHEMA: Schema =
> + StringSchema::new("HTTP proxy configuration [http://]<host>[:port]")
> + .format(&ApiStringFormat::VerifyFn(|s| {
> + ProxyConfig::parse_proxy_url(s)?;
> + Ok(())
> + }))
> + .min_length(1)
> + .max_length(128)
> + .type_text("[http://]<host>[:port]")
> + .schema();
> --
> 2.47.3
next prev parent reply other threads:[~2026-03-24 15:26 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-12 11:42 [PATCH proxmox{,-backup} v3 0/8] fix #6716: Add support for http proxy configuration for S3 endpoints Christian Ebner
2026-03-12 11:42 ` [PATCH proxmox v3 1/2] http: move http proxy schema from PBS to crate's api types Christian Ebner
2026-03-24 15:26 ` Wolfgang Bumiller [this message]
2026-03-12 11:42 ` [PATCH proxmox v3 2/2] pbs-api-types: move over NodeConfig and related api type from PBS Christian Ebner
2026-03-12 11:42 ` [PATCH proxmox-backup v3 1/6] pbs-config: use http proxy schema moved to proxmox-http crate Christian Ebner
2026-03-12 11:42 ` [PATCH proxmox-backup v3 2/6] config: inline NodeConfig::validate() to its only call side Christian Ebner
2026-03-12 11:42 ` [PATCH proxmox-backup v3 3/6] config: use moved NodeConfig definitions in pbs-api-types Christian Ebner
2026-03-12 11:42 ` [PATCH proxmox-backup v3 4/6] tools: drop unused from_property_string() helper Christian Ebner
2026-03-12 11:42 ` [PATCH proxmox-backup v3 5/6] config: move node config into pbs-config, including helper tools Christian Ebner
2026-03-23 14:44 ` Fabian Grünbichler
2026-03-12 11:42 ` [PATCH proxmox-backup v3 6/6] fix #6716: pass node http proxy config to s3 backend Christian Ebner
2026-03-23 14:44 ` [PATCH proxmox{,-backup} v3 0/8] fix #6716: Add support for http proxy configuration for S3 endpoints Fabian Grünbichler
2026-03-27 12:14 ` superseded: " Christian Ebner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3hjhlavwqmpqrv5s4lofq2vtdtu7e6gvlcwie5sght6l3xtccu@k3ddseqa3n3w \
--to=w.bumiller@proxmox.com \
--cc=c.ebner@proxmox.com \
--cc=pbs-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox