diff --git a/api/.env.example b/api/.env.example index 28bdcad7ed..68c54d7011 100644 --- a/api/.env.example +++ b/api/.env.example @@ -141,3 +141,10 @@ BATCH_UPLOAD_LIMIT=10 # CODE EXECUTION CONFIGURATION CODE_EXECUTION_ENDPOINT=http://127.0.0.1:8194 CODE_EXECUTION_API_KEY=dify-sandbox +CODE_MAX_NUMBER=9223372036854775807 +CODE_MIN_NUMBER=-9223372036854775808 +CODE_MAX_STRING_LENGTH=80000 +TEMPLATE_TRANSFORM_MAX_LENGTH=80000 +CODE_MAX_STRING_ARRAY_LENGTH=30 +CODE_MAX_OBJECT_ARRAY_LENGTH=30 +CODE_MAX_NUMBER_ARRAY_LENGTH=1000 diff --git a/api/core/workflow/nodes/code/code_node.py b/api/core/workflow/nodes/code/code_node.py index 2ca5a9f8f9..097dbb660c 100644 --- a/api/core/workflow/nodes/code/code_node.py +++ b/api/core/workflow/nodes/code/code_node.py @@ -1,3 +1,4 @@ +import os from typing import Optional, Union, cast from core.helper.code_executor.code_executor import CodeExecutionException, CodeExecutor @@ -7,14 +8,14 @@ from core.workflow.nodes.base_node import BaseNode from core.workflow.nodes.code.entities import CodeNodeData from models.workflow import WorkflowNodeExecutionStatus -MAX_NUMBER = 2 ** 63 - 1 -MIN_NUMBER = -2 ** 63 +MAX_NUMBER = int(os.environ.get('CODE_MAX_NUMBER', '9223372036854775807')) +MIN_NUMBER = int(os.environ.get('CODE_MIN_NUMBER', '-9223372036854775808')) MAX_PRECISION = 20 MAX_DEPTH = 5 -MAX_STRING_LENGTH = 5000 -MAX_STRING_ARRAY_LENGTH = 30 -MAX_OBJECT_ARRAY_LENGTH = 30 -MAX_NUMBER_ARRAY_LENGTH = 1000 +MAX_STRING_LENGTH = int(os.environ.get('CODE_MAX_STRING_LENGTH', '80000')) +MAX_STRING_ARRAY_LENGTH = int(os.environ.get('CODE_MAX_STRING_ARRAY_LENGTH', '30')) +MAX_OBJECT_ARRAY_LENGTH = int(os.environ.get('CODE_MAX_OBJECT_ARRAY_LENGTH', '30')) +MAX_NUMBER_ARRAY_LENGTH = int(os.environ.get('CODE_MAX_NUMBER_ARRAY_LENGTH', '1000')) JAVASCRIPT_DEFAULT_CODE = """function main({arg1, arg2}) { return { diff --git a/api/core/workflow/nodes/template_transform/template_transform_node.py b/api/core/workflow/nodes/template_transform/template_transform_node.py index 110ebaefd8..01e3d4702f 100644 --- a/api/core/workflow/nodes/template_transform/template_transform_node.py +++ b/api/core/workflow/nodes/template_transform/template_transform_node.py @@ -1,3 +1,4 @@ +import os from typing import Optional, cast from core.helper.code_executor.code_executor import CodeExecutionException, CodeExecutor @@ -7,7 +8,7 @@ from core.workflow.nodes.base_node import BaseNode from core.workflow.nodes.template_transform.entities import TemplateTransformNodeData from models.workflow import WorkflowNodeExecutionStatus -MAX_TEMPLATE_TRANSFORM_OUTPUT_LENGTH = 50000 +MAX_TEMPLATE_TRANSFORM_OUTPUT_LENGTH = int(os.environ.get('TEMPLATE_TRANSFORM_MAX_LENGTH', '80000')) class TemplateTransformNode(BaseNode): _node_data_cls = TemplateTransformNodeData diff --git a/docker/docker-compose.yaml b/docker/docker-compose.yaml index 2202361422..a136fee05e 100644 --- a/docker/docker-compose.yaml +++ b/docker/docker-compose.yaml @@ -130,6 +130,13 @@ services: # The sandbox service endpoint. CODE_EXECUTION_ENDPOINT: "http://sandbox:8194" CODE_EXECUTION_API_KEY: dify-sandbox + CODE_MAX_NUMBER: 9223372036854775807 + CODE_MIN_NUMBER: -9223372036854775808 + CODE_MAX_STRING_LENGTH: 80000 + TEMPLATE_TRANSFORM_MAX_LENGTH: 80000 + CODE_MAX_STRING_ARRAY_LENGTH: 30 + CODE_MAX_OBJECT_ARRAY_LENGTH: 30 + CODE_MAX_NUMBER_ARRAY_LENGTH: 1000 depends_on: - db - redis