initial-commit

This commit is contained in:
Guillaume GRABÉ
2026-05-12 17:06:43 +02:00
commit 051a080dfa
110 changed files with 26377 additions and 0 deletions
+55
View File
@@ -0,0 +1,55 @@
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;
}