---
title: "UpsertGlobalTransform"
method: POST
path: "/global-transforms"
tags: ["GlobalTransformsService"]
---

# UpsertGlobalTransform

`POST /global-transforms`

## Request body

- UpsertGlobalTransformRequest
  - `transform` GlobalTransform — If the specified transform is incompatible with the field data type to which this global transform is connected with, then the end user will get an invalid argument, and the blueprint policy with the global transforms applied won't be returned. Global transforms are identified by an identifier of their [transform]. These are by default loose matching, so that 'Email-PII' is matched when 'email pii' is used.
    - `description` string
    - `tagTransform` GlobalTransformTagTransform
      - `tagContent` string — 'tag_content' is the primary key of TagTransforms.
      - `transforms` FieldTransformTransform[]
        - `detokenize` TransformDetokenize
          - `tokenField` DataPolicyField
            - `nameParts` string[] — Instead of using "nodes", nesting can be expressed by specifying multiple name parts. A flat table (e.g. csv file) will only contain a single name part for all fields.
            - `required` boolean — Whether the field is required. If not, the field may be null.
            - `tags` string[]
            - `type` string — The data type of the field.
          - `tokenSourceRef` string — Full reference to the token source, e.g. a fully qualified table name.
          - `valueField` DataPolicyField
            - `nameParts` string[] — Instead of using "nodes", nesting can be expressed by specifying multiple name parts. A flat table (e.g. csv file) will only contain a single name part for all fields.
            - `required` boolean — Whether the field is required. If not, the field may be null.
            - `tags` string[]
            - `type` string — The data type of the field.
        - `fixed` TransformFixed
          - `value` string
        - `hash` TransformHash
          - `seed` string
        - `identity` TransformIdentity
        - `nullify` TransformNullify
        - `numericRounding` TransformNumericRounding
          - `ceil` NumericRoundingCeil
            - `divisor` number, float — The divisor to use when applying integer division. Values < 1 allow for rounding to decimal places.
          - `floor` NumericRoundingFloor
            - `divisor` number, float — The divisor to use when applying integer division. Values < 1 allow for rounding to decimal places.
          - `round` NumericRoundingRound
            - `precision` integer — The precision to use for rounding. When positive, the value is rounded to the nearest decimal place. When negative, the value is rounded to the nearest power of 10.
        - `principals` DataPolicyPrincipal[] — The principals (e.g. groups) for which this transform will be applied.
          - `group` string
        - `regexp` TransformRegexp
          - `regexp` string
          - `replacement` string — Use dollar signs to reference capturing groups in the replacement, e.g. "my-replacement-$1-$2". If the replacement is left empty, the regexp match result (full match or first capturing group) is used.
        - `sqlStatement` TransformSqlStatement
          - `statement` string

## Response `200`

OK

- UpsertGlobalTransformResponse
  - `transform` GlobalTransform — If the specified transform is incompatible with the field data type to which this global transform is connected with, then the end user will get an invalid argument, and the blueprint policy with the global transforms applied won't be returned. Global transforms are identified by an identifier of their [transform]. These are by default loose matching, so that 'Email-PII' is matched when 'email pii' is used.
    - `description` string
    - `tagTransform` GlobalTransformTagTransform
      - `tagContent` string — 'tag_content' is the primary key of TagTransforms.
      - `transforms` FieldTransformTransform[]
        - `detokenize` TransformDetokenize
          - `tokenField` DataPolicyField
            - `nameParts` string[] — Instead of using "nodes", nesting can be expressed by specifying multiple name parts. A flat table (e.g. csv file) will only contain a single name part for all fields.
            - `required` boolean — Whether the field is required. If not, the field may be null.
            - `tags` string[]
            - `type` string — The data type of the field.
          - `tokenSourceRef` string — Full reference to the token source, e.g. a fully qualified table name.
          - `valueField` DataPolicyField
            - `nameParts` string[] — Instead of using "nodes", nesting can be expressed by specifying multiple name parts. A flat table (e.g. csv file) will only contain a single name part for all fields.
            - `required` boolean — Whether the field is required. If not, the field may be null.
            - `tags` string[]
            - `type` string — The data type of the field.
        - `fixed` TransformFixed
          - `value` string
        - `hash` TransformHash
          - `seed` string
        - `identity` TransformIdentity
        - `nullify` TransformNullify
        - `numericRounding` TransformNumericRounding
          - `ceil` NumericRoundingCeil
            - `divisor` number, float — The divisor to use when applying integer division. Values < 1 allow for rounding to decimal places.
          - `floor` NumericRoundingFloor
            - `divisor` number, float — The divisor to use when applying integer division. Values < 1 allow for rounding to decimal places.
          - `round` NumericRoundingRound
            - `precision` integer — The precision to use for rounding. When positive, the value is rounded to the nearest decimal place. When negative, the value is rounded to the nearest power of 10.
        - `principals` DataPolicyPrincipal[] — The principals (e.g. groups) for which this transform will be applied.
          - `group` string
        - `regexp` TransformRegexp
          - `regexp` string
          - `replacement` string — Use dollar signs to reference capturing groups in the replacement, e.g. "my-replacement-$1-$2". If the replacement is left empty, the regexp match result (full match or first capturing group) is used.
        - `sqlStatement` TransformSqlStatement
          - `statement` string

## Other responses

- `default` — Default error response

## Changes

- **2023-11-17** `04d64891152e` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/getstrm/apis/pace-api/changes/global-transforms/post.md)

---

[API](https://skmtc.dev/getstrm/apis/pace-api.md) · [All operations](https://skmtc.dev/getstrm/apis/pace-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/getstrm/pace-api/revisions/04d64891152e/schema)
