UNPKG

moleculer-iam

Version:

Centralized IAM module for moleculer. Including a certified OIDC provider and an Identity provider for user profile, credentials, and custom claims management. Custom claims could be defined/updated by declarative schema which contains claims validation a

79 lines 2.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.broker = exports.apiGatewayEndpoint = exports.issuer = exports.isDev = exports.isDebug = void 0; const tslib_1 = require("tslib"); const _ = tslib_1.__importStar(require("lodash")); const moleculer_1 = require("moleculer"); const qmit_sdk_1 = require("qmit-sdk"); const __1 = require("../../"); const config_1 = require("./config"); const app_1 = require("./app"); exports.isDebug = config_1.config.isDebug, exports.isDev = config_1.config.isDev, exports.issuer = config_1.config.issuer, exports.apiGatewayEndpoint = config_1.config.apiGatewayEndpoint; // create service broker exports.broker = new moleculer_1.ServiceBroker(qmit_sdk_1.moleculer.createServiceBrokerOptions({ logLevel: exports.isDebug ? "debug" : "info", })); // create IAM service exports.broker.createService(__1.IAMServiceSchema(_.defaultsDeep({ idp: { claims: { mandatoryScopes: [ "openid", "profile", "email", // "phone", "impersonation", ], }, }, op: { dev: exports.isDev, issuer: exports.issuer, discovery: { op_policy_uri: `${exports.issuer}/help/policy`, op_tos_uri: `${exports.issuer}/help/tos`, service_documentation: `${exports.issuer}/help`, }, app: { renderer: { options: { register: { skipEmailVerification: true, skipPhoneVerification: false, }, }, }, verifyEmail: { async send({ logger, ...args }) { logger.info(args); try { await exports.broker.call("sports.notification.sendVerificationEmail", args); } catch (err) { logger.error(err); } }, }, verifyPhone: { async send({ logger, ...args }) { logger.info(args); try { await exports.broker.call("sports.notification.sendVerificationSMS", args); } catch (err) { logger.error(err); } }, }, }, }, server: { app: app_1.app, http: { hostname: "0.0.0.0", port: 9090, }, }, apiGatewayEndpoint: exports.apiGatewayEndpoint, }, config_1.config.iam))); //# sourceMappingURL=iam.js.map