MCPcopy Create free account
hub / github.com/bytebase/bytebase / convertToPolicy

Function convertToPolicy

backend/api/v1/org_policy_service.go:614–681  ·  view source on GitHub ↗
(policyMessage *store.PolicyMessage)

Source from the content-addressed store, hash-verified

612}
613
614func convertToPolicy(policyMessage *store.PolicyMessage) (*v1pb.Policy, error) {
615 resourceType := v1pb.PolicyResourceType_RESOURCE_TYPE_UNSPECIFIED
616 switch policyMessage.ResourceType {
617 case storepb.Policy_WORKSPACE:
618 resourceType = v1pb.PolicyResourceType_WORKSPACE
619 case storepb.Policy_ENVIRONMENT:
620 resourceType = v1pb.PolicyResourceType_ENVIRONMENT
621 case storepb.Policy_PROJECT:
622 resourceType = v1pb.PolicyResourceType_PROJECT
623 default:
624 }
625 policy := &v1pb.Policy{
626 InheritFromParent: policyMessage.InheritFromParent,
627 Enforce: policyMessage.Enforce,
628 ResourceType: resourceType,
629 }
630
631 pType := convertStorePBToV1PBPolicyType(policyMessage.Type)
632 switch policyMessage.Type {
633 case storepb.Policy_ROLLOUT:
634 payload, err := convertToV1RolloutPolicyPayload(policyMessage.Payload)
635 if err != nil {
636 return nil, err
637 }
638 policy.Policy = payload
639 case storepb.Policy_TAG:
640 p := &v1pb.TagPolicy{}
641 if err := common.ProtojsonUnmarshaler.Unmarshal([]byte(policyMessage.Payload), p); err != nil {
642 return nil, errors.Wrapf(err, "failed to unmarshal tag policy payload")
643 }
644 policy.Policy = &v1pb.Policy_TagPolicy{
645 TagPolicy: p,
646 }
647 case storepb.Policy_QUERY_DATA:
648 payload, err := convertToV1PBQueryDataPolicy(policyMessage.Payload)
649 if err != nil {
650 return nil, err
651 }
652 policy.Policy = payload
653 case storepb.Policy_MASKING_RULE:
654 maskingRulePolicy := &storepb.MaskingRulePolicy{}
655 if err := common.ProtojsonUnmarshaler.Unmarshal([]byte(policyMessage.Payload), maskingRulePolicy); err != nil {
656 return nil, errors.Wrap(err, "failed to unmarshal masking rule policy")
657 }
658 payload := convertToV1PBMaskingRulePolicy(maskingRulePolicy)
659 policy.Policy = &v1pb.Policy_MaskingRulePolicy{
660 MaskingRulePolicy: payload,
661 }
662 case storepb.Policy_MASKING_EXEMPTION:
663 maskingExemptionPolicy := &storepb.MaskingExemptionPolicy{}
664 if err := common.ProtojsonUnmarshaler.Unmarshal([]byte(policyMessage.Payload), maskingExemptionPolicy); err != nil {
665 return nil, errors.Wrap(err, "failed to unmarshal masking exemption policy")
666 }
667 payload := convertToV1PBMaskingExemptionPolicyPayload(maskingExemptionPolicy)
668 policy.Policy = &v1pb.Policy_MaskingExemptionPolicy{
669 MaskingExemptionPolicy: payload,
670 }
671 default:

Callers 4

GetPolicyMethod · 0.85
ListPoliciesMethod · 0.85
UpdatePolicyMethod · 0.85
createPolicyMessageMethod · 0.85

Tested by

no test coverage detected