mirror of
https://github.com/NVIDIA/OpenShell.git
synced 2026-10-17 05:31:16 +08:00
* feat(sdk/go): complete Go SDK with domain clients, auth, and hardening 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: #2044 Signed-off-by: Roland Huß <rhuss@redhat.com> * feat(sdk/go): add gateway client options for logger, timeout, and retry Add WithLogger, WithTimeout, and WithRetryPolicy options to the gateway package's NewClient function. These forward the corresponding Config fields (Logger, Timeout, RetryPolicy) through to the underlying SDK client, giving callers full control over observability, connection timeouts, and retry behavior when constructing clients from on-disk gateway configurations. Also adds RetryPolicy type to types package and extends Config with the three new fields. * fix(mise): sync sccache lock entry Signed-off-by: Drew Newberry <anewberry@nvidia.com> --------- Signed-off-by: Roland Huß <rhuss@redhat.com> Signed-off-by: Drew Newberry <anewberry@nvidia.com> Co-authored-by: Drew Newberry <anewberry@nvidia.com>
180 lines
3.2 KiB
CSS
180 lines
3.2 KiB
CSS
/* OpenShell Go SDK - Custom Typography
|
|
*
|
|
* Font: Inter from Google Fonts CDN
|
|
* Base size: 18px, line-height: 1.7
|
|
* Max content width: 800px
|
|
*/
|
|
|
|
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
|
|
|
|
:root {
|
|
--content-max-width: none;
|
|
}
|
|
|
|
/* Base typography */
|
|
body,
|
|
.content,
|
|
.sidebar {
|
|
font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
}
|
|
|
|
.content {
|
|
font-size: 18px;
|
|
line-height: 1.7;
|
|
max-width: none;
|
|
padding: 0 4em;
|
|
}
|
|
|
|
/* Headings */
|
|
.content h1 {
|
|
font-size: 2em;
|
|
font-weight: 700;
|
|
margin-top: 1.5em;
|
|
margin-bottom: 0.5em;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.content h2 {
|
|
font-size: 1.5em;
|
|
font-weight: 600;
|
|
margin-top: 1.8em;
|
|
margin-bottom: 0.4em;
|
|
line-height: 1.3;
|
|
border-bottom: 1px solid var(--sidebar-separator);
|
|
padding-bottom: 0.3em;
|
|
}
|
|
|
|
.content h3 {
|
|
font-size: 1.25em;
|
|
font-weight: 600;
|
|
margin-top: 1.5em;
|
|
margin-bottom: 0.3em;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.content h4 {
|
|
font-size: 1.1em;
|
|
font-weight: 600;
|
|
margin-top: 1.2em;
|
|
margin-bottom: 0.3em;
|
|
}
|
|
|
|
/* Paragraphs */
|
|
.content p {
|
|
margin-bottom: 1em;
|
|
}
|
|
|
|
/* Code blocks */
|
|
.content pre {
|
|
font-size: 15px;
|
|
line-height: 1.5;
|
|
padding: 0;
|
|
border-radius: 6px;
|
|
margin: 1em 0;
|
|
overflow-x: auto;
|
|
max-width: 100%;
|
|
}
|
|
|
|
.content code {
|
|
font-size: 0.875em;
|
|
padding: 0.15em 0.35em;
|
|
border-radius: 3px;
|
|
}
|
|
|
|
.content pre > code,
|
|
.content pre > code.hljs {
|
|
font-size: 16px;
|
|
padding: 1em 1em !important;
|
|
display: block;
|
|
}
|
|
|
|
/* Tables */
|
|
.content table {
|
|
font-size: 16px;
|
|
width: 100%;
|
|
margin: 1em 0;
|
|
border-collapse: collapse;
|
|
}
|
|
|
|
.content th {
|
|
font-weight: 600;
|
|
text-align: left;
|
|
padding: 0.6em 1em;
|
|
border-bottom: 2px solid var(--sidebar-separator);
|
|
}
|
|
|
|
.content td {
|
|
padding: 0.5em 1em;
|
|
border-bottom: 1px solid var(--sidebar-separator);
|
|
}
|
|
|
|
/* Sidebar adjustments */
|
|
.sidebar .sidebar-scrollbox {
|
|
font-size: 17px;
|
|
}
|
|
|
|
/* Hide chapter numbers (mdBook 0.5.x uses <strong> inside links) */
|
|
.sidebar ol.chapter li.chapter-item a > strong {
|
|
display: none;
|
|
}
|
|
|
|
/* Main sidebar items */
|
|
.sidebar ol.chapter li.chapter-item {
|
|
line-height: 1.7;
|
|
margin: 0;
|
|
padding: 0;
|
|
padding-left: 1em;
|
|
}
|
|
|
|
/* On-this-page sub-navigation */
|
|
.sidebar .on-this-page li {
|
|
line-height: 1.8;
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
.sidebar .on-this-page {
|
|
margin-top: 0.3em;
|
|
}
|
|
|
|
.sidebar .on-this-page ol.section {
|
|
padding-left: 1em;
|
|
margin: 0;
|
|
}
|
|
|
|
/* Section headers: clear visual break */
|
|
.sidebar ol.chapter li.part-title {
|
|
margin-top: 1.2em;
|
|
margin-bottom: 0.4em;
|
|
padding-bottom: 0.2em;
|
|
font-weight: 700;
|
|
font-size: 1.15em;
|
|
letter-spacing: 0.03em;
|
|
opacity: 0.9;
|
|
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
|
|
}
|
|
|
|
/* Lists */
|
|
.content li {
|
|
margin-bottom: 0.3em;
|
|
}
|
|
|
|
/* Navigation arrows: smaller, less intrusive */
|
|
.nav-chapters {
|
|
font-size: 2em;
|
|
max-width: 40px;
|
|
opacity: 0.4;
|
|
}
|
|
|
|
.nav-chapters:hover {
|
|
opacity: 0.8;
|
|
}
|
|
|
|
/* Blockquotes */
|
|
.content blockquote {
|
|
margin: 1em 0;
|
|
padding: 0.5em 1.2em;
|
|
border-left: 4px solid var(--sidebar-separator);
|
|
font-style: normal;
|
|
}
|