@airporting/integrations-app 0.4.149 → 0.4.151

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -98,6 +98,27 @@ export type CompanyDestination = {
98
98
  spreadsheet_id: string;
99
99
  worksheet: string;
100
100
  };
101
+ /** Un champ modifié, tel que détaillé au survol d'une ligne d'audit. */
102
+ export type SynchroAuditChange = {
103
+ field: string;
104
+ label: string;
105
+ before: string | number | boolean | null;
106
+ after: string | number | boolean | null;
107
+ };
108
+ /**
109
+ * Une action sur la configuration de la synchro, à distinguer d'une exécution.
110
+ * `user_email` nul = action d'un robot (script, cron), affichée comme telle.
111
+ */
112
+ export type SynchroAudit = {
113
+ id: number;
114
+ created: string;
115
+ action: string;
116
+ sentence: string;
117
+ user_email: string | null;
118
+ source: string | null;
119
+ job_id: number | null;
120
+ changes: SynchroAuditChange[];
121
+ };
101
122
  export type RecipeDetail = {
102
123
  id: number;
103
124
  active: boolean;
@@ -105,6 +126,7 @@ export type RecipeDetail = {
105
126
  jobs: RecipeJob[];
106
127
  schedules: RecipeSchedule[];
107
128
  tasks: RecipeTask[];
129
+ audit?: SynchroAudit[];
108
130
  company_destinations?: CompanyDestination[];
109
131
  };
110
132
  export type JobDefault = {
@@ -0,0 +1,14 @@
1
+ import { SynchroAudit } from '@/src/api/synchro/types.ts';
2
+ type Props = {
3
+ audit: SynchroAudit;
4
+ formatDate: (iso: string | null) => string;
5
+ showRecipeCol: boolean;
6
+ showSpreadsheetCol: boolean;
7
+ };
8
+ /**
9
+ * Une modification de configuration, intercalée entre les exécutions. Elle
10
+ * n'a ni durée ni volume d'opérations : ces colonnes restent vides plutôt que
11
+ * d'afficher un zéro qui se lirait comme un échec.
12
+ */
13
+ export declare function SynchroAuditRow({ audit, formatDate, showRecipeCol, showSpreadsheetCol, }: Props): import("react/jsx-runtime").JSX.Element;
14
+ export {};
@@ -1,4 +1,4 @@
1
- import { RecipeTask } from '@/src/api/synchro/types.ts';
1
+ import { RecipeTask, SynchroAudit } from '@/src/api/synchro/types.ts';
2
2
  /**
3
3
  * `recipe_tasks.worksheet` vaut '' (et non NULL) dès que la config du job ne
4
4
  * porte pas de `Sheet_Name` au premier niveau — soit la majorité des tâches.
@@ -7,7 +7,8 @@ import { RecipeTask } from '@/src/api/synchro/types.ts';
7
7
  export declare function spreadsheetTooltip(worksheet: string | null): string;
8
8
  type Props = {
9
9
  tasks: RecipeTask[];
10
+ audit?: SynchroAudit[];
10
11
  destinationCodename?: string | null;
11
12
  };
12
- export declare function SynchroHistory({ tasks, destinationCodename }: Props): import("react/jsx-runtime").JSX.Element;
13
+ export declare function SynchroHistory({ tasks, audit, destinationCodename, }: Props): import("react/jsx-runtime").JSX.Element;
13
14
  export {};
@@ -1,8 +1,10 @@
1
- import { CompanyDestination, RecipeJob, RecipeTask } from '@/src/api/synchro/types.ts';
1
+ import { CompanyDestination, RecipeJob, RecipeTask, SynchroAudit } from '@/src/api/synchro/types.ts';
2
2
  type Props = {
3
3
  job: RecipeJob | null;
4
4
  recipeId: number;
5
5
  tasks?: RecipeTask[];
6
+ /** Journal d'audit de la synchro, filtré ici sur la tâche affichée. */
7
+ audit?: SynchroAudit[];
6
8
  destinationCodename?: string | null;
7
9
  /** All (spreadsheet_id, worksheet) destinations currently configured in the
8
10
  * company, used by the dynamic form to warn live when the user types a
@@ -11,5 +13,5 @@ type Props = {
11
13
  opened: boolean;
12
14
  onClose: () => void;
13
15
  };
14
- export declare function JobConfigModal({ job, recipeId, tasks, destinationCodename, companyDestinations, opened, onClose, }: Props): import("react/jsx-runtime").JSX.Element | null;
16
+ export declare function JobConfigModal({ job, recipeId, tasks, audit, destinationCodename, companyDestinations, opened, onClose, }: Props): import("react/jsx-runtime").JSX.Element | null;
15
17
  export {};
Binary file