diff --git a/ui/src/views/Activate/Syncs/SyncRuns/SyncRunTableItem.tsx b/ui/src/views/Activate/Syncs/SyncRuns/SyncRunTableItem.tsx
index 2800b1b9..c7c2bd48 100644
--- a/ui/src/views/Activate/Syncs/SyncRuns/SyncRunTableItem.tsx
+++ b/ui/src/views/Activate/Syncs/SyncRuns/SyncRunTableItem.tsx
@@ -23,6 +23,9 @@ export const TableItem = ({ field, data }: TableItem): JSX.Element => {
case 'duration':
return {data.attributes.duration?.toPrecision(3)} seconds;
+ case 'skipped_rows':
+ return {data.attributes.skipped_rows} rows;
+
case 'rows_queried':
return {data.attributes.total_query_rows} rows;
diff --git a/ui/src/views/Activate/Syncs/__tests__/SyncRunsTableItem.test.tsx b/ui/src/views/Activate/Syncs/__tests__/SyncRunsTableItem.test.tsx
index 8fcf18da..7c64421a 100644
--- a/ui/src/views/Activate/Syncs/__tests__/SyncRunsTableItem.test.tsx
+++ b/ui/src/views/Activate/Syncs/__tests__/SyncRunsTableItem.test.tsx
@@ -19,6 +19,7 @@ const mockSyncRunsData: SyncRunsResponse[] = [
updated_at: '2024-01-01T00:00:00.000Z',
duration: 1.0,
total_query_rows: 500,
+ skipped_rows: 0,
total_rows: 500,
successful_rows: 500,
failed_rows: 0,
@@ -39,6 +40,7 @@ const mockSyncRunsData: SyncRunsResponse[] = [
updated_at: '2024-03-15T07:26:07.378Z',
duration: 1.0,
total_query_rows: 500,
+ skipped_rows: 0,
total_rows: 500,
successful_rows: 450,
failed_rows: 50,
@@ -63,6 +65,11 @@ describe('TableItem', () => {
expect(screen.getByText('500 rows')).toBeTruthy();
});
+ it('should render rows skipped correctly', () => {
+ render();
+ expect(screen.getByText('0 rows')).toBeTruthy();
+ });
+
it('should render status correctly for success', () => {
render();
expect(screen.getByText('Success')).toBeTruthy();
diff --git a/ui/src/views/Activate/Syncs/constants.ts b/ui/src/views/Activate/Syncs/constants.ts
index 27b6e0d4..28ea22b7 100644
--- a/ui/src/views/Activate/Syncs/constants.ts
+++ b/ui/src/views/Activate/Syncs/constants.ts
@@ -38,6 +38,12 @@ export const SYNC_RUNS_COLUMNS: SyncRunsColumnEntity[] = [
hasHoverText: true,
hoverText: 'Number of rows your query returned from the Source.',
},
+ {
+ key: 'skipped_rows',
+ name: 'Rows Skipped',
+ hasHoverText: true,
+ hoverText: 'Number of rows your query skipped while processing your sync.',
+ },
{
key: 'results',
name: 'Results',
diff --git a/ui/src/views/Activate/Syncs/types.ts b/ui/src/views/Activate/Syncs/types.ts
index d73fff7d..fbcec6f7 100644
--- a/ui/src/views/Activate/Syncs/types.ts
+++ b/ui/src/views/Activate/Syncs/types.ts
@@ -145,6 +145,7 @@ export type SyncRunsResponse = {
updated_at: string;
duration: number | null;
total_query_rows: number;
+ skipped_rows: number;
total_rows: number;
successful_rows: number;
failed_rows: number;
@@ -159,6 +160,7 @@ export type SyncRunsColumnFields =
| 'start_time'
| 'duration'
| 'rows_queried'
+ | 'skipped_rows'
| 'results';
export type SyncRunsColumnEntity = {