feat(sync): add sync subsystem: SyncManager, OpsServer sync handlers, Sync UI and state, provider groupFilter support, and realtime sync log streaming via TypedSocket
This commit is contained in:
155
ts_interfaces/requests/sync.ts
Normal file
155
ts_interfaces/requests/sync.ts
Normal file
@@ -0,0 +1,155 @@
|
||||
import * as plugins from '../plugins.ts';
|
||||
import * as data from '../data/index.ts';
|
||||
|
||||
export interface IReq_GetSyncConfigs extends plugins.typedrequestInterfaces.implementsTR<
|
||||
plugins.typedrequestInterfaces.ITypedRequest,
|
||||
IReq_GetSyncConfigs
|
||||
> {
|
||||
method: 'getSyncConfigs';
|
||||
request: {
|
||||
identity: data.IIdentity;
|
||||
};
|
||||
response: {
|
||||
configs: data.ISyncConfig[];
|
||||
};
|
||||
}
|
||||
|
||||
export interface IReq_CreateSyncConfig extends plugins.typedrequestInterfaces.implementsTR<
|
||||
plugins.typedrequestInterfaces.ITypedRequest,
|
||||
IReq_CreateSyncConfig
|
||||
> {
|
||||
method: 'createSyncConfig';
|
||||
request: {
|
||||
identity: data.IIdentity;
|
||||
name: string;
|
||||
sourceConnectionId: string;
|
||||
targetConnectionId: string;
|
||||
targetGroupOffset?: string;
|
||||
intervalMinutes?: number;
|
||||
enforceDelete?: boolean;
|
||||
enforceGroupDelete?: boolean;
|
||||
addMirrorHint?: boolean;
|
||||
};
|
||||
response: {
|
||||
config: data.ISyncConfig;
|
||||
};
|
||||
}
|
||||
|
||||
export interface IReq_UpdateSyncConfig extends plugins.typedrequestInterfaces.implementsTR<
|
||||
plugins.typedrequestInterfaces.ITypedRequest,
|
||||
IReq_UpdateSyncConfig
|
||||
> {
|
||||
method: 'updateSyncConfig';
|
||||
request: {
|
||||
identity: data.IIdentity;
|
||||
syncConfigId: string;
|
||||
name?: string;
|
||||
targetGroupOffset?: string;
|
||||
intervalMinutes?: number;
|
||||
enforceDelete?: boolean;
|
||||
enforceGroupDelete?: boolean;
|
||||
addMirrorHint?: boolean;
|
||||
};
|
||||
response: {
|
||||
config: data.ISyncConfig;
|
||||
};
|
||||
}
|
||||
|
||||
export interface IReq_DeleteSyncConfig extends plugins.typedrequestInterfaces.implementsTR<
|
||||
plugins.typedrequestInterfaces.ITypedRequest,
|
||||
IReq_DeleteSyncConfig
|
||||
> {
|
||||
method: 'deleteSyncConfig';
|
||||
request: {
|
||||
identity: data.IIdentity;
|
||||
syncConfigId: string;
|
||||
};
|
||||
response: {
|
||||
ok: boolean;
|
||||
};
|
||||
}
|
||||
|
||||
export interface IReq_PauseSyncConfig extends plugins.typedrequestInterfaces.implementsTR<
|
||||
plugins.typedrequestInterfaces.ITypedRequest,
|
||||
IReq_PauseSyncConfig
|
||||
> {
|
||||
method: 'pauseSyncConfig';
|
||||
request: {
|
||||
identity: data.IIdentity;
|
||||
syncConfigId: string;
|
||||
paused: boolean;
|
||||
};
|
||||
response: {
|
||||
config: data.ISyncConfig;
|
||||
};
|
||||
}
|
||||
|
||||
export interface IReq_TriggerSync extends plugins.typedrequestInterfaces.implementsTR<
|
||||
plugins.typedrequestInterfaces.ITypedRequest,
|
||||
IReq_TriggerSync
|
||||
> {
|
||||
method: 'triggerSync';
|
||||
request: {
|
||||
identity: data.IIdentity;
|
||||
syncConfigId: string;
|
||||
};
|
||||
response: {
|
||||
ok: boolean;
|
||||
message: string;
|
||||
};
|
||||
}
|
||||
|
||||
export interface IReq_PreviewSync extends plugins.typedrequestInterfaces.implementsTR<
|
||||
plugins.typedrequestInterfaces.ITypedRequest,
|
||||
IReq_PreviewSync
|
||||
> {
|
||||
method: 'previewSync';
|
||||
request: {
|
||||
identity: data.IIdentity;
|
||||
syncConfigId: string;
|
||||
};
|
||||
response: {
|
||||
mappings: Array<{ sourceFullPath: string; targetFullPath: string }>;
|
||||
deletions: string[];
|
||||
groupDeletions: string[];
|
||||
};
|
||||
}
|
||||
|
||||
export interface IReq_GetSyncRepoStatuses extends plugins.typedrequestInterfaces.implementsTR<
|
||||
plugins.typedrequestInterfaces.ITypedRequest,
|
||||
IReq_GetSyncRepoStatuses
|
||||
> {
|
||||
method: 'getSyncRepoStatuses';
|
||||
request: {
|
||||
identity: data.IIdentity;
|
||||
syncConfigId: string;
|
||||
};
|
||||
response: {
|
||||
statuses: data.ISyncRepoStatus[];
|
||||
};
|
||||
}
|
||||
|
||||
export interface IReq_GetSyncLogs extends plugins.typedrequestInterfaces.implementsTR<
|
||||
plugins.typedrequestInterfaces.ITypedRequest,
|
||||
IReq_GetSyncLogs
|
||||
> {
|
||||
method: 'getSyncLogs';
|
||||
request: {
|
||||
identity: data.IIdentity;
|
||||
limit?: number;
|
||||
};
|
||||
response: {
|
||||
logs: data.ISyncLogEntry[];
|
||||
};
|
||||
}
|
||||
|
||||
export interface IReq_PushSyncLog extends plugins.typedrequestInterfaces.implementsTR<
|
||||
plugins.typedrequestInterfaces.ITypedRequest,
|
||||
IReq_PushSyncLog
|
||||
> {
|
||||
method: 'pushSyncLog';
|
||||
request: {
|
||||
entry: data.ISyncLogEntry;
|
||||
};
|
||||
response: {};
|
||||
}
|
||||
Reference in New Issue
Block a user