- 25 Apr 2024
- 1 Minute To Read
- Print
- DarkLight
- PDF
Introduction
- Updated On 25 Apr 2024
- 1 Minute To Read
- Print
- DarkLight
- PDF
Core Extensions in Mambu allow custom business logic execution through templates for common processes. Restrictions include a 512mb memory limit, 1000ms execution timeout, and output constraints for strings, numbers, dates, and times. Outputs must adhere to specific formats and constraints to avoid rejection during unit tests.
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.
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).