Files
OpenShell/proto/datamodel.proto
Derek Carr 5e28ea3a4b feat(server): add object meta convention to top-level objects (#919)
- adds filterable label selectors on resources

Closes #864

Signed-off-by: Derek Carr <decarr@redhat.com>
2026-04-27 07:16:07 -07:00

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;
}