From c26473de2e6a64766ff759c3aeafd3586234c2b6 Mon Sep 17 00:00:00 2001 From: johnypeng Date: Wed, 28 Feb 2024 10:10:45 +0800 Subject: [PATCH] feat: get tmpl rev with signature --task=74871191 (#2983) * feat: get tmpl rev with signature --task=74871191 * docs: update api doc --- .../api-server/api/bk_apigw_resources.yml | 26 ++++- ...t_template_revision_name_by_template_id.md | 105 ++++++++++++++++++ .../service/app_template_binding.go | 10 +- .../data-service/service/template_revision.go | 16 +-- .../template-revision/template_revision.pb.go | 73 +++++++----- .../template-revision/template_revision.proto | 2 + 6 files changed, 193 insertions(+), 39 deletions(-) create mode 100644 bcs-services/bcs-bscp/api/api-docs/api-server/docs/zh/list_template_revision_name_by_template_id.md diff --git a/bcs-services/bcs-bscp/api/api-docs/api-server/api/bk_apigw_resources.yml b/bcs-services/bcs-bscp/api/api-docs/api-server/api/bk_apigw_resources.yml index 65cd7d7b39..3f63b953d4 100644 --- a/bcs-services/bcs-bscp/api/api-docs/api-server/api/bk_apigw_resources.yml +++ b/bcs-services/bcs-bscp/api/api-docs/api-server/api/bk_apigw_resources.yml @@ -334,7 +334,7 @@ paths: matchSubpath: false backend: type: HTTP - method: post + method: get path: /api/v1/config/list/app/app/biz_id/{biz_id} matchSubpath: false timeout: 0 @@ -1400,6 +1400,30 @@ paths: authConfig: userVerifiedRequired: true disabledStages: [ ] + /api/v1/config/biz/{biz_id}/template_revisions/list_names_by_template_ids: + post: + operationId: list_template_revision_name_by_template_id + description: 批量查询模版的版本名称 + tags: + - 模版版本 + responses: + default: + description: '' + x-bk-apigateway-resource: + isPublic: true + allowApplyPermission: true + matchSubpath: false + backend: + type: HTTP + method: post + path: /api/v1/config/biz/{biz_id}/template_revisions/list_names_by_template_ids + matchSubpath: false + timeout: 0 + upstreams: { } + transformHeaders: { } + authConfig: + userVerifiedRequired: true + disabledStages: [ ] /api/v1/config/biz/{biz_id}/template_spaces/{template_space_id}/template_sets: post: operationId: create_template_set diff --git a/bcs-services/bcs-bscp/api/api-docs/api-server/docs/zh/list_template_revision_name_by_template_id.md b/bcs-services/bcs-bscp/api/api-docs/api-server/docs/zh/list_template_revision_name_by_template_id.md new file mode 100644 index 0000000000..ae2cb6b524 --- /dev/null +++ b/bcs-services/bcs-bscp/api/api-docs/api-server/docs/zh/list_template_revision_name_by_template_id.md @@ -0,0 +1,105 @@ +### 描述 + +该接口提供版本:v1.0.0+ + +批量查询模版的版本名称 + +### 输入参数 + +| 参数名称 | 参数类型 | 必选 | 描述 | +| ------------ | -------- | ---- | --------------------- | +| biz_id | uint32 | 是 | 业务ID | +| template_ids | []uint32 | 是 | 模版ID列表,最多200个 | + +### 调用示例 + +```json +{ + "template_ids": [ + 1, + 2 + ] +} +``` + +### 响应示例 + +```json +{ + "data": { + "details": [ + [ + { + "template_id": 1, + "template_name": "template001", + "latest_template_revision_id": 2, + "latest_signature": "11e3a57c479ebfae641c5821ee70bf61dca74b8e6596b78950526c397a3b1234", + "latest_byte_size": "2067", + "template_revisions": [ + { + "template_revision_id": 1, + "template_revision_name": "v20230815120105", + "template_revision_memo": "my revision for test1" + }, + { + "template_revision_id": 2, + "template_revision_name": "v20230815130206", + "template_revision_memo": "my revision for test2" + } + ] + }, + { + "template_id": 2, + "template_name": "template002", + "latest_template_revision_id": 4, + "latest_signature": "22e3a57c479ebfae641c5821ee70bf61dca74b8e6596b78950526c397a3b1253", + "latest_byte_size": "1023", + "template_revisions": [ + { + "template_revision_id": 3, + "template_revision_name": "v20230815140307", + "template_revision_memo": "my revision for test3" + }, + { + "template_revision_id": 4, + "template_revision_name": "v20230815150408", + "template_revision_memo": "my revision for test2" + } + ] + } + ] + ] + } +} +``` + +### 响应参数说明 + +| 参数名称 | 参数类型 | 描述 | +| -------- | -------- | -------- | +| data | object | 响应数据 | + +#### data + +| 参数名称 | 参数类型 | 描述 | +| -------- | -------- | -------------- | +| detail | array | 查询返回的数据 | + +#### data.detail[n] + +| 参数名称 | 参数类型 | 描述 | +| --------------------------- | -------- | -------------------------- | +| template_id | uint32 | 模版ID | +| template_name | string | 模版名称 | +| latest_template_revision_id | uint32 | 最新模版版本ID | +| latest_sinature | string | 最新模版版本内容的sha256 | +| latest_byte_size | uint64 | 最新模版版本内容的字节大小 | +| template_revisions | object | 模版版本信息 | + +#### template_revisions + +| 参数名称 | 参数类型 | 描述 | +| ---------------------- | -------- | ------------ | +| template_revision_id | uint32 | 模版版本ID | +| template_revision_name | string | 模版版本名称 | +| template_revision_memo | string | 模版版本描述 | diff --git a/bcs-services/bcs-bscp/cmd/data-service/service/app_template_binding.go b/bcs-services/bcs-bscp/cmd/data-service/service/app_template_binding.go index abe1e1a6b5..a5f890bf24 100644 --- a/bcs-services/bcs-bscp/cmd/data-service/service/app_template_binding.go +++ b/bcs-services/bcs-bscp/cmd/data-service/service/app_template_binding.go @@ -203,7 +203,7 @@ func (s *Service) ListAppBoundTmplRevisions(ctx context.Context, tmplRevisionMap[t.ID] = t } - /// combine resp details + // combine resp details details := make([]*pbatb.AppBoundTmplRevision, 0) for _, b := range atb[0].Spec.Bindings { for _, r := range b.TemplateRevisions { @@ -606,12 +606,12 @@ func (s *Service) getPBSForCascade(kt *kit.Kit, tx *gen.QueryTx, bindings []*tab logs.Errorf("list template revision names by template ids failed, err: %v, rid: %s", err, kt.Rid) return nil, err } - // template id => the latest template revision id + // template id => the latest template revision latestRevisionMap := getLatestTmplRevisions(latestTmplRevisions) - for tID, rID := range latestRevisionMap { - pbs.TemplateRevisionIDs = append(pbs.TemplateRevisionIDs, rID) - allTmplRevisionMap[tID] = rID + for tID, r := range latestRevisionMap { + pbs.TemplateRevisionIDs = append(pbs.TemplateRevisionIDs, r.ID) + allTmplRevisionMap[tID] = r.ID } for tsID, tmpls := range allTmplMap { diff --git a/bcs-services/bcs-bscp/cmd/data-service/service/template_revision.go b/bcs-services/bcs-bscp/cmd/data-service/service/template_revision.go index 1d8a24a272..fdf97feec2 100644 --- a/bcs-services/bcs-bscp/cmd/data-service/service/template_revision.go +++ b/bcs-services/bcs-bscp/cmd/data-service/service/template_revision.go @@ -213,7 +213,9 @@ func (s *Service) ListTmplRevisionNamesByTmplIDs(ctx context.Context, details = append(details, &pbtr.TemplateRevisionNamesDetail{ TemplateId: t.ID, TemplateName: t.Spec.Name, - LatestTemplateRevisionId: latestRevisionMap[t.ID], + LatestTemplateRevisionId: latestRevisionMap[t.ID].ID, + LatestSignature: latestRevisionMap[t.ID].Spec.ContentSpec.Signature, + LatestByteSize: latestRevisionMap[t.ID].Spec.ContentSpec.ByteSize, TemplateRevisions: tmplRevisionMap[t.ID].TemplateRevisions, }) } @@ -224,14 +226,14 @@ func (s *Service) ListTmplRevisionNamesByTmplIDs(ctx context.Context, return resp, nil } -// getLatestTmplRevisions get the map: tmplID => latest tmplRevisionID -func getLatestTmplRevisions(tmplRevisions []*table.TemplateRevision) map[uint32]uint32 { - latestRevisionMap := make(map[uint32]uint32) +// getLatestTmplRevisions get the map: tmplID => latest tmplRevision +func getLatestTmplRevisions(tmplRevisions []*table.TemplateRevision) map[uint32]*table.TemplateRevision { + latestRevisionMap := make(map[uint32]*table.TemplateRevision) for _, t := range tmplRevisions { if _, ok := latestRevisionMap[t.Attachment.TemplateID]; !ok { - latestRevisionMap[t.Attachment.TemplateID] = t.ID - } else if t.ID > latestRevisionMap[t.Attachment.TemplateID] { - latestRevisionMap[t.Attachment.TemplateID] = t.ID + latestRevisionMap[t.Attachment.TemplateID] = t + } else if t.ID > latestRevisionMap[t.Attachment.TemplateID].ID { + latestRevisionMap[t.Attachment.TemplateID] = t } } diff --git a/bcs-services/bcs-bscp/pkg/protocol/core/template-revision/template_revision.pb.go b/bcs-services/bcs-bscp/pkg/protocol/core/template-revision/template_revision.pb.go index 8d69f9e9e5..39280703e7 100644 --- a/bcs-services/bcs-bscp/pkg/protocol/core/template-revision/template_revision.pb.go +++ b/bcs-services/bcs-bscp/pkg/protocol/core/template-revision/template_revision.pb.go @@ -272,6 +272,8 @@ type TemplateRevisionNamesDetail struct { TemplateId uint32 `protobuf:"varint,1,opt,name=template_id,json=templateId,proto3" json:"template_id,omitempty"` TemplateName string `protobuf:"bytes,2,opt,name=template_name,json=templateName,proto3" json:"template_name,omitempty"` LatestTemplateRevisionId uint32 `protobuf:"varint,3,opt,name=latest_template_revision_id,json=latestTemplateRevisionId,proto3" json:"latest_template_revision_id,omitempty"` + LatestSignature string `protobuf:"bytes,5,opt,name=latest_signature,json=latestSignature,proto3" json:"latest_signature,omitempty"` + LatestByteSize uint64 `protobuf:"varint,6,opt,name=latest_byte_size,json=latestByteSize,proto3" json:"latest_byte_size,omitempty"` TemplateRevisions []*TemplateRevisionNamesDetailRevisionNames `protobuf:"bytes,4,rep,name=template_revisions,json=templateRevisions,proto3" json:"template_revisions,omitempty"` } @@ -328,6 +330,20 @@ func (x *TemplateRevisionNamesDetail) GetLatestTemplateRevisionId() uint32 { return 0 } +func (x *TemplateRevisionNamesDetail) GetLatestSignature() string { + if x != nil { + return x.LatestSignature + } + return "" +} + +func (x *TemplateRevisionNamesDetail) GetLatestByteSize() uint64 { + if x != nil { + return x.LatestByteSize + } + return 0 +} + func (x *TemplateRevisionNamesDetail) GetTemplateRevisions() []*TemplateRevisionNamesDetailRevisionNames { if x != nil { return x.TemplateRevisions @@ -451,7 +467,7 @@ var file_template_revision_proto_rawDesc = []byte{ 0x0f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, - 0x64, 0x22, 0xb4, 0x03, 0x0a, 0x1b, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x64, 0x22, 0x89, 0x04, 0x0a, 0x1b, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, @@ -461,31 +477,36 @@ var file_template_revision_proto_rawDesc = []byte{ 0x74, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x5f, 0x0a, 0x12, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x62, 0x74, 0x72, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x52, 0x11, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xae, 0x01, 0x0a, 0x0e, 0x72, 0x65, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x16, - 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x74, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, - 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x14, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x6f, 0x42, 0x62, 0x5a, 0x60, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x42, 0x6c, - 0x75, 0x65, 0x4b, 0x69, 0x6e, 0x67, 0x2f, 0x62, 0x6b, 0x2d, 0x62, 0x63, 0x73, 0x2f, 0x62, 0x63, - 0x73, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x62, 0x63, 0x73, 0x2d, 0x62, - 0x73, 0x63, 0x70, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2d, 0x72, - 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x3b, 0x70, 0x62, 0x74, 0x72, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, + 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6c, 0x61, 0x74, + 0x65, 0x73, 0x74, 0x42, 0x79, 0x74, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x5f, 0x0a, 0x12, 0x74, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x62, 0x74, 0x72, 0x2e, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x72, 0x65, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x11, 0x74, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xae, 0x01, 0x0a, + 0x0e, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, + 0x30, 0x0a, 0x14, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x74, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x14, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x6d, + 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x6f, 0x42, 0x62, 0x5a, + 0x60, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x6e, 0x63, + 0x65, 0x6e, 0x74, 0x42, 0x6c, 0x75, 0x65, 0x4b, 0x69, 0x6e, 0x67, 0x2f, 0x62, 0x6b, 0x2d, 0x62, + 0x63, 0x73, 0x2f, 0x62, 0x63, 0x73, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, + 0x62, 0x63, 0x73, 0x2d, 0x62, 0x73, 0x63, 0x70, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x2d, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x3b, 0x70, 0x62, 0x74, + 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/bcs-services/bcs-bscp/pkg/protocol/core/template-revision/template_revision.proto b/bcs-services/bcs-bscp/pkg/protocol/core/template-revision/template_revision.proto index 4c384a631d..bc77bd90ec 100644 --- a/bcs-services/bcs-bscp/pkg/protocol/core/template-revision/template_revision.proto +++ b/bcs-services/bcs-bscp/pkg/protocol/core/template-revision/template_revision.proto @@ -45,5 +45,7 @@ message TemplateRevisionNamesDetail { uint32 template_id = 1; string template_name = 2; uint32 latest_template_revision_id = 3; + string latest_signature = 5; + uint64 latest_byte_size = 6; repeated revision_names template_revisions = 4; } \ No newline at end of file