@chainlink/external-adapter-framework 0.28.3 → 0.28.4
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/cache/redis.d.ts +7 -2
- package/cache/redis.js +22 -25
- package/cache/redis.js.map +1 -1
- package/cache/response.js +24 -2
- package/cache/response.js.map +1 -1
- package/package.json +3 -3
- package/util/logger.d.ts +1 -1
- package/util/logger.js +4 -1
- package/util/logger.js.map +1 -1
package/cache/redis.d.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
import Redis from 'ioredis';
|
|
1
|
+
import Redis, { Result } from 'ioredis';
|
|
2
2
|
import { Cache, CacheEntry } from './index';
|
|
3
3
|
import { CacheTypes } from './metrics';
|
|
4
|
+
declare module 'ioredis' {
|
|
5
|
+
interface RedisCommander<Context> {
|
|
6
|
+
setExternalAdapterResponse(key: string, value: string, ttl: number): Result<string, Context>;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
4
9
|
/**
|
|
5
10
|
* Redis implementation of a Cache. It uses a simple js Object, storing entries with both
|
|
6
11
|
* a value and an expiration timestamp. Expired entries are deleted on reads (i.e. no background gc/upkeep).
|
|
@@ -11,7 +16,7 @@ export declare class RedisCache<T = unknown> implements Cache<T> {
|
|
|
11
16
|
private client;
|
|
12
17
|
type: CacheTypes;
|
|
13
18
|
constructor(client: Redis);
|
|
14
|
-
|
|
19
|
+
defineCommands(): void;
|
|
15
20
|
get(key: string): Promise<Readonly<T> | undefined>;
|
|
16
21
|
delete(key: string): Promise<void>;
|
|
17
22
|
set(key: string, value: Readonly<T>, ttl: number): Promise<void>;
|
package/cache/redis.js
CHANGED
|
@@ -15,29 +15,26 @@ class RedisCache {
|
|
|
15
15
|
constructor(client) {
|
|
16
16
|
this.client = client;
|
|
17
17
|
this.type = metrics_2.CacheTypes.Redis;
|
|
18
|
-
this.
|
|
18
|
+
this.defineCommands();
|
|
19
19
|
}
|
|
20
|
-
|
|
21
|
-
// Load custom
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
end
|
|
39
|
-
end)`;
|
|
40
|
-
this.client.function('LOAD', 'REPLACE', source);
|
|
20
|
+
defineCommands() {
|
|
21
|
+
// Load custom lua script 'setExternalAdapterResponse' to redis that will skip overwriting successful cache response if the new value is error response
|
|
22
|
+
const lua = `local key = KEYS[1]
|
|
23
|
+
local value = ARGV[1]
|
|
24
|
+
local ttl = tonumber(ARGV[2])
|
|
25
|
+
local json_value = cjson.decode(value)
|
|
26
|
+
local key_exists = redis.call('EXISTS', key)
|
|
27
|
+
if json_value.errorMessage and key_exists == 1 then
|
|
28
|
+
local existing_json_value = cjson.decode(redis.call('GET', key))
|
|
29
|
+
if existing_json_value.errorMessage then
|
|
30
|
+
return redis.call('SET', key, value, 'PX', ttl)
|
|
31
|
+
else
|
|
32
|
+
return nil
|
|
33
|
+
end
|
|
34
|
+
else
|
|
35
|
+
return redis.call('SET', key, value, 'PX', ttl)
|
|
36
|
+
end`;
|
|
37
|
+
this.client.defineCommand('setExternalAdapterResponse', { lua, numberOfKeys: 1 });
|
|
41
38
|
}
|
|
42
39
|
async get(key) {
|
|
43
40
|
logger.trace(`Getting key ${key}`);
|
|
@@ -58,16 +55,16 @@ class RedisCache {
|
|
|
58
55
|
}
|
|
59
56
|
async set(key, value, ttl) {
|
|
60
57
|
logger.trace(`Setting key ${key}`);
|
|
61
|
-
await this.client.
|
|
58
|
+
await this.client.setExternalAdapterResponse(key, JSON.stringify(value), ttl);
|
|
62
59
|
// Record set command sent to Redis
|
|
63
|
-
(0, metrics_1.recordRedisCommandMetric)(metrics_1.CMD_SENT_STATUS.SUCCESS, '
|
|
60
|
+
(0, metrics_1.recordRedisCommandMetric)(metrics_1.CMD_SENT_STATUS.SUCCESS, 'setExternalAdapterResponse');
|
|
64
61
|
}
|
|
65
62
|
async setMany(entries, ttl) {
|
|
66
63
|
logger.trace(`Setting a bunch of keys`);
|
|
67
64
|
// Unfortunately, there's no ttl for mset
|
|
68
65
|
let chain = this.client.multi();
|
|
69
66
|
for (const entry of entries) {
|
|
70
|
-
chain = chain.
|
|
67
|
+
chain = chain.setExternalAdapterResponse(entry.key, JSON.stringify(entry.value), ttl);
|
|
71
68
|
}
|
|
72
69
|
await chain.exec();
|
|
73
70
|
// Loop again, but this time to record these in metrics
|
package/cache/redis.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis.js","sourceRoot":"","sources":["../../../src/cache/redis.ts"],"names":[],"mappings":";;;AACA,wCAAsE;AACtE,kCAAqD;AAErD,uCAAmE;
|
|
1
|
+
{"version":3,"file":"redis.js","sourceRoot":"","sources":["../../../src/cache/redis.ts"],"names":[],"mappings":"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"}
|
package/cache/response.js
CHANGED
|
@@ -22,12 +22,16 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
25
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
29
|
exports.ResponseCache = void 0;
|
|
27
30
|
const util_1 = require("../util");
|
|
28
31
|
const _1 = require("./");
|
|
29
32
|
const cacheMetrics = __importStar(require("./metrics"));
|
|
30
33
|
const utils_1 = require("../validation/utils");
|
|
34
|
+
const censor_list_1 = __importDefault(require("../util/censor/censor-list"));
|
|
31
35
|
const logger = (0, util_1.makeLogger)('ResponseCache');
|
|
32
36
|
/**
|
|
33
37
|
* Special type of cache to store responses for this adapter.
|
|
@@ -46,10 +50,28 @@ class ResponseCache {
|
|
|
46
50
|
* @param results - the entries to write to the cache
|
|
47
51
|
*/
|
|
48
52
|
async write(transportName, results) {
|
|
53
|
+
const censorList = censor_list_1.default.getAll();
|
|
49
54
|
const entries = results.map((r) => {
|
|
55
|
+
let censoredResponse;
|
|
56
|
+
if (!censorList.length) {
|
|
57
|
+
censoredResponse = r.response;
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
try {
|
|
61
|
+
censoredResponse = (0, util_1.censor)(r.response, censorList, true);
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
logger.error(`Error censoring response: ${error}`);
|
|
65
|
+
censoredResponse = {
|
|
66
|
+
statusCode: 502,
|
|
67
|
+
errorMessage: 'Response could not be censored due to an error',
|
|
68
|
+
timestamps: r.response.timestamps,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
}
|
|
50
72
|
const response = {
|
|
51
|
-
...
|
|
52
|
-
statusCode:
|
|
73
|
+
...censoredResponse,
|
|
74
|
+
statusCode: censoredResponse.statusCode || 200,
|
|
53
75
|
};
|
|
54
76
|
if (this.adapterSettings.METRICS_ENABLED &&
|
|
55
77
|
this.adapterSettings.EXPERIMENTAL_METRICS_ENABLED) {
|
package/cache/response.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/cache/response.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/cache/response.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chainlink/external-adapter-framework",
|
|
3
|
-
"version": "0.28.
|
|
3
|
+
"version": "0.28.4",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"dependencies": {
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
"build": "mkdir -p ./dist/src && cp package.json dist/src && cp README.md dist/src && tsc",
|
|
19
19
|
"dev": "DEBUG=true tsnd --respawn --transpile-only --project tsconfig.json './src/test.ts'",
|
|
20
20
|
"generate-docs": "typedoc src/**/*.ts",
|
|
21
|
-
"lint-fix": "eslint --max-warnings=0 --fix
|
|
22
|
-
"lint": "eslint --max-warnings=0
|
|
21
|
+
"lint-fix": "eslint --max-warnings=0 --fix . && prettier --write ./src/**/*.ts ./test/**/*.ts ./*.{json,js,yaml}",
|
|
22
|
+
"lint": "eslint --max-warnings=0 . && prettier --check ./src/**/*.ts ./test/**/*.ts ./*.{json,js,yaml}",
|
|
23
23
|
"portal-path": "echo \"portal:$(readlink -f ./dist/src)\"",
|
|
24
24
|
"start": "ts-node -e 'import(`./src/examples/${process.argv[1]}/src/index`).then(ea => ea.server())'",
|
|
25
25
|
"test-debug": "EA_HOST=localhost LOG_LEVEL=trace DEBUG=true EA_PORT=0 c8 ava --verbose",
|
package/util/logger.d.ts
CHANGED
|
@@ -55,4 +55,4 @@ export declare const makeLogger: (layer: string) => pino.Logger<{
|
|
|
55
55
|
} | undefined;
|
|
56
56
|
} & pino.ChildLoggerOptions>;
|
|
57
57
|
export declare const loggingContextMiddleware: (req: AdapterRequest, res: FastifyReply, done: HookHandlerDoneFunction) => void;
|
|
58
|
-
export declare function censor(obj: any, censorList: CensorKeyValue[]): any;
|
|
58
|
+
export declare function censor(obj: any, censorList: CensorKeyValue[], throwOnError?: boolean): any;
|
package/util/logger.js
CHANGED
|
@@ -115,7 +115,7 @@ const loggingContextMiddleware = (req, res, done) => {
|
|
|
115
115
|
exports.loggingContextMiddleware = loggingContextMiddleware;
|
|
116
116
|
// Obj is typed as "any" because it could be a variety of structures in the logger
|
|
117
117
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
118
|
-
function censor(obj, censorList) {
|
|
118
|
+
function censor(obj, censorList, throwOnError = false) {
|
|
119
119
|
let stringified = '';
|
|
120
120
|
try {
|
|
121
121
|
// JSON.stringify(obj) will fail if obj contains a circular reference.
|
|
@@ -123,6 +123,9 @@ function censor(obj, censorList) {
|
|
|
123
123
|
stringified = JSON.stringify(obj);
|
|
124
124
|
}
|
|
125
125
|
catch (e) {
|
|
126
|
+
if (throwOnError) {
|
|
127
|
+
throw e;
|
|
128
|
+
}
|
|
126
129
|
return '[Unknown]';
|
|
127
130
|
}
|
|
128
131
|
censorList.forEach((entry) => {
|
package/util/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/util/logger.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/util/logger.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AACvB,sCAAkD;AAGlD,mCAAmC;AACnC,uDAAoD;AACpD,uEAAiE;AAEpD,QAAA,iBAAiB,GAAG,IAAI,oCAAiB,EAAE,CAAA;AAMxD,MAAM,cAAc,GAAG;IACrB,MAAM,EAAE,aAAa;IACrB,OAAO,EAAE;QACP,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,wCAAwC;QAChD,aAAa,EAAE,wDAAwD;QACvE,aAAa,EAAE,uBAAuB;KACvC;CACF,CAAA;AAED,wEAAwE;AACxE,MAAM,UAAU,GAAG,IAAA,cAAI,EAAC;IACtB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,IAAI,+BAAsB,CAAC,SAAS,CAAC,OAAO;IAC1F,UAAU,EAAE;QACV,KAAK,CAAC,KAAK;YACT,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;QACzB,CAAC;KACF;IACD,KAAK,EAAE;QACL,SAAS,CAAC,SAAS,EAAE,MAAM;YACzB,iCAAiC;YACjC,MAAM,UAAU,GAAG,qBAAU,CAAC,MAAM,EAAE,CAAA;YACtC,OAAO,MAAM,CAAC,KAAK,CACjB,IAAI,EACJ,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAA2B,CAC1E,CAAA;QACH,CAAC;KACF;IACD,KAAK;QACH,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,KAAK,OAAO,EAAE;YACrD,MAAM,KAAK,GAAG,yBAAiB,CAAC,QAAQ,EAAW,CAAA;YACnD,IAAI,KAAK,EAAE;gBACT,OAAO;oBACL,aAAa,EAAE,KAAK,CAAC,aAAa;iBACnC,CAAA;aACF;SACF;QACD,OAAO,EAAE,CAAA;IACX,CAAC;IACD,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;CACxE,CAAC,CAAA;AAEW,QAAA,MAAM,GAAG;IACpB,cAAc;IACd,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,wBAAwB;IACxB,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,kBAAkB;IAClB,iBAAiB;IACjB,kBAAkB;IAClB,yBAAyB;IACzB,wBAAwB;IACxB,yBAAyB;IACzB,yBAAyB;IACzB,YAAY;IACZ,wBAAwB;CACzB,CAAA;AAEM,MAAM,YAAY,GAAG,CAAC,MAAgB,EAAE,EAAE;IAC/C,IAAI,KAAK,GAAG,CAAC,CAAC,CAAA;IACd,OAAO,GAAG,EAAE;QACV,KAAK,EAAE,CAAA;QACP,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,KAAK,GAAG,CAAC,CAAA;SACV;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC,CAAA;AACH,CAAC,CAAA;AATY,QAAA,YAAY,gBASxB;AAED,MAAM,YAAY,GAAG,IAAA,oBAAY,EAAC,cAAM,CAAC,CAAA;AAEzC;;;;;;;;;;;;;;;;;GAiBG;AACI,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,EAAE,CAC1C,UAAU,CAAC,KAAK,CAAC;IACf,KAAK;IACL,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS;CACpE,CAAC,CAAA;AAJS,QAAA,UAAU,cAInB;AAEG,MAAM,wBAAwB,GAAG,CACtC,GAAmB,EACnB,GAAiB,EACjB,IAA6B,EAC7B,EAAE;IACF,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,IAAA,mBAAU,GAAE,CAAA;IACrE,yBAAiB,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE;QAC3D,IAAI,EAAE,CAAA;IACR,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AATY,QAAA,wBAAwB,4BASpC;AAED,kFAAkF;AAClF,8DAA8D;AAC9D,SAAgB,MAAM,CAAC,GAAQ,EAAE,UAA4B,EAAE,YAAY,GAAG,KAAK;IACjF,IAAI,WAAW,GAAG,EAAE,CAAA;IACpB,IAAI;QACF,sEAAsE;QACtE,8DAA8D;QAC9D,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;KAClC;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,YAAY,EAAE;YAChB,MAAM,CAAC,CAAA;SACR;QACD,OAAO,WAAW,CAAA;KACnB;IACD,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,GAAG,YAAY,CAAC,CAAA;IAC3E,CAAC,CAAC,CAAA;IACF,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;AAChC,CAAC;AAhBD,wBAgBC"}
|