@segment/actions-core 2.3.1 → 2.3.2-alpha.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/cjs/destination-kit/index.d.ts +16 -5
- package/dist/cjs/destination-kit/index.js +48 -13
- package/dist/cjs/destination-kit/index.js.map +1 -1
- package/dist/cjs/destination-kit/parse-settings.d.ts +9 -0
- package/dist/cjs/destination-kit/parse-settings.js +32 -0
- package/dist/cjs/destination-kit/parse-settings.js.map +1 -0
- package/dist/cjs/destination-kit/step.d.ts +2 -0
- package/dist/cjs/destination-kit/step.js.map +1 -1
- package/dist/esm/destination-kit/index.d.ts +16 -5
- package/dist/esm/destination-kit/index.js +49 -14
- package/dist/esm/destination-kit/index.js.map +1 -1
- package/dist/esm/destination-kit/parse-settings.d.ts +9 -0
- package/dist/esm/destination-kit/parse-settings.js +26 -0
- package/dist/esm/destination-kit/parse-settings.js.map +1 -0
- package/dist/esm/destination-kit/step.d.ts +2 -0
- package/dist/esm/destination-kit/step.js.map +1 -1
- package/package.json +2 -2
|
@@ -8,6 +8,7 @@ import { RequestClient } from '../create-request-client';
|
|
|
8
8
|
import type { ModifiedResponse } from '../types';
|
|
9
9
|
import type { InputField, RequestExtension } from './types';
|
|
10
10
|
import type { AllRequestOptions } from '../request-client';
|
|
11
|
+
import { AuthTokens } from './parse-settings';
|
|
11
12
|
export type { ActionDefinition, ExecuteInput, RequestFn };
|
|
12
13
|
export { fieldsToJsonSchema };
|
|
13
14
|
export interface SubscriptionStats {
|
|
@@ -39,7 +40,7 @@ export interface Subscription {
|
|
|
39
40
|
subscribe: string;
|
|
40
41
|
mapping?: JSONObject;
|
|
41
42
|
}
|
|
42
|
-
export interface OAuth2ClientCredentials {
|
|
43
|
+
export interface OAuth2ClientCredentials extends AuthTokens {
|
|
43
44
|
clientId: string;
|
|
44
45
|
clientSecret: string;
|
|
45
46
|
}
|
|
@@ -49,6 +50,11 @@ export interface RefreshAccessTokenResult {
|
|
|
49
50
|
}
|
|
50
51
|
interface AuthSettings<Settings> {
|
|
51
52
|
settings: Settings;
|
|
53
|
+
auth: AuthTokens;
|
|
54
|
+
}
|
|
55
|
+
interface RefreshAuthSettings<Settings> {
|
|
56
|
+
settings: Settings;
|
|
57
|
+
auth: OAuth2ClientCredentials;
|
|
52
58
|
}
|
|
53
59
|
interface Authentication<Settings> {
|
|
54
60
|
scheme: 'basic' | 'custom' | 'oauth2';
|
|
@@ -63,13 +69,14 @@ export interface BasicAuthentication<Settings> extends Authentication<Settings>
|
|
|
63
69
|
}
|
|
64
70
|
export interface OAuth2Authentication<Settings> extends Authentication<Settings> {
|
|
65
71
|
scheme: 'oauth2';
|
|
66
|
-
refreshAccessToken?: (request: RequestClient, input:
|
|
72
|
+
refreshAccessToken?: (request: RequestClient, input: RefreshAuthSettings<Settings>) => Promise<RefreshAccessTokenResult>;
|
|
67
73
|
}
|
|
68
74
|
export declare type AuthenticationScheme<Settings = any> = BasicAuthentication<Settings> | CustomAuthentication<Settings> | OAuth2Authentication<Settings>;
|
|
69
75
|
interface EventInput<Settings> {
|
|
70
76
|
readonly event: SegmentEvent;
|
|
71
77
|
readonly mapping: JSONObject;
|
|
72
78
|
readonly settings: Settings;
|
|
79
|
+
readonly auth?: AuthTokens;
|
|
73
80
|
}
|
|
74
81
|
export interface DecoratedResponse extends ModifiedResponse {
|
|
75
82
|
request: Request;
|
|
@@ -85,11 +92,15 @@ export declare class Destination<Settings = JSONObject> {
|
|
|
85
92
|
readonly settingsSchema?: JSONSchema4;
|
|
86
93
|
constructor(destination: DestinationDefinition<Settings>);
|
|
87
94
|
testAuthentication(settings: Settings): Promise<void>;
|
|
88
|
-
refreshAccessToken(settings: Settings,
|
|
95
|
+
refreshAccessToken(settings: Settings, oauthData: OAuth2ClientCredentials): Promise<RefreshAccessTokenResult> | undefined;
|
|
89
96
|
private partnerAction;
|
|
90
|
-
protected executeAction(actionSlug: string, { event, mapping, settings }: EventInput<Settings>): Promise<StepResult[]>;
|
|
97
|
+
protected executeAction(actionSlug: string, { event, mapping, settings, auth }: EventInput<Settings>): Promise<StepResult[]>;
|
|
91
98
|
private onSubscription;
|
|
92
|
-
onEvent(event: SegmentEvent, settings: JSONObject,
|
|
99
|
+
onEvent(event: SegmentEvent, settings: JSONObject, options?: {
|
|
100
|
+
onTokenRefresh?: (tokens: RefreshAccessTokenResult) => void;
|
|
101
|
+
onComplete?: (stats: SubscriptionStats) => void;
|
|
102
|
+
}): Promise<StepResult[]>;
|
|
103
|
+
private onEventInternal;
|
|
93
104
|
private getSubscriptions;
|
|
94
105
|
private getDestinationSettings;
|
|
95
106
|
}
|
|
@@ -11,6 +11,9 @@ const fields_to_jsonschema_1 = require("./fields-to-jsonschema");
|
|
|
11
11
|
Object.defineProperty(exports, "fieldsToJsonSchema", { enumerable: true, get: function () { return fields_to_jsonschema_1.fieldsToJsonSchema; } });
|
|
12
12
|
const create_request_client_1 = __importDefault(require("../create-request-client"));
|
|
13
13
|
const errors_1 = require("../errors");
|
|
14
|
+
const parse_settings_1 = require("./parse-settings");
|
|
15
|
+
const RETRY_ATTEMPTS = 2;
|
|
16
|
+
const OAUTH2_SCHEME = 'oauth2';
|
|
14
17
|
class Destination {
|
|
15
18
|
constructor(destination) {
|
|
16
19
|
this.definition = destination;
|
|
@@ -27,7 +30,10 @@ class Destination {
|
|
|
27
30
|
}
|
|
28
31
|
}
|
|
29
32
|
async testAuthentication(settings) {
|
|
30
|
-
const
|
|
33
|
+
const destinationSettings = this.getDestinationSettings(settings);
|
|
34
|
+
const auth = parse_settings_1.getAuthData(settings);
|
|
35
|
+
const data = { settings: destinationSettings, auth };
|
|
36
|
+
const context = { settings: destinationSettings, payload: {}, auth };
|
|
31
37
|
if (this.settingsSchema) {
|
|
32
38
|
const step = new action_1.Validate('settings', this.settingsSchema);
|
|
33
39
|
await step.executeStep(context);
|
|
@@ -38,23 +44,27 @@ class Destination {
|
|
|
38
44
|
const options = this.extendRequest?.(context) ?? {};
|
|
39
45
|
const requestClient = create_request_client_1.default(options);
|
|
40
46
|
try {
|
|
41
|
-
await this.authentication.testAuthentication(requestClient,
|
|
47
|
+
await this.authentication.testAuthentication(requestClient, data);
|
|
42
48
|
}
|
|
43
49
|
catch (error) {
|
|
44
50
|
throw new Error('Credentials are invalid');
|
|
45
51
|
}
|
|
46
52
|
}
|
|
47
|
-
refreshAccessToken(settings,
|
|
48
|
-
if (this.authentication?.scheme !==
|
|
53
|
+
refreshAccessToken(settings, oauthData) {
|
|
54
|
+
if (this.authentication?.scheme !== OAUTH2_SCHEME) {
|
|
49
55
|
throw new errors_1.IntegrationError('refreshAccessToken is only valid with oauth2 authentication scheme', 'NotImplemented', 501);
|
|
50
56
|
}
|
|
51
|
-
const context = {
|
|
57
|
+
const context = {
|
|
58
|
+
settings,
|
|
59
|
+
payload: {},
|
|
60
|
+
auth: parse_settings_1.getAuthData(settings)
|
|
61
|
+
};
|
|
52
62
|
const options = this.extendRequest?.(context) ?? {};
|
|
53
63
|
const requestClient = create_request_client_1.default(options);
|
|
54
64
|
if (!this.authentication?.refreshAccessToken) {
|
|
55
65
|
return undefined;
|
|
56
66
|
}
|
|
57
|
-
return this.authentication.refreshAccessToken(requestClient, { settings }
|
|
67
|
+
return this.authentication.refreshAccessToken(requestClient, { settings, auth: oauthData });
|
|
58
68
|
}
|
|
59
69
|
partnerAction(slug, definition) {
|
|
60
70
|
const action = new action_1.Action(definition, this.extendRequest);
|
|
@@ -66,7 +76,7 @@ class Destination {
|
|
|
66
76
|
this.actions[slug] = action;
|
|
67
77
|
return this;
|
|
68
78
|
}
|
|
69
|
-
executeAction(actionSlug, { event, mapping, settings }) {
|
|
79
|
+
executeAction(actionSlug, { event, mapping, settings, auth }) {
|
|
70
80
|
const action = this.actions[actionSlug];
|
|
71
81
|
if (!action) {
|
|
72
82
|
return Promise.resolve([]);
|
|
@@ -74,16 +84,18 @@ class Destination {
|
|
|
74
84
|
return action.execute({
|
|
75
85
|
mapping,
|
|
76
86
|
payload: event,
|
|
77
|
-
settings
|
|
87
|
+
settings,
|
|
88
|
+
auth
|
|
78
89
|
});
|
|
79
90
|
}
|
|
80
|
-
async onSubscription(subscription, event, settings, onComplete) {
|
|
91
|
+
async onSubscription(subscription, event, settings, auth, onComplete) {
|
|
81
92
|
const subscriptionStartedAt = time_1.time();
|
|
82
93
|
const actionSlug = subscription.partnerAction;
|
|
83
94
|
const input = {
|
|
84
95
|
event,
|
|
85
96
|
mapping: subscription.mapping || {},
|
|
86
|
-
settings
|
|
97
|
+
settings,
|
|
98
|
+
auth
|
|
87
99
|
};
|
|
88
100
|
let state = 'pending';
|
|
89
101
|
let results = null;
|
|
@@ -135,10 +147,33 @@ class Destination {
|
|
|
135
147
|
});
|
|
136
148
|
}
|
|
137
149
|
}
|
|
138
|
-
async onEvent(event, settings,
|
|
150
|
+
async onEvent(event, settings, options) {
|
|
151
|
+
for (let i = 0; i < RETRY_ATTEMPTS; i++) {
|
|
152
|
+
try {
|
|
153
|
+
return await this.onEventInternal(event, settings, options?.onComplete);
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
const statusCode = error?.status ?? error?.response?.status ?? 500;
|
|
157
|
+
if (!(statusCode === 401 && this.authentication?.scheme === OAUTH2_SCHEME)) {
|
|
158
|
+
throw error;
|
|
159
|
+
}
|
|
160
|
+
const destinationSettings = this.getDestinationSettings(settings);
|
|
161
|
+
const oauthSettings = parse_settings_1.getOAuth2Data(settings);
|
|
162
|
+
const newTokens = await this.refreshAccessToken(destinationSettings, oauthSettings);
|
|
163
|
+
if (!newTokens) {
|
|
164
|
+
throw new errors_1.InvalidAuthenticationError('Failed to refresh access token');
|
|
165
|
+
}
|
|
166
|
+
settings = parse_settings_1.updateOAuthSettings(settings, newTokens);
|
|
167
|
+
options?.onTokenRefresh?.(newTokens);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
throw new errors_1.InvalidAuthenticationError();
|
|
171
|
+
}
|
|
172
|
+
async onEventInternal(event, settings, onComplete) {
|
|
139
173
|
const subscriptions = this.getSubscriptions(settings);
|
|
140
174
|
const destinationSettings = this.getDestinationSettings(settings);
|
|
141
|
-
const
|
|
175
|
+
const authData = parse_settings_1.getAuthData(settings);
|
|
176
|
+
const promises = subscriptions.map((subscription) => this.onSubscription(subscription, event, destinationSettings, authData, onComplete));
|
|
142
177
|
const results = await Promise.all(promises);
|
|
143
178
|
return [].concat(...results);
|
|
144
179
|
}
|
|
@@ -160,7 +195,7 @@ class Destination {
|
|
|
160
195
|
return parsedSubscriptions;
|
|
161
196
|
}
|
|
162
197
|
getDestinationSettings(settings) {
|
|
163
|
-
const { subcription, subscriptions, ...otherSettings } = settings;
|
|
198
|
+
const { subcription, subscriptions, oauth, ...otherSettings } = settings;
|
|
164
199
|
return otherSettings;
|
|
165
200
|
}
|
|
166
201
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destination-kit/index.ts"],"names":[],"mappings":";;;;;;AAAA,oEAAgF;AAEhF,qCAAwE;AAExE,kCAAwC;AAGxC,iEAA2D;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destination-kit/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { OAuth2ClientCredentials, RefreshAccessTokenResult } from '.';
|
|
2
|
+
import { JSONObject } from '../json-object';
|
|
3
|
+
export interface AuthTokens {
|
|
4
|
+
accessToken: string;
|
|
5
|
+
refreshToken: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function getAuthData(settings: JSONObject): AuthTokens;
|
|
8
|
+
export declare function getOAuth2Data(settings: JSONObject): OAuth2ClientCredentials;
|
|
9
|
+
export declare function updateOAuthSettings(settings: JSONObject, oauthData: RefreshAccessTokenResult): JSONObject;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.updateOAuthSettings = exports.getOAuth2Data = exports.getAuthData = void 0;
|
|
4
|
+
function getAuthData(settings) {
|
|
5
|
+
const oauthData = getOAuth2Data(settings);
|
|
6
|
+
return { accessToken: oauthData.accessToken, refreshToken: oauthData.refreshToken };
|
|
7
|
+
}
|
|
8
|
+
exports.getAuthData = getAuthData;
|
|
9
|
+
function getOAuth2Data(settings) {
|
|
10
|
+
const { oauth } = settings;
|
|
11
|
+
return {
|
|
12
|
+
accessToken: oauth?.access_token,
|
|
13
|
+
refreshToken: oauth?.refresh_token,
|
|
14
|
+
clientId: oauth?.clientId,
|
|
15
|
+
clientSecret: oauth?.clientSecret
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
exports.getOAuth2Data = getOAuth2Data;
|
|
19
|
+
function updateOAuthSettings(settings, oauthData) {
|
|
20
|
+
const { oauth, ...otherSettings } = settings;
|
|
21
|
+
if (oauth) {
|
|
22
|
+
const newOauth = oauth;
|
|
23
|
+
newOauth.access_token = oauthData.accessToken;
|
|
24
|
+
if (oauthData.refreshToken) {
|
|
25
|
+
newOauth.refresh_token = oauthData.refreshToken;
|
|
26
|
+
}
|
|
27
|
+
otherSettings['oauth'] = newOauth;
|
|
28
|
+
}
|
|
29
|
+
return otherSettings;
|
|
30
|
+
}
|
|
31
|
+
exports.updateOAuthSettings = updateOAuthSettings;
|
|
32
|
+
//# sourceMappingURL=parse-settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-settings.js","sourceRoot":"","sources":["../../../src/destination-kit/parse-settings.ts"],"names":[],"mappings":";;;AAuBA,SAAgB,WAAW,CAAC,QAAoB;IAC9C,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;IACzC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,YAAY,EAAE,CAAA;AACrF,CAAC;AAHD,kCAGC;AAOD,SAAgB,aAAa,CAAC,QAAoB;IAChD,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAA;IAC1B,OAAO;QACL,WAAW,EAAG,KAAkC,EAAE,YAAY;QAC9D,YAAY,EAAG,KAAkC,EAAE,aAAa;QAChE,QAAQ,EAAG,KAAkC,EAAE,QAAQ;QACvD,YAAY,EAAG,KAAkC,EAAE,YAAY;KACrC,CAAA;AAC9B,CAAC;AARD,sCAQC;AAQD,SAAgB,mBAAmB,CAAC,QAAoB,EAAE,SAAmC;IAC3F,MAAM,EAAE,KAAK,EAAE,GAAG,aAAa,EAAE,GAAG,QAAQ,CAAA;IAC5C,IAAI,KAAK,EAAE;QACT,MAAM,QAAQ,GAAG,KAAiC,CAAA;QAClD,QAAQ,CAAC,YAAY,GAAG,SAAS,CAAC,WAAW,CAAA;QAC7C,IAAI,SAAS,CAAC,YAAY,EAAE;YAC1B,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAC,YAAY,CAAA;SAChD;QACD,aAAa,CAAC,OAAO,CAAC,GAAG,QAAgC,CAAA;KAC1D;IACD,OAAO,aAAa,CAAA;AACtB,CAAC;AAXD,kDAWC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { EventEmitter } from 'events';
|
|
3
3
|
import { JSONObject } from '../json-object';
|
|
4
|
+
import { AuthTokens } from './parse-settings';
|
|
4
5
|
export interface StepResult {
|
|
5
6
|
output?: JSONObject | string | null | undefined;
|
|
6
7
|
error?: JSONObject | null;
|
|
@@ -10,6 +11,7 @@ export interface ExecuteInput<Settings, Payload> {
|
|
|
10
11
|
readonly settings: Settings;
|
|
11
12
|
payload: Payload;
|
|
12
13
|
page?: string;
|
|
14
|
+
readonly auth?: AuthTokens;
|
|
13
15
|
}
|
|
14
16
|
export declare class Step<Settings, Payload> extends EventEmitter {
|
|
15
17
|
executeStep?(data: ExecuteInput<Settings, Payload>): Promise<JSONObject | string | null | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step.js","sourceRoot":"","sources":["../../../src/destination-kit/step.ts"],"names":[],"mappings":";;;AAAA,mCAAqC;
|
|
1
|
+
{"version":3,"file":"step.js","sourceRoot":"","sources":["../../../src/destination-kit/step.ts"],"names":[],"mappings":";;;AAAA,mCAAqC;AA0BrC,MAAa,IAAwB,SAAQ,qBAAY;IAGvD,KAAK,CAAC,OAAO,CAAC,IAAqC;QACjD,MAAM,MAAM,GAAe;YACzB,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,IAAI;SACZ,CAAA;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,OAAO,MAAM,CAAA;SACd;QAED,IAAI;YACF,MAAM,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;SAC7C;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,CAAC,KAAK,GAAG,CAAC,CAAA;SACjB;QAED,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AArBD,oBAqBC;AAKD,MAAa,KAAK;IAGhB;QACE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;IACjB,CAAC;IAED,IAAI,CAAC,IAA6B;QAChC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAqC;QACjD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;SACpC;QAED,MAAM,OAAO,GAAiB,EAAE,CAAA;QAEhC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAEvC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAEpB,IAAI,MAAM,CAAC,KAAK,EAAE;gBAChB,MAAK;aACN;SACF;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;CACF;AA9BD,sBA8BC"}
|
|
@@ -8,6 +8,7 @@ import { RequestClient } from '../create-request-client';
|
|
|
8
8
|
import type { ModifiedResponse } from '../types';
|
|
9
9
|
import type { InputField, RequestExtension } from './types';
|
|
10
10
|
import type { AllRequestOptions } from '../request-client';
|
|
11
|
+
import { AuthTokens } from './parse-settings';
|
|
11
12
|
export type { ActionDefinition, ExecuteInput, RequestFn };
|
|
12
13
|
export { fieldsToJsonSchema };
|
|
13
14
|
export interface SubscriptionStats {
|
|
@@ -39,7 +40,7 @@ export interface Subscription {
|
|
|
39
40
|
subscribe: string;
|
|
40
41
|
mapping?: JSONObject;
|
|
41
42
|
}
|
|
42
|
-
export interface OAuth2ClientCredentials {
|
|
43
|
+
export interface OAuth2ClientCredentials extends AuthTokens {
|
|
43
44
|
clientId: string;
|
|
44
45
|
clientSecret: string;
|
|
45
46
|
}
|
|
@@ -49,6 +50,11 @@ export interface RefreshAccessTokenResult {
|
|
|
49
50
|
}
|
|
50
51
|
interface AuthSettings<Settings> {
|
|
51
52
|
settings: Settings;
|
|
53
|
+
auth: AuthTokens;
|
|
54
|
+
}
|
|
55
|
+
interface RefreshAuthSettings<Settings> {
|
|
56
|
+
settings: Settings;
|
|
57
|
+
auth: OAuth2ClientCredentials;
|
|
52
58
|
}
|
|
53
59
|
interface Authentication<Settings> {
|
|
54
60
|
scheme: 'basic' | 'custom' | 'oauth2';
|
|
@@ -63,13 +69,14 @@ export interface BasicAuthentication<Settings> extends Authentication<Settings>
|
|
|
63
69
|
}
|
|
64
70
|
export interface OAuth2Authentication<Settings> extends Authentication<Settings> {
|
|
65
71
|
scheme: 'oauth2';
|
|
66
|
-
refreshAccessToken?: (request: RequestClient, input:
|
|
72
|
+
refreshAccessToken?: (request: RequestClient, input: RefreshAuthSettings<Settings>) => Promise<RefreshAccessTokenResult>;
|
|
67
73
|
}
|
|
68
74
|
export declare type AuthenticationScheme<Settings = any> = BasicAuthentication<Settings> | CustomAuthentication<Settings> | OAuth2Authentication<Settings>;
|
|
69
75
|
interface EventInput<Settings> {
|
|
70
76
|
readonly event: SegmentEvent;
|
|
71
77
|
readonly mapping: JSONObject;
|
|
72
78
|
readonly settings: Settings;
|
|
79
|
+
readonly auth?: AuthTokens;
|
|
73
80
|
}
|
|
74
81
|
export interface DecoratedResponse extends ModifiedResponse {
|
|
75
82
|
request: Request;
|
|
@@ -85,11 +92,15 @@ export declare class Destination<Settings = JSONObject> {
|
|
|
85
92
|
readonly settingsSchema?: JSONSchema4;
|
|
86
93
|
constructor(destination: DestinationDefinition<Settings>);
|
|
87
94
|
testAuthentication(settings: Settings): Promise<void>;
|
|
88
|
-
refreshAccessToken(settings: Settings,
|
|
95
|
+
refreshAccessToken(settings: Settings, oauthData: OAuth2ClientCredentials): Promise<RefreshAccessTokenResult> | undefined;
|
|
89
96
|
private partnerAction;
|
|
90
|
-
protected executeAction(actionSlug: string, { event, mapping, settings }: EventInput<Settings>): Promise<StepResult[]>;
|
|
97
|
+
protected executeAction(actionSlug: string, { event, mapping, settings, auth }: EventInput<Settings>): Promise<StepResult[]>;
|
|
91
98
|
private onSubscription;
|
|
92
|
-
onEvent(event: SegmentEvent, settings: JSONObject,
|
|
99
|
+
onEvent(event: SegmentEvent, settings: JSONObject, options?: {
|
|
100
|
+
onTokenRefresh?: (tokens: RefreshAccessTokenResult) => void;
|
|
101
|
+
onComplete?: (stats: SubscriptionStats) => void;
|
|
102
|
+
}): Promise<StepResult[]>;
|
|
103
|
+
private onEventInternal;
|
|
93
104
|
private getSubscriptions;
|
|
94
105
|
private getDestinationSettings;
|
|
95
106
|
}
|
|
@@ -3,8 +3,11 @@ import { Action, Validate } from './action';
|
|
|
3
3
|
import { time, duration } from '../time';
|
|
4
4
|
import { fieldsToJsonSchema } from './fields-to-jsonschema';
|
|
5
5
|
import createRequestClient from '../create-request-client';
|
|
6
|
-
import { IntegrationError } from '../errors';
|
|
6
|
+
import { IntegrationError, InvalidAuthenticationError } from '../errors';
|
|
7
|
+
import { getAuthData, getOAuth2Data, updateOAuthSettings } from './parse-settings';
|
|
7
8
|
export { fieldsToJsonSchema };
|
|
9
|
+
const RETRY_ATTEMPTS = 2;
|
|
10
|
+
const OAUTH2_SCHEME = 'oauth2';
|
|
8
11
|
export class Destination {
|
|
9
12
|
constructor(destination) {
|
|
10
13
|
this.definition = destination;
|
|
@@ -21,7 +24,10 @@ export class Destination {
|
|
|
21
24
|
}
|
|
22
25
|
}
|
|
23
26
|
async testAuthentication(settings) {
|
|
24
|
-
const
|
|
27
|
+
const destinationSettings = this.getDestinationSettings(settings);
|
|
28
|
+
const auth = getAuthData(settings);
|
|
29
|
+
const data = { settings: destinationSettings, auth };
|
|
30
|
+
const context = { settings: destinationSettings, payload: {}, auth };
|
|
25
31
|
if (this.settingsSchema) {
|
|
26
32
|
const step = new Validate('settings', this.settingsSchema);
|
|
27
33
|
await step.executeStep(context);
|
|
@@ -32,23 +38,27 @@ export class Destination {
|
|
|
32
38
|
const options = this.extendRequest?.(context) ?? {};
|
|
33
39
|
const requestClient = createRequestClient(options);
|
|
34
40
|
try {
|
|
35
|
-
await this.authentication.testAuthentication(requestClient,
|
|
41
|
+
await this.authentication.testAuthentication(requestClient, data);
|
|
36
42
|
}
|
|
37
43
|
catch (error) {
|
|
38
44
|
throw new Error('Credentials are invalid');
|
|
39
45
|
}
|
|
40
46
|
}
|
|
41
|
-
refreshAccessToken(settings,
|
|
42
|
-
if (this.authentication?.scheme !==
|
|
47
|
+
refreshAccessToken(settings, oauthData) {
|
|
48
|
+
if (this.authentication?.scheme !== OAUTH2_SCHEME) {
|
|
43
49
|
throw new IntegrationError('refreshAccessToken is only valid with oauth2 authentication scheme', 'NotImplemented', 501);
|
|
44
50
|
}
|
|
45
|
-
const context = {
|
|
51
|
+
const context = {
|
|
52
|
+
settings,
|
|
53
|
+
payload: {},
|
|
54
|
+
auth: getAuthData(settings)
|
|
55
|
+
};
|
|
46
56
|
const options = this.extendRequest?.(context) ?? {};
|
|
47
57
|
const requestClient = createRequestClient(options);
|
|
48
58
|
if (!this.authentication?.refreshAccessToken) {
|
|
49
59
|
return undefined;
|
|
50
60
|
}
|
|
51
|
-
return this.authentication.refreshAccessToken(requestClient, { settings }
|
|
61
|
+
return this.authentication.refreshAccessToken(requestClient, { settings, auth: oauthData });
|
|
52
62
|
}
|
|
53
63
|
partnerAction(slug, definition) {
|
|
54
64
|
const action = new Action(definition, this.extendRequest);
|
|
@@ -60,7 +70,7 @@ export class Destination {
|
|
|
60
70
|
this.actions[slug] = action;
|
|
61
71
|
return this;
|
|
62
72
|
}
|
|
63
|
-
executeAction(actionSlug, { event, mapping, settings }) {
|
|
73
|
+
executeAction(actionSlug, { event, mapping, settings, auth }) {
|
|
64
74
|
const action = this.actions[actionSlug];
|
|
65
75
|
if (!action) {
|
|
66
76
|
return Promise.resolve([]);
|
|
@@ -68,16 +78,18 @@ export class Destination {
|
|
|
68
78
|
return action.execute({
|
|
69
79
|
mapping,
|
|
70
80
|
payload: event,
|
|
71
|
-
settings
|
|
81
|
+
settings,
|
|
82
|
+
auth
|
|
72
83
|
});
|
|
73
84
|
}
|
|
74
|
-
async onSubscription(subscription, event, settings, onComplete) {
|
|
85
|
+
async onSubscription(subscription, event, settings, auth, onComplete) {
|
|
75
86
|
const subscriptionStartedAt = time();
|
|
76
87
|
const actionSlug = subscription.partnerAction;
|
|
77
88
|
const input = {
|
|
78
89
|
event,
|
|
79
90
|
mapping: subscription.mapping || {},
|
|
80
|
-
settings
|
|
91
|
+
settings,
|
|
92
|
+
auth
|
|
81
93
|
};
|
|
82
94
|
let state = 'pending';
|
|
83
95
|
let results = null;
|
|
@@ -129,10 +141,33 @@ export class Destination {
|
|
|
129
141
|
});
|
|
130
142
|
}
|
|
131
143
|
}
|
|
132
|
-
async onEvent(event, settings,
|
|
144
|
+
async onEvent(event, settings, options) {
|
|
145
|
+
for (let i = 0; i < RETRY_ATTEMPTS; i++) {
|
|
146
|
+
try {
|
|
147
|
+
return await this.onEventInternal(event, settings, options?.onComplete);
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
const statusCode = error?.status ?? error?.response?.status ?? 500;
|
|
151
|
+
if (!(statusCode === 401 && this.authentication?.scheme === OAUTH2_SCHEME)) {
|
|
152
|
+
throw error;
|
|
153
|
+
}
|
|
154
|
+
const destinationSettings = this.getDestinationSettings(settings);
|
|
155
|
+
const oauthSettings = getOAuth2Data(settings);
|
|
156
|
+
const newTokens = await this.refreshAccessToken(destinationSettings, oauthSettings);
|
|
157
|
+
if (!newTokens) {
|
|
158
|
+
throw new InvalidAuthenticationError('Failed to refresh access token');
|
|
159
|
+
}
|
|
160
|
+
settings = updateOAuthSettings(settings, newTokens);
|
|
161
|
+
options?.onTokenRefresh?.(newTokens);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
throw new InvalidAuthenticationError();
|
|
165
|
+
}
|
|
166
|
+
async onEventInternal(event, settings, onComplete) {
|
|
133
167
|
const subscriptions = this.getSubscriptions(settings);
|
|
134
168
|
const destinationSettings = this.getDestinationSettings(settings);
|
|
135
|
-
const
|
|
169
|
+
const authData = getAuthData(settings);
|
|
170
|
+
const promises = subscriptions.map((subscription) => this.onSubscription(subscription, event, destinationSettings, authData, onComplete));
|
|
136
171
|
const results = await Promise.all(promises);
|
|
137
172
|
return [].concat(...results);
|
|
138
173
|
}
|
|
@@ -154,7 +189,7 @@ export class Destination {
|
|
|
154
189
|
return parsedSubscriptions;
|
|
155
190
|
}
|
|
156
191
|
getDestinationSettings(settings) {
|
|
157
|
-
const { subcription, subscriptions, ...otherSettings } = settings;
|
|
192
|
+
const { subcription, subscriptions, oauth, ...otherSettings } = settings;
|
|
158
193
|
return otherSettings;
|
|
159
194
|
}
|
|
160
195
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destination-kit/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAkB,MAAM,6BAA6B,CAAA;AAEhF,OAAO,EAAE,MAAM,EAAoB,QAAQ,EAAa,MAAM,UAAU,CAAA;AAExE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAGxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,mBAAsC,MAAM,0BAA0B,CAAA;AAI7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destination-kit/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { OAuth2ClientCredentials, RefreshAccessTokenResult } from '.';
|
|
2
|
+
import { JSONObject } from '../json-object';
|
|
3
|
+
export interface AuthTokens {
|
|
4
|
+
accessToken: string;
|
|
5
|
+
refreshToken: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function getAuthData(settings: JSONObject): AuthTokens;
|
|
8
|
+
export declare function getOAuth2Data(settings: JSONObject): OAuth2ClientCredentials;
|
|
9
|
+
export declare function updateOAuthSettings(settings: JSONObject, oauthData: RefreshAccessTokenResult): JSONObject;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export function getAuthData(settings) {
|
|
2
|
+
const oauthData = getOAuth2Data(settings);
|
|
3
|
+
return { accessToken: oauthData.accessToken, refreshToken: oauthData.refreshToken };
|
|
4
|
+
}
|
|
5
|
+
export function getOAuth2Data(settings) {
|
|
6
|
+
const { oauth } = settings;
|
|
7
|
+
return {
|
|
8
|
+
accessToken: oauth?.access_token,
|
|
9
|
+
refreshToken: oauth?.refresh_token,
|
|
10
|
+
clientId: oauth?.clientId,
|
|
11
|
+
clientSecret: oauth?.clientSecret
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export function updateOAuthSettings(settings, oauthData) {
|
|
15
|
+
const { oauth, ...otherSettings } = settings;
|
|
16
|
+
if (oauth) {
|
|
17
|
+
const newOauth = oauth;
|
|
18
|
+
newOauth.access_token = oauthData.accessToken;
|
|
19
|
+
if (oauthData.refreshToken) {
|
|
20
|
+
newOauth.refresh_token = oauthData.refreshToken;
|
|
21
|
+
}
|
|
22
|
+
otherSettings['oauth'] = newOauth;
|
|
23
|
+
}
|
|
24
|
+
return otherSettings;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=parse-settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-settings.js","sourceRoot":"","sources":["../../../src/destination-kit/parse-settings.ts"],"names":[],"mappings":"AAuBA,MAAM,UAAU,WAAW,CAAC,QAAoB;IAC9C,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;IACzC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,YAAY,EAAE,CAAA;AACrF,CAAC;AAOD,MAAM,UAAU,aAAa,CAAC,QAAoB;IAChD,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAA;IAC1B,OAAO;QACL,WAAW,EAAG,KAAkC,EAAE,YAAY;QAC9D,YAAY,EAAG,KAAkC,EAAE,aAAa;QAChE,QAAQ,EAAG,KAAkC,EAAE,QAAQ;QACvD,YAAY,EAAG,KAAkC,EAAE,YAAY;KACrC,CAAA;AAC9B,CAAC;AAQD,MAAM,UAAU,mBAAmB,CAAC,QAAoB,EAAE,SAAmC;IAC3F,MAAM,EAAE,KAAK,EAAE,GAAG,aAAa,EAAE,GAAG,QAAQ,CAAA;IAC5C,IAAI,KAAK,EAAE;QACT,MAAM,QAAQ,GAAG,KAAiC,CAAA;QAClD,QAAQ,CAAC,YAAY,GAAG,SAAS,CAAC,WAAW,CAAA;QAC7C,IAAI,SAAS,CAAC,YAAY,EAAE;YAC1B,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAC,YAAY,CAAA;SAChD;QACD,aAAa,CAAC,OAAO,CAAC,GAAG,QAAgC,CAAA;KAC1D;IACD,OAAO,aAAa,CAAA;AACtB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { EventEmitter } from 'events';
|
|
3
3
|
import { JSONObject } from '../json-object';
|
|
4
|
+
import { AuthTokens } from './parse-settings';
|
|
4
5
|
export interface StepResult {
|
|
5
6
|
output?: JSONObject | string | null | undefined;
|
|
6
7
|
error?: JSONObject | null;
|
|
@@ -10,6 +11,7 @@ export interface ExecuteInput<Settings, Payload> {
|
|
|
10
11
|
readonly settings: Settings;
|
|
11
12
|
payload: Payload;
|
|
12
13
|
page?: string;
|
|
14
|
+
readonly auth?: AuthTokens;
|
|
13
15
|
}
|
|
14
16
|
export declare class Step<Settings, Payload> extends EventEmitter {
|
|
15
17
|
executeStep?(data: ExecuteInput<Settings, Payload>): Promise<JSONObject | string | null | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step.js","sourceRoot":"","sources":["../../../src/destination-kit/step.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"step.js","sourceRoot":"","sources":["../../../src/destination-kit/step.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AA0BrC,MAAM,OAAO,IAAwB,SAAQ,YAAY;IAGvD,KAAK,CAAC,OAAO,CAAC,IAAqC;QACjD,MAAM,MAAM,GAAe;YACzB,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,IAAI;SACZ,CAAA;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,OAAO,MAAM,CAAA;SACd;QAED,IAAI;YACF,MAAM,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;SAC7C;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,CAAC,KAAK,GAAG,CAAC,CAAA;SACjB;QAED,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAKD,MAAM,OAAO,KAAK;IAGhB;QACE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;IACjB,CAAC;IAED,IAAI,CAAC,IAA6B;QAChC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAqC;QACjD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;SACpC;QAED,MAAM,OAAO,GAAiB,EAAE,CAAA;QAEhC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAEvC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAEpB,IAAI,MAAM,CAAC,KAAK,EAAE;gBAChB,MAAK;aACN;SACF;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@segment/actions-core",
|
|
3
3
|
"description": "Core runtime for Destinations Actions.",
|
|
4
|
-
"version": "2.3.
|
|
4
|
+
"version": "2.3.2-alpha.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/segmentio/fab-5-engine",
|
|
@@ -71,5 +71,5 @@
|
|
|
71
71
|
"<rootDir>/dist/"
|
|
72
72
|
]
|
|
73
73
|
},
|
|
74
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "2a08ad049f845c76301e6906b1a40fc76e38823c"
|
|
75
75
|
}
|