@heyhru/business-dms-approval 0.7.2 → 0.8.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/approvals.model.d.ts +8 -1
- package/dist/approvals.model.d.ts.map +1 -1
- package/dist/approvals.service.d.ts.map +1 -1
- package/dist/approvals.sql.d.ts +1 -1
- package/dist/approvals.sql.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -9
- package/dist/index.mjs +18 -8
- package/package.json +2 -2
|
@@ -7,7 +7,14 @@ interface ApprovalFilters {
|
|
|
7
7
|
export declare function countApprovals(filters?: ApprovalFilters): Promise<number>;
|
|
8
8
|
export declare function listApprovals(filters?: ApprovalFilters): Promise<Record<string, unknown>[]>;
|
|
9
9
|
export declare function getApprovalById(id: string): Promise<Record<string, unknown> | undefined>;
|
|
10
|
-
|
|
10
|
+
interface InsertApprovalParams {
|
|
11
|
+
dataSourceId: string;
|
|
12
|
+
dbName: string | null;
|
|
13
|
+
sqlText: string;
|
|
14
|
+
submittedBy: string;
|
|
15
|
+
sqlType?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare function insertApproval({ dataSourceId, dbName, sqlText, submittedBy, sqlType }: InsertApprovalParams): Promise<Record<string, unknown> | undefined>;
|
|
11
18
|
export declare function updateReview(id: string, status: string, reviewedBy: string, rejectReason: string | null): Promise<Record<string, unknown> | undefined>;
|
|
12
19
|
export declare function setExecuting(id: string): Promise<{
|
|
13
20
|
changes: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approvals.model.d.ts","sourceRoot":"","sources":["../src/approvals.model.ts"],"names":[],"mappings":"AAGA,UAAU,eAAe;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAgBD,wBAAsB,cAAc,CAAC,OAAO,CAAC,EAAE,eAAe,mBAO7D;AAED,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE,eAAe,sCAS5D;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,gDAEzC;AAED,
|
|
1
|
+
{"version":3,"file":"approvals.model.d.ts","sourceRoot":"","sources":["../src/approvals.model.ts"],"names":[],"mappings":"AAGA,UAAU,eAAe;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAgBD,wBAAsB,cAAc,CAAC,OAAO,CAAC,EAAE,eAAe,mBAO7D;AAED,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE,eAAe,sCAS5D;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,gDAEzC;AAED,UAAU,oBAAoB;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,cAAc,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,OAAe,EAAE,EAAE,oBAAoB,gDAEnH;AAED,wBAAgB,YAAY,CAC1B,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GAAG,IAAI,gDAG5B;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM;;GAEtC;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;GAE1E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approvals.service.d.ts","sourceRoot":"","sources":["../src/approvals.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAA0B,MAAM,SAAS,CAAC;AAazF,UAAU,oBAAqB,SAAQ,cAAc;IACnD,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CACtB;AAED,wBAAsB,YAAY,CAAC,GAAG,EAAE,oBAAoB,EAAE,KAAK,EAAE,YAAY,kBAUhF;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,kBAKzE;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,oBAAoB,EAAE,KAAK,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"approvals.service.d.ts","sourceRoot":"","sources":["../src/approvals.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAA0B,MAAM,SAAS,CAAC;AAazF,UAAU,oBAAqB,SAAQ,cAAc;IACnD,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CACtB;AAED,wBAAsB,YAAY,CAAC,GAAG,EAAE,oBAAoB,EAAE,KAAK,EAAE,YAAY,kBAUhF;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,kBAKzE;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,oBAAoB,EAAE,KAAK,EAAE,YAAY,kBAWlF;AAkBD,wBAAsB,eAAe,CAAC,GAAG,EAAE,oBAAoB,EAAE,KAAK,EAAE,YAAY,kBAUnF;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,oBAAoB,EAAE,KAAK,EAAE,YAAY,kBAUlF;AAED,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,IACrC,KAAK,oBAAoB,EAAE,OAAO,YAAY,oBAY7D"}
|
package/dist/approvals.sql.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const FIND_BY_ID = "\nSELECT *\nFROM approvals\nWHERE id = ?";
|
|
2
|
-
export declare const CREATE = "\nINSERT INTO approvals (data_source_id, db_name, sql_text, submitted_by)\nVALUES (?, ?, ?, ?)\nRETURNING *";
|
|
2
|
+
export declare const CREATE = "\nINSERT INTO approvals (data_source_id, db_name, sql_text, submitted_by, sql_type)\nVALUES (?, ?, ?, ?, ?)\nRETURNING *";
|
|
3
3
|
export declare const UPDATE_REVIEW: () => string;
|
|
4
4
|
export declare const UPDATE_EXECUTING: () => string;
|
|
5
5
|
export declare const UPDATE_RESULT: () => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approvals.sql.d.ts","sourceRoot":"","sources":["../src/approvals.sql.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,6CAGV,CAAC;AAEd,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"approvals.sql.d.ts","sourceRoot":"","sources":["../src/approvals.sql.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,6CAGV,CAAC;AAEd,eAAO,MAAM,MAAM,6HAGP,CAAC;AAEb,eAAO,MAAM,aAAa,cAId,CAAC;AAEb,eAAO,MAAM,gBAAgB,cAGhB,CAAC;AAEd,eAAO,MAAM,aAAa,cAGb,CAAC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,GAChB,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -25,7 +25,10 @@ __export(index_exports, {
|
|
|
25
25
|
approvalExecute: () => approvalExecute,
|
|
26
26
|
approvalGet: () => approvalGet,
|
|
27
27
|
approvalList: () => approvalList,
|
|
28
|
-
approvalReject: () => approvalReject
|
|
28
|
+
approvalReject: () => approvalReject,
|
|
29
|
+
getApprovalById: () => getApprovalById,
|
|
30
|
+
setExecuteResult: () => setExecuteResult,
|
|
31
|
+
setExecuting: () => setExecuting
|
|
29
32
|
});
|
|
30
33
|
module.exports = __toCommonJS(index_exports);
|
|
31
34
|
|
|
@@ -42,8 +45,8 @@ SELECT *
|
|
|
42
45
|
FROM approvals
|
|
43
46
|
WHERE id = ?`;
|
|
44
47
|
var CREATE = `
|
|
45
|
-
INSERT INTO approvals (data_source_id, db_name, sql_text, submitted_by)
|
|
46
|
-
VALUES (?, ?, ?, ?)
|
|
48
|
+
INSERT INTO approvals (data_source_id, db_name, sql_text, submitted_by, sql_type)
|
|
49
|
+
VALUES (?, ?, ?, ?, ?)
|
|
47
50
|
RETURNING *`;
|
|
48
51
|
var UPDATE_REVIEW = () => `
|
|
49
52
|
UPDATE approvals
|
|
@@ -94,8 +97,8 @@ WHERE 1=1`;
|
|
|
94
97
|
function getApprovalById(id) {
|
|
95
98
|
return (0, import_server_plugin_pg.getPgDb)().queryOne(FIND_BY_ID, [id]);
|
|
96
99
|
}
|
|
97
|
-
function insertApproval(dataSourceId, dbName, sqlText, submittedBy) {
|
|
98
|
-
return (0, import_server_plugin_pg.getPgDb)().queryOne(CREATE, [dataSourceId, dbName, sqlText, submittedBy]);
|
|
100
|
+
function insertApproval({ dataSourceId, dbName, sqlText, submittedBy, sqlType = "DML" }) {
|
|
101
|
+
return (0, import_server_plugin_pg.getPgDb)().queryOne(CREATE, [dataSourceId, dbName, sqlText, submittedBy, sqlType]);
|
|
99
102
|
}
|
|
100
103
|
function updateReview(id, status, reviewedBy, rejectReason) {
|
|
101
104
|
return (0, import_server_plugin_pg.getPgDb)().queryOne(UPDATE_REVIEW(), [status, reviewedBy, rejectReason, id]);
|
|
@@ -126,12 +129,19 @@ async function approvalGet(req, reply) {
|
|
|
126
129
|
return reply.send(approval);
|
|
127
130
|
}
|
|
128
131
|
async function approvalCreate(req, reply) {
|
|
129
|
-
const { dataSourceId, database, sql } = req.body ?? {};
|
|
132
|
+
const { dataSourceId, database, sql, sqlType } = req.body ?? {};
|
|
130
133
|
if (!dataSourceId || !sql) {
|
|
131
134
|
return reply.code(400).send({ error: "Data source ID and SQL are required" });
|
|
132
135
|
}
|
|
133
|
-
const
|
|
134
|
-
|
|
136
|
+
const type = sqlType === "EXPORT" ? "EXPORT" : "DML";
|
|
137
|
+
const approval = await insertApproval({
|
|
138
|
+
dataSourceId,
|
|
139
|
+
dbName: database ?? null,
|
|
140
|
+
sqlText: sql,
|
|
141
|
+
submittedBy: req.user.id,
|
|
142
|
+
sqlType: type
|
|
143
|
+
});
|
|
144
|
+
req.log.info("Approval submitted (user=%s, type=%s)", req.user.id, type);
|
|
135
145
|
return reply.code(201).send(approval);
|
|
136
146
|
}
|
|
137
147
|
async function reviewApproval(id, reviewerId, decision, rejectReason) {
|
|
@@ -221,5 +231,8 @@ async function doExecuteApproval({ id, userId, ip, encryptionKey }, log) {
|
|
|
221
231
|
approvalExecute,
|
|
222
232
|
approvalGet,
|
|
223
233
|
approvalList,
|
|
224
|
-
approvalReject
|
|
234
|
+
approvalReject,
|
|
235
|
+
getApprovalById,
|
|
236
|
+
setExecuteResult,
|
|
237
|
+
setExecuting
|
|
225
238
|
});
|
package/dist/index.mjs
CHANGED
|
@@ -11,8 +11,8 @@ SELECT *
|
|
|
11
11
|
FROM approvals
|
|
12
12
|
WHERE id = ?`;
|
|
13
13
|
var CREATE = `
|
|
14
|
-
INSERT INTO approvals (data_source_id, db_name, sql_text, submitted_by)
|
|
15
|
-
VALUES (?, ?, ?, ?)
|
|
14
|
+
INSERT INTO approvals (data_source_id, db_name, sql_text, submitted_by, sql_type)
|
|
15
|
+
VALUES (?, ?, ?, ?, ?)
|
|
16
16
|
RETURNING *`;
|
|
17
17
|
var UPDATE_REVIEW = () => `
|
|
18
18
|
UPDATE approvals
|
|
@@ -63,8 +63,8 @@ WHERE 1=1`;
|
|
|
63
63
|
function getApprovalById(id) {
|
|
64
64
|
return getPgDb().queryOne(FIND_BY_ID, [id]);
|
|
65
65
|
}
|
|
66
|
-
function insertApproval(dataSourceId, dbName, sqlText, submittedBy) {
|
|
67
|
-
return getPgDb().queryOne(CREATE, [dataSourceId, dbName, sqlText, submittedBy]);
|
|
66
|
+
function insertApproval({ dataSourceId, dbName, sqlText, submittedBy, sqlType = "DML" }) {
|
|
67
|
+
return getPgDb().queryOne(CREATE, [dataSourceId, dbName, sqlText, submittedBy, sqlType]);
|
|
68
68
|
}
|
|
69
69
|
function updateReview(id, status, reviewedBy, rejectReason) {
|
|
70
70
|
return getPgDb().queryOne(UPDATE_REVIEW(), [status, reviewedBy, rejectReason, id]);
|
|
@@ -95,12 +95,19 @@ async function approvalGet(req, reply) {
|
|
|
95
95
|
return reply.send(approval);
|
|
96
96
|
}
|
|
97
97
|
async function approvalCreate(req, reply) {
|
|
98
|
-
const { dataSourceId, database, sql } = req.body ?? {};
|
|
98
|
+
const { dataSourceId, database, sql, sqlType } = req.body ?? {};
|
|
99
99
|
if (!dataSourceId || !sql) {
|
|
100
100
|
return reply.code(400).send({ error: "Data source ID and SQL are required" });
|
|
101
101
|
}
|
|
102
|
-
const
|
|
103
|
-
|
|
102
|
+
const type = sqlType === "EXPORT" ? "EXPORT" : "DML";
|
|
103
|
+
const approval = await insertApproval({
|
|
104
|
+
dataSourceId,
|
|
105
|
+
dbName: database ?? null,
|
|
106
|
+
sqlText: sql,
|
|
107
|
+
submittedBy: req.user.id,
|
|
108
|
+
sqlType: type
|
|
109
|
+
});
|
|
110
|
+
req.log.info("Approval submitted (user=%s, type=%s)", req.user.id, type);
|
|
104
111
|
return reply.code(201).send(approval);
|
|
105
112
|
}
|
|
106
113
|
async function reviewApproval(id, reviewerId, decision, rejectReason) {
|
|
@@ -189,5 +196,8 @@ export {
|
|
|
189
196
|
approvalExecute,
|
|
190
197
|
approvalGet,
|
|
191
198
|
approvalList,
|
|
192
|
-
approvalReject
|
|
199
|
+
approvalReject,
|
|
200
|
+
getApprovalById,
|
|
201
|
+
setExecuteResult,
|
|
202
|
+
setExecuting
|
|
193
203
|
};
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "0.
|
|
6
|
+
"version": "0.8.0",
|
|
7
7
|
"description": "DMS approval workflow domain logic: service, model, sql",
|
|
8
8
|
"main": "./dist/index.js",
|
|
9
9
|
"module": "./dist/index.mjs",
|
|
@@ -36,5 +36,5 @@
|
|
|
36
36
|
"typescript": "^6.0.2",
|
|
37
37
|
"vitest": "^4.1.4"
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "63975371f0229a1e097295daabe992835ef4249d"
|
|
40
40
|
}
|