File size: 3,349 Bytes
287a0bc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
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) {}
}