Feat: Add Asana data source integration and configuration options (#12239)

### What problem does this PR solve?

change: Add Asana data source integration and configuration options

### Type of change

- [x] New Feature (non-breaking change which adds functionality)

---------

Co-authored-by: Kevin Hu <kevinhu.sh@gmail.com>
This commit is contained in:
buua436
2025-12-29 13:28:37 +08:00
committed by GitHub
parent 651d9fff9f
commit a764f0a5b2
12 changed files with 579 additions and 2 deletions

View File

@ -25,6 +25,7 @@ export enum DataSourceKey {
OCI_STORAGE = 'oci_storage',
GOOGLE_CLOUD_STORAGE = 'google_cloud_storage',
AIRTABLE = 'airtable',
ASANA = 'asana',
// SHAREPOINT = 'sharepoint',
// SLACK = 'slack',
// TEAMS = 'teams',
@ -109,6 +110,11 @@ export const generateDataSourceInfo = (t: TFunction) => {
description: t(`setting.${DataSourceKey.AIRTABLE}Description`),
icon: <SvgIcon name={'data-source/airtable'} width={38} />,
},
[DataSourceKey.ASANA]: {
name: 'Asana',
description: t(`setting.${DataSourceKey.ASANA}Description`),
icon: <SvgIcon name={'data-source/asana'} width={38} />,
},
};
};
@ -652,6 +658,32 @@ export const DataSourceFormFields = {
required: true,
},
],
[DataSourceKey.ASANA]: [
{
label: 'API Token',
name: 'config.credentials.asana_api_token_secret',
type: FormFieldType.Text,
required: true,
},
{
label: 'Workspace ID',
name: 'config.asana_workspace_id',
type: FormFieldType.Text,
required: true,
},
{
label: 'Project IDs',
name: 'config.asana_project_ids',
type: FormFieldType.Text,
required: false,
},
{
label: 'Team ID',
name: 'config.asana_team_id',
type: FormFieldType.Text,
required: false,
},
],
};
export const DataSourceFormDefaultValues = {
@ -851,4 +883,17 @@ export const DataSourceFormDefaultValues = {
},
},
},
[DataSourceKey.ASANA]: {
name: '',
source: DataSourceKey.ASANA,
config: {
name: '',
asana_workspace_id: '',
asana_project_ids: '',
asana_team_id: '',
credentials: {
asana_api_token_secret: '',
},
},
},
};