Introduction
  • 25 Apr 2024
  • 1 Minute To Read
  • Dark
    Light
  • PDF

Introduction

  • Dark
    Light
  • PDF

Article summary

Core Extensions are product areas that can be used by a Mambu Function to execute custom business logic. Each extension point has templates, which are ready-to-use implementations for that extension point. They allow you to start writing code immediately for common processes.

Warning!

For optimal performance and system responsiveness, we strongly recommend limiting yourself to a maximum of 50 to 100 custom field values per entity. The total size of the input payload to your custom function should not exceed 6mb. This is a hard limit, and any payload exceeding this size will not be processed.

Restrictions and Security

The following restrictions are currently imposed on Core Extensions:

  • Runtime memory is limited to 512mb: The system enforces a memory limit for each Function. A portion of this memory is reserved for the Function's runtime.

  • Execution timeout is limited to 1000 milliseconds: The system enforces an execution timeout for any Function exceeding this duration.

Function output constraints

Outputs that functions produce are subject to the following constraints based on the data type.

  • String: The maximum length allowed is 100 characters.
  • Number: The maximum number of digits (the precision) has a range of 1 to 38. Be aware that decimal point or sign symbols do not count against this limit (only digits do). For example, the following numbers: -100, 1.10, and 100, all have the length (or precision) of 3 digits. Additionally, scientific notation for numbers is not supported, such as 10+e10, 10e10, 10e-10, i.e. numbers must be returned using regular notation. Lastly, all numbers have to be strings.
  • Date-time: follows ISO-8601 date and time format such as "2024-03-01T11:50:00Z" or "2024-03-01T11:50:00+01:00".
  • Date: follows ISO-8601 date format such as “2024-03-01”.
  • Time: follows ISO-8601 time format such as "11:50", "11:50:00".

If output fails to meet one of the specified constraints, it will be rejected.

These constraints are automatically verified during the execution of unit tests but only if the function under test is being wrapped by “invokeLocalFunction” (which is by default).


Was this article helpful?