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
JavaScript
;
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