mirror of
https://github.com/NVIDIA/OpenShell.git
synced 2026-10-15 05:09:44 +08:00
* feat(build): add system CA root mode Allow distro builds to use native trust stores for supervisor upstream TLS while keeping bundled Mozilla roots as the default. Avoid bundled root crates in system-ca-roots builds by using native-root TLS features and z3 0.20. Signed-off-by: Adam Miller <admiller@redhat.com> * fix(build): keep CA root feature in telemetry-off verification The telemetry-off task uses --no-default-features which now disables bundled-ca-roots in addition to telemetry, triggering the compile_error guard. Re-enable bundled-ca-roots explicitly so the task verifies only telemetry compilation. Signed-off-by: Scott Burdine <sburdine@nvidia.com> Signed-off-by: politerealism <burdcat17@gmail.com> * fix(sdk): disable oauth2 default features to prevent webpki-roots leak The bare `oauth2 = "5"` dependency re-enabled default features (rustls-tls → reqwest/rustls-tls → webpki-roots), defeating the system-ca-roots feature gate. Mirror the CLI fix: disable defaults and enable only the `reqwest` feature. Signed-off-by: Quinn Burdine <sburdine@redhat.com> Signed-off-by: politerealism <burdcat17@gmail.com> * refactor(build): simplify CA root selection to single feature toggle Replace mutually exclusive bundled-ca-roots / system-ca-roots features with a single bundled-ca-roots toggle. Disabling it implies system roots via rustls-native-certs, which is now a regular (non-optional) dependency. This fixes cargo --all-features and simplifies the distro build interface from --no-default-features --features system-ca-roots to just --no-default-features. Signed-off-by: Quinn Burdine <sburdine@redhat.com> Signed-off-by: politerealism <burdcat17@gmail.com> * feat(build): add system-ca-roots convenience alias and fix verify task Add a system-ca-roots feature alias on openshell-sandbox that includes all other defaults (telemetry) except bundled-ca-roots, so distro builds can use --no-default-features --features system-ca-roots without manually re-adding unrelated defaults. Update the verify CI task to use the alias and scope checks to the sandbox package. Fix task description to use "build mode" terminology instead of implying a Cargo feature. Signed-off-by: Quinn Burdine <sburdine@redhat.com> Signed-off-by: politerealism <burdcat17@gmail.com> * ci: fix system CA roots step name to use build mode terminology Signed-off-by: Quinn Burdine <sburdine@redhat.com> Signed-off-by: politerealism <burdcat17@gmail.com> * refactor(sandbox): reorder features to place system-ca-roots alias near default Signed-off-by: Quinn Burdine <sburdine@redhat.com> Signed-off-by: politerealism <burdcat17@gmail.com> * fix(proxy): unwrap Result from build_upstream_client_config in tests The function signature changed to return Result but the test call sites were not updated, causing type mismatch compilation errors in CI. Signed-off-by: Quinn Burdine <sburdine@redhat.com> Signed-off-by: politerealism <burdcat17@gmail.com> --------- Signed-off-by: Adam Miller <admiller@redhat.com> Signed-off-by: Scott Burdine <sburdine@nvidia.com> Signed-off-by: politerealism <burdcat17@gmail.com> Signed-off-by: Quinn Burdine <sburdine@redhat.com> Co-authored-by: Adam Miller <admiller@redhat.com>
95 lines
2.5 KiB
TOML
95 lines
2.5 KiB
TOML
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
[package]
|
|
name = "openshell-cli"
|
|
description = "OpenShell CLI tool"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
license.workspace = true
|
|
repository.workspace = true
|
|
|
|
[[bin]]
|
|
name = "openshell"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
openshell-bootstrap = { path = "../openshell-bootstrap" }
|
|
openshell-core = { path = "../openshell-core", default-features = false }
|
|
openshell-policy = { path = "../openshell-policy" }
|
|
openshell-providers = { path = "../openshell-providers" }
|
|
openshell-sdk = { path = "../openshell-sdk" }
|
|
openshell-tui = { path = "../openshell-tui" }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
serde_yml = { workspace = true }
|
|
prost-types = { workspace = true }
|
|
|
|
# Async runtime
|
|
tokio = { workspace = true }
|
|
|
|
# gRPC client
|
|
tonic = { workspace = true, features = ["tls-native-roots"] }
|
|
|
|
# CLI
|
|
chrono = "0.4"
|
|
clap = { workspace = true }
|
|
clap_complete = { workspace = true }
|
|
crossterm = { workspace = true }
|
|
dialoguer = "0.11"
|
|
indicatif = { workspace = true }
|
|
owo-colors = { workspace = true }
|
|
|
|
# HTTP client (health fallback)
|
|
bytes = { workspace = true }
|
|
http-body-util = { workspace = true }
|
|
hyper = { workspace = true }
|
|
hyper-util = { workspace = true }
|
|
hyper-rustls = { version = "0.27", default-features = false, features = ["native-tokio", "http1", "http2", "tls12", "logging", "ring"] }
|
|
rustls = { workspace = true }
|
|
rustls-pemfile = { workspace = true }
|
|
tokio-rustls = { workspace = true }
|
|
tower = { workspace = true }
|
|
reqwest = { workspace = true }
|
|
|
|
# Error handling
|
|
miette = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
anyhow = { workspace = true }
|
|
|
|
# File archiving (tar-over-SSH sync)
|
|
tar = "0.4"
|
|
tempfile = "3"
|
|
|
|
# OIDC/Auth
|
|
oauth2 = { version = "5", default-features = false, features = ["reqwest"] }
|
|
base64 = { workspace = true }
|
|
|
|
# WebSocket (Cloudflare tunnel proxy)
|
|
tokio-tungstenite = { workspace = true }
|
|
|
|
# Streams
|
|
futures = { workspace = true }
|
|
tokio-stream = { workspace = true }
|
|
nix = { workspace = true }
|
|
|
|
# URL parsing
|
|
url = { workspace = true }
|
|
|
|
# Logging
|
|
tracing = { workspace = true }
|
|
tracing-subscriber = { workspace = true }
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dev-dependencies]
|
|
futures = { workspace = true }
|
|
rcgen = { version = "0.13", features = ["crypto", "pem"] }
|
|
reqwest = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
temp-env = "0.3"
|
|
tokio-stream = { workspace = true }
|
|
url = { workspace = true }
|