mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-08-06 07:34:04 +08:00
### What problem does this PR solve? This PR improves the connector dashboard task management experience and adds better visibility into connector execution logs. ### Overview: #### Before <img width="700" alt="image" src="https://github.com/user-attachments/assets/e4a8ed6f-2e18-4f0f-8528-41a514550052" /> #### Now: <img width="700" alt="Screenshot from 2026-05-18 16-31-30" src="https://github.com/user-attachments/assets/d4ca193b-847a-49ae-9e4f-5fbca60ea627" /> ### 1. Add a new logging page to the connector dashboard A new logging page has been added so users can view connector task execution logs directly from the connector dashboard. ### 2. Merge the Resume button into Confirm The separate **Resume** button has been removed. The **Confirm** button now represents different actions depending on the current task state: - **Save**: Save form changes and reschedule tasks. - **Stop**: Cancel currently scheduled or running tasks. - **Resume**: Create new scheduled tasks after the previous tasks have been stopped. - **Start**: Start tasks when no task has been started yet. ### 3. Separate syncing and pruning tasks Connector tasks are now separated into **syncing** and **pruning**. Pruning is controlled by the **Sync deleted files** option: - When **Sync deleted files** is disabled, only syncing tasks are shown. - When **Sync deleted files** is enabled, both syncing and pruning tasks are shown. **Now: Sync deleted files disabled** <img width="700" alt="Sync deleted files disabled" src="https://github.com/user-attachments/assets/dbd9232e-614a-407f-a0b1-c109e5fa567d" /> **Now: Sync deleted files enabled** <img width="700" alt="Sync deleted files enabled" src="https://github.com/user-attachments/assets/1f527f48-ccb3-4ee8-97ca-086891489296" /> ### 4. Update logs in backend <img width="700" alt="image" src="https://github.com/user-attachments/assets/10a95a3f-98c1-4e67-8afa-ddf6cda5b0b2" /> ### 5. Remove connector resume API - Removed: `POST /v1/connectors/<connector_id>/resume` - Replaced by: `PATCH /v1/connectors/<connector_id>` ### Type of change - [x] New Feature (non-breaking change which adds functionality)
68 lines
2.2 KiB
TypeScript
68 lines
2.2 KiB
TypeScript
import api from '@/utils/api';
|
|
import registerServer from '@/utils/register-server';
|
|
import request from '@/utils/request';
|
|
|
|
const { dataSourceSet, dataSourceList } = api;
|
|
const methods = {
|
|
dataSourceSet: {
|
|
url: dataSourceSet,
|
|
method: 'post',
|
|
},
|
|
dataSourceList: {
|
|
url: dataSourceList,
|
|
method: 'get',
|
|
},
|
|
} as const;
|
|
const dataSourceService = registerServer<keyof typeof methods>(
|
|
methods,
|
|
request,
|
|
);
|
|
|
|
export const deleteDataSource = (id: string) =>
|
|
request.delete(api.dataSourceDel(id));
|
|
|
|
export const dataSourceRebuild = (id: string, data: { kb_id: string }) => {
|
|
return request.post(api.dataSourceRebuild(id), { data });
|
|
};
|
|
|
|
export const dataSourceUpdate = (id: string, data: Record<string, any>) => {
|
|
return request.patch(api.dataSourceUpdate(id), { data });
|
|
};
|
|
|
|
export const getDataSourceLogs = (id: string, params?: any) =>
|
|
request.get(api.dataSourceLogs(id), { params });
|
|
export const featchDataSourceDetail = (id: string) =>
|
|
request.get(api.dataSourceDetail(id));
|
|
|
|
export const testDataSource = (id: string) =>
|
|
request.post(api.dataSourceTest(id));
|
|
|
|
export const startGoogleDriveWebAuth = (payload: {
|
|
credentials: string;
|
|
redirect_uri?: string;
|
|
}) => request.post(api.googleWebAuthStart('google-drive'), { data: payload });
|
|
|
|
export const pollGoogleDriveWebAuthResult = (payload: { flow_id: string }) =>
|
|
request.post(api.googleWebAuthResult('google-drive'), { data: payload });
|
|
|
|
// Gmail web auth follows the same pattern as Google Drive, but uses
|
|
// Gmail-specific endpoints and is consumed by the GmailTokenField UI.
|
|
export const startGmailWebAuth = (payload: {
|
|
credentials: string;
|
|
redirect_uri?: string;
|
|
}) => request.post(api.googleWebAuthStart('gmail'), { data: payload });
|
|
|
|
export const pollGmailWebAuthResult = (payload: { flow_id: string }) =>
|
|
request.post(api.googleWebAuthResult('gmail'), { data: payload });
|
|
|
|
export const startBoxWebAuth = (payload: {
|
|
client_id: string;
|
|
client_secret: string;
|
|
redirect_uri?: string;
|
|
}) => request.post(api.boxWebAuthStart(), { data: payload });
|
|
|
|
export const pollBoxWebAuthResult = (payload: { flow_id: string }) =>
|
|
request.post(api.boxWebAuthResult(), { data: payload });
|
|
|
|
export default dataSourceService;
|