feat(sdk/go): complete Go SDK with domain clients, auth, and hardening (Drop B) - #19
feat(sdk/go): complete Go SDK with domain clients, auth, and hardening (Drop B)#19rhuss wants to merge 1 commit into
Conversation
|
Important Review skippedToo many files! This PR contains 278 files, which is 178 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (7)
📒 Files selected for processing (278)
You can disable this status message by setting the Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
2a203d7 to
4a252dc
Compare
Add the Go SDK implementation covering all gateway RPC services with domain-typed clients, comprehensive OIDC authentication flows, fake test doubles, and proto converters. Domain clients: Sandbox, Provider, Exec, File, TCP, SSH, Policy, Profile, Health, Service, Config, Workspace, Inference, Refresh. Each client validates inputs, resolves sandboxes by name, and converts between domain types and proto at the boundary. Auth: OIDC authorization code (PKCE), device code (RFC 8628), and client credentials (RFC 6749 Section 4.4) flows with gateway config auto-resolution. Token refresh with singleflight deduplication and exponential backoff. Edge tunnel proxy for gRPC-over-WebSocket. Gateway: On-disk gateway discovery with user/system directory precedence, lazy token loading, and auth mode mapping. Testing: In-memory fake client with deep-copy isolation, watch broadcasting with filtering, and workspace-scoped object stores. Bufconn-based gRPC tests for all domain clients. Ref: NVIDIA#2044 Signed-off-by: Roland Huß <rhuss@redhat.com>
61f9432 to
3e46ae8
Compare
Summary
Complete the Go SDK contribution (Drop B) building on the foundation from Drop A (PR NVIDIA#2271):
All changes target
sdk/go/. CI integration follows in a subsequent PR.Ref NVIDIA#2044
Reviewer Verification Checklist
cd sdk/go && mise run cipasses (lint + build + test + docs:check)grep -r 'rhuss/openshell-sdk-go' sdk/go/returns zero matchesgit diff --stat | tail -1shows 212 files changedcontext_errors.goexists (renamed fromgrpc_errors.go)conn.gorejects TLS params with plaintext addresssandbox_client.gohascheckTerminalPhasehelperGetOptions,DeleteOptions,UpdateOptions,RetryPolicystructs;CreateOptionskept (actively used with Annotations field)internal/converter/).gofiles have SPDX Apache-2.0 headers; config files have upstream SPDX headersTest plan
mise run cipasses: lint (0 issues), build, test (all packages), proto:check, docs:checkgrep -r 'rhuss/openshell-sdk-go' sdk/go/returns empty)