akeyless-server-commons 1.0.33 → 1.0.34
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/tasks_helpers.d.ts +9 -4
- package/dist/cjs/helpers/tasks_helpers.js +40 -4
- package/dist/cjs/helpers/tasks_helpers.js.map +1 -1
- package/dist/esm/helpers/tasks_helpers.d.ts +9 -4
- package/dist/esm/helpers/tasks_helpers.js +38 -3
- package/dist/esm/helpers/tasks_helpers.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { TObject } from "akeyless-types-commons";
|
|
2
1
|
export declare enum TaskName {
|
|
3
2
|
collect_gprs_balances = "collect_gprs_balances",
|
|
4
3
|
send_reset_sms = "send_reset_sms",
|
|
@@ -10,6 +9,12 @@ export declare enum TaskStatus {
|
|
|
10
9
|
failed = "failed",
|
|
11
10
|
suspeneded = "suspeneded"
|
|
12
11
|
}
|
|
13
|
-
export
|
|
14
|
-
export declare const
|
|
15
|
-
|
|
12
|
+
export type TaskCrudOptions = "storage" | "db";
|
|
13
|
+
export declare const execute_task: (source: string, task_name: TaskName, task: () => Promise<any[] | null>, options?: {
|
|
14
|
+
save_in?: TaskCrudOptions;
|
|
15
|
+
}) => Promise<void>;
|
|
16
|
+
export declare const get_task_data: <T = any>(task_name: TaskName, options?: {
|
|
17
|
+
read_from?: TaskCrudOptions;
|
|
18
|
+
}) => Promise<T[]>;
|
|
19
|
+
export declare const read_task_from_storage: (task_name: TaskName) => Promise<any[] | null>;
|
|
20
|
+
export declare const write_task_to_storage: (task_name: TaskName, data: any[]) => Promise<string>;
|
|
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.read_task_from_storage = exports.get_task_data = exports.execute_task = exports.TaskStatus = exports.TaskName = void 0;
|
|
15
|
+
exports.write_task_to_storage = exports.read_task_from_storage = exports.get_task_data = exports.execute_task = exports.TaskStatus = exports.TaskName = void 0;
|
|
16
16
|
const managers_1 = require("../managers");
|
|
17
17
|
const firebase_helpers_1 = require("./firebase_helpers");
|
|
18
18
|
const firebase_admin_1 = __importDefault(require("firebase-admin"));
|
|
@@ -29,7 +29,7 @@ var TaskStatus;
|
|
|
29
29
|
TaskStatus["failed"] = "failed";
|
|
30
30
|
TaskStatus["suspeneded"] = "suspeneded";
|
|
31
31
|
})(TaskStatus || (exports.TaskStatus = TaskStatus = {}));
|
|
32
|
-
const execute_task = (source, task_name, task) => __awaiter(void 0, void 0, void 0, function* () {
|
|
32
|
+
const execute_task = (source, task_name, task, options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
33
33
|
try {
|
|
34
34
|
yield (0, firebase_helpers_1.set_document)("nx-tasks", task_name, {
|
|
35
35
|
source,
|
|
@@ -47,7 +47,13 @@ const execute_task = (source, task_name, task) => __awaiter(void 0, void 0, void
|
|
|
47
47
|
timestamp: new Date(),
|
|
48
48
|
};
|
|
49
49
|
if (data) {
|
|
50
|
-
|
|
50
|
+
if ((options === null || options === void 0 ? void 0 : options.save_in) === "storage") {
|
|
51
|
+
const url = yield (0, exports.write_task_to_storage)(task_name, data);
|
|
52
|
+
update.data = url;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
update.data = data;
|
|
56
|
+
}
|
|
51
57
|
}
|
|
52
58
|
yield (0, firebase_helpers_1.set_document)("nx-tasks", task_name, update);
|
|
53
59
|
managers_1.logger.log(`Task [${task_name}] ended. It took ${Math.round(performance.now() - start)} ms`);
|
|
@@ -64,11 +70,18 @@ const execute_task = (source, task_name, task) => __awaiter(void 0, void 0, void
|
|
|
64
70
|
}
|
|
65
71
|
});
|
|
66
72
|
exports.execute_task = execute_task;
|
|
67
|
-
const get_task_data = (task_name) => __awaiter(void 0, void 0, void 0, function* () {
|
|
73
|
+
const get_task_data = (task_name, options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
68
74
|
const cached_data = managers_1.cache_manager.getArrayData(task_name);
|
|
69
75
|
if (cached_data.length > 0) {
|
|
70
76
|
return cached_data;
|
|
71
77
|
}
|
|
78
|
+
if ((options === null || options === void 0 ? void 0 : options.read_from) === "storage") {
|
|
79
|
+
const storage_data = yield (0, exports.read_task_from_storage)(task_name);
|
|
80
|
+
if (storage_data) {
|
|
81
|
+
managers_1.cache_manager.setArrayData(task_name, storage_data);
|
|
82
|
+
return Array.isArray(storage_data) ? storage_data : [];
|
|
83
|
+
}
|
|
84
|
+
}
|
|
72
85
|
const task_data = yield (0, firebase_helpers_1.get_document_by_id_optional)("nx-tasks", task_name);
|
|
73
86
|
return Array.isArray(task_data === null || task_data === void 0 ? void 0 : task_data.data) ? task_data.data : [];
|
|
74
87
|
});
|
|
@@ -86,4 +99,27 @@ const read_task_from_storage = (task_name) => __awaiter(void 0, void 0, void 0,
|
|
|
86
99
|
}
|
|
87
100
|
});
|
|
88
101
|
exports.read_task_from_storage = read_task_from_storage;
|
|
102
|
+
const write_task_to_storage = (task_name, data) => __awaiter(void 0, void 0, void 0, function* () {
|
|
103
|
+
const bucket = firebase_admin_1.default.storage().bucket();
|
|
104
|
+
const file = bucket.file(`tasks_results/${task_name}.json`);
|
|
105
|
+
try {
|
|
106
|
+
if (!Array.isArray(data)) {
|
|
107
|
+
throw new Error("Only arrays can be written");
|
|
108
|
+
}
|
|
109
|
+
const json_string = JSON.stringify(data, null, 2);
|
|
110
|
+
yield file.save(json_string, {
|
|
111
|
+
contentType: "application/json",
|
|
112
|
+
});
|
|
113
|
+
const [signed_url] = yield file.getSignedUrl({
|
|
114
|
+
action: "read",
|
|
115
|
+
expires: Date.now() + 1000 * 60 * 60 * 24 * 7,
|
|
116
|
+
});
|
|
117
|
+
return signed_url;
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
managers_1.logger.error("Error writing file to Firebase Storage:", error);
|
|
121
|
+
return "";
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
exports.write_task_to_storage = write_task_to_storage;
|
|
89
125
|
//# sourceMappingURL=tasks_helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks_helpers.js","sourceRoot":"","sources":["../../../src/helpers/tasks_helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,0CAAoD;AACpD,
|
|
1
|
+
{"version":3,"file":"tasks_helpers.js","sourceRoot":"","sources":["../../../src/helpers/tasks_helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,0CAAoD;AACpD,yDAA+E;AAC/E,oEAAmC;AAEnC,IAAY,QAIX;AAJD,WAAY,QAAQ;IAChB,2DAA+C,CAAA;IAC/C,6CAAiC,CAAA;IACjC,6DAAiD,CAAA;AACrD,CAAC,EAJW,QAAQ,wBAAR,QAAQ,QAInB;AAED,IAAY,UAKX;AALD,WAAY,UAAU;IAClB,iCAAmB,CAAA;IACnB,qCAAuB,CAAA;IACvB,+BAAiB,CAAA;IACjB,uCAAyB,CAAA;AAC7B,CAAC,EALW,UAAU,0BAAV,UAAU,QAKrB;AAIM,MAAM,YAAY,GAAG,CACxB,MAAc,EACd,SAAmB,EACnB,IAAiC,EACjC,OAAuC,EACzC,EAAE;IACA,IAAI,CAAC;QACD,MAAM,IAAA,+BAAY,EACd,UAAU,EACV,SAAS,EACT;YACI,MAAM;YACN,MAAM,EAAE,UAAU,CAAC,OAAO;YAC1B,OAAO,EAAE,IAAI,IAAI,EAAE;YACnB,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,OAAO,EAAE,EAAE;SACd,EACD,KAAK,CACR,CAAC;QACF,iBAAM,CAAC,GAAG,CAAC,SAAS,SAAS,WAAW,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAEhC,MAAM,IAAI,GAAG,MAAM,IAAI,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAiB;YACzB,MAAM,EAAE,UAAU,CAAC,SAAS;YAC5B,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,SAAS,EAAE,IAAI,IAAI,EAAE;SACxB,CAAC;QAEF,IAAI,IAAI,EAAE,CAAC;YACP,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,MAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,GAAG,GAAG,MAAM,IAAA,6BAAqB,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBACzD,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACJ,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;YACvB,CAAC;QACL,CAAC;QACD,MAAM,IAAA,+BAAY,EAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAClD,iBAAM,CAAC,GAAG,CAAC,SAAS,SAAS,oBAAoB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IACjG,CAAC;IAAC,OAAO,SAAkB,EAAE,CAAC;QAC1B,MAAM,YAAY,GAAG,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAChF,iBAAM,CAAC,KAAK,CAAC,SAAS,SAAS,SAAS,EAAE,YAAY,CAAC,CAAC;QACxD,MAAM,IAAA,+BAAY,EAAC,UAAU,EAAE,SAAS,EAAE;YACtC,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,IAAI,EAAE,YAAY;SACrB,CAAC,CAAC;IACP,CAAC;AACL,CAAC,CAAA,CAAC;AAjDW,QAAA,YAAY,gBAiDvB;AAEK,MAAM,aAAa,GAAG,CAAgB,SAAmB,EAAE,OAAyC,EAAgB,EAAE;IACzH,MAAM,WAAW,GAAG,wBAAa,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,WAAW,CAAC;IACvB,CAAC;IACD,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,MAAK,SAAS,EAAE,CAAC;QACnC,MAAM,YAAY,GAAG,MAAM,IAAA,8BAAsB,EAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,YAAY,EAAE,CAAC;YACf,wBAAa,CAAC,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YACpD,OAAO,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,CAAC;IACL,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,IAAA,8CAA2B,EAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC3E,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAChE,CAAC,CAAA,CAAC;AAdW,QAAA,aAAa,iBAcxB;AAEK,MAAM,sBAAsB,GAAG,CAAO,SAAmB,EAAyB,EAAE;IACvF,MAAM,MAAM,GAAG,wBAAK,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,SAAS,EAAE,CAAC,CAAC;IACvD,IAAI,CAAC;QACD,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,iBAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC,CAAA,CAAC;AAVW,QAAA,sBAAsB,0BAUjC;AAEK,MAAM,qBAAqB,GAAG,CAAO,SAAmB,EAAE,IAAW,EAAmB,EAAE;IAC7F,MAAM,MAAM,GAAG,wBAAK,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,SAAS,OAAO,CAAC,CAAC;IAE5D,IAAI,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAClD,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACzB,WAAW,EAAE,kBAAkB;SAClC,CAAC,CAAC;QACH,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC;YACzC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;SAChD,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,iBAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;QAC/D,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC,CAAA,CAAC;AAtBW,QAAA,qBAAqB,yBAsBhC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { TObject } from "akeyless-types-commons";
|
|
2
1
|
export declare enum TaskName {
|
|
3
2
|
collect_gprs_balances = "collect_gprs_balances",
|
|
4
3
|
send_reset_sms = "send_reset_sms",
|
|
@@ -10,6 +9,12 @@ export declare enum TaskStatus {
|
|
|
10
9
|
failed = "failed",
|
|
11
10
|
suspeneded = "suspeneded"
|
|
12
11
|
}
|
|
13
|
-
export
|
|
14
|
-
export declare const
|
|
15
|
-
|
|
12
|
+
export type TaskCrudOptions = "storage" | "db";
|
|
13
|
+
export declare const execute_task: (source: string, task_name: TaskName, task: () => Promise<any[] | null>, options?: {
|
|
14
|
+
save_in?: TaskCrudOptions;
|
|
15
|
+
}) => Promise<void>;
|
|
16
|
+
export declare const get_task_data: <T = any>(task_name: TaskName, options?: {
|
|
17
|
+
read_from?: TaskCrudOptions;
|
|
18
|
+
}) => Promise<T[]>;
|
|
19
|
+
export declare const read_task_from_storage: (task_name: TaskName) => Promise<any[] | null>;
|
|
20
|
+
export declare const write_task_to_storage: (task_name: TaskName, data: any[]) => Promise<string>;
|
|
@@ -23,7 +23,7 @@ export var TaskStatus;
|
|
|
23
23
|
TaskStatus["failed"] = "failed";
|
|
24
24
|
TaskStatus["suspeneded"] = "suspeneded";
|
|
25
25
|
})(TaskStatus || (TaskStatus = {}));
|
|
26
|
-
export const execute_task = (source, task_name, task) => __awaiter(void 0, void 0, void 0, function* () {
|
|
26
|
+
export const execute_task = (source, task_name, task, options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
27
27
|
try {
|
|
28
28
|
yield set_document("nx-tasks", task_name, {
|
|
29
29
|
source,
|
|
@@ -41,7 +41,13 @@ export const execute_task = (source, task_name, task) => __awaiter(void 0, void
|
|
|
41
41
|
timestamp: new Date(),
|
|
42
42
|
};
|
|
43
43
|
if (data) {
|
|
44
|
-
|
|
44
|
+
if ((options === null || options === void 0 ? void 0 : options.save_in) === "storage") {
|
|
45
|
+
const url = yield write_task_to_storage(task_name, data);
|
|
46
|
+
update.data = url;
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
update.data = data;
|
|
50
|
+
}
|
|
45
51
|
}
|
|
46
52
|
yield set_document("nx-tasks", task_name, update);
|
|
47
53
|
logger.log(`Task [${task_name}] ended. It took ${Math.round(performance.now() - start)} ms`);
|
|
@@ -57,11 +63,18 @@ export const execute_task = (source, task_name, task) => __awaiter(void 0, void
|
|
|
57
63
|
});
|
|
58
64
|
}
|
|
59
65
|
});
|
|
60
|
-
export const get_task_data = (task_name) => __awaiter(void 0, void 0, void 0, function* () {
|
|
66
|
+
export const get_task_data = (task_name, options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
61
67
|
const cached_data = cache_manager.getArrayData(task_name);
|
|
62
68
|
if (cached_data.length > 0) {
|
|
63
69
|
return cached_data;
|
|
64
70
|
}
|
|
71
|
+
if ((options === null || options === void 0 ? void 0 : options.read_from) === "storage") {
|
|
72
|
+
const storage_data = yield read_task_from_storage(task_name);
|
|
73
|
+
if (storage_data) {
|
|
74
|
+
cache_manager.setArrayData(task_name, storage_data);
|
|
75
|
+
return Array.isArray(storage_data) ? storage_data : [];
|
|
76
|
+
}
|
|
77
|
+
}
|
|
65
78
|
const task_data = yield get_document_by_id_optional("nx-tasks", task_name);
|
|
66
79
|
return Array.isArray(task_data === null || task_data === void 0 ? void 0 : task_data.data) ? task_data.data : [];
|
|
67
80
|
});
|
|
@@ -77,4 +90,26 @@ export const read_task_from_storage = (task_name) => __awaiter(void 0, void 0, v
|
|
|
77
90
|
return null;
|
|
78
91
|
}
|
|
79
92
|
});
|
|
93
|
+
export const write_task_to_storage = (task_name, data) => __awaiter(void 0, void 0, void 0, function* () {
|
|
94
|
+
const bucket = admin.storage().bucket();
|
|
95
|
+
const file = bucket.file(`tasks_results/${task_name}.json`);
|
|
96
|
+
try {
|
|
97
|
+
if (!Array.isArray(data)) {
|
|
98
|
+
throw new Error("Only arrays can be written");
|
|
99
|
+
}
|
|
100
|
+
const json_string = JSON.stringify(data, null, 2);
|
|
101
|
+
yield file.save(json_string, {
|
|
102
|
+
contentType: "application/json",
|
|
103
|
+
});
|
|
104
|
+
const [signed_url] = yield file.getSignedUrl({
|
|
105
|
+
action: "read",
|
|
106
|
+
expires: Date.now() + 1000 * 60 * 60 * 24 * 7,
|
|
107
|
+
});
|
|
108
|
+
return signed_url;
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
logger.error("Error writing file to Firebase Storage:", error);
|
|
112
|
+
return "";
|
|
113
|
+
}
|
|
114
|
+
});
|
|
80
115
|
//# sourceMappingURL=tasks_helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks_helpers.js","sourceRoot":"","sources":["../../../src/helpers/tasks_helpers.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,
|
|
1
|
+
{"version":3,"file":"tasks_helpers.js","sourceRoot":"","sources":["../../../src/helpers/tasks_helpers.ts"],"names":[],"mappings":"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"}
|