@memberjunction/integration-engine 5.10.1 → 5.12.0
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.
- package/dist/BaseIntegrationConnector.d.ts +56 -1
- package/dist/BaseIntegrationConnector.d.ts.map +1 -1
- package/dist/BaseIntegrationConnector.js +66 -1
- package/dist/BaseIntegrationConnector.js.map +1 -1
- package/dist/BaseRESTIntegrationConnector.d.ts +17 -7
- package/dist/BaseRESTIntegrationConnector.d.ts.map +1 -1
- package/dist/BaseRESTIntegrationConnector.js +60 -44
- package/dist/BaseRESTIntegrationConnector.js.map +1 -1
- package/dist/IntegrationEngine.d.ts +11 -5
- package/dist/IntegrationEngine.d.ts.map +1 -1
- package/dist/IntegrationEngine.js +131 -27
- package/dist/IntegrationEngine.js.map +1 -1
- package/dist/MatchEngine.d.ts +12 -1
- package/dist/MatchEngine.d.ts.map +1 -1
- package/dist/MatchEngine.js +43 -8
- package/dist/MatchEngine.js.map +1 -1
- package/dist/WatermarkService.d.ts +11 -0
- package/dist/WatermarkService.d.ts.map +1 -1
- package/dist/WatermarkService.js +19 -0
- package/dist/WatermarkService.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +103 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -5
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { UserInfo } from '@memberjunction/core';
|
|
2
2
|
import type { MJCompanyIntegrationEntity } from '@memberjunction/core-entities';
|
|
3
|
-
import type { ExternalRecord, DefaultFieldMapping, SourceSchemaInfo } from './types.js';
|
|
3
|
+
import type { ExternalRecord, DefaultFieldMapping, SourceSchemaInfo, CreateRecordContext, UpdateRecordContext, DeleteRecordContext, GetRecordContext, CRUDResult, SearchContext, SearchResult } from './types.js';
|
|
4
4
|
/** Result of testing a connection to an external system */
|
|
5
5
|
export interface ConnectionTestResult {
|
|
6
6
|
/** Whether the connection was successful */
|
|
@@ -56,6 +56,12 @@ export interface FetchContext {
|
|
|
56
56
|
BatchSize: number;
|
|
57
57
|
/** User context for authorization */
|
|
58
58
|
ContextUser: UserInfo;
|
|
59
|
+
/** Current page number for page-based pagination (1-based). Passed by engine on subsequent calls. */
|
|
60
|
+
CurrentPage?: number;
|
|
61
|
+
/** Current offset for offset-based pagination. Passed by engine on subsequent calls. */
|
|
62
|
+
CurrentOffset?: number;
|
|
63
|
+
/** Current cursor for cursor-based pagination. Passed by engine on subsequent calls. */
|
|
64
|
+
CurrentCursor?: string;
|
|
59
65
|
}
|
|
60
66
|
/** Result of a FetchChanges call, containing a batch of records */
|
|
61
67
|
export interface FetchBatchResult {
|
|
@@ -65,6 +71,12 @@ export interface FetchBatchResult {
|
|
|
65
71
|
HasMore: boolean;
|
|
66
72
|
/** Updated watermark value after this batch */
|
|
67
73
|
NewWatermarkValue?: string;
|
|
74
|
+
/** Next page number to pass back via FetchContext.CurrentPage on the next call (page-based pagination) */
|
|
75
|
+
NextPage?: number;
|
|
76
|
+
/** Next offset to pass back via FetchContext.CurrentOffset on the next call (offset-based pagination) */
|
|
77
|
+
NextOffset?: number;
|
|
78
|
+
/** Next cursor to pass back via FetchContext.CurrentCursor on the next call (cursor-based pagination) */
|
|
79
|
+
NextCursor?: string;
|
|
68
80
|
}
|
|
69
81
|
/** Configurable timeout values for connector operations */
|
|
70
82
|
export interface OperationTimeouts {
|
|
@@ -114,8 +126,51 @@ export interface DefaultIntegrationConfig {
|
|
|
114
126
|
* Abstract base class for integration connectors.
|
|
115
127
|
* Each external system (HubSpot, Salesforce, etc.) implements this class
|
|
116
128
|
* to provide system-specific data access and discovery.
|
|
129
|
+
*
|
|
130
|
+
* Subclasses declare their capabilities via the `SupportsX` getters.
|
|
131
|
+
* Callers can interrogate a connector instance to determine which
|
|
132
|
+
* operations it supports before attempting them.
|
|
117
133
|
*/
|
|
118
134
|
export declare abstract class BaseIntegrationConnector {
|
|
135
|
+
/** Whether this connector supports reading/fetching records. Always true. */
|
|
136
|
+
get SupportsGet(): boolean;
|
|
137
|
+
/** Whether this connector supports creating new records in the external system. */
|
|
138
|
+
get SupportsCreate(): boolean;
|
|
139
|
+
/** Whether this connector supports updating existing records in the external system. */
|
|
140
|
+
get SupportsUpdate(): boolean;
|
|
141
|
+
/** Whether this connector supports deleting records from the external system. */
|
|
142
|
+
get SupportsDelete(): boolean;
|
|
143
|
+
/** Whether this connector supports searching/querying records with filters. */
|
|
144
|
+
get SupportsSearch(): boolean;
|
|
145
|
+
/**
|
|
146
|
+
* Creates a new record in the external system.
|
|
147
|
+
* Override in subclasses that support write operations.
|
|
148
|
+
* Check `SupportsCreate` before calling.
|
|
149
|
+
*/
|
|
150
|
+
CreateRecord(_ctx: CreateRecordContext): Promise<CRUDResult>;
|
|
151
|
+
/**
|
|
152
|
+
* Updates an existing record in the external system.
|
|
153
|
+
* Override in subclasses that support write operations.
|
|
154
|
+
* Check `SupportsUpdate` before calling.
|
|
155
|
+
*/
|
|
156
|
+
UpdateRecord(_ctx: UpdateRecordContext): Promise<CRUDResult>;
|
|
157
|
+
/**
|
|
158
|
+
* Deletes a record from the external system.
|
|
159
|
+
* Override in subclasses that support delete operations.
|
|
160
|
+
* Check `SupportsDelete` before calling.
|
|
161
|
+
*/
|
|
162
|
+
DeleteRecord(_ctx: DeleteRecordContext): Promise<CRUDResult>;
|
|
163
|
+
/**
|
|
164
|
+
* Retrieves a single record by ID from the external system.
|
|
165
|
+
* Override in subclasses that support direct record retrieval.
|
|
166
|
+
*/
|
|
167
|
+
GetRecord(_ctx: GetRecordContext): Promise<ExternalRecord | null>;
|
|
168
|
+
/**
|
|
169
|
+
* Searches for records matching the given filters.
|
|
170
|
+
* Override in subclasses that support search/query operations.
|
|
171
|
+
* Check `SupportsSearch` before calling.
|
|
172
|
+
*/
|
|
173
|
+
SearchRecords(_ctx: SearchContext): Promise<SearchResult>;
|
|
119
174
|
/**
|
|
120
175
|
* Tests connectivity to the external system.
|
|
121
176
|
* @param companyIntegration - The company integration entity with connection credentials
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseIntegrationConnector.d.ts","sourceRoot":"","sources":["../src/BaseIntegrationConnector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"BaseIntegrationConnector.d.ts","sourceRoot":"","sources":["../src/BaseIntegrationConnector.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,8 +36,67 @@ export async function WithTimeout(promise, timeoutMs, operationName) {
|
|
|
36
36
|
* Abstract base class for integration connectors.
|
|
37
37
|
* Each external system (HubSpot, Salesforce, etc.) implements this class
|
|
38
38
|
* to provide system-specific data access and discovery.
|
|
39
|
+
*
|
|
40
|
+
* Subclasses declare their capabilities via the `SupportsX` getters.
|
|
41
|
+
* Callers can interrogate a connector instance to determine which
|
|
42
|
+
* operations it supports before attempting them.
|
|
39
43
|
*/
|
|
40
44
|
export class BaseIntegrationConnector {
|
|
45
|
+
// ─── Capability Getters ──────────────────────────────────────────
|
|
46
|
+
// Override in subclasses to declare which operations the connector supports.
|
|
47
|
+
// All connectors support Get (read/FetchChanges) by default.
|
|
48
|
+
/** Whether this connector supports reading/fetching records. Always true. */
|
|
49
|
+
get SupportsGet() { return true; }
|
|
50
|
+
/** Whether this connector supports creating new records in the external system. */
|
|
51
|
+
get SupportsCreate() { return false; }
|
|
52
|
+
/** Whether this connector supports updating existing records in the external system. */
|
|
53
|
+
get SupportsUpdate() { return false; }
|
|
54
|
+
/** Whether this connector supports deleting records from the external system. */
|
|
55
|
+
get SupportsDelete() { return false; }
|
|
56
|
+
/** Whether this connector supports searching/querying records with filters. */
|
|
57
|
+
get SupportsSearch() { return false; }
|
|
58
|
+
// ─── Standard CRUD Operations ────────────────────────────────────
|
|
59
|
+
// Default implementations throw if not supported. Subclasses override
|
|
60
|
+
// both the capability getter AND the method to enable the operation.
|
|
61
|
+
/**
|
|
62
|
+
* Creates a new record in the external system.
|
|
63
|
+
* Override in subclasses that support write operations.
|
|
64
|
+
* Check `SupportsCreate` before calling.
|
|
65
|
+
*/
|
|
66
|
+
async CreateRecord(_ctx) {
|
|
67
|
+
throw new Error(`CreateRecord is not supported by ${this.constructor.name}`);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Updates an existing record in the external system.
|
|
71
|
+
* Override in subclasses that support write operations.
|
|
72
|
+
* Check `SupportsUpdate` before calling.
|
|
73
|
+
*/
|
|
74
|
+
async UpdateRecord(_ctx) {
|
|
75
|
+
throw new Error(`UpdateRecord is not supported by ${this.constructor.name}`);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Deletes a record from the external system.
|
|
79
|
+
* Override in subclasses that support delete operations.
|
|
80
|
+
* Check `SupportsDelete` before calling.
|
|
81
|
+
*/
|
|
82
|
+
async DeleteRecord(_ctx) {
|
|
83
|
+
throw new Error(`DeleteRecord is not supported by ${this.constructor.name}`);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Retrieves a single record by ID from the external system.
|
|
87
|
+
* Override in subclasses that support direct record retrieval.
|
|
88
|
+
*/
|
|
89
|
+
async GetRecord(_ctx) {
|
|
90
|
+
throw new Error(`GetRecord is not supported by ${this.constructor.name}`);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Searches for records matching the given filters.
|
|
94
|
+
* Override in subclasses that support search/query operations.
|
|
95
|
+
* Check `SupportsSearch` before calling.
|
|
96
|
+
*/
|
|
97
|
+
async SearchRecords(_ctx) {
|
|
98
|
+
throw new Error(`SearchRecords is not supported by ${this.constructor.name}`);
|
|
99
|
+
}
|
|
41
100
|
/**
|
|
42
101
|
* Returns suggested default field mappings for an external object to MJ entity.
|
|
43
102
|
* Override in subclasses to provide intelligent defaults.
|
|
@@ -101,7 +160,13 @@ export class BaseIntegrationConnector {
|
|
|
101
160
|
ForeignKeyTarget: f.ForeignKeyTarget ?? null,
|
|
102
161
|
})),
|
|
103
162
|
PrimaryKeyFields: fields.filter(f => f.IsUniqueKey).map(f => f.Name),
|
|
104
|
-
Relationships:
|
|
163
|
+
Relationships: fields
|
|
164
|
+
.filter(f => (f.IsForeignKey ?? false) && f.ForeignKeyTarget)
|
|
165
|
+
.map(f => ({
|
|
166
|
+
FieldName: f.Name,
|
|
167
|
+
TargetObject: f.ForeignKeyTarget,
|
|
168
|
+
TargetField: 'ID',
|
|
169
|
+
})),
|
|
105
170
|
});
|
|
106
171
|
}
|
|
107
172
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseIntegrationConnector.js","sourceRoot":"","sources":["../src/BaseIntegrationConnector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BaseIntegrationConnector.js","sourceRoot":"","sources":["../src/BaseIntegrationConnector.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,7 @@ export interface PaginationState {
|
|
|
37
37
|
}
|
|
38
38
|
/** Pagination type values matching MJIntegrationObjectEntity.PaginationType */
|
|
39
39
|
export type PaginationType = 'Cursor' | 'None' | 'Offset' | 'PageNumber';
|
|
40
|
+
/** Maximum number of pages to fetch before stopping (safety limit to prevent infinite loops) */
|
|
40
41
|
/**
|
|
41
42
|
* Abstract base class for REST API integration connectors.
|
|
42
43
|
*
|
|
@@ -54,7 +55,7 @@ export declare abstract class BaseRESTIntegrationConnector extends BaseIntegrati
|
|
|
54
55
|
* Called once per FetchChanges invocation; the returned context is
|
|
55
56
|
* passed to BuildHeaders and MakeHTTPRequest for every request.
|
|
56
57
|
*/
|
|
57
|
-
protected abstract Authenticate(companyIntegration: MJCompanyIntegrationEntity): Promise<RESTAuthContext>;
|
|
58
|
+
protected abstract Authenticate(companyIntegration: MJCompanyIntegrationEntity, contextUser: UserInfo): Promise<RESTAuthContext>;
|
|
58
59
|
/**
|
|
59
60
|
* Build HTTP headers for an API request, including auth headers.
|
|
60
61
|
* Called before every HTTP request.
|
|
@@ -86,7 +87,7 @@ export declare abstract class BaseRESTIntegrationConnector extends BaseIntegrati
|
|
|
86
87
|
* Get the base URL for API requests (e.g., "https://api.example.com/v1").
|
|
87
88
|
* Combined with the object's APIPath to form the full request URL.
|
|
88
89
|
*/
|
|
89
|
-
protected abstract GetBaseURL(companyIntegration: MJCompanyIntegrationEntity): string;
|
|
90
|
+
protected abstract GetBaseURL(companyIntegration: MJCompanyIntegrationEntity, auth: RESTAuthContext): string;
|
|
90
91
|
/**
|
|
91
92
|
* Discovers available objects from the IntegrationEngineBase cache.
|
|
92
93
|
*/
|
|
@@ -149,7 +150,11 @@ export declare abstract class BaseRESTIntegrationConnector extends BaseIntegrati
|
|
|
149
150
|
*/
|
|
150
151
|
private FetchSinglePage;
|
|
151
152
|
/**
|
|
152
|
-
* Iterates through paginated responses
|
|
153
|
+
* Iterates through paginated responses, accumulating records up to BatchSize per call.
|
|
154
|
+
* Stops mid-pagination when BatchSize is reached and returns HasMore=true + NextPage/NextOffset
|
|
155
|
+
* so the IntegrationEngine outer loop can resume on the next FetchChanges call.
|
|
156
|
+
* Cursor state is maintained internally within the batch, avoiding the need to
|
|
157
|
+
* externalize it through FetchBatchResult (which would break cursor-based connectors).
|
|
153
158
|
*/
|
|
154
159
|
private FetchPaginatedLoop;
|
|
155
160
|
/**
|
|
@@ -159,8 +164,11 @@ export declare abstract class BaseRESTIntegrationConnector extends BaseIntegrati
|
|
|
159
164
|
/**
|
|
160
165
|
* Appends pagination parameters to a URL based on the object's PaginationType.
|
|
161
166
|
* Override in subclasses to use vendor-specific parameter names.
|
|
167
|
+
*
|
|
168
|
+
* @param effectivePageSize - When provided by FetchPaginatedLoop, caps the requested page
|
|
169
|
+
* size to the remaining batch capacity. Subclasses should honor this to prevent overshoot.
|
|
162
170
|
*/
|
|
163
|
-
protected BuildPaginatedURL(basePath: string, obj: MJIntegrationObjectEntity, page: number, offset: number, cursor?: string): string;
|
|
171
|
+
protected BuildPaginatedURL(basePath: string, obj: MJIntegrationObjectEntity, page: number, offset: number, cursor?: string, effectivePageSize?: number): string;
|
|
164
172
|
/**
|
|
165
173
|
* Appends default query parameters from the IntegrationObject metadata.
|
|
166
174
|
* DefaultQueryParams is stored as a JSON object like {"key": "value"}.
|
|
@@ -194,13 +202,15 @@ export declare abstract class BaseRESTIntegrationConnector extends BaseIntegrati
|
|
|
194
202
|
private GetCachedFields;
|
|
195
203
|
/**
|
|
196
204
|
* Converts a raw API record object to the ExternalRecord format.
|
|
205
|
+
* For composite primary keys, joins all PK values with '|' to form a unique ExternalID.
|
|
197
206
|
*/
|
|
198
207
|
private ToExternalRecord;
|
|
199
208
|
/**
|
|
200
|
-
*
|
|
201
|
-
*
|
|
209
|
+
* Returns the primary key field names for a set of IntegrationObjectField records,
|
|
210
|
+
* sorted by Sequence. For composite PKs, returns all PK fields.
|
|
211
|
+
* Falls back to ["ID"] if no PK fields are explicitly marked.
|
|
202
212
|
*/
|
|
203
|
-
private
|
|
213
|
+
private FindPrimaryKeyFieldNames;
|
|
204
214
|
/**
|
|
205
215
|
* Converts an IntegrationObjectFieldEntity to the ExternalFieldSchema format.
|
|
206
216
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseRESTIntegrationConnector.d.ts","sourceRoot":"","sources":["../src/BaseRESTIntegrationConnector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,KAAK,EAAE,0BAA0B,EAAE,yBAAyB,EAAkC,MAAM,+BAA+B,CAAC;AAE3I,OAAO,EACH,wBAAwB,
|
|
1
|
+
{"version":3,"file":"BaseRESTIntegrationConnector.d.ts","sourceRoot":"","sources":["../src/BaseRESTIntegrationConnector.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,6 @@ import { UUIDsEqual } from '@memberjunction/global';
|
|
|
3
3
|
import { IntegrationEngineBase } from '@memberjunction/integration-engine-base';
|
|
4
4
|
import { BaseIntegrationConnector, } from './BaseIntegrationConnector.js';
|
|
5
5
|
/** Maximum number of pages to fetch before stopping (safety limit to prevent infinite loops) */
|
|
6
|
-
const MAX_PAGINATION_PAGES = 200;
|
|
7
6
|
// ─── BaseRESTIntegrationConnector ────────────────────────────────────
|
|
8
7
|
/**
|
|
9
8
|
* Abstract base class for REST API integration connectors.
|
|
@@ -62,8 +61,8 @@ export class BaseRESTIntegrationConnector extends BaseIntegrationConnector {
|
|
|
62
61
|
async FetchChanges(ctx) {
|
|
63
62
|
const obj = this.GetCachedObject(ctx.CompanyIntegration.IntegrationID, ctx.ObjectName);
|
|
64
63
|
const fields = this.GetCachedFields(obj.ID);
|
|
65
|
-
const auth = await this.Authenticate(ctx.CompanyIntegration);
|
|
66
|
-
const baseURL = this.GetBaseURL(ctx.CompanyIntegration);
|
|
64
|
+
const auth = await this.Authenticate(ctx.CompanyIntegration, ctx.ContextUser);
|
|
65
|
+
const baseURL = this.GetBaseURL(ctx.CompanyIntegration, auth);
|
|
67
66
|
const templateVars = this.DetectTemplateVars(obj.APIPath);
|
|
68
67
|
if (templateVars.length > 0) {
|
|
69
68
|
return this.FetchWithTemplateVars(auth, baseURL, obj, fields, templateVars, ctx);
|
|
@@ -76,11 +75,14 @@ export class BaseRESTIntegrationConnector extends BaseIntegrationConnector {
|
|
|
76
75
|
*/
|
|
77
76
|
async FetchFlat(auth, baseURL, obj, fields, ctx) {
|
|
78
77
|
const fullPath = this.BuildFullURL(baseURL, obj.APIPath);
|
|
79
|
-
const result = await this.FetchWithPagination(auth, fullPath, obj, ctx
|
|
80
|
-
const
|
|
78
|
+
const result = await this.FetchWithPagination(auth, fullPath, obj, ctx);
|
|
79
|
+
const pkFieldNames = this.FindPrimaryKeyFieldNames(fields);
|
|
81
80
|
return {
|
|
82
|
-
Records: result.Records.map(r => this.ToExternalRecord(r, ctx.ObjectName,
|
|
81
|
+
Records: result.Records.map(r => this.ToExternalRecord(r, ctx.ObjectName, pkFieldNames)),
|
|
83
82
|
HasMore: result.HasMore,
|
|
83
|
+
NextPage: result.NextPage,
|
|
84
|
+
NextOffset: result.NextOffset,
|
|
85
|
+
NextCursor: result.NextCursor,
|
|
84
86
|
};
|
|
85
87
|
}
|
|
86
88
|
// ── Per-parent fetch (template variables) ────────────────────────
|
|
@@ -97,19 +99,17 @@ export class BaseRESTIntegrationConnector extends BaseIntegrationConnector {
|
|
|
97
99
|
return { Records: [], HasMore: false };
|
|
98
100
|
}
|
|
99
101
|
const parentIDs = await this.LoadParentIDs(parentInfo.parentObjectID, ctx.ContextUser);
|
|
100
|
-
const
|
|
102
|
+
const pkFieldNames = this.FindPrimaryKeyFieldNames(fields);
|
|
101
103
|
const allRecords = [];
|
|
102
104
|
for (const parentID of parentIDs) {
|
|
103
105
|
const resolvedPath = this.SubstituteTemplateVars(obj.APIPath, parentInfo.templateVar, parentID);
|
|
104
106
|
const fullURL = this.BuildFullURL(baseURL, resolvedPath);
|
|
105
|
-
const result = await this.FetchWithPagination(auth, fullURL, obj, ctx
|
|
107
|
+
const result = await this.FetchWithPagination(auth, fullURL, obj, ctx);
|
|
106
108
|
const tagged = result.Records.map(r => {
|
|
107
109
|
r[parentInfo.fkFieldName] = parentID;
|
|
108
|
-
return this.ToExternalRecord(r, ctx.ObjectName,
|
|
110
|
+
return this.ToExternalRecord(r, ctx.ObjectName, pkFieldNames);
|
|
109
111
|
});
|
|
110
112
|
allRecords.push(...tagged);
|
|
111
|
-
if (allRecords.length >= ctx.BatchSize)
|
|
112
|
-
break;
|
|
113
113
|
}
|
|
114
114
|
return { Records: allRecords, HasMore: false };
|
|
115
115
|
}
|
|
@@ -207,11 +207,11 @@ export class BaseRESTIntegrationConnector extends BaseIntegrationConnector {
|
|
|
207
207
|
* Fetches records from a single URL with pagination support.
|
|
208
208
|
* Loops through pages until no more data or maxRecords is reached.
|
|
209
209
|
*/
|
|
210
|
-
async FetchWithPagination(auth, basePath, obj,
|
|
210
|
+
async FetchWithPagination(auth, basePath, obj, ctx) {
|
|
211
211
|
if (!obj.SupportsPagination || obj.PaginationType === 'None') {
|
|
212
212
|
return this.FetchSinglePage(auth, basePath, obj);
|
|
213
213
|
}
|
|
214
|
-
return this.FetchPaginatedLoop(auth, basePath, obj,
|
|
214
|
+
return this.FetchPaginatedLoop(auth, basePath, obj, ctx);
|
|
215
215
|
}
|
|
216
216
|
/**
|
|
217
217
|
* Fetches a single non-paginated page.
|
|
@@ -225,19 +225,25 @@ export class BaseRESTIntegrationConnector extends BaseIntegrationConnector {
|
|
|
225
225
|
return { Records: records, HasMore: false };
|
|
226
226
|
}
|
|
227
227
|
/**
|
|
228
|
-
* Iterates through paginated responses
|
|
228
|
+
* Iterates through paginated responses, accumulating records up to BatchSize per call.
|
|
229
|
+
* Stops mid-pagination when BatchSize is reached and returns HasMore=true + NextPage/NextOffset
|
|
230
|
+
* so the IntegrationEngine outer loop can resume on the next FetchChanges call.
|
|
231
|
+
* Cursor state is maintained internally within the batch, avoiding the need to
|
|
232
|
+
* externalize it through FetchBatchResult (which would break cursor-based connectors).
|
|
229
233
|
*/
|
|
230
|
-
async FetchPaginatedLoop(auth, basePath, obj,
|
|
234
|
+
async FetchPaginatedLoop(auth, basePath, obj, ctx) {
|
|
231
235
|
const allRecords = [];
|
|
232
|
-
|
|
233
|
-
let
|
|
234
|
-
let
|
|
236
|
+
const batchLimit = ctx.BatchSize ?? Number.MAX_SAFE_INTEGER;
|
|
237
|
+
let page = ctx.CurrentPage ?? 1;
|
|
238
|
+
let offset = ctx.CurrentOffset ?? 0;
|
|
239
|
+
let cursor = ctx.CurrentCursor;
|
|
235
240
|
let hasMore = true;
|
|
236
|
-
let pageCount = 0;
|
|
237
241
|
let previousFirstRecordKey;
|
|
238
|
-
while (hasMore && allRecords.length <
|
|
239
|
-
|
|
240
|
-
|
|
242
|
+
while (hasMore && allRecords.length < batchLimit) {
|
|
243
|
+
// Cap the requested page size so the API never returns more than we can fit.
|
|
244
|
+
// This prevents overshoot when a single page would push allRecords over batchLimit.
|
|
245
|
+
const remainingCapacity = batchLimit - allRecords.length;
|
|
246
|
+
const url = this.BuildPaginatedURL(basePath, obj, page, offset, cursor, remainingCapacity);
|
|
241
247
|
const requestURL = this.AppendDefaultQueryParams(url, obj);
|
|
242
248
|
const headers = this.BuildHeaders(auth);
|
|
243
249
|
const response = await this.MakeHTTPRequest(auth, requestURL, 'GET', headers);
|
|
@@ -247,29 +253,29 @@ export class BaseRESTIntegrationConnector extends BaseIntegrationConnector {
|
|
|
247
253
|
hasMore = false;
|
|
248
254
|
break;
|
|
249
255
|
}
|
|
250
|
-
// Detect duplicate pages
|
|
251
|
-
// the API's pagination is broken (returning the same data repeatedly)
|
|
256
|
+
// Detect duplicate pages (broken API pagination)
|
|
252
257
|
const currentFirstRecordKey = JSON.stringify(records[0]);
|
|
253
258
|
if (previousFirstRecordKey !== undefined && currentFirstRecordKey === previousFirstRecordKey) {
|
|
254
259
|
console.warn(`[BaseRESTIntegrationConnector] Duplicate page detected for "${obj.Name}" ` +
|
|
255
|
-
`
|
|
260
|
+
`at offset ${offset}. API pagination appears broken. Stopping.`);
|
|
256
261
|
hasMore = false;
|
|
257
262
|
break;
|
|
258
263
|
}
|
|
259
264
|
previousFirstRecordKey = currentFirstRecordKey;
|
|
260
265
|
allRecords.push(...records);
|
|
261
|
-
const paginationState = this.ExtractPaginationInfo(response.Body, obj.PaginationType, page, offset, obj.DefaultPageSize);
|
|
266
|
+
const paginationState = this.ExtractPaginationInfo(response.Body, obj.PaginationType, page, offset, obj.DefaultPageSize ?? records.length);
|
|
262
267
|
hasMore = paginationState.HasMore;
|
|
263
268
|
page = paginationState.NextPage ?? page + 1;
|
|
264
269
|
offset = paginationState.NextOffset ?? offset + records.length;
|
|
265
270
|
cursor = paginationState.NextCursor;
|
|
266
271
|
}
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
272
|
+
return {
|
|
273
|
+
Records: allRecords,
|
|
274
|
+
HasMore: hasMore,
|
|
275
|
+
NextPage: page,
|
|
276
|
+
NextOffset: offset,
|
|
277
|
+
NextCursor: cursor,
|
|
278
|
+
};
|
|
273
279
|
}
|
|
274
280
|
// ── URL building helpers ─────────────────────────────────────────
|
|
275
281
|
/**
|
|
@@ -283,18 +289,22 @@ export class BaseRESTIntegrationConnector extends BaseIntegrationConnector {
|
|
|
283
289
|
/**
|
|
284
290
|
* Appends pagination parameters to a URL based on the object's PaginationType.
|
|
285
291
|
* Override in subclasses to use vendor-specific parameter names.
|
|
292
|
+
*
|
|
293
|
+
* @param effectivePageSize - When provided by FetchPaginatedLoop, caps the requested page
|
|
294
|
+
* size to the remaining batch capacity. Subclasses should honor this to prevent overshoot.
|
|
286
295
|
*/
|
|
287
|
-
BuildPaginatedURL(basePath, obj, page, offset, cursor) {
|
|
296
|
+
BuildPaginatedURL(basePath, obj, page, offset, cursor, effectivePageSize) {
|
|
297
|
+
const pageSize = effectivePageSize ?? obj.DefaultPageSize ?? 50;
|
|
288
298
|
const separator = basePath.includes('?') ? '&' : '?';
|
|
289
299
|
switch (obj.PaginationType) {
|
|
290
300
|
case 'PageNumber':
|
|
291
|
-
return `${basePath}${separator}page=${page}&pageSize=${
|
|
301
|
+
return `${basePath}${separator}page=${page}&pageSize=${pageSize}`;
|
|
292
302
|
case 'Offset':
|
|
293
|
-
return `${basePath}${separator}offset=${offset}&limit=${
|
|
303
|
+
return `${basePath}${separator}offset=${offset}&limit=${pageSize}`;
|
|
294
304
|
case 'Cursor':
|
|
295
305
|
return cursor
|
|
296
|
-
? `${basePath}${separator}cursor=${encodeURIComponent(cursor)}&limit=${
|
|
297
|
-
: `${basePath}${separator}limit=${
|
|
306
|
+
? `${basePath}${separator}cursor=${encodeURIComponent(cursor)}&limit=${pageSize}`
|
|
307
|
+
: `${basePath}${separator}limit=${pageSize}`;
|
|
298
308
|
default:
|
|
299
309
|
return basePath;
|
|
300
310
|
}
|
|
@@ -386,9 +396,12 @@ export class BaseRESTIntegrationConnector extends BaseIntegrationConnector {
|
|
|
386
396
|
// ── Conversion helpers ───────────────────────────────────────────
|
|
387
397
|
/**
|
|
388
398
|
* Converts a raw API record object to the ExternalRecord format.
|
|
399
|
+
* For composite primary keys, joins all PK values with '|' to form a unique ExternalID.
|
|
389
400
|
*/
|
|
390
|
-
ToExternalRecord(raw, objectType,
|
|
391
|
-
const externalID =
|
|
401
|
+
ToExternalRecord(raw, objectType, pkFieldNames) {
|
|
402
|
+
const externalID = pkFieldNames
|
|
403
|
+
.map(name => raw[name] != null ? String(raw[name]) : '')
|
|
404
|
+
.join('|');
|
|
392
405
|
return {
|
|
393
406
|
ExternalID: externalID,
|
|
394
407
|
ObjectType: objectType,
|
|
@@ -396,12 +409,15 @@ export class BaseRESTIntegrationConnector extends BaseIntegrationConnector {
|
|
|
396
409
|
};
|
|
397
410
|
}
|
|
398
411
|
/**
|
|
399
|
-
*
|
|
400
|
-
*
|
|
412
|
+
* Returns the primary key field names for a set of IntegrationObjectField records,
|
|
413
|
+
* sorted by Sequence. For composite PKs, returns all PK fields.
|
|
414
|
+
* Falls back to ["ID"] if no PK fields are explicitly marked.
|
|
401
415
|
*/
|
|
402
|
-
|
|
403
|
-
const
|
|
404
|
-
|
|
416
|
+
FindPrimaryKeyFieldNames(fields) {
|
|
417
|
+
const pkFields = fields
|
|
418
|
+
.filter(f => f.IsPrimaryKey)
|
|
419
|
+
.sort((a, b) => a.Sequence - b.Sequence);
|
|
420
|
+
return pkFields.length > 0 ? pkFields.map(f => f.Name) : ['ID'];
|
|
405
421
|
}
|
|
406
422
|
/**
|
|
407
423
|
* Converts an IntegrationObjectFieldEntity to the ExternalFieldSchema format.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseRESTIntegrationConnector.js","sourceRoot":"","sources":["../src/BaseRESTIntegrationConnector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BaseRESTIntegrationConnector.js","sourceRoot":"","sources":["../src/BaseRESTIntegrationConnector.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { IMetadataProvider, type UserInfo } from '@memberjunction/core';
|
|
|
2
2
|
import { BaseSingleton } from '@memberjunction/global';
|
|
3
3
|
import { IntegrationEngineBase } from '@memberjunction/integration-engine-base';
|
|
4
4
|
import type { MJCompanyIntegrationEntity, MJCompanyIntegrationEntityMapEntity, MJCompanyIntegrationFieldMapEntity, MJCompanyIntegrationSyncWatermarkEntity, MJIntegrationEntity, MJIntegrationSourceTypeEntity, MJIntegrationObjectEntity, MJIntegrationObjectFieldEntity } from '@memberjunction/core-entities';
|
|
5
|
-
import type { SyncResult, SyncTriggerType, OnProgressCallback, OnNotificationCallback } from './types.js';
|
|
5
|
+
import type { SyncResult, SyncTriggerType, OnProgressCallback, OnNotificationCallback, IntegrationSyncOptions } from './types.js';
|
|
6
6
|
/**
|
|
7
7
|
* Server-side Integration Engine.
|
|
8
8
|
*
|
|
@@ -36,7 +36,7 @@ export declare class IntegrationEngine extends BaseSingleton<IntegrationEngine>
|
|
|
36
36
|
* @param onNotification - Optional callback invoked with a notification when the sync completes or fails
|
|
37
37
|
* @returns Aggregate sync result with record counts and errors
|
|
38
38
|
*/
|
|
39
|
-
RunSync(companyIntegrationID: string, contextUser: UserInfo, triggerType?: SyncTriggerType, onProgress?: OnProgressCallback, onNotification?: OnNotificationCallback): Promise<SyncResult>;
|
|
39
|
+
RunSync(companyIntegrationID: string, contextUser: UserInfo, triggerType?: SyncTriggerType, onProgress?: OnProgressCallback, onNotification?: OnNotificationCallback, options?: IntegrationSyncOptions): Promise<SyncResult>;
|
|
40
40
|
/**
|
|
41
41
|
* Internal sync execution method. Contains the full orchestration logic.
|
|
42
42
|
*/
|
|
@@ -91,10 +91,12 @@ export declare class IntegrationEngine extends BaseSingleton<IntegrationEngine>
|
|
|
91
91
|
*/
|
|
92
92
|
private DeleteRecord;
|
|
93
93
|
/**
|
|
94
|
-
* Builds a CompositeKey for a record lookup.
|
|
95
|
-
*
|
|
94
|
+
* Builds a CompositeKey for a record lookup using the entity's PK field definitions.
|
|
95
|
+
* Supports both single-PK and composite-PK entities. For composite PKs the recordID
|
|
96
|
+
* is expected to be a '|'-delimited string of values in PK-field sequence order —
|
|
97
|
+
* the same format written by BaseRESTIntegrationConnector.ToExternalRecord.
|
|
96
98
|
*/
|
|
97
|
-
private
|
|
99
|
+
private BuildEntityPrimaryKey;
|
|
98
100
|
/**
|
|
99
101
|
* Sets fields on a BaseEntity instance from a field value map.
|
|
100
102
|
*/
|
|
@@ -116,6 +118,10 @@ export declare class IntegrationEngine extends BaseSingleton<IntegrationEngine>
|
|
|
116
118
|
* Merges an entity-map-level result into the aggregate result.
|
|
117
119
|
*/
|
|
118
120
|
private MergeResult;
|
|
121
|
+
/**
|
|
122
|
+
* Builds a per-entity-map result summary from the entity map and its sync result.
|
|
123
|
+
*/
|
|
124
|
+
private buildEntityMapResult;
|
|
119
125
|
/**
|
|
120
126
|
* Finalizes a successful run with aggregate totals and emits a completion notification.
|
|
121
127
|
*/
|