chroma / idl /chromadb /proto /coordinator.proto
badalsahani's picture
feat: chroma initial deploy
287a0bc
syntax = "proto3";
package chroma;
option go_package = "github.com/chroma/chroma-coordinator/internal/proto/coordinatorpb";
import "chromadb/proto/chroma.proto";
import "google/protobuf/empty.proto";
message CreateDatabaseRequest {
string id = 1;
string name = 2;
string tenant = 3;
}
message GetDatabaseRequest {
string name = 1;
string tenant = 2;
}
message GetDatabaseResponse {
Database database = 1;
Status status = 2;
}
message CreateTenantRequest {
string name = 2; // Names are globally unique
}
message GetTenantRequest {
string name = 1;
}
message GetTenantResponse {
Tenant tenant = 1;
Status status = 2;
}
message CreateSegmentRequest {
Segment segment = 1;
}
message DeleteSegmentRequest {
string id = 1;
}
message GetSegmentsRequest {
optional string id = 1;
optional string type = 2;
optional SegmentScope scope = 3;
optional string topic = 4;
optional string collection = 5; // Collection ID
}
message GetSegmentsResponse {
repeated Segment segments = 1;
Status status = 2;
}
message UpdateSegmentRequest {
string id = 1;
oneof topic_update {
string topic = 2;
bool reset_topic = 3;
}
oneof collection_update {
string collection = 4;
bool reset_collection = 5;
}
oneof metadata_update {
UpdateMetadata metadata = 6;
bool reset_metadata = 7;
}
}
message CreateCollectionRequest {
string id = 1;
string name = 2;
optional UpdateMetadata metadata = 3;
optional int32 dimension = 4;
optional bool get_or_create = 5;
string tenant = 6;
string database = 7;
}
message CreateCollectionResponse {
Collection collection = 1;
bool created = 2;
Status status = 3;
}
message DeleteCollectionRequest {
string id = 1;
string tenant = 2;
string database = 3;
}
message GetCollectionsRequest {
optional string id = 1;
optional string name = 2;
optional string topic = 3;
string tenant = 4;
string database = 5;
}
message GetCollectionsResponse {
repeated Collection collections = 1;
Status status = 2;
}
message UpdateCollectionRequest {
string id = 1;
optional string topic = 2;
optional string name = 3;
optional int32 dimension = 4;
oneof metadata_update {
UpdateMetadata metadata = 5;
bool reset_metadata = 6;
}
}
message Notification {
int64 id = 1;
string collection_id = 2;
string type = 3;
string status = 4;
}
service SysDB {
rpc CreateDatabase(CreateDatabaseRequest) returns (ChromaResponse) {}
rpc GetDatabase(GetDatabaseRequest) returns (GetDatabaseResponse) {}
rpc CreateTenant(CreateTenantRequest) returns (ChromaResponse) {}
rpc GetTenant(GetTenantRequest) returns (GetTenantResponse) {}
rpc CreateSegment(CreateSegmentRequest) returns (ChromaResponse) {}
rpc DeleteSegment(DeleteSegmentRequest) returns (ChromaResponse) {}
rpc GetSegments(GetSegmentsRequest) returns (GetSegmentsResponse) {}
rpc UpdateSegment(UpdateSegmentRequest) returns (ChromaResponse) {}
rpc CreateCollection(CreateCollectionRequest) returns (CreateCollectionResponse) {}
rpc DeleteCollection(DeleteCollectionRequest) returns (ChromaResponse) {}
rpc GetCollections(GetCollectionsRequest) returns (GetCollectionsResponse) {}
rpc UpdateCollection(UpdateCollectionRequest) returns (ChromaResponse) {}
rpc ResetState(google.protobuf.Empty) returns (ChromaResponse) {}
}