mirror of
https://github.com/NVIDIA/OpenShell.git
synced 2026-10-19 05:50:41 +08:00
* feat(providers): add credential refresh foundation * feat(providers): mint oauth refresh token credentials * fix(providers): allow delegated refresh bootstrap * fix(providers): guard refresh credential modes * fix(providers): refine refresh lifecycle UX * fix(cli): restore provider test gateway response import * fix(server): clean auth endpoint test qualifications * fix(providers): tighten refresh authorization and collisions * chore(providers): trim bundled v2 profiles * fix(providers): resolve refresh rebase fallout * fix(cli): accept rfc3339 credential expiry * test(providers): update inferred claude provider type * test(providers): avoid removed outlook default profile * test(providers): isolate attach limit fixtures
45 lines
1.6 KiB
Protocol Buffer
45 lines
1.6 KiB
Protocol Buffer
// SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
syntax = "proto3";
|
|
|
|
package openshell.datamodel.v1;
|
|
|
|
// Kubernetes-style metadata shared by all top-level OpenShell domain objects.
|
|
//
|
|
// This structure provides consistent metadata (identity, labels, timestamps,
|
|
// resource versioning) across Sandbox, Provider, SshSession, and other resources.
|
|
message ObjectMeta {
|
|
// Stable object ID generated by the gateway.
|
|
string id = 1;
|
|
|
|
// Human-readable object name (unique per object type).
|
|
string name = 2;
|
|
|
|
// Milliseconds since Unix epoch when the object was created.
|
|
int64 created_at_ms = 3;
|
|
|
|
// Key-value labels for filtering and organization.
|
|
// Labels must follow Kubernetes conventions: alphanumeric + `-._/`, max 63 chars per segment.
|
|
map<string, string> labels = 4;
|
|
|
|
// Optimistic concurrency control version.
|
|
// Incremented by the gateway on each update. Clients can use this for compare-and-swap operations.
|
|
uint64 resource_version = 5;
|
|
}
|
|
|
|
// Provider model stored by OpenShell.
|
|
message Provider {
|
|
// Kubernetes-style metadata (id, name, labels, timestamps, resource version).
|
|
ObjectMeta metadata = 1;
|
|
// Canonical provider type slug (for example: "claude", "gitlab").
|
|
string type = 2;
|
|
// Secret values used for authentication.
|
|
map<string, string> credentials = 3;
|
|
// Non-secret provider configuration.
|
|
map<string, string> config = 4;
|
|
// Expiration timestamps for credential values, keyed by credential/env var
|
|
// name. A zero or missing value means the credential does not expire.
|
|
map<string, int64> credential_expires_at_ms = 5;
|
|
}
|