@segment/action-destinations 3.444.1-staging-7573429f9.0 → 3.444.1-staging-785e660be.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.
@@ -1,5 +1,6 @@
1
1
  import type { Settings } from './generated-types';
2
2
  import type { Payload } from './send/generated-types';
3
3
  import { Logger, StatsContext } from '@segment/actions-core/destination-kit';
4
+ import { MultiStatusResponse } from '@segment/actions-core';
4
5
  export declare const validateIamRoleArnFormat: (arn: string) => boolean;
5
- export declare const send: (settings: Settings, payloads: Payload[], _statsContext: StatsContext | undefined, logger: Logger | undefined, signal?: AbortSignal) => Promise<void>;
6
+ export declare const send: (settings: Settings, payloads: Payload[], statsContext: StatsContext | undefined, logger: Logger | undefined, signal?: AbortSignal) => Promise<MultiStatusResponse>;
@@ -23,25 +23,74 @@ const createKinesisClient = async (iamRoleArn, iamExternalId, awsRegion) => {
23
23
  credentials: credentials
24
24
  });
25
25
  };
26
- const send = async (settings, payloads, _statsContext, logger, signal) => {
26
+ const send = async (settings, payloads, statsContext, logger, signal) => {
27
27
  const { iamRoleArn, iamExternalId } = settings;
28
28
  const { streamName, awsRegion } = payloads[0];
29
29
  const entries = transformPayloads(payloads);
30
+ statsContext?.statsClient?.histogram('actions_kinesis.batch_size', entries?.length, statsContext?.tags);
31
+ statsContext?.statsClient?.incr('actions_kinesis.request_hit', 1, statsContext?.tags);
30
32
  try {
31
33
  const client = await createKinesisClient(iamRoleArn, iamExternalId, awsRegion);
32
34
  const command = new client_kinesis_1.PutRecordsCommand({
33
35
  StreamName: streamName,
34
36
  Records: entries
35
37
  });
36
- await client.send(command, { abortSignal: signal });
38
+ const response = await client.send(command, { abortSignal: signal });
39
+ const multiResp = handleMultiStatusResponse(response, statsContext, payloads);
40
+ return multiResp;
37
41
  }
38
42
  catch (error) {
39
43
  if (error.name === 'AbortError') {
40
44
  throw new actions_core_1.RequestTimeoutError();
41
45
  }
42
46
  logger?.crit('Failed to send batch to Kinesis:', error);
43
- throw error;
47
+ handleError(error, statsContext);
44
48
  }
49
+ return Promise.resolve(new actions_core_1.MultiStatusResponse());
45
50
  };
46
51
  exports.send = send;
52
+ const handleError = (error, statsContext) => {
53
+ if (error?.name === 'AccessDeniedException') {
54
+ statsContext?.statsClient?.incr('actions_kinesis.access_denied_exception', 1, statsContext?.tags);
55
+ throw new actions_core_1.IntegrationError(`Access denied. Please check that the provided IAM Role has the necessary permissions to access Kinesis.`, 'ACCESS_DENIED', 403);
56
+ }
57
+ statsContext?.statsClient?.incr('actions_kinesis.error', 1, statsContext?.tags);
58
+ throw new actions_core_1.IntegrationError(`Failed to send batch to Kinesis: ${error?.message}`, 'DEPENDENCY_ERROR', 500);
59
+ };
60
+ const handleMultiStatusResponse = (response, statsContext, payloads) => {
61
+ const multiStatusResponse = new actions_core_1.MultiStatusResponse();
62
+ const { FailedRecordCount, Records } = response;
63
+ if (!FailedRecordCount || FailedRecordCount == 0) {
64
+ statsContext?.statsClient?.incr('actions_kinesis.successful_record_count', Records?.length || 0, statsContext?.tags);
65
+ Records?.forEach((record, index) => {
66
+ multiStatusResponse.setSuccessResponseAtIndex(index, {
67
+ status: 200,
68
+ body: record,
69
+ sent: payloads[index]
70
+ });
71
+ });
72
+ return multiStatusResponse;
73
+ }
74
+ statsContext?.statsClient?.incr('actions_kinesis.failed_record_count', FailedRecordCount, statsContext?.tags);
75
+ Records?.forEach((record, index) => {
76
+ if (record.ErrorCode) {
77
+ multiStatusResponse.setErrorResponseAtIndex(index, {
78
+ status: 400,
79
+ errortype: record.ErrorCode,
80
+ errormessage: record.ErrorMessage
81
+ });
82
+ const errorCode = record.ErrorCode || 'UnknownError';
83
+ statsContext?.statsClient?.incr(`actions_kinesis.error.${errorCode}`, 1, statsContext?.tags);
84
+ }
85
+ else {
86
+ multiStatusResponse.setSuccessResponseAtIndex(index, {
87
+ status: 200,
88
+ body: record,
89
+ sent: payloads[index]
90
+ });
91
+ statsContext?.statsClient?.incr('actions_kinesis.successful_record_count', 1, statsContext?.tags);
92
+ }
93
+ });
94
+ return multiStatusResponse;
95
+ };
47
96
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/destinations/aws-kinesis/utils.ts"],"names":[],"mappings":";;;AAGA,4DAAkG;AAClG,2CAA8C;AAC9C,+CAAoD;AACpD,wDAA2D;AAEpD,MAAM,wBAAwB,GAAG,CAAC,GAAW,EAAW,EAAE;IAC/D,MAAM,eAAe,GAAG,mDAAmD,CAAA;IAC3E,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAClC,CAAC,CAAA;AAHY,QAAA,wBAAwB,4BAGpC;AAED,MAAM,iBAAiB,GAAG,CAAC,QAAmB,EAA4B,EAAE;IAC1E,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC/B,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACzC,YAAY,EAAE,MAAM,CAAC,YAAY;KAClC,CAAC,CAAC,CAAA;AACL,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,KAAK,EAC/B,UAAkB,EAClB,aAAqB,EACrB,SAAiB,EACO,EAAE;IAC1B,MAAM,WAAW,GAAG,MAAM,IAAA,gBAAU,EAAC,UAAU,EAAE,aAAa,EAAE,sBAAc,CAAC,CAAA;IAC/E,OAAO,IAAI,8BAAa,CAAC;QACvB,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,WAAW;KACzB,CAAC,CAAA;AACJ,CAAC,CAAA;AAEM,MAAM,IAAI,GAAG,KAAK,EACvB,QAAkB,EAClB,QAAmB,EACnB,aAAuC,EACvC,MAA0B,EAC1B,MAAoB,EACL,EAAE;IACjB,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,QAAQ,CAAA;IAC9C,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC7C,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IAE3C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,UAAU,EAAE,aAAa,EAAE,SAAS,CAAC,CAAA;QAC9E,MAAM,OAAO,GAAG,IAAI,kCAAiB,CAAC;YACpC,UAAU,EAAE,UAAU;YACtB,OAAO,EAAE,OAAO;SACjB,CAAC,CAAA;QAEF,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;IACrD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAEf,IAAK,KAAe,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAE3C,MAAM,IAAI,kCAAmB,EAAE,CAAA;QACjC,CAAC;QAED,MAAM,EAAE,IAAI,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAA;QACvD,MAAM,KAAK,CAAA;IACb,CAAC;AAMH,CAAC,CAAA;AAlCY,QAAA,IAAI,QAkChB"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/destinations/aws-kinesis/utils.ts"],"names":[],"mappings":";;;AAGA,4DAKgC;AAChC,2CAA8C;AAC9C,+CAAoD;AACpD,wDAAkH;AAE3G,MAAM,wBAAwB,GAAG,CAAC,GAAW,EAAW,EAAE;IAC/D,MAAM,eAAe,GAAG,mDAAmD,CAAA;IAC3E,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAClC,CAAC,CAAA;AAHY,QAAA,wBAAwB,4BAGpC;AAED,MAAM,iBAAiB,GAAG,CAAC,QAAmB,EAA4B,EAAE;IAC1E,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC/B,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACzC,YAAY,EAAE,MAAM,CAAC,YAAY;KAClC,CAAC,CAAC,CAAA;AACL,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,KAAK,EAC/B,UAAkB,EAClB,aAAqB,EACrB,SAAiB,EACO,EAAE;IAC1B,MAAM,WAAW,GAAG,MAAM,IAAA,gBAAU,EAAC,UAAU,EAAE,aAAa,EAAE,sBAAc,CAAC,CAAA;IAC/E,OAAO,IAAI,8BAAa,CAAC;QACvB,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,WAAW;KACzB,CAAC,CAAA;AACJ,CAAC,CAAA;AAEM,MAAM,IAAI,GAAG,KAAK,EACvB,QAAkB,EAClB,QAAmB,EACnB,YAAsC,EACtC,MAA0B,EAC1B,MAAoB,EACU,EAAE;IAChC,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,QAAQ,CAAA;IAC9C,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC7C,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IAE3C,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC,4BAA4B,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;IACvG,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,6BAA6B,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;IAErF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,UAAU,EAAE,aAAa,EAAE,SAAS,CAAC,CAAA;QAC9E,MAAM,OAAO,GAAG,IAAI,kCAAiB,CAAC;YACpC,UAAU,EAAE,UAAU;YACtB,OAAO,EAAE,OAAO;SACjB,CAAC,CAAA;QAEF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;QACpE,MAAM,SAAS,GAAG,yBAAyB,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAA;QAC7E,OAAO,SAAS,CAAA;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAEf,IAAK,KAAe,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAE3C,MAAM,IAAI,kCAAmB,EAAE,CAAA;QACjC,CAAC;QAED,MAAM,EAAE,IAAI,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAA;QACvD,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;IAClC,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,kCAAmB,EAAE,CAAC,CAAA;AACnD,CAAC,CAAA;AApCY,QAAA,IAAI,QAoChB;AAED,MAAM,WAAW,GAAG,CAAC,KAAU,EAAE,YAAsC,EAAQ,EAAE;IAC/E,IAAI,KAAK,EAAE,IAAI,KAAK,uBAAuB,EAAE,CAAC;QAC5C,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,yCAAyC,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;QACjG,MAAM,IAAI,+BAAgB,CACxB,yGAAyG,EACzG,eAAe,EACf,GAAG,CACJ,CAAA;IACH,CAAC;IAED,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,uBAAuB,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;IAC/E,MAAM,IAAI,+BAAgB,CAAC,oCAAoC,KAAK,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAAA;AAC3G,CAAC,CAAA;AAED,MAAM,yBAAyB,GAAG,CAChC,QAAiC,EACjC,YAAsC,EACtC,QAAmB,EACE,EAAE;IACvB,MAAM,mBAAmB,GAAwB,IAAI,kCAAmB,EAAE,CAAA;IAC1E,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAA;IAE/C,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,IAAI,CAAC,EAAE,CAAC;QACjD,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,yCAAyC,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;QAEpH,OAAO,EAAE,OAAO,CAAC,CAAC,MAAW,EAAE,KAAa,EAAE,EAAE;YAC9C,mBAAmB,CAAC,yBAAyB,CAAC,KAAK,EAAE;gBACnD,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ,CAAC,KAAK,CAA8B;aACnD,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QACF,OAAO,mBAAmB,CAAA;IAC5B,CAAC;IAED,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,qCAAqC,EAAE,iBAAiB,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;IAE7G,OAAO,EAAE,OAAO,CAAC,CAAC,MAAW,EAAE,KAAa,EAAE,EAAE;QAC9C,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,mBAAmB,CAAC,uBAAuB,CAAC,KAAK,EAAE;gBACjD,MAAM,EAAE,GAAG;gBACX,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,YAAY,EAAE,MAAM,CAAC,YAAY;aAClC,CAAC,CAAA;YACF,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,cAAc,CAAA;YACpD,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,yBAAyB,SAAS,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;QAC9F,CAAC;aAAM,CAAC;YACN,mBAAmB,CAAC,yBAAyB,CAAC,KAAK,EAAE;gBACnD,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ,CAAC,KAAK,CAA8B;aACnD,CAAC,CAAA;YACF,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,yCAAyC,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;QACnG,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,mBAAmB,CAAA;AAC5B,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@segment/action-destinations",
3
3
  "description": "Destination Actions engine and definitions.",
4
- "version": "3.444.1-staging-7573429f9.0",
4
+ "version": "3.444.1-staging-785e660be.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/segmentio/action-destinations",
@@ -92,5 +92,5 @@
92
92
  "__tests__/__helpers__/"
93
93
  ]
94
94
  },
95
- "gitHead": "1dab32b2398eba32a770f9bfa8748bb0a69c7f1f"
95
+ "gitHead": "a4a4f56266b4586b29ef0dd439e8c3c5bb489148"
96
96
  }