mirror of
https://github.com/NVIDIA/OpenShell.git
synced 2026-10-18 05:39:50 +08:00
- adds filterable label selectors on resources Closes #864 Signed-off-by: Derek Carr <decarr@redhat.com>
38 lines
1.3 KiB
Protocol Buffer
38 lines
1.3 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,
|
|
// 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;
|
|
}
|
|
|
|
// 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;
|
|
}
|