akeyless-server-commons 1.0.136-test.3 → 1.0.136-test.31
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/helpers/firebase_helpers.d.ts +8 -2
- package/dist/cjs/helpers/firebase_helpers.js +143 -63
- package/dist/cjs/helpers/firebase_helpers.js.map +1 -1
- package/dist/cjs/helpers/global_helpers.d.ts +2 -2
- package/dist/cjs/helpers/global_helpers.js +7 -7
- package/dist/cjs/helpers/global_helpers.js.map +1 -1
- package/dist/cjs/helpers/redis/index.d.ts +3 -5
- package/dist/cjs/helpers/redis/index.js +16 -80
- package/dist/cjs/helpers/redis/index.js.map +1 -1
- package/dist/cjs/helpers/redis/initialize.d.ts +5 -0
- package/dist/cjs/helpers/redis/initialize.js +79 -0
- package/dist/cjs/helpers/redis/initialize.js.map +1 -0
- package/dist/cjs/helpers/redis/snapshot.d.ts +2 -0
- package/dist/cjs/helpers/redis/snapshot.js +181 -0
- package/dist/cjs/helpers/redis/snapshot.js.map +1 -0
- package/dist/cjs/helpers/start.d.ts +1 -1
- package/dist/cjs/helpers/start.js +2 -2
- package/dist/cjs/helpers/start.js.map +1 -1
- package/dist/cjs/types/interfaces/global.d.ts +2 -0
- package/dist/cjs/types/types/firebase_types.d.ts +19 -3
- package/dist/esm/helpers/firebase_helpers.d.ts +8 -2
- package/dist/esm/helpers/firebase_helpers.js +136 -62
- package/dist/esm/helpers/firebase_helpers.js.map +1 -1
- package/dist/esm/helpers/global_helpers.d.ts +2 -2
- package/dist/esm/helpers/global_helpers.js +7 -7
- package/dist/esm/helpers/global_helpers.js.map +1 -1
- package/dist/esm/helpers/redis/index.d.ts +3 -5
- package/dist/esm/helpers/redis/index.js +3 -76
- package/dist/esm/helpers/redis/index.js.map +1 -1
- package/dist/esm/helpers/redis/initialize.d.ts +5 -0
- package/dist/esm/helpers/redis/initialize.js +73 -0
- package/dist/esm/helpers/redis/initialize.js.map +1 -0
- package/dist/esm/helpers/redis/snapshot.d.ts +2 -0
- package/dist/esm/helpers/redis/snapshot.js +177 -0
- package/dist/esm/helpers/redis/snapshot.js.map +1 -0
- package/dist/esm/helpers/start.d.ts +1 -1
- package/dist/esm/helpers/start.js +2 -2
- package/dist/esm/helpers/start.js.map +1 -1
- package/dist/esm/types/interfaces/global.d.ts +2 -0
- package/dist/esm/types/types/firebase_types.d.ts +19 -3
- package/package.json +1 -1
|
@@ -1,84 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
13
15
|
};
|
|
14
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const keys_1 = require("./keys");
|
|
19
|
-
const global_helpers_1 = require("../global_helpers");
|
|
20
|
-
const managers_1 = require("../../managers");
|
|
21
|
-
const { redis_ip } = (0, global_helpers_1.init_env_variables)(["redis_ip"]);
|
|
22
|
-
exports.redis_commander = new ioredis_1.default({ host: redis_ip });
|
|
23
|
-
exports.redis_listener = new ioredis_1.default({ host: redis_ip });
|
|
24
|
-
exports.redis_commander.on("connect", () => managers_1.logger.log("✅ Redis Commander connected"));
|
|
25
|
-
exports.redis_commander.on("error", (err) => managers_1.logger.error("❌ Redis Commander error", err));
|
|
26
|
-
exports.redis_listener.on("connect", () => {
|
|
27
|
-
const redis_pattern = (0, keys_1.get_collection_keys)(akeyless_types_commons_1.REDIS_UPDATES_PREFIX);
|
|
28
|
-
exports.redis_listener
|
|
29
|
-
.psubscribe(redis_pattern)
|
|
30
|
-
.then(() => {
|
|
31
|
-
managers_1.logger.log(`✅ Successfully subscribed to Redis pattern: ${redis_pattern}`);
|
|
32
|
-
})
|
|
33
|
-
.catch((err) => managers_1.logger.error(`❌ Failed to psubscribe to ${redis_pattern}`, err));
|
|
34
|
-
});
|
|
35
|
-
exports.redis_listener.on("error", (err) => managers_1.logger.error("❌ Redis Listener error", err));
|
|
36
|
-
const subscription_collections = new Set();
|
|
37
|
-
const cache_snapshots_bulk = (configs) => __awaiter(void 0, void 0, void 0, function* () {
|
|
38
|
-
var _a;
|
|
39
|
-
for (const config of configs) {
|
|
40
|
-
const { collection_name, on_first_time, on_add, on_modify, on_remove, extra_parsers, cache_name = collection_name } = config;
|
|
41
|
-
if (subscription_collections.has(cache_name)) {
|
|
42
|
-
continue;
|
|
43
|
-
}
|
|
44
|
-
subscription_collections.add(cache_name);
|
|
45
|
-
const init_data = yield get_collection_data(collection_name);
|
|
46
|
-
(_a = config.on_first_time) === null || _a === void 0 ? void 0 : _a.call(config, init_data, config);
|
|
47
|
-
extra_parsers === null || extra_parsers === void 0 ? void 0 : extra_parsers.forEach((parser) => { var _a; return (_a = parser === null || parser === void 0 ? void 0 : parser.on_first_time) === null || _a === void 0 ? void 0 : _a.call(parser, init_data, config); });
|
|
48
|
-
}
|
|
49
|
-
exports.redis_listener.on("pmessage", (pattern, channel, message) => __awaiter(void 0, void 0, void 0, function* () {
|
|
50
|
-
var _a, _b, _c, _d, _e, _f;
|
|
51
|
-
const { collection_name, update_type, data: docs } = JSON.parse(message);
|
|
52
|
-
const config = configs.find((config) => config.collection_name === collection_name);
|
|
53
|
-
if (!config) {
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
switch (update_type) {
|
|
57
|
-
case "add":
|
|
58
|
-
(_a = config.on_add) === null || _a === void 0 ? void 0 : _a.call(config, docs, config);
|
|
59
|
-
(_b = config.extra_parsers) === null || _b === void 0 ? void 0 : _b.forEach((parser) => { var _a; return (_a = parser === null || parser === void 0 ? void 0 : parser.on_add) === null || _a === void 0 ? void 0 : _a.call(parser, docs, config); });
|
|
60
|
-
break;
|
|
61
|
-
case "delete":
|
|
62
|
-
(_c = config.on_remove) === null || _c === void 0 ? void 0 : _c.call(config, docs, config);
|
|
63
|
-
(_d = config.extra_parsers) === null || _d === void 0 ? void 0 : _d.forEach((parser) => { var _a; return (_a = parser === null || parser === void 0 ? void 0 : parser.on_remove) === null || _a === void 0 ? void 0 : _a.call(parser, docs, config); });
|
|
64
|
-
break;
|
|
65
|
-
case "update":
|
|
66
|
-
(_e = config.on_modify) === null || _e === void 0 ? void 0 : _e.call(config, docs, config);
|
|
67
|
-
(_f = config.extra_parsers) === null || _f === void 0 ? void 0 : _f.forEach((parser) => { var _a; return (_a = parser === null || parser === void 0 ? void 0 : parser.on_modify) === null || _a === void 0 ? void 0 : _a.call(parser, docs, config); });
|
|
68
|
-
break;
|
|
69
|
-
default:
|
|
70
|
-
break;
|
|
71
|
-
}
|
|
72
|
-
}));
|
|
73
|
-
});
|
|
74
|
-
exports.cache_snapshots_bulk = cache_snapshots_bulk;
|
|
75
|
-
const get_collection_data = (collection_name) => __awaiter(void 0, void 0, void 0, function* () {
|
|
76
|
-
const keys = yield (0, keys_1.scan_redis_keys)((0, keys_1.get_collection_keys)(collection_name), exports.redis_commander);
|
|
77
|
-
let collection_data = [];
|
|
78
|
-
if (keys.length > 0) {
|
|
79
|
-
const values = yield exports.redis_commander.mget(keys);
|
|
80
|
-
collection_data = values.filter(Boolean).map((v) => JSON.parse(v).data);
|
|
81
|
-
}
|
|
82
|
-
return collection_data;
|
|
83
|
-
});
|
|
17
|
+
__exportStar(require("./initialize"), exports);
|
|
18
|
+
__exportStar(require("./keys"), exports);
|
|
19
|
+
__exportStar(require("./snapshot"), exports);
|
|
84
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/helpers/redis/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/helpers/redis/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,yCAAuB;AACvB,6CAA2B"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.redis_listener = exports.redis_commander = exports.redis_listener_connected = exports.redis_commander_connected = void 0;
|
|
7
|
+
const ioredis_1 = __importDefault(require("ioredis"));
|
|
8
|
+
const akeyless_types_commons_1 = require("akeyless-types-commons");
|
|
9
|
+
const keys_1 = require("./keys");
|
|
10
|
+
const global_helpers_1 = require("../global_helpers");
|
|
11
|
+
const managers_1 = require("../../managers");
|
|
12
|
+
const dotenv_1 = __importDefault(require("dotenv"));
|
|
13
|
+
dotenv_1.default.config();
|
|
14
|
+
const { redis_ip } = (0, global_helpers_1.init_env_variables)(["redis_ip"]);
|
|
15
|
+
exports.redis_commander_connected = false;
|
|
16
|
+
exports.redis_listener_connected = false;
|
|
17
|
+
const MAX_RETRY_ATTEMPTS = 5;
|
|
18
|
+
function create_redis_instance(role) {
|
|
19
|
+
let retry_attempts = 0;
|
|
20
|
+
const client = new ioredis_1.default({
|
|
21
|
+
host: redis_ip,
|
|
22
|
+
lazyConnect: true,
|
|
23
|
+
enableOfflineQueue: false,
|
|
24
|
+
maxRetriesPerRequest: 0,
|
|
25
|
+
reconnectOnError: () => false,
|
|
26
|
+
retryStrategy(times) {
|
|
27
|
+
retry_attempts = times;
|
|
28
|
+
if (retry_attempts >= MAX_RETRY_ATTEMPTS) {
|
|
29
|
+
managers_1.logger.error(`❌ Redis ${role} failed after ${MAX_RETRY_ATTEMPTS} attempts. Stopping retries.`);
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
const delay = 1000;
|
|
33
|
+
managers_1.logger.warn(`⚠️ Redis ${role} retry attempt ${retry_attempts}/${MAX_RETRY_ATTEMPTS} in ${delay}ms...`);
|
|
34
|
+
return delay;
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
client.on("connect", () => {
|
|
38
|
+
managers_1.logger.log(`✅ Redis ${role} connected`);
|
|
39
|
+
if (role === "commander")
|
|
40
|
+
exports.redis_commander_connected = true;
|
|
41
|
+
if (role === "listener")
|
|
42
|
+
exports.redis_listener_connected = true;
|
|
43
|
+
});
|
|
44
|
+
client.on("error", (err) => managers_1.logger.error(`❌ Redis ${role} error`, err));
|
|
45
|
+
client.on("close", () => {
|
|
46
|
+
managers_1.logger.warn(`ℹ️ Redis ${role} connection closed`);
|
|
47
|
+
if (role === "commander")
|
|
48
|
+
exports.redis_commander_connected = false;
|
|
49
|
+
if (role === "listener")
|
|
50
|
+
exports.redis_listener_connected = false;
|
|
51
|
+
});
|
|
52
|
+
client.on("end", () => {
|
|
53
|
+
managers_1.logger.warn(`ℹ️ Redis ${role} connection ended`);
|
|
54
|
+
if (role === "commander")
|
|
55
|
+
exports.redis_commander_connected = false;
|
|
56
|
+
if (role === "listener")
|
|
57
|
+
exports.redis_listener_connected = false;
|
|
58
|
+
});
|
|
59
|
+
client.connect().catch((err) => {
|
|
60
|
+
managers_1.logger.error(`❌ Redis ${role} initial connect failed`, err);
|
|
61
|
+
});
|
|
62
|
+
return client;
|
|
63
|
+
}
|
|
64
|
+
exports.redis_commander = create_redis_instance("commander");
|
|
65
|
+
exports.redis_listener = create_redis_instance("listener");
|
|
66
|
+
exports.redis_listener.on("connect", () => {
|
|
67
|
+
const redis_pattern = (0, keys_1.get_collection_keys)(akeyless_types_commons_1.REDIS_UPDATES_PREFIX);
|
|
68
|
+
exports.redis_listener
|
|
69
|
+
.psubscribe(redis_pattern)
|
|
70
|
+
.then(() => managers_1.logger.log(`✅ Subscribed to Redis pattern: ${redis_pattern}`))
|
|
71
|
+
.catch((err) => managers_1.logger.error(`❌ Failed to psubscribe to ${redis_pattern}`, err));
|
|
72
|
+
});
|
|
73
|
+
process.on("unhandledRejection", (err) => {
|
|
74
|
+
managers_1.logger.error("❌ Unhandled promise rejection", err);
|
|
75
|
+
});
|
|
76
|
+
process.on("uncaughtException", (err) => {
|
|
77
|
+
managers_1.logger.error("❌ Uncaught exception", err);
|
|
78
|
+
});
|
|
79
|
+
//# sourceMappingURL=initialize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../../../src/helpers/redis/initialize.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.redis_snapshots_bulk = void 0;
|
|
13
|
+
const initialize_1 = require("./initialize");
|
|
14
|
+
const firebase_helpers_1 = require("../firebase_helpers");
|
|
15
|
+
const keys_1 = require("./keys");
|
|
16
|
+
const firestore_1 = require("firebase-admin/firestore");
|
|
17
|
+
const managers_1 = require("../../managers");
|
|
18
|
+
const subscription_collections = new Set();
|
|
19
|
+
const redis_snapshots_bulk = (configs) => __awaiter(void 0, void 0, void 0, function* () {
|
|
20
|
+
/// on first time
|
|
21
|
+
for (const config of configs) {
|
|
22
|
+
const validation = yield validate_config(config);
|
|
23
|
+
if (!validation.success) {
|
|
24
|
+
managers_1.logger.warn(validation.message, config);
|
|
25
|
+
if (validation.trigger_firebase_snapshot) {
|
|
26
|
+
yield (0, firebase_helpers_1.snapshot)(config);
|
|
27
|
+
}
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
yield parse_redis_snapshot(config);
|
|
31
|
+
}
|
|
32
|
+
/// on update
|
|
33
|
+
initialize_1.redis_listener.on("pmessage", (pattern, channel, message) => __awaiter(void 0, void 0, void 0, function* () {
|
|
34
|
+
const { collection_name, update_type, data: doc } = JSON.parse(message);
|
|
35
|
+
const update = [convert_object_timestamps(doc)];
|
|
36
|
+
const relevant_configs = configs.filter((config) => config.collection_name === collection_name);
|
|
37
|
+
managers_1.logger.log("⏩ relevant_configs", relevant_configs);
|
|
38
|
+
for (const config of relevant_configs) {
|
|
39
|
+
yield parse_redis_snapshot(config, { update_type, update });
|
|
40
|
+
}
|
|
41
|
+
}));
|
|
42
|
+
});
|
|
43
|
+
exports.redis_snapshots_bulk = redis_snapshots_bulk;
|
|
44
|
+
const validate_config = (config) => __awaiter(void 0, void 0, void 0, function* () {
|
|
45
|
+
const nx_settings = yield (0, firebase_helpers_1.get_nx_settings)();
|
|
46
|
+
const cache_collections_config = nx_settings.cache_collections_config || {};
|
|
47
|
+
const { collection_name, cache_name = collection_name, subscription_type = "firebase" } = config;
|
|
48
|
+
if (!initialize_1.redis_commander_connected || !initialize_1.redis_listener_connected) {
|
|
49
|
+
return {
|
|
50
|
+
success: false,
|
|
51
|
+
trigger_firebase_snapshot: true,
|
|
52
|
+
message: `⚠️ Redis commander or listener not connected, triggered firebase snapshot for collection: "${collection_name}"`,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
if (subscription_type === "firebase") {
|
|
56
|
+
return {
|
|
57
|
+
success: false,
|
|
58
|
+
trigger_firebase_snapshot: true,
|
|
59
|
+
message: `⚠️ subscription type is "firebase", triggered firebase snapshot for collection: "${collection_name}"`,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
if (!cache_collections_config[collection_name] || cache_collections_config[collection_name].sync_direction === "redis_to_firebase") {
|
|
63
|
+
return {
|
|
64
|
+
success: false,
|
|
65
|
+
trigger_firebase_snapshot: true,
|
|
66
|
+
message: `⚠️ collection: "${collection_name}" not found in cache_collections_config in "nx-settings" or sync_direction is "redis_to_firebase", triggered firebase snapshot for collection: "${collection_name}"`,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
if (subscription_collections.has(cache_name)) {
|
|
70
|
+
return {
|
|
71
|
+
success: false,
|
|
72
|
+
trigger_firebase_snapshot: false,
|
|
73
|
+
message: `⚠️ collection: "${collection_name}" already has a subscription, skipped redis snapshot for collection: "${collection_name}"`,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
subscription_collections.add(cache_name);
|
|
77
|
+
return { success: true };
|
|
78
|
+
});
|
|
79
|
+
const parse_redis_snapshot = (config, redis_update) => __awaiter(void 0, void 0, void 0, function* () {
|
|
80
|
+
var _a;
|
|
81
|
+
const { collection_name: config_collection_name, cache_name = config_collection_name, extra_parsers, parse_as, debug, on_add, on_remove, on_modify, } = config;
|
|
82
|
+
managers_1.logger.log("⏩ parse_redis_snapshot on first time", config);
|
|
83
|
+
if (!redis_update) {
|
|
84
|
+
const init_data = yield get_collection_data(config_collection_name);
|
|
85
|
+
default_parsers(parse_as, init_data, config);
|
|
86
|
+
if (debug === null || debug === void 0 ? void 0 : debug.on_first_time) {
|
|
87
|
+
managers_1.logger.log(`${cache_name} => Redis snapshot on first time: `, debug.on_first_time === "documents" ? init_data : { length: init_data.length });
|
|
88
|
+
}
|
|
89
|
+
(_a = config.on_first_time) === null || _a === void 0 ? void 0 : _a.call(config, init_data, config);
|
|
90
|
+
extra_parsers === null || extra_parsers === void 0 ? void 0 : extra_parsers.forEach((parser) => {
|
|
91
|
+
var _a, _b;
|
|
92
|
+
if ((_a = debug === null || debug === void 0 ? void 0 : debug.extra_parsers) === null || _a === void 0 ? void 0 : _a.on_first_time) {
|
|
93
|
+
managers_1.logger.log(`${cache_name} => Redis snapshot extra parsers on first time: `, debug.extra_parsers.on_first_time === "documents" ? init_data : { length: init_data.length });
|
|
94
|
+
}
|
|
95
|
+
(_b = parser === null || parser === void 0 ? void 0 : parser.on_first_time) === null || _b === void 0 ? void 0 : _b.call(parser, init_data, config);
|
|
96
|
+
});
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
managers_1.logger.log("⏩ parse_redis_snapshot on update", { config, redis_update });
|
|
100
|
+
if (!subscription_collections.has(cache_name)) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
const { update_type, update } = redis_update;
|
|
104
|
+
switch (update_type) {
|
|
105
|
+
case "add":
|
|
106
|
+
if (debug === null || debug === void 0 ? void 0 : debug.on_add) {
|
|
107
|
+
managers_1.logger.log(`${cache_name} => Redis snapshot on add: `, update);
|
|
108
|
+
}
|
|
109
|
+
default_parsers(parse_as, update, config);
|
|
110
|
+
on_add === null || on_add === void 0 ? void 0 : on_add(update, config);
|
|
111
|
+
extra_parsers === null || extra_parsers === void 0 ? void 0 : extra_parsers.forEach((parser) => {
|
|
112
|
+
var _a, _b;
|
|
113
|
+
if ((_a = debug === null || debug === void 0 ? void 0 : debug.extra_parsers) === null || _a === void 0 ? void 0 : _a.on_add) {
|
|
114
|
+
managers_1.logger.log(`${cache_name} => Redis snapshot extra parsers on add: `, update);
|
|
115
|
+
}
|
|
116
|
+
(_b = parser === null || parser === void 0 ? void 0 : parser.on_add) === null || _b === void 0 ? void 0 : _b.call(parser, update, config);
|
|
117
|
+
});
|
|
118
|
+
return;
|
|
119
|
+
case "update":
|
|
120
|
+
if (debug === null || debug === void 0 ? void 0 : debug.on_modify) {
|
|
121
|
+
managers_1.logger.log(`${cache_name} => Redis snapshot on modify: `, update);
|
|
122
|
+
}
|
|
123
|
+
default_parsers(parse_as, update, config);
|
|
124
|
+
on_modify === null || on_modify === void 0 ? void 0 : on_modify(update, config);
|
|
125
|
+
extra_parsers === null || extra_parsers === void 0 ? void 0 : extra_parsers.forEach((parser) => {
|
|
126
|
+
var _a, _b;
|
|
127
|
+
if ((_a = debug === null || debug === void 0 ? void 0 : debug.extra_parsers) === null || _a === void 0 ? void 0 : _a.on_modify) {
|
|
128
|
+
managers_1.logger.log(`${cache_name} => Redis snapshot extra parsers on modify: `, update);
|
|
129
|
+
}
|
|
130
|
+
(_b = parser === null || parser === void 0 ? void 0 : parser.on_modify) === null || _b === void 0 ? void 0 : _b.call(parser, update, config);
|
|
131
|
+
});
|
|
132
|
+
return;
|
|
133
|
+
case "delete":
|
|
134
|
+
if (debug === null || debug === void 0 ? void 0 : debug.on_remove) {
|
|
135
|
+
managers_1.logger.log(`${cache_name} => Redis snapshot on remove: `, update);
|
|
136
|
+
}
|
|
137
|
+
if (parse_as === "object") {
|
|
138
|
+
(0, firebase_helpers_1.parse_delete_as_object)(update, config);
|
|
139
|
+
}
|
|
140
|
+
if (parse_as === "array") {
|
|
141
|
+
(0, firebase_helpers_1.parse_delete_as_array)(update, config);
|
|
142
|
+
}
|
|
143
|
+
on_remove === null || on_remove === void 0 ? void 0 : on_remove(update, config);
|
|
144
|
+
extra_parsers === null || extra_parsers === void 0 ? void 0 : extra_parsers.forEach((parser) => {
|
|
145
|
+
var _a, _b;
|
|
146
|
+
if ((_a = debug === null || debug === void 0 ? void 0 : debug.extra_parsers) === null || _a === void 0 ? void 0 : _a.on_remove) {
|
|
147
|
+
managers_1.logger.log(`${cache_name} => Redis snapshot extra parsers on remove: `, update);
|
|
148
|
+
}
|
|
149
|
+
(_b = parser === null || parser === void 0 ? void 0 : parser.on_remove) === null || _b === void 0 ? void 0 : _b.call(parser, update, config);
|
|
150
|
+
});
|
|
151
|
+
return;
|
|
152
|
+
default:
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
const default_parsers = (parse_as, update, config) => {
|
|
157
|
+
if (parse_as === "object") {
|
|
158
|
+
(0, firebase_helpers_1.parse_add_update_as_object)(update, config);
|
|
159
|
+
}
|
|
160
|
+
if (parse_as === "array") {
|
|
161
|
+
(0, firebase_helpers_1.parse_add_update_as_array)(update, config);
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
const get_collection_data = (collection_name) => __awaiter(void 0, void 0, void 0, function* () {
|
|
165
|
+
const keys = yield (0, keys_1.scan_redis_keys)((0, keys_1.get_collection_keys)(collection_name), initialize_1.redis_commander);
|
|
166
|
+
let collection_data = [];
|
|
167
|
+
if (keys.length > 0) {
|
|
168
|
+
const values = yield initialize_1.redis_commander.mget(keys);
|
|
169
|
+
collection_data = values.filter(Boolean).map((v) => JSON.parse(v).data);
|
|
170
|
+
}
|
|
171
|
+
return collection_data.map((data) => convert_object_timestamps(data));
|
|
172
|
+
});
|
|
173
|
+
const convert_object_timestamps = (data) => {
|
|
174
|
+
Object.entries(data).forEach(([key, value]) => {
|
|
175
|
+
if (typeof value === "object" && value._seconds) {
|
|
176
|
+
data[key] = new firestore_1.Timestamp(value._seconds, value._nanoseconds);
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
return data;
|
|
180
|
+
};
|
|
181
|
+
//# sourceMappingURL=snapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../../src/helpers/redis/snapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Express } from "express";
|
|
2
2
|
import { AppOptions, MainRouter } from "../types";
|
|
3
3
|
export declare const start_server: (main_router: MainRouter, project_name: string, version: string, { port, log_requests }?: AppOptions) => Promise<Express>;
|
|
4
|
-
export declare const basic_init: (main_router: MainRouter, project_name: string, version: string, { port, log_requests }?: AppOptions) => Promise<Express>;
|
|
4
|
+
export declare const basic_init: (main_router: MainRouter, project_name: string, version: string, { port, log_requests, init_snapshot_options }?: AppOptions) => Promise<Express>;
|
|
@@ -39,9 +39,9 @@ const start_server = (main_router_1, project_name_1, version_1, ...args_1) => __
|
|
|
39
39
|
});
|
|
40
40
|
});
|
|
41
41
|
exports.start_server = start_server;
|
|
42
|
-
const basic_init = (main_router_1, project_name_1, version_1, ...args_1) => __awaiter(void 0, [main_router_1, project_name_1, version_1, ...args_1], void 0, function* (main_router, project_name, version, { port, log_requests } = {}) {
|
|
42
|
+
const basic_init = (main_router_1, project_name_1, version_1, ...args_1) => __awaiter(void 0, [main_router_1, project_name_1, version_1, ...args_1], void 0, function* (main_router, project_name, version, { port, log_requests, init_snapshot_options } = {}) {
|
|
43
43
|
try {
|
|
44
|
-
yield (0, _1.init_snapshots)();
|
|
44
|
+
yield (0, _1.init_snapshots)(init_snapshot_options);
|
|
45
45
|
const app = yield (0, exports.start_server)(main_router, project_name, version, { port, log_requests });
|
|
46
46
|
return app;
|
|
47
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/helpers/start.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sDAA2C;AAC3C,gDAAwB;AACxB,0CAAqC;AACrC,yBAAwD;AAExD,kEAA8D;AAC9D,gDAAsE;AAE/D,MAAM,YAAY,GAAG,sDAKR,EAAE,6FAJlB,WAAuB,EACvB,YAAoB,EACpB,OAAe,EACf,EAAE,IAAI,EAAE,YAAY,KAAiB,EAAE;IAEvC,MAAM,GAAG,GAAY,IAAA,iBAAO,GAAE,CAAC;IAC/B,IAAI,QAAQ,GAAG,IAAA,qBAAkB,EAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,IAAI,GAAG,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrC,GAAG,CAAC,GAAG,CAAC,IAAA,cAAI,GAAE,CAAC,CAAC;IAChB,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACzC,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/D,GAAG,CAAC,GAAG,CAAC,IAAA,kCAAoB,GAAE,CAAC,CAAC;IAChC,GAAG,CAAC,GAAG,CAAC,IAAA,4BAAc,EAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5C,WAAW,CAAC,GAAG,CAAC,CAAC;IACjB,GAAG,CAAC,GAAG,CAAC,8BAAa,CAAC,CAAC;IAEvB,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC5C,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;YAClB,iBAAM,CAAC,GAAG,CAAC,yCAAyC,IAAI,EAAE,CAAC,CAAC;YAC5D,iBAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YACpF,OAAO,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAA,CAAC;AAxBW,QAAA,YAAY,gBAwBvB;AAEK,MAAM,UAAU,GAAG,sDAKN,EAAE,6FAJlB,WAAuB,EACvB,YAAoB,EACpB,OAAe,EACf,EAAE,IAAI,EAAE,YAAY,KAAiB,EAAE;
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/helpers/start.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sDAA2C;AAC3C,gDAAwB;AACxB,0CAAqC;AACrC,yBAAwD;AAExD,kEAA8D;AAC9D,gDAAsE;AAE/D,MAAM,YAAY,GAAG,sDAKR,EAAE,6FAJlB,WAAuB,EACvB,YAAoB,EACpB,OAAe,EACf,EAAE,IAAI,EAAE,YAAY,KAAiB,EAAE;IAEvC,MAAM,GAAG,GAAY,IAAA,iBAAO,GAAE,CAAC;IAC/B,IAAI,QAAQ,GAAG,IAAA,qBAAkB,EAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,IAAI,GAAG,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrC,GAAG,CAAC,GAAG,CAAC,IAAA,cAAI,GAAE,CAAC,CAAC;IAChB,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACzC,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/D,GAAG,CAAC,GAAG,CAAC,IAAA,kCAAoB,GAAE,CAAC,CAAC;IAChC,GAAG,CAAC,GAAG,CAAC,IAAA,4BAAc,EAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5C,WAAW,CAAC,GAAG,CAAC,CAAC;IACjB,GAAG,CAAC,GAAG,CAAC,8BAAa,CAAC,CAAC;IAEvB,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC5C,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;YAClB,iBAAM,CAAC,GAAG,CAAC,yCAAyC,IAAI,EAAE,CAAC,CAAC;YAC5D,iBAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YACpF,OAAO,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAA,CAAC;AAxBW,QAAA,YAAY,gBAwBvB;AAEK,MAAM,UAAU,GAAG,sDAKN,EAAE,6FAJlB,WAAuB,EACvB,YAAoB,EACpB,OAAe,EACf,EAAE,IAAI,EAAE,YAAY,EAAE,qBAAqB,KAAiB,EAAE;IAE9D,IAAI,CAAC;QACD,MAAM,IAAA,iBAAc,EAAC,qBAAqB,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,MAAM,IAAA,oBAAY,EAAC,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QAC3F,OAAO,GAAG,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,iBAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAA,CAAC;AAdW,QAAA,UAAU,cAcrB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { InitSnapshotsOptions } from "../types";
|
|
1
2
|
export interface MandatoryObject {
|
|
2
3
|
key: string;
|
|
3
4
|
type: "string" | "number" | "boolean" | "object" | "array";
|
|
@@ -17,4 +18,5 @@ export interface LogRequests {
|
|
|
17
18
|
export interface AppOptions {
|
|
18
19
|
port?: number;
|
|
19
20
|
log_requests?: LogRequests;
|
|
21
|
+
init_snapshot_options?: InitSnapshotsOptions;
|
|
20
22
|
}
|
|
@@ -16,12 +16,23 @@ export interface OnSnapshotParsers {
|
|
|
16
16
|
on_modify?: OnSnapshotCallback;
|
|
17
17
|
on_remove?: OnSnapshotCallback;
|
|
18
18
|
}
|
|
19
|
-
interface ExtraSnapshotConfig {
|
|
19
|
+
export interface ExtraSnapshotConfig {
|
|
20
20
|
collection_name: string;
|
|
21
21
|
extra_parsers?: OnSnapshotParsers[];
|
|
22
22
|
conditions?: WhereCondition[];
|
|
23
23
|
cache_name?: string;
|
|
24
|
-
|
|
24
|
+
parse_as?: "object" | "array";
|
|
25
|
+
doc_key_property?: string;
|
|
26
|
+
subscription_type?: "redis" | "firebase";
|
|
27
|
+
debug?: Debug & {
|
|
28
|
+
extra_parsers?: Debug;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
interface Debug {
|
|
32
|
+
on_first_time?: "documents" | "length";
|
|
33
|
+
on_add?: boolean;
|
|
34
|
+
on_modify?: boolean;
|
|
35
|
+
on_remove?: boolean;
|
|
25
36
|
}
|
|
26
37
|
export type OnSnapshotConfig = OnSnapshotParsers & ExtraSnapshotConfig;
|
|
27
38
|
export type Snapshot = (config: OnSnapshotConfig) => Promise<void>;
|
|
@@ -30,5 +41,10 @@ export type SnapshotBulkByNamesParamObject = Omit<ExtraSnapshotConfig, "extra_pa
|
|
|
30
41
|
extra_parsers: OnSnapshotParsers[];
|
|
31
42
|
};
|
|
32
43
|
export type SnapshotBulkByNamesParam = string | SnapshotBulkByNamesParamObject;
|
|
33
|
-
export type
|
|
44
|
+
export type SnapshotBulkByNamesOptions = Pick<ExtraSnapshotConfig, "debug" | "subscription_type" | "parse_as" | "doc_key_property"> & {
|
|
45
|
+
label?: string;
|
|
46
|
+
};
|
|
47
|
+
export type SnapshotBulkByNames = (params: SnapshotBulkByNamesParam[], options?: SnapshotBulkByNamesOptions) => Promise<void>;
|
|
48
|
+
export interface InitSnapshotsOptions extends Pick<ExtraSnapshotConfig, "subscription_type" | "debug"> {
|
|
49
|
+
}
|
|
34
50
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import firebase_admin from "firebase-admin";
|
|
2
|
-
import { AddAuditRecord, QueryDocument, QueryDocumentByConditions, QueryDocumentOptional, QueryDocuments, QueryDocumentsByConditions, Snapshot, SnapshotBulk, SnapshotBulkByNames } from "../types";
|
|
2
|
+
import { AddAuditRecord, ExtraSnapshotConfig, InitSnapshotsOptions, OnSnapshotCallback, OnSnapshotParsers, QueryDocument, QueryDocumentByConditions, QueryDocumentOptional, QueryDocuments, QueryDocumentsByConditions, Snapshot, SnapshotBulk, SnapshotBulkByNames } from "../types";
|
|
3
3
|
import { DecodedIdToken } from "firebase-admin/auth";
|
|
4
4
|
import { TObject } from "akeyless-types-commons";
|
|
5
5
|
export declare const service_account_firebase: {
|
|
@@ -32,9 +32,14 @@ export declare const set_document: (collection_path: string, doc_id: string, dat
|
|
|
32
32
|
export declare const add_document: (collection_path: string, data: {}, include_id?: boolean, custom_id?: string) => Promise<void>;
|
|
33
33
|
export declare const delete_document: (collection_path: string, doc_id: string) => Promise<void>;
|
|
34
34
|
export declare const verify_token: (authorization: string | undefined) => Promise<DecodedIdToken>;
|
|
35
|
+
export declare const parse_add_update_as_object: OnSnapshotCallback;
|
|
36
|
+
export declare const parse_delete_as_object: OnSnapshotCallback;
|
|
37
|
+
export declare const parse_add_update_as_array: OnSnapshotCallback;
|
|
38
|
+
export declare const parse_delete_as_array: OnSnapshotCallback;
|
|
35
39
|
export declare const snapshot: Snapshot;
|
|
36
|
-
export declare const init_snapshots: () => Promise<void>;
|
|
40
|
+
export declare const init_snapshots: (options?: InitSnapshotsOptions) => Promise<void>;
|
|
37
41
|
export declare const snapshot_bulk: SnapshotBulk;
|
|
42
|
+
export declare const get_default_parsers: (parse_as: ExtraSnapshotConfig["parse_as"]) => OnSnapshotParsers;
|
|
38
43
|
export declare const snapshot_bulk_by_names: SnapshotBulkByNames;
|
|
39
44
|
export declare const add_audit_record: AddAuditRecord;
|
|
40
45
|
export interface SaveFileOptions {
|
|
@@ -47,3 +52,4 @@ export interface SaveFileOptions {
|
|
|
47
52
|
}
|
|
48
53
|
export declare const save_file_in_storage: (file_path: string, buffer: Buffer | Uint8Array, options?: SaveFileOptions) => Promise<string>;
|
|
49
54
|
export declare const get_file_url_from_storage: (file_path: string) => Promise<string>;
|
|
55
|
+
export declare const get_nx_settings: () => Promise<any>;
|