mirror of
https://github.com/NVIDIA/OpenShell.git
synced 2026-10-29 07:23:25 +08:00
* feat(isolation): publish backend protocol contracts independently of runtime Signed-off-by: Drew Newberry <anewberry@nvidia.com> * feat(isolation): expose trusted launch and registry data contracts Signed-off-by: Drew Newberry <anewberry@nvidia.com> * refactor(isolation): name the required capability sandbox Signed-off-by: Drew Newberry <anewberry@nvidia.com> * refactor(sandbox): align protocol and compute capability names Signed-off-by: Drew Newberry <anewberry@nvidia.com> * refactor(sandbox): finalize public protocol contract names Signed-off-by: Drew Newberry <anewberry@nvidia.com> * feat(isolation)!: activate backend contracts in sandbox runtime and driver selection Signed-off-by: Drew Newberry <anewberry@nvidia.com> * refactor(sandbox): simplify runtime and fix backend example Signed-off-by: Drew Newberry <anewberry@nvidia.com> * refactor(examples): organize WASI backend in Rust Signed-off-by: Drew Newberry <anewberry@nvidia.com> * refactor(sandbox): defer protocol conformance fixtures Signed-off-by: Drew Newberry <anewberry@nvidia.com> * feat(examples): add supervised V8 backend demo Signed-off-by: Drew Newberry <anewberry@nvidia.com> * fix(examples): stream V8 guest output with default policy Signed-off-by: Drew Newberry <anewberry@nvidia.com> * fix(examples): handle V8 rejections and roll back failed launches Signed-off-by: Drew Newberry <anewberry@nvidia.com> * fix(examples): align V8 crypto dependencies with CI AWS-LC Signed-off-by: Drew Newberry <anewberry@nvidia.com> * feat(sandbox): represent Sandbox Protocol operations in protobuf Signed-off-by: Drew Newberry <anewberry@nvidia.com> * refactor(isolation): replace backend traits with RPC clients Signed-off-by: Drew Newberry <anewberry@nvidia.com> * refactor(proto): remove legacy isolation protocol reservations Signed-off-by: Drew Newberry <anewberry@nvidia.com> * refactor(proto): clarify Sandbox Protocol names Signed-off-by: Drew Newberry <anewberry@nvidia.com> * docs(isolation): clarify authentication bootstrap and supervisor APIs Signed-off-by: Drew Newberry <anewberry@nvidia.com> * refactor(isolation): simplify policy enforcement confirmation Signed-off-by: Drew Newberry <anewberry@nvidia.com> * fix(sandbox): rotate launch generations and stabilize retry sessions Signed-off-by: Drew Newberry <anewberry@nvidia.com> * refactor(sandbox): remove redundant backend adapters and TCP flags Signed-off-by: Drew Newberry <anewberry@nvidia.com> * fix(sandbox): repair Docker restarts and macOS lint Signed-off-by: Drew Newberry <anewberry@nvidia.com> * refactor(isolation): simplify RPC contracts and backend registration Signed-off-by: Drew Newberry <anewberry@nvidia.com> * fix(sandbox): deliver TCP denials before closing the RPC Signed-off-by: Drew Newberry <anewberry@nvidia.com> --------- Signed-off-by: Drew Newberry <anewberry@nvidia.com>
36 lines
1.4 KiB
Rust
36 lines
1.4 KiB
Rust
// SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
#![forbid(unsafe_code)]
|
|
|
|
//! Shared data and validation for the Isolation Backend RPC contracts.
|
|
//!
|
|
//! The backend extension interface is defined by `proto/isolation_backend.proto`
|
|
//! and `proto/sandbox_protocol.proto`. The supervisor uses the concrete RPC
|
|
//! client in `openshell-sandbox-backend`; backends implement the generated
|
|
//! services without implementing a parallel Rust backend trait.
|
|
//!
|
|
//! [`contract`] retains validated workload identities, confirmation evidence,
|
|
//! process specifications, and local byte-stream types shared by client and
|
|
//! server. Confirmation and generation checks remain mandatory before launch.
|
|
|
|
/// The agent workload to run inside the boundary.
|
|
///
|
|
/// Carried by [`contract::SandboxContext`] so a backend's `start_agent` takes no
|
|
/// spec; the bound boundary already carries what runs inside it.
|
|
#[derive(Debug, Clone)]
|
|
pub struct AgentSpec {
|
|
/// Entrypoint program.
|
|
pub program: String,
|
|
/// Entrypoint arguments.
|
|
pub args: Vec<String>,
|
|
/// Working directory for the entrypoint, if any.
|
|
pub workdir: Option<String>,
|
|
/// Wall-clock timeout for the entrypoint in seconds (0 = no timeout).
|
|
pub timeout_secs: u64,
|
|
/// Whether the entrypoint runs interactively (inherits the parent pgrp).
|
|
pub interactive: bool,
|
|
}
|
|
|
|
pub mod contract;
|