Carry generic resource options through stream OPEN #59

Open
opened 2026-10-04 17:44:28 +00:00 by kayg · 0 comments
Owner

Problem and evidence

crates/server/src/host_route.rs:580-643 reconstructs provider stream grants only for legacy container Logs and Exec OPENs, with selector: None and previous: false. crates/host-resource-client/src/wire.rs:155-163 likewise serializes only Logs and Exec. Other provider stream capabilities cannot carry their resource address, operation, selector or versioned options through this route.

Recommendation

Add a negotiated generic resource OPEN that carries the exact address, operation, versioned options and selector under the existing signed grant. Reuse the current WebSocket, credit, priority and session-lifecycle machinery.

Payoff and estimate

Provides remote parity for the capabilities the product already approves without another data path. Estimate: 3–5 engineering days, including embedded/mTLS tests and preserving existing container OPEN behavior.

Priority: Next milestone (PLAN step 5).

2026-10-04 owner decisions: Matches the custom v1 tunnel and the requirement to unify embedded and remote paths. Keep one WebSocket path and existing authorization, replay and revocation checks. Related: #49.

Report: arch-review report
Source: arch-review 2026-10-04

## Problem and evidence `crates/server/src/host_route.rs:580-643` reconstructs provider stream grants only for legacy container Logs and Exec OPENs, with `selector: None` and `previous: false`. `crates/host-resource-client/src/wire.rs:155-163` likewise serializes only Logs and Exec. Other provider stream capabilities cannot carry their resource address, operation, selector or versioned options through this route. ## Recommendation Add a negotiated generic resource OPEN that carries the exact address, operation, versioned options and selector under the existing signed grant. Reuse the current WebSocket, credit, priority and session-lifecycle machinery. ## Payoff and estimate Provides remote parity for the capabilities the product already approves without another data path. Estimate: 3–5 engineering days, including embedded/mTLS tests and preserving existing container OPEN behavior. **Priority:** Next milestone (PLAN step 5). **2026-10-04 owner decisions:** Matches the custom v1 tunnel and the requirement to unify embedded and remote paths. Keep one WebSocket path and existing authorization, replay and revocation checks. Related: #49. **Report:** [arch-review report](/mnt/hdd/infraternal/jobs/arch-review/report.md) **Source: arch-review 2026-10-04**
Commenting is not possible because the repository is archived.
No labels
No milestone
No project
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/infraternal-v0#59
No description provided.