Contact Us 1-800-596-4880

DataWeave Support in Flex Gateway Policies

DataWeave is the programming language designed by MuleSoft for data transformation. It enables you to build a simple solution for a common integration developer use case: read and parse data from one format, transform the data, and write it out as a different format.

Flex Gateway supports a subset of DataWeave in policy configuration expressions. DataWeave is only supported in included policies and custom policies created with PDK..

Available Types

  • Null

  • Boolean

  • String

  • Number (Driven as 64 bits floating points)

  • Array

  • Object (Repeated keys are not available)

Available Value Constructors for Types

Unavailable Value Constructors for Types

  • Null (Writing a null literal is not supported)

  • Object (Objects can not be defined as literals)

Available Flow Control Structures

Unavailable Flow Control Structures

Available Selectors

  • Array[Number]

  • Array[String]

  • Object[String]

  • String[Number]

Unavailable Selectors

  • Object[Number]

Available Equality and Relational Operators

Available Logical Operators

Available Default Operators

Available Functions

fromBase64

Flex Gateway doesn’t support DataWeave expressions with binary type results. To use the dw::Binaries::fromBase64('dXNlcjpwYXNz') function, transform the result to a string. Transform the binary output to a string with the dw::util::Coercions::toString(binary: Binary, encoding: String): String function. For example, [dw::util::Coercions::toString(dw::core::Binaries::fromBase64('dXNlcjpwYXNz'), 'UTF-8')]. If using a different function that transforms the binary by default, such as [splitBy(dw::core::Binaries::fromBase64('dXNlcjpwYXNz'), ':')], you can skip manually transforming the binary.

Available Predefined Variables

  • attributes

    • attributes.headers

    • attributes.method (Only available in request context)

    • attributes.queryParams (Only available in request context)

    • attributes.queryString (Only available in request context)

    • attributes.requestPath (Only available in request context)

    • attributes.requestUri (Only available in request context)

    • attributes.localAddress (Only available in request context)

    • attributes.remoteAddress (Only available in request context)

    • attributes.scheme (Only available in request context)

    • attributes.version (Only available in request context)

    • attributes.statusCode (Only available in response context)

  • authentication

    • authentication.clientId

    • authentication.clientName

    • authentication.principal

    • authentication.properties

  • payload

    • Fields depend on the current payload. For example, #[payload] returns the body of the message.

  • vars

    • Individual policies support different sets of variables. For information, refer to the policies listed in Inbound Policies Directory.