@memberjunction/connector-orcid 1.1.2 → 1.2.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/ORCIDConnector.d.ts +60 -12
- package/dist/ORCIDConnector.js +126 -27
- package/dist/ORCIDConnector.js.map +1 -1
- package/package.json +1 -1
package/dist/ORCIDConnector.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type UserInfo } from '@memberjunction/core';
|
|
2
2
|
import type { MJCompanyIntegrationEntity, MJIntegrationObjectEntity, MJIntegrationObjectFieldEntity } from '@memberjunction/core-entities';
|
|
3
|
-
import { BaseRESTIntegrationConnector, type RESTAuthContext, type RESTResponse, type PaginationState, type PaginationType, type ConnectionTestResult, type FetchContext, type FetchBatchResult, type RateLimitPolicy } from '@memberjunction/integration-engine';
|
|
3
|
+
import { BaseRESTIntegrationConnector, type RESTAuthContext, type RESTResponse, type PaginationState, type PaginationType, type ConnectionTestResult, type FetchContext, type FetchBatchResult, type ExternalRecord, type RateLimitPolicy } from '@memberjunction/integration-engine';
|
|
4
4
|
/**
|
|
5
5
|
* Per-connection configuration for the ORCID connector.
|
|
6
6
|
*
|
|
@@ -10,7 +10,10 @@ import { BaseRESTIntegrationConnector, type RESTAuthContext, type RESTResponse,
|
|
|
10
10
|
* must be provided.
|
|
11
11
|
*/
|
|
12
12
|
export interface ORCIDConnectionConfig {
|
|
13
|
-
/**
|
|
13
|
+
/**
|
|
14
|
+
* OAuth2 client_credentials grant — client identifier. From the credential store.
|
|
15
|
+
* Omit BOTH this and ClientSecret to run against the ORCID Public API anonymously.
|
|
16
|
+
*/
|
|
14
17
|
ClientID?: string;
|
|
15
18
|
/** OAuth2 client_credentials grant — client secret. From the credential store. */
|
|
16
19
|
ClientSecret?: string;
|
|
@@ -47,11 +50,30 @@ export interface ORCIDConnectionConfig {
|
|
|
47
50
|
*/
|
|
48
51
|
ApiBaseUrl?: string;
|
|
49
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Authenticated context carried through one FetchChanges cycle.
|
|
55
|
+
*
|
|
56
|
+
* `Token` is undefined in ANONYMOUS mode — the ORCID Public API serves public records with no
|
|
57
|
+
* credential at all, so a connection configured with no credential skips the OAuth grant
|
|
58
|
+
* entirely and sends no Authorization header. See `parseConfig` for how the mode is chosen.
|
|
59
|
+
*/
|
|
60
|
+
interface ORCIDAuthContext extends RESTAuthContext {
|
|
61
|
+
/** Bearer token, or undefined in anonymous mode (matches the base RESTAuthContext contract). */
|
|
62
|
+
Token?: string;
|
|
63
|
+
/** Token expiry. Undefined in anonymous mode — there is no token to expire or refresh. */
|
|
64
|
+
ExpiresAt?: Date;
|
|
65
|
+
BaseUrl: string;
|
|
66
|
+
Config: ORCIDConnectionConfig;
|
|
67
|
+
}
|
|
50
68
|
/**
|
|
51
69
|
* Connector for the ORCID Public API v3.0 (read-only).
|
|
52
70
|
*
|
|
53
71
|
* Authenticates via OAuth2 2-legged client_credentials (scope `/read-public`)
|
|
54
|
-
* to obtain a bearer token
|
|
72
|
+
* to obtain a bearer token, OR runs ANONYMOUSLY when no credential is configured:
|
|
73
|
+
* the ORCID Public API serves public records with no token at all, so a connection
|
|
74
|
+
* that supplies neither ClientID nor ClientSecret skips the grant and sends no
|
|
75
|
+
* Authorization header. Supplying only one half of the pair is still an error.
|
|
76
|
+
* ORCID is NOT enumerable — there is no
|
|
55
77
|
* "list all records" endpoint — so every sync is SCOPED per connection via
|
|
56
78
|
* `CompanyIntegration.Configuration` (`searchQuery` Lucene query and/or an
|
|
57
79
|
* explicit `orcidIds` array). FetchChanges resolves the in-scope iD set, then
|
|
@@ -84,6 +106,14 @@ export declare class ORCIDConnector extends BaseRESTIntegrationConnector {
|
|
|
84
106
|
* (HTTP 429 with X-Rate-Limit-* + Retry-After). Run conservatively under the burst cap.
|
|
85
107
|
*/
|
|
86
108
|
get RateLimitPolicy(): RateLimitPolicy | null;
|
|
109
|
+
/**
|
|
110
|
+
* ORCID's per-request latency (~1.4s typical) makes the sync LATENCY-bound, not rate-bound, at
|
|
111
|
+
* the engine's default concurrency of 4: 4 in-flight ≈ 3 req/s against the ~10 req/s the
|
|
112
|
+
* RateLimitPolicy above already permits. Raising the ceiling lets the engine's adaptive
|
|
113
|
+
* controller ramp until the token bucket — the real constraint — becomes binding. This is a
|
|
114
|
+
* CEILING, not a floor: the AIMD controller still cuts on 429/503.
|
|
115
|
+
*/
|
|
116
|
+
get MaxConcurrencyHint(): number | null;
|
|
87
117
|
/** Parse ORCID's Retry-After (delta-seconds or HTTP-date) into milliseconds. */
|
|
88
118
|
ExtractRetryAfterMs(error: unknown): number | undefined;
|
|
89
119
|
/**
|
|
@@ -93,8 +123,10 @@ export declare class ORCIDConnector extends BaseRESTIntegrationConnector {
|
|
|
93
123
|
*/
|
|
94
124
|
StableOrderingKey(_objectName: string): string | null;
|
|
95
125
|
/**
|
|
96
|
-
* Verifies connectivity by
|
|
97
|
-
* lightweight
|
|
126
|
+
* Verifies connectivity by resolving auth (a client_credentials token, or anonymous when no
|
|
127
|
+
* credential is configured), then issuing a lightweight probe against a well-known public
|
|
128
|
+
* iD's /record. A 401/403 is a failure in BOTH modes — that probe record is public, so being
|
|
129
|
+
* turned away means the host or the credential is wrong.
|
|
98
130
|
*/
|
|
99
131
|
TestConnection(companyIntegration: MJCompanyIntegrationEntity, contextUser: UserInfo): Promise<ConnectionTestResult>;
|
|
100
132
|
/**
|
|
@@ -116,7 +148,7 @@ export declare class ORCIDConnector extends BaseRESTIntegrationConnector {
|
|
|
116
148
|
* Fetches the raw item array for a single iD + object. For the root record IO this is
|
|
117
149
|
* a single-element array (the record itself); for a section it is the expanded group items.
|
|
118
150
|
*/
|
|
119
|
-
|
|
151
|
+
protected FetchForId(auth: ORCIDAuthContext, obj: MJIntegrationObjectEntity, iD: string, section: string | null): Promise<Record<string, unknown>[]>;
|
|
120
152
|
/**
|
|
121
153
|
* Expands an ORCID activity-section group envelope into individual item objects.
|
|
122
154
|
*
|
|
@@ -126,14 +158,19 @@ export declare class ORCIDConnector extends BaseRESTIntegrationConnector {
|
|
|
126
158
|
* leaf item; we flatten all such arrays found anywhere in the envelope. Each
|
|
127
159
|
* item is tagged with the parent `orcid-id` (the FK to record).
|
|
128
160
|
*/
|
|
129
|
-
|
|
161
|
+
protected expandSection(body: Record<string, unknown>, _section: string, iD: string): Record<string, unknown>[];
|
|
130
162
|
/**
|
|
131
163
|
* Resolves the in-scope ORCID iD universe from CompanyIntegration.Configuration:
|
|
132
164
|
* the explicit `orcidIds` list (always included) plus the result of running the
|
|
133
165
|
* Lucene `searchQuery` against /search (or /expanded-search), bounded by
|
|
134
|
-
* MaxSearchResults to avoid draining the ~10k cap. Returns a de-duplicated set
|
|
166
|
+
* MaxSearchResults to avoid draining the ~10k cap. Returns a de-duplicated set,
|
|
167
|
+
* sorted lexicographically.
|
|
168
|
+
*
|
|
169
|
+
* Returns the COMPLETE universe — batching is the caller's job. ORCID iDs are a
|
|
170
|
+
* fixed 16-digit dashed format, so a lexicographic sort is a total, stable order
|
|
171
|
+
* and therefore a valid keyset pagination key for FetchChanges.
|
|
135
172
|
*/
|
|
136
|
-
|
|
173
|
+
protected ResolveOrcidIdUniverse(auth: ORCIDAuthContext): Promise<string[]>;
|
|
137
174
|
/**
|
|
138
175
|
* Runs the Lucene query against ORCID /search (or /expanded-search) with offset
|
|
139
176
|
* pagination (start/rows), accumulating iDs up to maxResults ("Goldilocks" bound).
|
|
@@ -149,7 +186,7 @@ export declare class ORCIDConnector extends BaseRESTIntegrationConnector {
|
|
|
149
186
|
* (orcid-id for record, put-code for sections) drives the ExternalID; partial keys
|
|
150
187
|
* fall back to the base content-hash identity.
|
|
151
188
|
*/
|
|
152
|
-
|
|
189
|
+
protected toRecord(raw: Record<string, unknown>, obj: MJIntegrationObjectEntity, fields: MJIntegrationObjectFieldEntity[], pkFieldNames: string[]): ExternalRecord;
|
|
153
190
|
/**
|
|
154
191
|
* Per-record reshaping: ORCID returns deeply-nested JSON; pull the declared scalar
|
|
155
192
|
* convenience fields up to the top level so the generated columns are populated, while
|
|
@@ -163,12 +200,22 @@ export declare class ORCIDConnector extends BaseRESTIntegrationConnector {
|
|
|
163
200
|
/** ORCID date wrapper: { value: <millis> } → ISO string; passthrough on already-scalar/empty. */
|
|
164
201
|
private coerceDate;
|
|
165
202
|
/** Extracts the last-modified-date millis from a record (for watermark comparison). */
|
|
166
|
-
|
|
203
|
+
protected extractLastModifiedMs(raw: Record<string, unknown>): number | null;
|
|
167
204
|
/** Pulls a millisecond epoch out of an ORCID timestamp wrapper or a scalar number/ISO string. */
|
|
168
205
|
private extractMs;
|
|
169
206
|
private asObject;
|
|
170
|
-
|
|
207
|
+
protected parseWatermark(value: string | null): number | null;
|
|
171
208
|
protected Authenticate(companyIntegration: MJCompanyIntegrationEntity, contextUser: UserInfo): Promise<RESTAuthContext>;
|
|
209
|
+
/**
|
|
210
|
+
* True when the connection carries no client_credentials pair — anonymous Public API mode.
|
|
211
|
+
* `parseConfig` has already rejected the half-configured case, so "no ClientID" here means
|
|
212
|
+
* "no credential was supplied at all", never "the secret went missing".
|
|
213
|
+
*/
|
|
214
|
+
protected IsAnonymousConfig(config: ORCIDConnectionConfig): boolean;
|
|
215
|
+
/** Anonymous state: no grant, no token, nothing to refresh. */
|
|
216
|
+
private buildAnonymousState;
|
|
217
|
+
/** Credentialed state: exchange the client_credentials grant for a bearer token. */
|
|
218
|
+
private buildTokenState;
|
|
172
219
|
protected BuildHeaders(auth: RESTAuthContext): Record<string, string>;
|
|
173
220
|
/** Not used by the overridden FetchChanges; retained for any base-pipeline callers (GetRecord). */
|
|
174
221
|
protected NormalizeResponse(rawBody: unknown, responseDataKey: string | null): Record<string, unknown>[];
|
|
@@ -204,3 +251,4 @@ export declare class ORCIDConnector extends BaseRESTIntegrationConnector {
|
|
|
204
251
|
}
|
|
205
252
|
/** Tree-shaking prevention function — import and call from the module entry point. */
|
|
206
253
|
export declare function LoadORCIDConnector(): void;
|
|
254
|
+
export {};
|
package/dist/ORCIDConnector.js
CHANGED
|
@@ -30,7 +30,11 @@ const ROOT_OBJECT_NAME = 'record';
|
|
|
30
30
|
* Connector for the ORCID Public API v3.0 (read-only).
|
|
31
31
|
*
|
|
32
32
|
* Authenticates via OAuth2 2-legged client_credentials (scope `/read-public`)
|
|
33
|
-
* to obtain a bearer token
|
|
33
|
+
* to obtain a bearer token, OR runs ANONYMOUSLY when no credential is configured:
|
|
34
|
+
* the ORCID Public API serves public records with no token at all, so a connection
|
|
35
|
+
* that supplies neither ClientID nor ClientSecret skips the grant and sends no
|
|
36
|
+
* Authorization header. Supplying only one half of the pair is still an error.
|
|
37
|
+
* ORCID is NOT enumerable — there is no
|
|
34
38
|
* "list all records" endpoint — so every sync is SCOPED per connection via
|
|
35
39
|
* `CompanyIntegration.Configuration` (`searchQuery` Lucene query and/or an
|
|
36
40
|
* explicit `orcidIds` array). FetchChanges resolves the in-scope iD set, then
|
|
@@ -70,6 +74,14 @@ let ORCIDConnector = class ORCIDConnector extends BaseRESTIntegrationConnector {
|
|
|
70
74
|
get RateLimitPolicy() {
|
|
71
75
|
return { TokensPerSec: RATE_LIMIT_TOKENS_PER_SEC, Burst: 40, ThrottleBackoffFactor: 0.5 };
|
|
72
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* ORCID's per-request latency (~1.4s typical) makes the sync LATENCY-bound, not rate-bound, at
|
|
79
|
+
* the engine's default concurrency of 4: 4 in-flight ≈ 3 req/s against the ~10 req/s the
|
|
80
|
+
* RateLimitPolicy above already permits. Raising the ceiling lets the engine's adaptive
|
|
81
|
+
* controller ramp until the token bucket — the real constraint — becomes binding. This is a
|
|
82
|
+
* CEILING, not a floor: the AIMD controller still cuts on 429/503.
|
|
83
|
+
*/
|
|
84
|
+
get MaxConcurrencyHint() { return 16; }
|
|
73
85
|
/** Parse ORCID's Retry-After (delta-seconds or HTTP-date) into milliseconds. */
|
|
74
86
|
ExtractRetryAfterMs(error) {
|
|
75
87
|
const headers = error?.Headers;
|
|
@@ -97,8 +109,10 @@ let ORCIDConnector = class ORCIDConnector extends BaseRESTIntegrationConnector {
|
|
|
97
109
|
StableOrderingKey(_objectName) { return null; }
|
|
98
110
|
// ─── TestConnection ──────────────────────────────────────────────
|
|
99
111
|
/**
|
|
100
|
-
* Verifies connectivity by
|
|
101
|
-
* lightweight
|
|
112
|
+
* Verifies connectivity by resolving auth (a client_credentials token, or anonymous when no
|
|
113
|
+
* credential is configured), then issuing a lightweight probe against a well-known public
|
|
114
|
+
* iD's /record. A 401/403 is a failure in BOTH modes — that probe record is public, so being
|
|
115
|
+
* turned away means the host or the credential is wrong.
|
|
102
116
|
*/
|
|
103
117
|
async TestConnection(companyIntegration, contextUser) {
|
|
104
118
|
try {
|
|
@@ -114,9 +128,12 @@ let ORCIDConnector = class ORCIDConnector extends BaseRESTIntegrationConnector {
|
|
|
114
128
|
if (resp.Status >= 500) {
|
|
115
129
|
return { Success: false, Message: `ORCID TestConnection failed: HTTP ${resp.Status} (server error)` };
|
|
116
130
|
}
|
|
131
|
+
const host = auth.Config.UseSandbox ? 'sandbox' : 'production';
|
|
117
132
|
return {
|
|
118
133
|
Success: true,
|
|
119
|
-
Message:
|
|
134
|
+
Message: auth.Token == null
|
|
135
|
+
? `Successfully reached the ORCID Public API anonymously — no credential configured (${host}).`
|
|
136
|
+
: `Successfully authenticated against ORCID Public API (${host}).`,
|
|
120
137
|
ServerVersion: 'ORCID Public API v3.0',
|
|
121
138
|
};
|
|
122
139
|
}
|
|
@@ -144,9 +161,9 @@ let ORCIDConnector = class ORCIDConnector extends BaseRESTIntegrationConnector {
|
|
|
144
161
|
const obj = this.GetCachedObject(ctx.CompanyIntegration.IntegrationID, ctx.ObjectName);
|
|
145
162
|
const fields = this.GetCachedFields(obj.ID);
|
|
146
163
|
const auth = await this.Authenticate(ctx.CompanyIntegration, ctx.ContextUser);
|
|
147
|
-
const
|
|
164
|
+
const universe = await this.ResolveOrcidIdUniverse(auth);
|
|
148
165
|
const warnings = [];
|
|
149
|
-
if (
|
|
166
|
+
if (universe.length === 0) {
|
|
150
167
|
warnings.push({
|
|
151
168
|
Code: 'ZERO_SCOPE',
|
|
152
169
|
Message: `ORCID "${ctx.ObjectName}": no iDs resolved from CompanyIntegration.Configuration. ` +
|
|
@@ -154,13 +171,46 @@ let ORCIDConnector = class ORCIDConnector extends BaseRESTIntegrationConnector {
|
|
|
154
171
|
});
|
|
155
172
|
return { Records: [], HasMore: false, Warnings: warnings };
|
|
156
173
|
}
|
|
174
|
+
// Keyset window over the sorted iD universe. BatchSize is interpreted as iDs-per-batch:
|
|
175
|
+
// one iD expands to an unbounded number of section items, so bounding the iD count is what
|
|
176
|
+
// actually bounds memory and request volume. Previously the universe was sliced to BatchSize
|
|
177
|
+
// and the remainder was DISCARDED while still reporting HasMore:false — every iD past the
|
|
178
|
+
// first BatchSize was silently unsyncable.
|
|
179
|
+
const remaining = ctx.AfterKeyValue
|
|
180
|
+
? universe.filter(id => id > ctx.AfterKeyValue)
|
|
181
|
+
: universe;
|
|
182
|
+
const pageSize = ctx.BatchSize > 0 ? ctx.BatchSize : remaining.length;
|
|
183
|
+
const orcidIds = remaining.slice(0, pageSize);
|
|
184
|
+
const hasMore = remaining.length > orcidIds.length;
|
|
185
|
+
if (orcidIds.length === 0) {
|
|
186
|
+
return { Records: [], HasMore: false, Warnings: warnings.length > 0 ? warnings : undefined };
|
|
187
|
+
}
|
|
157
188
|
const section = ctx.ObjectName === ROOT_OBJECT_NAME ? null : ctx.ObjectName;
|
|
158
189
|
const watermark = this.parseWatermark(ctx.WatermarkValue);
|
|
159
190
|
const pkFieldNames = fields.filter(f => f.IsPrimaryKey).map(f => f.Name);
|
|
160
191
|
const out = [];
|
|
161
192
|
let maxSeen = watermark;
|
|
193
|
+
let skippedIdCount = 0;
|
|
162
194
|
for (const iD of orcidIds) {
|
|
163
|
-
|
|
195
|
+
// Per-iD isolation: one bad iD (persistent 5xx, malformed record) must not abort the
|
|
196
|
+
// whole page. This matters more since the switch to keyset paging — the engine can only
|
|
197
|
+
// step past a failed page for offset/page pagination (`canSkipPage`), so a throw here
|
|
198
|
+
// would stall the scan at this iD on EVERY subsequent run, permanently. 403/404 are
|
|
199
|
+
// already handled as empty inside FetchForId; this catches everything else.
|
|
200
|
+
let items;
|
|
201
|
+
try {
|
|
202
|
+
items = await this.FetchForId(auth, obj, iD, section);
|
|
203
|
+
}
|
|
204
|
+
catch (err) {
|
|
205
|
+
skippedIdCount++;
|
|
206
|
+
warnings.push({
|
|
207
|
+
Code: 'ID_FETCH_FAILED',
|
|
208
|
+
Message: `ORCID "${ctx.ObjectName}": iD ${iD} failed and was skipped — ` +
|
|
209
|
+
`${err instanceof Error ? err.message : String(err)}`,
|
|
210
|
+
Data: { orcidId: iD, objectName: ctx.ObjectName },
|
|
211
|
+
});
|
|
212
|
+
continue;
|
|
213
|
+
}
|
|
164
214
|
for (const raw of items) {
|
|
165
215
|
const lmd = this.extractLastModifiedMs(raw);
|
|
166
216
|
// Incremental narrowing: skip records not newer than the watermark.
|
|
@@ -171,8 +221,19 @@ let ORCIDConnector = class ORCIDConnector extends BaseRESTIntegrationConnector {
|
|
|
171
221
|
out.push(this.toRecord(raw, obj, fields, pkFieldNames));
|
|
172
222
|
}
|
|
173
223
|
}
|
|
174
|
-
const result = { Records: out, HasMore:
|
|
175
|
-
if (
|
|
224
|
+
const result = { Records: out, HasMore: hasMore };
|
|
225
|
+
if (hasMore)
|
|
226
|
+
result.NextAfterKeyValue = orcidIds[orcidIds.length - 1];
|
|
227
|
+
// Advance the watermark ONLY on the final page. Advancing mid-scan is unsafe: if the run
|
|
228
|
+
// dies after page 1, page 2's records older than the new watermark would be skipped forever.
|
|
229
|
+
// Deriving it from the last page alone can UNDER-advance, which is safe — it costs a re-fetch
|
|
230
|
+
// that content-hash idempotency in ToExternalRecord dedups.
|
|
231
|
+
//
|
|
232
|
+
// Also HOLD the watermark when any iD was skipped above. Swallowing a per-iD failure means
|
|
233
|
+
// the engine sees a clean fetch, so it can't hold the watermark for us — advancing here would
|
|
234
|
+
// permanently strand the skipped iD's updates below the new watermark. Holding costs a
|
|
235
|
+
// re-fetch next run (content-hash dedups it) and lets the failed iD self-heal.
|
|
236
|
+
if (!hasMore && skippedIdCount === 0 && maxSeen != null && maxSeen !== watermark) {
|
|
176
237
|
result.NewWatermarkValue = String(maxSeen);
|
|
177
238
|
}
|
|
178
239
|
if (warnings.length > 0)
|
|
@@ -242,9 +303,14 @@ let ORCIDConnector = class ORCIDConnector extends BaseRESTIntegrationConnector {
|
|
|
242
303
|
* Resolves the in-scope ORCID iD universe from CompanyIntegration.Configuration:
|
|
243
304
|
* the explicit `orcidIds` list (always included) plus the result of running the
|
|
244
305
|
* Lucene `searchQuery` against /search (or /expanded-search), bounded by
|
|
245
|
-
* MaxSearchResults to avoid draining the ~10k cap. Returns a de-duplicated set
|
|
306
|
+
* MaxSearchResults to avoid draining the ~10k cap. Returns a de-duplicated set,
|
|
307
|
+
* sorted lexicographically.
|
|
308
|
+
*
|
|
309
|
+
* Returns the COMPLETE universe — batching is the caller's job. ORCID iDs are a
|
|
310
|
+
* fixed 16-digit dashed format, so a lexicographic sort is a total, stable order
|
|
311
|
+
* and therefore a valid keyset pagination key for FetchChanges.
|
|
246
312
|
*/
|
|
247
|
-
async ResolveOrcidIdUniverse(auth
|
|
313
|
+
async ResolveOrcidIdUniverse(auth) {
|
|
248
314
|
const cfg = auth.Config;
|
|
249
315
|
const ids = new Set();
|
|
250
316
|
for (const explicit of cfg.OrcidIds ?? []) {
|
|
@@ -257,11 +323,7 @@ let ORCIDConnector = class ORCIDConnector extends BaseRESTIntegrationConnector {
|
|
|
257
323
|
for (const id of fromSearch)
|
|
258
324
|
ids.add(id);
|
|
259
325
|
}
|
|
260
|
-
|
|
261
|
-
// typical scoped universes are well under BatchSize).
|
|
262
|
-
const all = Array.from(ids);
|
|
263
|
-
const limit = ctx.BatchSize && ctx.BatchSize > 0 ? ctx.BatchSize : all.length;
|
|
264
|
-
return all.slice(0, limit);
|
|
326
|
+
return Array.from(ids).sort();
|
|
265
327
|
}
|
|
266
328
|
/**
|
|
267
329
|
* Runs the Lucene query against ORCID /search (or /expanded-search) with offset
|
|
@@ -426,22 +488,46 @@ let ORCIDConnector = class ORCIDConnector extends BaseRESTIntegrationConnector {
|
|
|
426
488
|
return this.authState;
|
|
427
489
|
}
|
|
428
490
|
const config = await this.parseConfig(companyIntegration, contextUser);
|
|
491
|
+
const state = this.IsAnonymousConfig(config)
|
|
492
|
+
? await this.buildAnonymousState(config)
|
|
493
|
+
: await this.buildTokenState(config);
|
|
494
|
+
this.authState = state;
|
|
495
|
+
return state;
|
|
496
|
+
}
|
|
497
|
+
/**
|
|
498
|
+
* True when the connection carries no client_credentials pair — anonymous Public API mode.
|
|
499
|
+
* `parseConfig` has already rejected the half-configured case, so "no ClientID" here means
|
|
500
|
+
* "no credential was supplied at all", never "the secret went missing".
|
|
501
|
+
*/
|
|
502
|
+
IsAnonymousConfig(config) {
|
|
503
|
+
return !config.ClientID;
|
|
504
|
+
}
|
|
505
|
+
/** Anonymous state: no grant, no token, nothing to refresh. */
|
|
506
|
+
async buildAnonymousState(config) {
|
|
507
|
+
return {
|
|
508
|
+
Token: undefined,
|
|
509
|
+
ExpiresAt: undefined,
|
|
510
|
+
BaseUrl: config.ApiBaseUrl ?? (config.UseSandbox ? SANDBOX_API_HOST : PROD_API_HOST),
|
|
511
|
+
Config: config,
|
|
512
|
+
};
|
|
513
|
+
}
|
|
514
|
+
/** Credentialed state: exchange the client_credentials grant for a bearer token. */
|
|
515
|
+
async buildTokenState(config) {
|
|
429
516
|
const token = await this.obtainAccessToken(config);
|
|
430
|
-
|
|
517
|
+
return {
|
|
431
518
|
Token: token.access_token,
|
|
432
519
|
ExpiresAt: new Date(Date.now() + (token.expires_in * 1000)),
|
|
433
520
|
BaseUrl: config.ApiBaseUrl ?? (config.UseSandbox ? SANDBOX_API_HOST : PROD_API_HOST),
|
|
434
521
|
Config: config,
|
|
435
522
|
};
|
|
436
|
-
this.authState = state;
|
|
437
|
-
return state;
|
|
438
523
|
}
|
|
439
524
|
BuildHeaders(auth) {
|
|
440
525
|
const orcidAuth = auth;
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
526
|
+
// Anonymous mode sends NO Authorization header — ORCID rejects a malformed/empty bearer,
|
|
527
|
+
// whereas an absent header is the documented public-access path.
|
|
528
|
+
return orcidAuth.Token == null
|
|
529
|
+
? { 'Accept': 'application/json' }
|
|
530
|
+
: { 'Authorization': `Bearer ${orcidAuth.Token}`, 'Accept': 'application/json' };
|
|
445
531
|
}
|
|
446
532
|
/** Not used by the overridden FetchChanges; retained for any base-pipeline callers (GetRecord). */
|
|
447
533
|
NormalizeResponse(rawBody, responseDataKey) {
|
|
@@ -471,6 +557,9 @@ let ORCIDConnector = class ORCIDConnector extends BaseRESTIntegrationConnector {
|
|
|
471
557
|
}
|
|
472
558
|
// ─── Token lifecycle ──────────────────────────────────────────────
|
|
473
559
|
isTokenValid(state) {
|
|
560
|
+
// Anonymous state never expires — there is no token to go stale.
|
|
561
|
+
if (state.Token == null || state.ExpiresAt == null)
|
|
562
|
+
return true;
|
|
474
563
|
return state.ExpiresAt.getTime() - Date.now() > TOKEN_REFRESH_BUFFER_MS;
|
|
475
564
|
}
|
|
476
565
|
/**
|
|
@@ -520,8 +609,11 @@ let ORCIDConnector = class ORCIDConnector extends BaseRESTIntegrationConnector {
|
|
|
520
609
|
try {
|
|
521
610
|
const resp = await this.doFetch(url, method, currentHeaders, body, timeoutMs);
|
|
522
611
|
this.lastRequestTime = Date.now();
|
|
523
|
-
if (resp.Status === 401 && attempt < maxRetries) {
|
|
612
|
+
if (resp.Status === 401 && attempt < maxRetries && !this.IsAnonymousConfig(cfg)) {
|
|
524
613
|
// Token expired/revoked — drop the cache, refresh against the held credentials, retry.
|
|
614
|
+
// Skipped in anonymous mode: there is no grant to re-run, and a 401 there means the
|
|
615
|
+
// resource simply isn't public. Retrying would just burn the retry budget on a
|
|
616
|
+
// response that will never change.
|
|
525
617
|
this.authState = null;
|
|
526
618
|
const refreshed = await this.obtainAccessToken(cfg);
|
|
527
619
|
const refreshedState = {
|
|
@@ -621,9 +713,16 @@ let ORCIDConnector = class ORCIDConnector extends BaseRESTIntegrationConnector {
|
|
|
621
713
|
merged.TokenURL = fromCredential.TokenURL ?? merged.TokenURL;
|
|
622
714
|
merged.Scope = merged.Scope ?? fromCredential.Scope;
|
|
623
715
|
}
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
716
|
+
// Credential mode selection. ORCID's Public API serves public records WITHOUT a token, so a
|
|
717
|
+
// connection that supplies no credential at all is a legitimate anonymous configuration —
|
|
718
|
+
// not an error. A PARTIAL credential still is: half a client_credentials pair can only be a
|
|
719
|
+
// misconfiguration, and silently degrading it to anonymous would hide the real problem
|
|
720
|
+
// behind a sync that quietly returns only public data.
|
|
721
|
+
const hasClientID = !!merged.ClientID;
|
|
722
|
+
const hasClientSecret = !!merged.ClientSecret;
|
|
723
|
+
if (hasClientID !== hasClientSecret) {
|
|
724
|
+
throw new Error('ORCIDConnector: ClientID and ClientSecret must BOTH be provided (OAuth2 client_credentials), ' +
|
|
725
|
+
'or both omitted to use the anonymous Public API.');
|
|
627
726
|
}
|
|
628
727
|
if ((!merged.SearchQuery || merged.SearchQuery.trim().length === 0) && (!merged.OrcidIds || merged.OrcidIds.length === 0)) {
|
|
629
728
|
// Not fatal at auth time — surfaced as a ZERO_SCOPE warning per object in FetchChanges.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ORCIDConnector.js","sourceRoot":"","sources":["../src/ORCIDConnector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ORCIDConnector.js","sourceRoot":"","sources":["../src/ORCIDConnector.ts"],"names":[],"mappings":"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"}
|