From 85ef118c4acb47ffc8d1475340ff3999964b11b5 Mon Sep 17 00:00:00 2001 From: Gary Date: Mon, 27 May 2024 16:10:53 +0800 Subject: [PATCH] feat(artifact): add kb related rpc & message (#345) Because we need to provide the knowledge base api This commit define the knowledge base rpc and message --------- Co-authored-by: droplet-bot --- artifact/artifact/v1alpha/artifact.proto | 81 ++++++++ .../v1alpha/artifact_public_service.proto | 34 ++++ openapiv2/artifact/service.swagger.yaml | 187 +++++++++++++++++- 3 files changed, 301 insertions(+), 1 deletion(-) diff --git a/artifact/artifact/v1alpha/artifact.proto b/artifact/artifact/v1alpha/artifact.proto index 2fe9c465..ebcde6d9 100644 --- a/artifact/artifact/v1alpha/artifact.proto +++ b/artifact/artifact/v1alpha/artifact.proto @@ -135,3 +135,84 @@ message CreateRepositoryTagResponse { // The created tag. RepositoryTag tag = 1; } + +// KnowledgeBase represents a knowledge base. +message KnowledgeBase { + // The knowledge base identifier. + string id = 1; + // The knowledge base name. + string name = 2; + // The knowledge base description. + string description = 3; + // The knowledge base tags. + repeated string tags = 4; +} + +// CreateKnowledgeBaseRequest represents a request to create a knowledge base. +message CreateKnowledgeBaseRequest { + // The knowledge base name. + string name = 1; + // The knowledge base description. + string description = 2; + // The knowledge base tags. + repeated string tags = 3; +} + +// CreateKnowledgeBaseResponse represents a response for creating a knowledge base. +message CreateKnowledgeBaseResponse { + // The created knowledge base. + KnowledgeBase body = 1; + // The error message. + string error_msg = 2; + // The status code. + int32 status_code = 3; +} + +// GetKnowledgeBasesRequest represents a request to get all knowledge bases. +message GetKnowledgeBasesRequest {} + +// GetKnowledgeBasesResponse represents a response for getting all knowledge bases. +message GetKnowledgeBasesResponse { + // The knowledge bases. + repeated KnowledgeBase knowledgebases = 1; + // The error message. + string error_msg = 2; + // The status code. + int32 status_code = 3; +} + +// UpdateKnowledgeBaseRequest represents a request to update a knowledge base. +message UpdateKnowledgeBaseRequest { + // The knowledge base identifier. + string id = 1; + // The knowledge base name. + string name = 2; + // The knowledge base description. + string description = 3; + // The knowledge base tags. + repeated string tags = 4; +} + +// UpdateKnowledgeBaseResponse represents a response for updating a knowledge base. +message UpdateKnowledgeBaseResponse { + // The updated knowledge base. + KnowledgeBase body = 1; + // The error message. + string error_msg = 2; + // The status code. + int32 status_code = 3; +} + +// DeleteKnowledgeBaseRequest represents a request to delete a knowledge base. +message DeleteKnowledgeBaseRequest { + // The knowledge base identifier. + string id = 1; +} + +// DeleteKnowledgeBaseResponse represents a response for deleting a knowledge base. +message DeleteKnowledgeBaseResponse { + // The error message. + string error_msg = 1; + // The status code. + int32 status_code = 2; +} \ No newline at end of file diff --git a/artifact/artifact/v1alpha/artifact_public_service.proto b/artifact/artifact/v1alpha/artifact_public_service.proto index 2ce5a233..62bc5d46 100644 --- a/artifact/artifact/v1alpha/artifact_public_service.proto +++ b/artifact/artifact/v1alpha/artifact_public_service.proto @@ -38,4 +38,38 @@ service ArtifactPublicService { }; option (google.api.method_visibility).restriction = "INTERNAL"; } + + // Create a knowledge base + rpc CreateKnowledgeBase(CreateKnowledgeBaseRequest) returns (CreateKnowledgeBaseResponse) { + option (google.api.http) = { + post: "/v1alpha/artifact/kb" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {tags: "KnowledgeBase"}; + } + + // Get all knowledge bases info + rpc GetKnowledgeBases(GetKnowledgeBasesRequest) returns (GetKnowledgeBasesResponse) { + option (google.api.http) = { + get: "/v1alpha/artifact/kb" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {tags: "KnowledgeBase"}; + } + + // Update a knowledge base info + rpc UpdateKnowledgeBase(UpdateKnowledgeBaseRequest) returns (UpdateKnowledgeBaseResponse) { + option (google.api.http) = { + put: "/v1alpha/artifact/kb" + body: "*" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {tags: "KnowledgeBase"}; + } + + // Delete a knowledge base + rpc DeleteKnowledgeBase(DeleteKnowledgeBaseRequest) returns (DeleteKnowledgeBaseResponse) { + option (google.api.http) = { + delete: "/v1alpha/artifact/kb/{id}" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {tags: "KnowledgeBase"}; + } } diff --git a/openapiv2/artifact/service.swagger.yaml b/openapiv2/artifact/service.swagger.yaml index 40b46601..b61bae66 100644 --- a/openapiv2/artifact/service.swagger.yaml +++ b/openapiv2/artifact/service.swagger.yaml @@ -6,7 +6,85 @@ consumes: - application/json produces: - application/json -paths: {} +paths: + /v1alpha/artifact/kb: + get: + summary: Get all knowledge bases info + operationId: ArtifactPublicService_GetKnowledgeBases + responses: + "200": + description: A successful response. + schema: + $ref: '#/definitions/v1alphaGetKnowledgeBasesResponse' + default: + description: An unexpected error response. + schema: + $ref: '#/definitions/rpcStatus' + tags: + - KnowledgeBase + post: + summary: Create a knowledge base + operationId: ArtifactPublicService_CreateKnowledgeBase + responses: + "200": + description: A successful response. + schema: + $ref: '#/definitions/v1alphaCreateKnowledgeBaseResponse' + default: + description: An unexpected error response. + schema: + $ref: '#/definitions/rpcStatus' + parameters: + - name: body + description: CreateKnowledgeBaseRequest represents a request to create a knowledge base. + in: body + required: true + schema: + $ref: '#/definitions/v1alphaCreateKnowledgeBaseRequest' + tags: + - KnowledgeBase + put: + summary: Update a knowledge base info + operationId: ArtifactPublicService_UpdateKnowledgeBase + responses: + "200": + description: A successful response. + schema: + $ref: '#/definitions/v1alphaUpdateKnowledgeBaseResponse' + default: + description: An unexpected error response. + schema: + $ref: '#/definitions/rpcStatus' + parameters: + - name: body + description: UpdateKnowledgeBaseRequest represents a request to update a knowledge base. + in: body + required: true + schema: + $ref: '#/definitions/v1alphaUpdateKnowledgeBaseRequest' + tags: + - KnowledgeBase + /v1alpha/artifact/kb/{id}: + delete: + summary: Delete a knowledge base + operationId: ArtifactPublicService_DeleteKnowledgeBase + responses: + "200": + description: A successful response. + schema: + $ref: '#/definitions/v1alphaDeleteKnowledgeBaseResponse' + default: + description: An unexpected error response. + schema: + $ref: '#/definitions/rpcStatus' + parameters: + - name: id + description: The knowledge base identifier. + in: path + required: true + type: string + tags: + - KnowledgeBase definitions: protobufAny: type: object @@ -27,6 +105,35 @@ definitions: items: type: object $ref: '#/definitions/protobufAny' + v1alphaCreateKnowledgeBaseRequest: + type: object + properties: + name: + type: string + description: The knowledge base name. + description: + type: string + description: The knowledge base description. + tags: + type: array + items: + type: string + description: The knowledge base tags. + description: CreateKnowledgeBaseRequest represents a request to create a knowledge base. + v1alphaCreateKnowledgeBaseResponse: + type: object + properties: + body: + $ref: '#/definitions/v1alphaKnowledgeBase' + description: The created knowledge base. + error_msg: + type: string + description: The error message. + status_code: + type: integer + format: int32 + description: The status code. + description: CreateKnowledgeBaseResponse represents a response for creating a knowledge base. v1alphaCreateRepositoryTagResponse: type: object properties: @@ -34,6 +141,52 @@ definitions: $ref: '#/definitions/v1alphaRepositoryTag' description: The created tag. description: CreateRepositoryTagResponse contains the created tag. + v1alphaDeleteKnowledgeBaseResponse: + type: object + properties: + error_msg: + type: string + description: The error message. + status_code: + type: integer + format: int32 + description: The status code. + description: DeleteKnowledgeBaseResponse represents a response for deleting a knowledge base. + v1alphaGetKnowledgeBasesResponse: + type: object + properties: + knowledgebases: + type: array + items: + type: object + $ref: '#/definitions/v1alphaKnowledgeBase' + description: The knowledge bases. + error_msg: + type: string + description: The error message. + status_code: + type: integer + format: int32 + description: The status code. + description: GetKnowledgeBasesResponse represents a response for getting all knowledge bases. + v1alphaKnowledgeBase: + type: object + properties: + id: + type: string + description: The knowledge base identifier. + name: + type: string + description: The knowledge base name. + description: + type: string + description: The knowledge base description. + tags: + type: array + items: + type: string + description: The knowledge base tags. + description: KnowledgeBase represents a knowledge base. v1alphaListRepositoryTagsResponse: type: object properties: @@ -78,3 +231,35 @@ definitions: description: |- RepositoryTag contains information about the version of some content in a repository. + v1alphaUpdateKnowledgeBaseRequest: + type: object + properties: + id: + type: string + description: The knowledge base identifier. + name: + type: string + description: The knowledge base name. + description: + type: string + description: The knowledge base description. + tags: + type: array + items: + type: string + description: The knowledge base tags. + description: UpdateKnowledgeBaseRequest represents a request to update a knowledge base. + v1alphaUpdateKnowledgeBaseResponse: + type: object + properties: + body: + $ref: '#/definitions/v1alphaKnowledgeBase' + description: The updated knowledge base. + error_msg: + type: string + description: The error message. + status_code: + type: integer + format: int32 + description: The status code. + description: UpdateKnowledgeBaseResponse represents a response for updating a knowledge base.