Browse Source

fix(api/fields/workflow_fields.py): Add check in environment variables (#6621)

tags/0.6.16
-LAN- 1 year ago
parent
commit
55c2b61921
No account linked to committer's email address
1 changed files with 9 additions and 3 deletions
  1. 9
    3
      api/fields/workflow_fields.py

+ 9
- 3
api/fields/workflow_fields.py View File

from flask_restful import fields from flask_restful import fields


from core.app.segments import SecretVariable, Variable
from core.app.segments import SecretVariable, SegmentType, Variable
from core.helper import encrypter from core.helper import encrypter
from fields.member_fields import simple_account_fields from fields.member_fields import simple_account_fields
from libs.helper import TimestampField from libs.helper import TimestampField


ENVIRONMENT_VARIABLE_SUPPORTED_TYPES = (SegmentType.STRING, SegmentType.NUMBER, SegmentType.SECRET)



class EnvironmentVariableField(fields.Raw): class EnvironmentVariableField(fields.Raw):
def format(self, value): def format(self, value):
'value': encrypter.obfuscated_token(value.value), 'value': encrypter.obfuscated_token(value.value),
'value_type': value.value_type.value, 'value_type': value.value_type.value,
} }
elif isinstance(value, Variable):
if isinstance(value, Variable):
return { return {
'id': value.id, 'id': value.id,
'name': value.name, 'name': value.name,
'value': value.value, 'value': value.value,
'value_type': value.value_type.value, 'value_type': value.value_type.value,
} }
return value
if isinstance(value, dict):
value_type = value.get('value_type')
if value_type not in ENVIRONMENT_VARIABLE_SUPPORTED_TYPES:
raise ValueError(f'Unsupported environment variable value type: {value_type}')
return value




environment_variable_fields = { environment_variable_fields = {

Loading…
Cancel
Save