storemw-core-api 1.0.90 → 1.0.92
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/app.js +2 -0
- package/dist/app.js.map +1 -1
- package/dist/controllers/access_key/accessKeyController.js +3 -2
- package/dist/controllers/access_key/accessKeyController.js.map +1 -1
- package/dist/features/index.d.ts +3 -0
- package/dist/features/index.js +5 -1
- package/dist/features/index.js.map +1 -1
- package/dist/features/smtp_email/smtpEmailRegister.d.ts +5 -0
- package/dist/features/smtp_email/smtpEmailRegister.js +11 -0
- package/dist/features/smtp_email/smtpEmailRegister.js.map +1 -0
- package/dist/features/smtp_email/smtpEmailRegistry.d.ts +2 -0
- package/dist/features/smtp_email/smtpEmailRegistry.js +34 -0
- package/dist/features/smtp_email/smtpEmailRegistry.js.map +1 -0
- package/dist/features/smtp_email/smtpEmailType.d.ts +25 -0
- package/dist/features/smtp_email/smtpEmailType.js +3 -0
- package/dist/features/smtp_email/smtpEmailType.js.map +1 -0
- package/dist/models/auth/AccessKeyModel.d.ts +13 -24
- package/dist/services/access_key/AccessKeyService.d.ts +5 -4
- package/dist/services/access_key/AccessKeyService.js +42 -11
- package/dist/services/access_key/AccessKeyService.js.map +1 -1
- package/dist/services/account/AccountService.js +1 -5
- package/dist/services/account/AccountService.js.map +1 -1
- package/dist/services/gateway/SmtpEmailService.d.ts +21 -0
- package/dist/services/gateway/SmtpEmailService.js +99 -0
- package/dist/services/gateway/SmtpEmailService.js.map +1 -0
- package/dist/services/index.d.ts +2 -0
- package/dist/services/index.js +3 -1
- package/dist/services/index.js.map +1 -1
- package/dist/services/one_time_code/OneTimeCodeService.d.ts +1 -1
- package/dist/services/one_time_code/OneTimeCodeService.js +2 -2
- package/dist/services/one_time_code/OneTimeCodeService.js.map +1 -1
- package/dist/services/user/UserService.js +1 -0
- package/dist/services/user/UserService.js.map +1 -1
- package/dist/services/utils/AccessKeyUtilService.js +26 -27
- package/dist/services/utils/AccessKeyUtilService.js.map +1 -1
- package/dist/utils/accessKeyUtils.js +2 -1
- package/dist/utils/accessKeyUtils.js.map +1 -1
- package/package.json +6 -3
- package/prisma/schema.prisma +4 -5
package/dist/app.js
CHANGED
|
@@ -30,6 +30,8 @@ app.use(["/access_keys"], routes_1.accessKeysRoutes);
|
|
|
30
30
|
app.use(["/reset_password"], routes_1.resetPasswordRoutes);
|
|
31
31
|
app.use(["/one_time_code"], routes_1.oneTimeCodeRoutes);
|
|
32
32
|
app.use(["/one_time_codes"], routes_1.oneTimeCodesRoutes);
|
|
33
|
+
app.use(["/account"], routes_1.accountRoutes);
|
|
34
|
+
app.use(["/accounts"], routes_1.accountsRoutes);
|
|
33
35
|
app.use(["/user"], routes_1.userRoutes);
|
|
34
36
|
app.use(["/users"], routes_1.usersRoutes);
|
|
35
37
|
app.use(["/user_branch"], routes_1.userBranchRoutes);
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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","sourcesContent":["import express from \"express\"\nimport path from \"path\";\n\nimport {\n // fileRoutes,\n // filesRoutes,\n // ocrRoutes,\n authRoutes,\n accessKeyRoutes,\n accessKeysRoutes,\n resetPasswordRoutes,\n oneTimeCodeRoutes,\n oneTimeCodesRoutes,\n userRoutes,\n usersRoutes,\n businessRoutes,\n businessesRoutes,\n accountRoutes,\n accountsRoutes,\n fileRoutes,\n filesRoutes,\n userBranchRoutes,\n userBranchesRoutes,\n documentRoutes,\n documentsRoutes,\n itemRoutes,\n itemsRoutes,\n regionRoutes,\n regionsRoutes,\n locationRoutes,\n locationsRoutes,\n injectionFieldRoutes,\n injectionFieldsRoutes,\n changePasswordUtilRoutes,\n accessKeyUtilRoutes\n} from \"@/routes\"\nimport { initialPrisma, validateHeader, validateAuthorization, validateCors } from \"@/middlewares/request\"\nimport { errorHandler } from \"./middlewares/common\";\n\nconst app = express();\n\n// Static Routes\napp.use('/public', express.static(path.join(__dirname, '..', 'public')));\n\n// Enable CORS for all origins\napp.use(validateCors);\n\n// Register global check headers handler\napp.use(validateHeader);\n\n// Middleware\napp.use(express.json({ limit: '15mb' }));\napp.use(express.urlencoded({ limit: '15mb', extended: true }));\n\n// Initial Prisma\napp.use(initialPrisma)\n\n// Protected Routes\napp.use(validateAuthorization({\n excludedRoutes: []\n})); // Validate the Authorization\n\napp.use([\"/auth\"], authRoutes)\napp.use([\"/access_key\"], accessKeyRoutes)\napp.use([\"/access_keys\"], accessKeysRoutes)\napp.use([\"/reset_password\"], resetPasswordRoutes)\napp.use([\"/one_time_code\"], oneTimeCodeRoutes)\napp.use([\"/one_time_codes\"], oneTimeCodesRoutes)\napp.use([\"/user\"], userRoutes)\napp.use([\"/users\"], usersRoutes)\napp.use([\"/user_branch\"], userBranchRoutes)\napp.use([\"/user_branches\"], userBranchesRoutes)\napp.use([\"/document\"], documentRoutes)\napp.use([\"/documents\"], documentsRoutes)\napp.use([\"/item\"], itemRoutes)\napp.use([\"/items\"], itemsRoutes)\napp.use([\"/file\"], fileRoutes)\napp.use([\"/files\"], filesRoutes)\napp.use([\"/region\"], regionRoutes)\napp.use([\"/regions\"], regionsRoutes)\napp.use([\"/location\"], locationRoutes)\napp.use([\"/locations\"], locationsRoutes)\napp.use([\"/injection_field\"], injectionFieldRoutes)\napp.use([\"/injection_fields\"], injectionFieldsRoutes)\napp.use([\"/account\"], accountRoutes)\napp.use([\"/accounts\"], accountsRoutes)\napp.use([\"/business\"], businessRoutes)\napp.use([\"/businesses\"], businessesRoutes)\n\napp.use([\"/utils\"], changePasswordUtilRoutes)\napp.use([\"/utils\"], accessKeyUtilRoutes)\n\n// Global error handler\napp.use(errorHandler)\n\nexport default app;"]}
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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","sourcesContent":["import express from \"express\"\nimport path from \"path\";\n\nimport {\n // fileRoutes,\n // filesRoutes,\n // ocrRoutes,\n authRoutes,\n accessKeyRoutes,\n accessKeysRoutes,\n resetPasswordRoutes,\n oneTimeCodeRoutes,\n oneTimeCodesRoutes,\n userRoutes,\n usersRoutes,\n businessRoutes,\n businessesRoutes,\n accountRoutes,\n accountsRoutes,\n fileRoutes,\n filesRoutes,\n userBranchRoutes,\n userBranchesRoutes,\n documentRoutes,\n documentsRoutes,\n itemRoutes,\n itemsRoutes,\n regionRoutes,\n regionsRoutes,\n locationRoutes,\n locationsRoutes,\n injectionFieldRoutes,\n injectionFieldsRoutes,\n changePasswordUtilRoutes,\n accessKeyUtilRoutes\n} from \"@/routes\"\nimport { initialPrisma, validateHeader, validateAuthorization, validateCors } from \"@/middlewares/request\"\nimport { errorHandler } from \"./middlewares/common\";\n\nconst app = express();\n\n// Static Routes\napp.use('/public', express.static(path.join(__dirname, '..', 'public')));\n\n// Enable CORS for all origins\napp.use(validateCors);\n\n// Register global check headers handler\napp.use(validateHeader);\n\n// Middleware\napp.use(express.json({ limit: '15mb' }));\napp.use(express.urlencoded({ limit: '15mb', extended: true }));\n\n// Initial Prisma\napp.use(initialPrisma)\n\n// Protected Routes\napp.use(validateAuthorization({\n excludedRoutes: []\n})); // Validate the Authorization\n\napp.use([\"/auth\"], authRoutes)\napp.use([\"/access_key\"], accessKeyRoutes)\napp.use([\"/access_keys\"], accessKeysRoutes)\napp.use([\"/reset_password\"], resetPasswordRoutes)\napp.use([\"/one_time_code\"], oneTimeCodeRoutes)\napp.use([\"/one_time_codes\"], oneTimeCodesRoutes)\napp.use([\"/account\"], accountRoutes)\napp.use([\"/accounts\"], accountsRoutes)\napp.use([\"/user\"], userRoutes)\napp.use([\"/users\"], usersRoutes)\napp.use([\"/user_branch\"], userBranchRoutes)\napp.use([\"/user_branches\"], userBranchesRoutes)\napp.use([\"/document\"], documentRoutes)\napp.use([\"/documents\"], documentsRoutes)\napp.use([\"/item\"], itemRoutes)\napp.use([\"/items\"], itemsRoutes)\napp.use([\"/file\"], fileRoutes)\napp.use([\"/files\"], filesRoutes)\napp.use([\"/region\"], regionRoutes)\napp.use([\"/regions\"], regionsRoutes)\napp.use([\"/location\"], locationRoutes)\napp.use([\"/locations\"], locationsRoutes)\napp.use([\"/injection_field\"], injectionFieldRoutes)\napp.use([\"/injection_fields\"], injectionFieldsRoutes)\napp.use([\"/account\"], accountRoutes)\napp.use([\"/accounts\"], accountsRoutes)\napp.use([\"/business\"], businessRoutes)\napp.use([\"/businesses\"], businessesRoutes)\n\napp.use([\"/utils\"], changePasswordUtilRoutes)\napp.use([\"/utils\"], accessKeyUtilRoutes)\n\n// Global error handler\napp.use(errorHandler)\n\nexport default app;"]}
|
|
@@ -57,7 +57,7 @@ const getAccessKey = async (req, res, next) => {
|
|
|
57
57
|
...defaultServiceProps,
|
|
58
58
|
accessKeyUserType: defaultServiceProps.isOperator === true ? "operator" : "administrator"
|
|
59
59
|
});
|
|
60
|
-
const data = await accessKeyService.getAccessKey({ id: Number(accessKeyId), datatypes: requestQuery.datatypes, skipFilterAccountId: false });
|
|
60
|
+
const data = await accessKeyService.getAccessKey({ id: Number(accessKeyId), datatypes: requestQuery.datatypes, skipFilterAccountId: false, revealEncryption: false });
|
|
61
61
|
return (0, utils_1.sendSuccess)(res, data, "Retrieved successfully", getRootName(true));
|
|
62
62
|
}
|
|
63
63
|
catch (error) {
|
|
@@ -77,7 +77,8 @@ const listAccessKeys = async (req, res, next) => {
|
|
|
77
77
|
});
|
|
78
78
|
const { data, total } = await accessKeyService.listAccessKeys({
|
|
79
79
|
...requestQuery,
|
|
80
|
-
skipFilterAccountId: false
|
|
80
|
+
skipFilterAccountId: false,
|
|
81
|
+
revealEncryption: false
|
|
81
82
|
});
|
|
82
83
|
let response = {
|
|
83
84
|
[`${getRootName(false)}`]: data,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessKeyController.js","sourceRoot":"","sources":["../../../src/controllers/access_key/accessKeyController.ts"],"names":[],"mappings":";;;AAEA,mCAAqF;AAIrF,yCAAyF;AACzF,8CAA8F;AAE9F,MAAM,WAAW,GAAG,CAAC,UAAmB,EAAE,EAAE;IAExC,IAAI,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;IAEvD,OAAO,QAAQ,CAAA;AACnB,CAAC,CAAA;AAED,0CAA0C;AACnC,MAAM,eAAe,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAgB,EAAE;IACnG,IAAI,CAAC;QAED,MAAM,mBAAmB,GAAG,IAAA,8BAAsB,EAAC,GAAG,CAAC,CAAA;QAEvD,MAAM,gBAAgB,GAAG,IAAA,2BAAgB,EAAC;YACtC,GAAG,mBAAmB;YACtB,iBAAiB,EAAE,mBAAmB,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe;SAC5F,CAAC,CAAA;QAEF,IAAI,QAAQ,GAAQ,EAAE,CAAA;QAEtB,IAAI,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAA;QAC7B,IAAI,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAA;QAEjC,IAAI,OAAO,GAAG,sCAA4B,CAAC,KAAK,CAAC;YAC7C,KAAK,EAAE;gBACH,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;aAC1B;YACD,OAAO,EAAE;gBACL,UAAU,EAAE;oBACR,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,IAAI,CAAC,CAAC;iBACvD;aACJ;SACJ,CAAC,CAAA;QAEF,IAAI,OAAO,GAAyB;YAChC,IAAI,EAAE;gBACF,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM;gBACzC,SAAS,EAAE,KAAK,CAAC,mCAAmC;aACvD;SACJ,CAAA;QAED,QAAQ,GAAG;YACP,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC;SAC5E,CAAA;QAED,IAAA,mBAAW,EAAC,GAAG,EAAE,QAAQ,EAAE,iCAAiC,CAAC,CAAA;IAEjE,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,CAAA;IACf,CAAC;AACL,CAAC,CAAA;AA3CY,QAAA,eAAe,mBA2C3B;AAED,oDAAoD;AAC7C,MAAM,YAAY,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAgB,EAAE;IAChG,IAAI,CAAC;QAED,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QACnC,MAAM,YAAY,GAAG,GAAG,CAAC,KAA6B,CAAC;QACvD,wEAAwE;QAExE,MAAM,mBAAmB,GAAG,IAAA,8BAAsB,EAAC,GAAG,CAAC,CAAA;QAEvD,MAAM,gBAAgB,GAAG,IAAA,2BAAgB,EAAC;YACtC,GAAG,mBAAmB;YACtB,iBAAiB,EAAE,mBAAmB,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe;SAC5F,CAAC,CAAA;QAEF,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,SAAS,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"accessKeyController.js","sourceRoot":"","sources":["../../../src/controllers/access_key/accessKeyController.ts"],"names":[],"mappings":"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","sourcesContent":["import { NextFunction, Request, Response } from \"express\";\n\nimport { getDefaultServiceProps, sendSuccess, sendError, HTTP_STATUS } from \"@/utils\"\n\nimport { QueryList } from \"@/schema/middleware/route\";\n\nimport { AccessKeyService, AccessKeyCreateProps, AccessKeyRevokeProps } from \"@/services\"\nimport { schemaAccessKeyCreatePayload, schemaAccessKeyRevokePayload } from \"@/schema/payload\";\n\nconst getRootName = (toSingular: boolean) => {\n\n let rootName = toSingular ? \"accessKey\" : \"accessKeys\";\n\n return rootName\n}\n\n/** auth/access_key : create access key */\nexport const createAccessKey = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n try {\n\n const defaultServiceProps = getDefaultServiceProps(req)\n\n const accessKeyService = AccessKeyService({\n ...defaultServiceProps,\n accessKeyUserType: defaultServiceProps.isOperator === true ? \"operator\" : \"administrator\"\n })\n\n let response: any = {}\n\n let reqScope = req.body.scope\n let reqPayload = req.body.payload\n\n let request = schemaAccessKeyCreatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n access_key: {\n userId: Number(reqPayload?.access_key?.user_id ?? 0),\n }\n }\n })\n\n let payload: AccessKeyCreateProps = {\n data: {\n userId: request.payload.access_key.userId,\n isDefault: false // default only when create account\n }\n }\n\n response = {\n [`${getRootName(true)}`]: await accessKeyService.createAccessKey(payload)\n }\n\n sendSuccess(res, response, `Access Key created successfully`)\n\n } catch (error: any) {\n next(error)\n }\n}\n\n/** auth/access_key/:accessKeyId : get access key */\nexport const getAccessKey = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n try {\n\n const { accessKeyId } = req.params;\n const requestQuery = req.query as unknown as QueryList;\n // const requestUserType = userType as BusinessServiceProps[\"userType\"];\n\n const defaultServiceProps = getDefaultServiceProps(req)\n\n const accessKeyService = AccessKeyService({\n ...defaultServiceProps,\n accessKeyUserType: defaultServiceProps.isOperator === true ? \"operator\" : \"administrator\"\n })\n\n const data = await accessKeyService.getAccessKey({ id: Number(accessKeyId), datatypes: requestQuery.datatypes, skipFilterAccountId: false, revealEncryption: false })\n\n return sendSuccess(res, data, \"Retrieved successfully\", getRootName(true));\n\n } catch (error: any) {\n next(error)\n }\n}\n\n/** auth/access_keys : list access keys */\nexport const listAccessKeys = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n\n try {\n\n const requestQuery = req.query as unknown as QueryList;\n // const requestUserType = req.params.userType as BusinessServiceProps[\"userType\"];\n\n const defaultServiceProps = getDefaultServiceProps(req)\n\n const accessKeyService = AccessKeyService({\n ...defaultServiceProps,\n accessKeyUserType: defaultServiceProps.isOperator === true ? \"operator\" : \"administrator\"\n })\n\n const { data, total } = await accessKeyService.listAccessKeys({\n ...requestQuery,\n skipFilterAccountId: false,\n revealEncryption: false\n });\n\n let response = {\n [`${getRootName(false)}`]: data,\n total,\n }\n\n return sendSuccess(res, response, \"Retrieved successfully\");\n\n } catch (error: any) {\n next(error)\n }\n};\n\n/** auth/access_keys/revoke : revoke access keys */\nexport const revokeAccessKeys = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n try {\n\n const request = schemaAccessKeyRevokePayload.parse(req.body)\n\n const defaultServiceProps = getDefaultServiceProps(req)\n\n const accessKeyService = AccessKeyService({\n ...defaultServiceProps,\n accessKeyUserType: defaultServiceProps.isOperator === true ? \"operator\" : \"administrator\"\n })\n\n const payload: AccessKeyRevokeProps = {\n accessKeyIds: request.payload.ids.map(i => BigInt(i))\n }\n\n const data = await accessKeyService.revokeAccessKeys(payload);\n\n return sendSuccess(res, data, \"Revoked\", getRootName(false));\n\n } catch (error: any) {\n next(error)\n }\n}\n"]}
|
package/dist/features/index.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
export { FeatureResetPasswordProps, FeatureResetPasswordSuccessProps, FeatureResetPasswordRequestProps } from './reset_password/resetPasswordType';
|
|
2
2
|
export { ResetPasswordHook } from "./reset_password/resetPasswordRegistry";
|
|
3
3
|
export { registerResetPasswordHook } from "./reset_password/resetPasswordRegister";
|
|
4
|
+
export { FeatureSmtpEmailProps, FeatureSmtpEmailOptions, FeatureSmtpEmailStartSendProps, FeatureSmtpEmailSuccessSendProps } from './smtp_email/smtpEmailType';
|
|
5
|
+
export { SmtpEmailHook } from "./smtp_email/smtpEmailRegistry";
|
|
6
|
+
export { registerSmtpEmailHook } from "./smtp_email/smtpEmailRegister";
|
package/dist/features/index.js
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.registerResetPasswordHook = exports.ResetPasswordHook = void 0;
|
|
3
|
+
exports.registerSmtpEmailHook = exports.SmtpEmailHook = exports.registerResetPasswordHook = exports.ResetPasswordHook = void 0;
|
|
4
4
|
var resetPasswordRegistry_1 = require("./reset_password/resetPasswordRegistry");
|
|
5
5
|
Object.defineProperty(exports, "ResetPasswordHook", { enumerable: true, get: function () { return resetPasswordRegistry_1.ResetPasswordHook; } });
|
|
6
6
|
var resetPasswordRegister_1 = require("./reset_password/resetPasswordRegister");
|
|
7
7
|
Object.defineProperty(exports, "registerResetPasswordHook", { enumerable: true, get: function () { return resetPasswordRegister_1.registerResetPasswordHook; } });
|
|
8
|
+
var smtpEmailRegistry_1 = require("./smtp_email/smtpEmailRegistry");
|
|
9
|
+
Object.defineProperty(exports, "SmtpEmailHook", { enumerable: true, get: function () { return smtpEmailRegistry_1.SmtpEmailHook; } });
|
|
10
|
+
var smtpEmailRegister_1 = require("./smtp_email/smtpEmailRegister");
|
|
11
|
+
Object.defineProperty(exports, "registerSmtpEmailHook", { enumerable: true, get: function () { return smtpEmailRegister_1.registerSmtpEmailHook; } });
|
|
8
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/features/index.ts"],"names":[],"mappings":";;;AACA,gFAA0E;AAAjE,0HAAA,iBAAiB,OAAA;AAC1B,gFAAkF;AAAzE,kIAAA,yBAAyB,OAAA","sourcesContent":["export { FeatureResetPasswordProps, FeatureResetPasswordSuccessProps, FeatureResetPasswordRequestProps } from './reset_password/resetPasswordType'\nexport { ResetPasswordHook } from \"./reset_password/resetPasswordRegistry\"\nexport { registerResetPasswordHook } from \"./reset_password/resetPasswordRegister\""]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/features/index.ts"],"names":[],"mappings":";;;AACA,gFAA0E;AAAjE,0HAAA,iBAAiB,OAAA;AAC1B,gFAAkF;AAAzE,kIAAA,yBAAyB,OAAA;AAGlC,oEAA8D;AAArD,kHAAA,aAAa,OAAA;AACtB,oEAAsE;AAA7D,0HAAA,qBAAqB,OAAA","sourcesContent":["export { FeatureResetPasswordProps, FeatureResetPasswordSuccessProps, FeatureResetPasswordRequestProps } from './reset_password/resetPasswordType'\nexport { ResetPasswordHook } from \"./reset_password/resetPasswordRegistry\"\nexport { registerResetPasswordHook } from \"./reset_password/resetPasswordRegister\"\n\nexport { FeatureSmtpEmailProps, FeatureSmtpEmailOptions, FeatureSmtpEmailStartSendProps, FeatureSmtpEmailSuccessSendProps } from './smtp_email/smtpEmailType'\nexport { SmtpEmailHook } from \"./smtp_email/smtpEmailRegistry\"\nexport { registerSmtpEmailHook } from \"./smtp_email/smtpEmailRegister\""]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerSmtpEmailHook = registerSmtpEmailHook;
|
|
4
|
+
const features_1 = require("../../features");
|
|
5
|
+
/**
|
|
6
|
+
* Register consumer-provided hooks for smtp email
|
|
7
|
+
*/
|
|
8
|
+
function registerSmtpEmailHook(hooks) {
|
|
9
|
+
Object.assign(features_1.SmtpEmailHook, hooks);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=smtpEmailRegister.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smtpEmailRegister.js","sourceRoot":"","sources":["../../../src/features/smtp_email/smtpEmailRegister.ts"],"names":[],"mappings":";;AAMA,sDAEC;AAPD,yCAA0C;AAE1C;;GAEG;AACH,SAAgB,qBAAqB,CAAC,KAA4B;IAC9D,MAAM,CAAC,MAAM,CAAC,wBAAa,EAAE,KAAK,CAAC,CAAA;AACvC,CAAC","sourcesContent":["import { FeatureSmtpEmailProps } from '@/features'\nimport { SmtpEmailHook } from '@/features'\n\n/**\n * Register consumer-provided hooks for smtp email\n */\nexport function registerSmtpEmailHook(hooks: FeatureSmtpEmailProps) {\n Object.assign(SmtpEmailHook, hooks)\n}"]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SmtpEmailHook = void 0;
|
|
4
|
+
const utils_1 = require("../../utils");
|
|
5
|
+
// import { OneTimeCodeType, ResetPasswordMethod } from "../../services";
|
|
6
|
+
// Runtime storage for injected hook
|
|
7
|
+
exports.SmtpEmailHook = {
|
|
8
|
+
onSetup: async () => {
|
|
9
|
+
// default
|
|
10
|
+
// const oneTimeCodeType: OneTimeCodeType = "otp";
|
|
11
|
+
// const resetPasswordMethod: ResetPasswordMethod = "email";
|
|
12
|
+
return {
|
|
13
|
+
smtpHost: "",
|
|
14
|
+
smtpPort: 25,
|
|
15
|
+
smtpSecure: true,
|
|
16
|
+
smtpCredential: {
|
|
17
|
+
username: "",
|
|
18
|
+
password: ""
|
|
19
|
+
},
|
|
20
|
+
connectionTimeout: 500,
|
|
21
|
+
};
|
|
22
|
+
},
|
|
23
|
+
onStartSend: async (props) => {
|
|
24
|
+
// Default behavior: just log
|
|
25
|
+
// console.log(`[ResetPasswordService] Default onRequest called for ${JSON.stringify}`)
|
|
26
|
+
(0, utils_1.throwError)(`Invalid settings for onStartSend in SmtpEmailHook`);
|
|
27
|
+
},
|
|
28
|
+
onSuccessSend: async (props) => {
|
|
29
|
+
// Default behavior: log
|
|
30
|
+
// console.log(`[ResetPasswordService] Default onSuccess called for user ${userId}`)
|
|
31
|
+
(0, utils_1.throwError)(`Invalid settings for onSuccessSend in SmtpEmailHook`);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=smtpEmailRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smtpEmailRegistry.js","sourceRoot":"","sources":["../../../src/features/smtp_email/smtpEmailRegistry.ts"],"names":[],"mappings":";;;AACA,mCAAoC;AACpC,qEAAqE;AAErE,oCAAoC;AACvB,QAAA,aAAa,GAA0B;IAChD,OAAO,EAAE,KAAK,IAAsC,EAAE;QAElD,UAAU;QACV,kDAAkD;QAClD,4DAA4D;QAE5D,OAAO;YACH,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,IAAI;YAChB,cAAc,EAAE;gBACZ,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,EAAE;aACf;YACD,iBAAiB,EAAE,GAAG;SACzB,CAAA;IAEL,CAAC;IACD,WAAW,EAAE,KAAK,EAAE,KAAqC,EAAE,EAAE;QACzD,6BAA6B;QAC7B,uFAAuF;QACvF,IAAA,kBAAU,EAAC,mDAAmD,CAAC,CAAA;IACnE,CAAC;IACD,aAAa,EAAE,KAAK,EAAE,KAAuC,EAAE,EAAE;QAC7D,wBAAwB;QACxB,oFAAoF;QACpF,IAAA,kBAAU,EAAC,qDAAqD,CAAC,CAAA;IACrE,CAAC;CACJ,CAAA","sourcesContent":["import { FeatureSmtpEmailProps, FeatureSmtpEmailOptions, FeatureSmtpEmailSuccessSendProps, FeatureSmtpEmailStartSendProps } from '@/features'\nimport { throwError } from '@/utils'\n// import { OneTimeCodeType, ResetPasswordMethod } from \"@/services\";\n\n// Runtime storage for injected hook\nexport const SmtpEmailHook: FeatureSmtpEmailProps = {\n onSetup: async (): Promise<FeatureSmtpEmailOptions> => {\n\n // default\n // const oneTimeCodeType: OneTimeCodeType = \"otp\";\n // const resetPasswordMethod: ResetPasswordMethod = \"email\";\n\n return {\n smtpHost: \"\",\n smtpPort: 25,\n smtpSecure: true,\n smtpCredential: {\n username: \"\",\n password: \"\"\n },\n connectionTimeout: 500,\n }\n\n },\n onStartSend: async (props: FeatureSmtpEmailStartSendProps) => {\n // Default behavior: just log\n // console.log(`[ResetPasswordService] Default onRequest called for ${JSON.stringify}`)\n throwError(`Invalid settings for onStartSend in SmtpEmailHook`)\n },\n onSuccessSend: async (props: FeatureSmtpEmailSuccessSendProps) => {\n // Default behavior: log\n // console.log(`[ResetPasswordService] Default onSuccess called for user ${userId}`)\n throwError(`Invalid settings for onSuccessSend in SmtpEmailHook`)\n }\n}"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { SmtpEmailTransporterOptions } from "../../services";
|
|
2
|
+
export type FeatureSmtpEmailOptions = {
|
|
3
|
+
smtpHost: string;
|
|
4
|
+
smtpPort: number;
|
|
5
|
+
smtpSecure: boolean;
|
|
6
|
+
smtpCredential: {
|
|
7
|
+
username: string;
|
|
8
|
+
password: string;
|
|
9
|
+
};
|
|
10
|
+
connectionTimeout: number;
|
|
11
|
+
};
|
|
12
|
+
export type FeatureSmtpEmailStartSendProps = {
|
|
13
|
+
smtpEmailOptions: FeatureSmtpEmailOptions;
|
|
14
|
+
transporterOptions: SmtpEmailTransporterOptions;
|
|
15
|
+
};
|
|
16
|
+
export type FeatureSmtpEmailSuccessSendProps = {
|
|
17
|
+
smtpEmailOptions: FeatureSmtpEmailOptions;
|
|
18
|
+
transporterOptions: SmtpEmailTransporterOptions;
|
|
19
|
+
gatewayDetails: any;
|
|
20
|
+
};
|
|
21
|
+
export type FeatureSmtpEmailProps = {
|
|
22
|
+
onSetup: () => Promise<FeatureSmtpEmailOptions>;
|
|
23
|
+
onStartSend: (payload: FeatureSmtpEmailStartSendProps) => Promise<any>;
|
|
24
|
+
onSuccessSend: (payload: FeatureSmtpEmailSuccessSendProps) => Promise<any>;
|
|
25
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smtpEmailType.js","sourceRoot":"","sources":["../../../src/features/smtp_email/smtpEmailType.ts"],"names":[],"mappings":"","sourcesContent":["import { SmtpEmailTransporterOptions } from \"@/services\";\n\nexport type FeatureSmtpEmailOptions = {\n smtpHost: string\n smtpPort: number\n smtpSecure: boolean\n smtpCredential: {\n username: string\n password: string\n },\n connectionTimeout: number\n}\n\nexport type FeatureSmtpEmailStartSendProps = {\n smtpEmailOptions: FeatureSmtpEmailOptions\n transporterOptions: SmtpEmailTransporterOptions\n}\n\nexport type FeatureSmtpEmailSuccessSendProps = {\n smtpEmailOptions: FeatureSmtpEmailOptions\n transporterOptions: SmtpEmailTransporterOptions\n gatewayDetails: any\n}\n\nexport type FeatureSmtpEmailProps = {\n onSetup: () => Promise<FeatureSmtpEmailOptions>,\n onStartSend: (payload: FeatureSmtpEmailStartSendProps) => Promise<any>\n onSuccessSend: (payload: FeatureSmtpEmailSuccessSendProps) => Promise<any>\n}"]}
|
|
@@ -14,10 +14,9 @@ export declare const ModelAccessKeyFields: {
|
|
|
14
14
|
user_type: "user_type";
|
|
15
15
|
access_key_id: "access_key_id";
|
|
16
16
|
key_id: "key_id";
|
|
17
|
-
|
|
17
|
+
key_secret_encrypted: "key_secret_encrypted";
|
|
18
18
|
access_key_status: "access_key_status";
|
|
19
19
|
is_default: "is_default";
|
|
20
|
-
key_secret_encrypted: "key_secret_encrypted";
|
|
21
20
|
};
|
|
22
21
|
export type ModelAccessKey = access_keys;
|
|
23
22
|
export type ModelAccessKeyOmitFields = typeof primaryKey | DefaultOmitFields;
|
|
@@ -48,7 +47,7 @@ export type ModelAccessKeyListProps = {
|
|
|
48
47
|
limit?: number;
|
|
49
48
|
};
|
|
50
49
|
export declare const AccessKeyModel: ({ ...rest }: DefaultServiceProps) => {
|
|
51
|
-
primaryKey: "createdatetime" | "createuserid" | "updatedatetime" | "updateuserid" | "isdelete" | "istrash" | "accountid" | "user_id" | "user_type" | "access_key_id" | "key_id" | "
|
|
50
|
+
primaryKey: "createdatetime" | "createuserid" | "updatedatetime" | "updateuserid" | "isdelete" | "istrash" | "accountid" | "user_id" | "user_type" | "access_key_id" | "key_id" | "key_secret_encrypted" | "access_key_status" | "is_default";
|
|
52
51
|
getFields: (prefix?: string, excludeKeywords?: string[]) => Promise<{
|
|
53
52
|
name: string;
|
|
54
53
|
type: string;
|
|
@@ -67,10 +66,9 @@ export declare const AccessKeyModel: ({ ...rest }: DefaultServiceProps) => {
|
|
|
67
66
|
user_type: string | null;
|
|
68
67
|
access_key_id: bigint;
|
|
69
68
|
key_id: string | null;
|
|
70
|
-
|
|
69
|
+
key_secret_encrypted: string | null;
|
|
71
70
|
access_key_status: string | null;
|
|
72
71
|
is_default: boolean;
|
|
73
|
-
key_secret_encrypted: string | null;
|
|
74
72
|
}>;
|
|
75
73
|
createMany: ({ dataList, disableRollback, }: {
|
|
76
74
|
dataList: Omit<any, DefaultOmitFields>[];
|
|
@@ -87,10 +85,9 @@ export declare const AccessKeyModel: ({ ...rest }: DefaultServiceProps) => {
|
|
|
87
85
|
user_type: string | null;
|
|
88
86
|
access_key_id: bigint;
|
|
89
87
|
key_id: string | null;
|
|
90
|
-
|
|
88
|
+
key_secret_encrypted: string | null;
|
|
91
89
|
access_key_status: string | null;
|
|
92
90
|
is_default: boolean;
|
|
93
|
-
key_secret_encrypted: string | null;
|
|
94
91
|
}[]>;
|
|
95
92
|
get: ({ id, where, include, }: {
|
|
96
93
|
id?: number;
|
|
@@ -108,10 +105,9 @@ export declare const AccessKeyModel: ({ ...rest }: DefaultServiceProps) => {
|
|
|
108
105
|
user_type: string | null;
|
|
109
106
|
access_key_id: bigint;
|
|
110
107
|
key_id: string | null;
|
|
111
|
-
|
|
108
|
+
key_secret_encrypted: string | null;
|
|
112
109
|
access_key_status: string | null;
|
|
113
110
|
is_default: boolean;
|
|
114
|
-
key_secret_encrypted: string | null;
|
|
115
111
|
} | null>;
|
|
116
112
|
list: ({ where, orderBy, offset, limit, include }?: any) => Promise<{
|
|
117
113
|
createdatetime: Date | null;
|
|
@@ -125,16 +121,15 @@ export declare const AccessKeyModel: ({ ...rest }: DefaultServiceProps) => {
|
|
|
125
121
|
user_type: string | null;
|
|
126
122
|
access_key_id: bigint;
|
|
127
123
|
key_id: string | null;
|
|
128
|
-
|
|
124
|
+
key_secret_encrypted: string | null;
|
|
129
125
|
access_key_status: string | null;
|
|
130
126
|
is_default: boolean;
|
|
131
|
-
key_secret_encrypted: string | null;
|
|
132
127
|
}[]>;
|
|
133
128
|
count: ({ where }?: {
|
|
134
129
|
where?: Record<string, any>;
|
|
135
130
|
}) => Promise<number>;
|
|
136
131
|
aggregate: ({ field, operation, where, }: {
|
|
137
|
-
field: "createdatetime" | "createuserid" | "updatedatetime" | "updateuserid" | "isdelete" | "istrash" | "accountid" | "user_id" | "user_type" | "access_key_id" | "key_id" | "
|
|
132
|
+
field: "createdatetime" | "createuserid" | "updatedatetime" | "updateuserid" | "isdelete" | "istrash" | "accountid" | "user_id" | "user_type" | "access_key_id" | "key_id" | "key_secret_encrypted" | "access_key_status" | "is_default";
|
|
138
133
|
operation?: "sum" | "avg" | "min" | "max" | "count";
|
|
139
134
|
where?: Record<string, any>;
|
|
140
135
|
}) => Promise<number>;
|
|
@@ -153,10 +148,9 @@ export declare const AccessKeyModel: ({ ...rest }: DefaultServiceProps) => {
|
|
|
153
148
|
user_type: string | null;
|
|
154
149
|
access_key_id: bigint;
|
|
155
150
|
key_id: string | null;
|
|
156
|
-
|
|
151
|
+
key_secret_encrypted: string | null;
|
|
157
152
|
access_key_status: string | null;
|
|
158
153
|
is_default: boolean;
|
|
159
|
-
key_secret_encrypted: string | null;
|
|
160
154
|
}>;
|
|
161
155
|
disableRollback?: Boolean;
|
|
162
156
|
}) => Promise<{
|
|
@@ -171,10 +165,9 @@ export declare const AccessKeyModel: ({ ...rest }: DefaultServiceProps) => {
|
|
|
171
165
|
user_type: string | null;
|
|
172
166
|
access_key_id: bigint;
|
|
173
167
|
key_id: string | null;
|
|
174
|
-
|
|
168
|
+
key_secret_encrypted: string | null;
|
|
175
169
|
access_key_status: string | null;
|
|
176
170
|
is_default: boolean;
|
|
177
|
-
key_secret_encrypted: string | null;
|
|
178
171
|
}>;
|
|
179
172
|
updateMany: ({ dataList, disableRollback, }: {
|
|
180
173
|
dataList: {
|
|
@@ -191,10 +184,9 @@ export declare const AccessKeyModel: ({ ...rest }: DefaultServiceProps) => {
|
|
|
191
184
|
user_type: string | null;
|
|
192
185
|
access_key_id: bigint;
|
|
193
186
|
key_id: string | null;
|
|
194
|
-
|
|
187
|
+
key_secret_encrypted: string | null;
|
|
195
188
|
access_key_status: string | null;
|
|
196
189
|
is_default: boolean;
|
|
197
|
-
key_secret_encrypted: string | null;
|
|
198
190
|
}>;
|
|
199
191
|
}[];
|
|
200
192
|
disableRollback?: boolean;
|
|
@@ -210,10 +202,9 @@ export declare const AccessKeyModel: ({ ...rest }: DefaultServiceProps) => {
|
|
|
210
202
|
user_type: string | null;
|
|
211
203
|
access_key_id: bigint;
|
|
212
204
|
key_id: string | null;
|
|
213
|
-
|
|
205
|
+
key_secret_encrypted: string | null;
|
|
214
206
|
access_key_status: string | null;
|
|
215
207
|
is_default: boolean;
|
|
216
|
-
key_secret_encrypted: string | null;
|
|
217
208
|
}[]>;
|
|
218
209
|
trash: ({ ids }: {
|
|
219
210
|
ids: number[];
|
|
@@ -229,10 +220,9 @@ export declare const AccessKeyModel: ({ ...rest }: DefaultServiceProps) => {
|
|
|
229
220
|
user_type: string | null;
|
|
230
221
|
access_key_id: bigint;
|
|
231
222
|
key_id: string | null;
|
|
232
|
-
|
|
223
|
+
key_secret_encrypted: string | null;
|
|
233
224
|
access_key_status: string | null;
|
|
234
225
|
is_default: boolean;
|
|
235
|
-
key_secret_encrypted: string | null;
|
|
236
226
|
}[]>;
|
|
237
227
|
remove: ({ ids, where }: {
|
|
238
228
|
ids?: number[];
|
|
@@ -249,10 +239,9 @@ export declare const AccessKeyModel: ({ ...rest }: DefaultServiceProps) => {
|
|
|
249
239
|
user_type: string | null;
|
|
250
240
|
access_key_id: bigint;
|
|
251
241
|
key_id: string | null;
|
|
252
|
-
|
|
242
|
+
key_secret_encrypted: string | null;
|
|
253
243
|
access_key_status: string | null;
|
|
254
244
|
is_default: boolean;
|
|
255
|
-
key_secret_encrypted: string | null;
|
|
256
245
|
}[]>;
|
|
257
246
|
raw: <T = any>(query: string, params?: any[]) => Promise<T[]>;
|
|
258
247
|
rawExec: (query: string, params?: any[]) => Promise<number>;
|
|
@@ -17,9 +17,11 @@ export type AccessKeyServiceProps = DefaultServiceProps & {
|
|
|
17
17
|
export type AccessKeyGetProps = QueryGet & {
|
|
18
18
|
id: number;
|
|
19
19
|
skipFilterAccountId: boolean;
|
|
20
|
+
revealEncryption: boolean;
|
|
20
21
|
};
|
|
21
22
|
export type AccessKeyListProps = QueryList & {
|
|
22
23
|
skipFilterAccountId: boolean;
|
|
24
|
+
revealEncryption: boolean;
|
|
23
25
|
};
|
|
24
26
|
export type AccessKeyCreateProps = {
|
|
25
27
|
data: {
|
|
@@ -33,8 +35,8 @@ export type AccessKeyRevokeProps = {
|
|
|
33
35
|
};
|
|
34
36
|
export declare const AccessKeyService: (props: AccessKeyServiceProps) => {
|
|
35
37
|
createAccessKey: ({ data }: AccessKeyCreateProps) => Promise<any>;
|
|
36
|
-
getAccessKey: ({ id, datatypes, skipFilterAccountId }: AccessKeyGetProps) => Promise<any>;
|
|
37
|
-
listAccessKeys: ({ limit, offset, filters, sortfield, sortorder, datatypes, skipFilterAccountId }: AccessKeyListProps) => Promise<{
|
|
38
|
+
getAccessKey: ({ id, datatypes, skipFilterAccountId, revealEncryption }: AccessKeyGetProps) => Promise<any>;
|
|
39
|
+
listAccessKeys: ({ limit, offset, filters, sortfield, sortorder, datatypes, skipFilterAccountId, revealEncryption }: AccessKeyListProps) => Promise<{
|
|
38
40
|
data: any[];
|
|
39
41
|
total: number;
|
|
40
42
|
}>;
|
|
@@ -50,10 +52,9 @@ export declare const AccessKeyService: (props: AccessKeyServiceProps) => {
|
|
|
50
52
|
user_type: string | null;
|
|
51
53
|
access_key_id: bigint;
|
|
52
54
|
key_id: string | null;
|
|
53
|
-
|
|
55
|
+
key_secret_encrypted: string | null;
|
|
54
56
|
access_key_status: string | null;
|
|
55
57
|
is_default: boolean;
|
|
56
|
-
key_secret_encrypted: string | null;
|
|
57
58
|
}>;
|
|
58
59
|
buildFormattedAccessKey: (keyId: string, secret: string) => string;
|
|
59
60
|
};
|
|
@@ -20,11 +20,10 @@ exports.accessKeyStatus = {
|
|
|
20
20
|
active: "active",
|
|
21
21
|
revoked: "revoked",
|
|
22
22
|
};
|
|
23
|
-
const getCreatePayload = (data, accessKeyUserType, keyId, encryptedSecret
|
|
23
|
+
const getCreatePayload = (data, accessKeyUserType, keyId, encryptedSecret) => {
|
|
24
24
|
return {
|
|
25
25
|
[`${models_1.ModelAccessKeyFields.access_key_status}`]: exports.accessKeyStatus.active,
|
|
26
26
|
[`${models_1.ModelAccessKeyFields.key_id}`]: keyId,
|
|
27
|
-
[`${models_1.ModelAccessKeyFields.key_secret_hash}`]: keySecretHash,
|
|
28
27
|
[`${models_1.ModelAccessKeyFields.key_secret_encrypted}`]: encryptedSecret,
|
|
29
28
|
[`${models_1.ModelAccessKeyFields.user_id}`]: Number(data.userId),
|
|
30
29
|
[`${models_1.ModelAccessKeyFields.user_type}`]: accessKeyUserType,
|
|
@@ -37,9 +36,11 @@ let mainSqlSelect = {
|
|
|
37
36
|
[`ak.${models_1.ModelAccessKeyFields.user_id}`]: "user_id",
|
|
38
37
|
[`ak.${models_1.ModelAccessKeyFields.user_type}`]: "user_type",
|
|
39
38
|
[`ak.${models_1.ModelAccessKeyFields.key_id}`]: "key_id",
|
|
40
|
-
[`ak.${models_1.ModelAccessKeyFields.key_secret_encrypted}`]: "key_secret_encrypted",
|
|
41
39
|
[`ak.${models_1.ModelAccessKeyFields.is_default}`]: "is_default",
|
|
42
40
|
};
|
|
41
|
+
let mainEncryptedSqlSelect = {
|
|
42
|
+
[`ak.${models_1.ModelAccessKeyFields.key_secret_encrypted}`]: "key_secret_encrypted",
|
|
43
|
+
};
|
|
43
44
|
let accountSqlSelect = {
|
|
44
45
|
[`acc.${models_1.ModelAccountFields.account_code}`]: "account_code",
|
|
45
46
|
[`acc.${models_1.ModelAccountFields.name}`]: "account_name",
|
|
@@ -98,14 +99,14 @@ const AccessKeyService = (props) => {
|
|
|
98
99
|
const secret = (0, utils_2.generateAccessKeySecret)();
|
|
99
100
|
const encryptedSecret = (0, utils_1.encryptAccessKeySecret)(encryptionKey, secret);
|
|
100
101
|
// Optionally, keep a hash if you need verification
|
|
101
|
-
const keySecretHash =
|
|
102
|
-
const _data = getCreatePayload(data, accessKeyUserType, keyId, encryptedSecret
|
|
102
|
+
// const keySecretHash = hashAccessKeySecret(secret);
|
|
103
|
+
const _data = getCreatePayload(data, accessKeyUserType, keyId, encryptedSecret);
|
|
103
104
|
if (!_data) {
|
|
104
105
|
throw new Error(`Invalid create access key payload: ${JSON.stringify(_data)}`);
|
|
105
106
|
}
|
|
106
107
|
const response = await createAccessKeyModel.create({ data: _data });
|
|
107
108
|
const newAcessKeyId = response?.access_key_id ?? 0;
|
|
108
|
-
let dataAccessKey = await getAccessKey({ id: Number(newAcessKeyId), datatypes: [], skipFilterAccountId: false });
|
|
109
|
+
let dataAccessKey = await getAccessKey({ id: Number(newAcessKeyId), datatypes: [], skipFilterAccountId: false, revealEncryption: false });
|
|
109
110
|
// direct get from model
|
|
110
111
|
const accessKeyEntity = await createAccessKeyModel.get({ id: Number(newAcessKeyId) });
|
|
111
112
|
const newKeyId = accessKeyEntity?.key_id ?? "";
|
|
@@ -119,7 +120,7 @@ const AccessKeyService = (props) => {
|
|
|
119
120
|
const buildFormattedAccessKey = (keyId, secret) => {
|
|
120
121
|
return `${keyId}.${secret}`;
|
|
121
122
|
};
|
|
122
|
-
const getAccessKey = async ({ id, datatypes = [], skipFilterAccountId = false }) => {
|
|
123
|
+
const getAccessKey = async ({ id, datatypes = [], skipFilterAccountId = false, revealEncryption = false }) => {
|
|
123
124
|
let { data } = await listAccessKeys({
|
|
124
125
|
limit: 1,
|
|
125
126
|
offset: 0,
|
|
@@ -127,16 +128,18 @@ const AccessKeyService = (props) => {
|
|
|
127
128
|
sortfield: `${models_1.ModelAccessKeyFields.access_key_id}`,
|
|
128
129
|
sortorder: "ASC",
|
|
129
130
|
datatypes,
|
|
130
|
-
skipFilterAccountId
|
|
131
|
+
skipFilterAccountId,
|
|
132
|
+
revealEncryption
|
|
131
133
|
});
|
|
132
134
|
return data[0] ?? null;
|
|
133
135
|
};
|
|
134
|
-
const listAccessKeys = async ({ limit, offset, filters, sortfield, sortorder, datatypes = [], skipFilterAccountId = false }) => {
|
|
136
|
+
const listAccessKeys = async ({ limit, offset, filters, sortfield, sortorder, datatypes = [], skipFilterAccountId = false, revealEncryption = false }) => {
|
|
135
137
|
let data = [];
|
|
136
138
|
let sqlSelect = [
|
|
137
139
|
`COUNT(ak.*) OVER() as filtered_count`,
|
|
138
140
|
(0, lib_1.buildSqlSelect)(``, mainSqlSelect),
|
|
139
141
|
(0, lib_1.buildSqlSelect)(``, accountSqlSelect),
|
|
142
|
+
...(revealEncryption ? [(0, lib_1.buildSqlSelect)(``, mainEncryptedSqlSelect)] : []),
|
|
140
143
|
(0, lib_1.buildSqlSelect)(``, defaultSqlSelect)
|
|
141
144
|
];
|
|
142
145
|
let sqlRelation = [
|
|
@@ -147,9 +150,15 @@ const AccessKeyService = (props) => {
|
|
|
147
150
|
let sqlGroupBy = [
|
|
148
151
|
...Object.keys(mainSqlSelect),
|
|
149
152
|
...Object.keys(accountSqlSelect),
|
|
153
|
+
...(revealEncryption ? Object.keys(mainEncryptedSqlSelect) : []),
|
|
150
154
|
...Object.keys(defaultSqlSelect)
|
|
151
155
|
];
|
|
152
|
-
let filterColumns = {
|
|
156
|
+
let filterColumns = {
|
|
157
|
+
...mainSqlSelect,
|
|
158
|
+
...accountSqlSelect,
|
|
159
|
+
...(revealEncryption ? mainEncryptedSqlSelect : {}),
|
|
160
|
+
...defaultSqlSelect
|
|
161
|
+
};
|
|
153
162
|
let sqlWhere = [
|
|
154
163
|
`ak.isdelete = false`,
|
|
155
164
|
`ak.istrash = false`,
|
|
@@ -184,13 +193,35 @@ const AccessKeyService = (props) => {
|
|
|
184
193
|
// if (!_data) {
|
|
185
194
|
// throw new Error(`Invalid update business payload: ${JSON.stringify(_data)}`);
|
|
186
195
|
// }
|
|
196
|
+
// retrieve the accessKeysIds
|
|
197
|
+
const { data: accessKeys } = await listAccessKeys({
|
|
198
|
+
limit: accessKeyIds.length,
|
|
199
|
+
offset: 0,
|
|
200
|
+
filters: [{
|
|
201
|
+
field: `${models_1.ModelAccessKeyFields.access_key_id}`,
|
|
202
|
+
operator: "where_in",
|
|
203
|
+
value: accessKeyIds
|
|
204
|
+
}],
|
|
205
|
+
sortfield: `${models_1.ModelAccessKeyFields.access_key_id}`,
|
|
206
|
+
sortorder: "ASC",
|
|
207
|
+
datatypes: [],
|
|
208
|
+
skipFilterAccountId: false,
|
|
209
|
+
revealEncryption: false
|
|
210
|
+
});
|
|
211
|
+
// console.log('accessKeys', accessKeys)
|
|
212
|
+
// validate access keys is not default
|
|
213
|
+
const validateIsDefault = accessKeys.filter(i => i.is_default === true);
|
|
214
|
+
if (validateIsDefault.length > 0) {
|
|
215
|
+
throw new Error(`Found Access keys is default restricted to revoke: ${validateIsDefault.map(i => i.access_key_id)}`);
|
|
216
|
+
}
|
|
187
217
|
const accessKeyUserType = isOperator === true ? "operator" : "administrator";
|
|
188
218
|
let response = await accessKeyModel.update({
|
|
189
219
|
where: {
|
|
190
220
|
[`${models_1.ModelAccessKeyFields.access_key_id}`]: {
|
|
191
221
|
in: accessKeyIds
|
|
192
222
|
},
|
|
193
|
-
[`${models_1.ModelAccessKeyFields.user_type}`]: accessKeyUserType
|
|
223
|
+
[`${models_1.ModelAccessKeyFields.user_type}`]: accessKeyUserType,
|
|
224
|
+
[`${models_1.ModelAccessKeyFields.is_default}`]: false // default must remain
|
|
194
225
|
},
|
|
195
226
|
data: {
|
|
196
227
|
[`${models_1.ModelAccessKeyFields.access_key_status}`]: exports.accessKeyStatus.revoked
|