| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 | 
							- from flask_restful import fields
 - 
 - from core.app.segments import SecretVariable, SegmentType, Variable
 - from core.helper import encrypter
 - from fields.member_fields import simple_account_fields
 - from libs.helper import TimestampField
 - 
 - ENVIRONMENT_VARIABLE_SUPPORTED_TYPES = (SegmentType.STRING, SegmentType.NUMBER, SegmentType.SECRET)
 - 
 - 
 - class EnvironmentVariableField(fields.Raw):
 -     def format(self, value):
 -         # Mask secret variables values in environment_variables
 -         if isinstance(value, SecretVariable):
 -             return {
 -                 'id': value.id,
 -                 'name': value.name,
 -                 'value': encrypter.obfuscated_token(value.value),
 -                 'value_type': value.value_type.value,
 -             }
 -         if isinstance(value, Variable):
 -             return {
 -                 'id': value.id,
 -                 'name': value.name,
 -                 'value': value.value,
 -                 'value_type': value.value_type.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 = {
 -     'id': fields.String,
 -     'name': fields.String,
 -     'value': fields.Raw,
 -     'value_type': fields.String(attribute='value_type.value'),
 - }
 - 
 - workflow_fields = {
 -     'id': fields.String,
 -     'graph': fields.Raw(attribute='graph_dict'),
 -     'features': fields.Raw(attribute='features_dict'),
 -     'hash': fields.String(attribute='unique_hash'),
 -     'created_by': fields.Nested(simple_account_fields, attribute='created_by_account'),
 -     'created_at': TimestampField,
 -     'updated_by': fields.Nested(simple_account_fields, attribute='updated_by_account', allow_null=True),
 -     'updated_at': TimestampField,
 -     'tool_published': fields.Boolean,
 -     'environment_variables': fields.List(EnvironmentVariableField()),
 - }
 
 
  |