@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.
@@ -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
- export declare function insertApproval(dataSourceId: string, dbName: string | null, sqlText: string, submittedBy: string): Promise<Record<string, unknown> | undefined>;
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,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,gDAE/G;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
+ {"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,kBAQlF;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"}
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"}
@@ -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,gHAGP,CAAC;AAEb,eAAO,MAAM,aAAa,cAId,CAAC;AAEb,eAAO,MAAM,gBAAgB,cAGhB,CAAC;AAEd,eAAO,MAAM,aAAa,cAGb,CAAC"}
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
@@ -1,2 +1,3 @@
1
1
  export { approvalList, approvalGet, approvalCreate, approvalApprove, approvalReject, approvalExecute, } from "./approvals.service.js";
2
+ export { getApprovalById, setExecuting, setExecuteResult } from "./approvals.model.js";
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -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 approval = await insertApproval(dataSourceId, database ?? null, sql, req.user.id);
134
- req.log.info("Approval submitted (user=%s)", req.user.id);
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 approval = await insertApproval(dataSourceId, database ?? null, sql, req.user.id);
103
- req.log.info("Approval submitted (user=%s)", req.user.id);
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.7.2",
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": "d06a1293647cb401ff35e86252c9e96154a7b070"
39
+ "gitHead": "63975371f0229a1e097295daabe992835ef4249d"
40
40
  }