Public Access
56 lines
1.7 KiB
Protocol Buffer
56 lines
1.7 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package charybdis.core;
|
|
|
|
import "core/common.proto";
|
|
|
|
// ComponentMetadata represents identifying information for a component entity
|
|
// A component is a software component (service, website, library, etc.)
|
|
message ComponentMetadata {
|
|
// Required: The name of the component
|
|
string name = 1;
|
|
|
|
// Optional: Namespace for organizational grouping (default: "default")
|
|
string namespace = 2;
|
|
|
|
// Optional: Human-readable description of the component
|
|
string description = 3;
|
|
|
|
// Optional: Labels for categorization and filtering
|
|
// Key-value pairs (e.g., "environment": "production", "team": "payments")
|
|
map<string, string> labels = 4;
|
|
|
|
// Optional: Tags for additional classification
|
|
repeated string tags = 5;
|
|
|
|
// Optional: Links to external resources
|
|
repeated Link links = 6;
|
|
}
|
|
|
|
// ComponentSpec represents configuration for a component entity
|
|
message ComponentSpec {
|
|
// Required: Type of component (e.g., "service", "website", "library", "documentation")
|
|
string type = 1;
|
|
|
|
// Required: Lifecycle stage (e.g., "production", "experimental", "deprecated")
|
|
string lifecycle = 2;
|
|
|
|
// Required: Owner team or individual (references a Group or User entity)
|
|
string owner = 3;
|
|
|
|
// Optional: Parent system this component belongs to (references a System entity)
|
|
string system = 4;
|
|
|
|
// Optional: Sub-component of another component (references a Component entity)
|
|
string subcomponent_of = 5;
|
|
|
|
// Optional: Components this component depends on (references Component entities)
|
|
repeated string depends_on = 6;
|
|
|
|
// Optional: APIs this component provides (references API entities)
|
|
repeated string provides_apis = 7;
|
|
|
|
// Optional: APIs this component consumes (references API entities)
|
|
repeated string consumes_apis = 8;
|
|
}
|