fix(editor): Add notice when user hits the limit for execution metadata item length (#12676)

This commit is contained in:
Eugene 2025-01-27 13:29:14 +03:00 committed by GitHub
parent a24e4420bb
commit 02df25c450
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 22 additions and 9 deletions

View file

@ -205,15 +205,12 @@ describe('Execution Metadata functions', () => {
},
} as IRunExecutionData;
setWorkflowExecutionMetadata(
executionData,
'test1',
'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab',
);
const longValue = 'a'.repeat(513);
setWorkflowExecutionMetadata(executionData, 'test1', longValue);
expect(metadata).toEqual({
test1:
'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
test1: longValue.slice(0, 512),
});
});
});

View file

@ -38,9 +38,9 @@ export function setWorkflowExecutionMetadata(
Logger.error('Custom data key over 50 characters long. Truncating to 50 characters.');
}
if (val.length > 255) {
Logger.error('Custom data value over 255 characters long. Truncating to 255 characters.');
Logger.error('Custom data value over 512 characters long. Truncating to 512 characters.');
}
executionData.resultData.metadata[key.slice(0, 50)] = val.slice(0, 255);
executionData.resultData.metadata[key.slice(0, 50)] = val.slice(0, 512);
}
export function setAllWorkflowExecutionMetadata(

View file

@ -83,6 +83,22 @@ export class ExecutionData implements INodeType {
],
},
],
hints: [
{
type: 'warning',
message: 'Some keys are longer than 50 characters. They will be truncated.',
displayCondition: '={{ $parameter.dataToSave.values.some((x) => x.key.length > 50) }}',
whenToDisplay: 'beforeExecution',
location: 'outputPane',
},
{
type: 'warning',
message: 'Some values are longer than 512 characters. They will be truncated.',
displayCondition: '={{ $parameter.dataToSave.values.some((x) => x.value.length > 512) }}',
whenToDisplay: 'beforeExecution',
location: 'outputPane',
},
],
};
async execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {