Fix field name clashing with namespaced virtual field names

- Prefix built-in trigger fields with __builtin_ namespace
- Prefix custom trigger fields with __trigger_{slug}_ namespace
- Completely eliminates field name conflicts between triggers
- Maintains backward compatibility with existing workflows
- Virtual fields transparently handle the namespacing

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-09-07 17:15:22 +02:00
parent c47197223c
commit ab5b26c42c
5 changed files with 201 additions and 11 deletions

View File

@@ -71,7 +71,7 @@ export const createWorkflowCollection: <T extends string>(options: WorkflowsPlug
},
// Virtual fields for collection trigger
{
name: 'collectionSlug',
name: '__builtin_collectionSlug',
type: 'select',
admin: {
condition: (_, siblingData) => siblingData?.type === 'collection-trigger',
@@ -95,7 +95,7 @@ export const createWorkflowCollection: <T extends string>(options: WorkflowsPlug
virtual: true,
},
{
name: 'operation',
name: '__builtin_operation',
type: 'select',
admin: {
condition: (_, siblingData) => siblingData?.type === 'collection-trigger',
@@ -125,7 +125,7 @@ export const createWorkflowCollection: <T extends string>(options: WorkflowsPlug
},
// Virtual fields for webhook trigger
{
name: 'webhookPath',
name: '__builtin_webhookPath',
type: 'text',
admin: {
condition: (_, siblingData) => siblingData?.type === 'webhook-trigger',
@@ -155,7 +155,7 @@ export const createWorkflowCollection: <T extends string>(options: WorkflowsPlug
},
// Virtual fields for global trigger
{
name: 'global',
name: '__builtin_global',
type: 'select',
admin: {
condition: (_, siblingData) => siblingData?.type === 'global-trigger',
@@ -179,7 +179,7 @@ export const createWorkflowCollection: <T extends string>(options: WorkflowsPlug
virtual: true,
},
{
name: 'globalOperation',
name: '__builtin_globalOperation',
type: 'select',
admin: {
condition: (_, siblingData) => siblingData?.type === 'global-trigger',
@@ -206,7 +206,7 @@ export const createWorkflowCollection: <T extends string>(options: WorkflowsPlug
},
// Virtual fields for cron trigger
{
name: 'cronExpression',
name: '__builtin_cronExpression',
type: 'text',
admin: {
condition: (_, siblingData) => siblingData?.type === 'cron-trigger',
@@ -250,7 +250,7 @@ export const createWorkflowCollection: <T extends string>(options: WorkflowsPlug
virtual: true,
},
{
name: 'timezone',
name: '__builtin_timezone',
type: 'text',
admin: {
condition: (_, siblingData) => siblingData?.type === 'cron-trigger',

View File

@@ -10,9 +10,12 @@ export function createTriggerParameter(
fieldConfig: any, // Use any to allow flexible field configurations
triggerSlug: string
): Field {
// Create a unique field name by prefixing with trigger slug
const uniqueFieldName = `__trigger_${triggerSlug}_${name}`
return {
...fieldConfig,
name,
name: uniqueFieldName,
virtual: true,
admin: {
...fieldConfig.admin,