@telia-ace/alliance-portal 1.0.7-next.1 → 1.0.7-next.2
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/CHANGELOG.md +8 -0
- package/dist/app.controller.js +1 -1
- package/dist/app.module.js +1 -1
- package/dist/auth.js +1 -0
- package/dist/index.js +1 -1
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @telia-ace/alliance-portal
|
|
2
2
|
|
|
3
|
+
## 1.0.7-next.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 9b2cfd7: Setup health checks for services (https://github.com/telia-company/ace-alliance-sdk/issues/388).
|
|
8
|
+
- Updated dependencies [9b2cfd7]
|
|
9
|
+
- @telia-ace/alliance-internal-node-utilities@1.0.4-next.2
|
|
10
|
+
|
|
3
11
|
## 1.0.7-next.1
|
|
4
12
|
|
|
5
13
|
### Patch Changes
|
package/dist/app.controller.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"createAppController",{enumerable:true,get:function(){return createAppController}});const _axios=require("@nestjs/axios");const _common=require("@nestjs/common");const _config=require("@nestjs/config");const _allianceinternalnodeutilities=require("@telia-ace/alliance-internal-node-utilities");const _express=require("express");const _graphqlrequest=require("graphql-request");const _config1=require("./config");const _graphql=require("./graphql");function _ts_decorate(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)if(d=decorators[i])r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r;return c>3&&r&&Object.defineProperty(target,key,r),r}function _ts_metadata(k,v){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(k,v)}function _ts_param(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}}function createAppController({}){let AppController=class AppController{signin(){}catchall(){return""}async cookiePolicy(){const policyUrl=this.configService.getOrThrow(_config1.ConfigKeys.WebprovisionsDistributionCookiePolicyUrl);const{data}=await this.httpService.axiosRef.get(policyUrl);return data}async index(req,workspaceSlug){let userHasAccess=false;try{const objectId=req.oidc.user.sub;const{user}=await (0,_graphqlrequest.request)(this.configService.getOrThrow(_allianceinternalnodeutilities.SharedConfigKeys.DbEndpoint),_graphql.GetUserDocument,{objectId,workspaceSlug},{authorization:(0,_allianceinternalnodeutilities.createSystemUserToken)(this.configService)});userHasAccess=!!user.id}catch{}if(!userHasAccess){return htmlTemplate(unauthorizedPortalBody())}const distribution={opts:{},url:this.configService.getOrThrow(_config1.ConfigKeys.WebprovisionsDistributionUrl)};if(!req.query["wp-tag"]&&!req.query["wp-version"]){distribution.opts.tag=this.configService.getOrThrow(_config1.ConfigKeys.WebprovisionsTag)}this.logger.info("opening portal",{user:req.oidc.user,distribution,workspaceSlug});return htmlTemplate(portalBody({distribution,workspaceSlug}))}constructor(logger,configService,httpService){this.logger=logger;this.configService=configService;this.httpService=httpService}};_ts_decorate([(0,_common.Get)("/signin-oidc"),_ts_metadata("design:type",Function),_ts_metadata("design:paramtypes",[])],AppController.prototype,"signin",null);_ts_decorate([(0,_common.Get)("/favicon*"),_ts_metadata("design:type",Function),_ts_metadata("design:paramtypes",[])],AppController.prototype,"catchall",null);_ts_decorate([(0,_common.Get)(["/:workspace/cookie-policy"]),_ts_metadata("design:type",Function),_ts_metadata("design:paramtypes",[])],AppController.prototype,"cookiePolicy",null);_ts_decorate([(0,_common.Get)(["/:workspace*"]),_ts_param(0,(0,_common.Req)()),_ts_param(1,(0,_common.Param)("workspace")),_ts_metadata("design:type",Function),_ts_metadata("design:paramtypes",[typeof _express.Request==="undefined"?Object:_express.Request,String])],AppController.prototype,"index",null);AppController=_ts_decorate([(0,_common.Controller)(),_ts_metadata("design:type",Function),_ts_metadata("design:paramtypes",[typeof _allianceinternalnodeutilities.LoggerService==="undefined"?Object:_allianceinternalnodeutilities.LoggerService,typeof _config.ConfigService==="undefined"?Object:_config.ConfigService,typeof _axios.HttpService==="undefined"?Object:_axios.HttpService])],AppController);return AppController}const loader=`
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"createAppController",{enumerable:true,get:function(){return createAppController}});const _axios=require("@nestjs/axios");const _common=require("@nestjs/common");const _config=require("@nestjs/config");const _terminus=require("@nestjs/terminus");const _allianceinternalnodeutilities=require("@telia-ace/alliance-internal-node-utilities");const _express=require("express");const _graphqlrequest=require("graphql-request");const _config1=require("./config");const _graphql=require("./graphql");function _ts_decorate(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)if(d=decorators[i])r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r;return c>3&&r&&Object.defineProperty(target,key,r),r}function _ts_metadata(k,v){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(k,v)}function _ts_param(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}}function createAppController({}){let AppController=class AppController{signin(){}catchall(){return""}check(){return this.healthService.check([()=>this.redisHealthCheck.isHealthy()])}async cookiePolicy(){const policyUrl=this.configService.getOrThrow(_config1.ConfigKeys.WebprovisionsDistributionCookiePolicyUrl);const{data}=await this.httpService.axiosRef.get(policyUrl);return data}async index(req,workspaceSlug){let userHasAccess=false;try{const objectId=req.oidc.user.sub;const{user}=await (0,_graphqlrequest.request)(this.configService.getOrThrow(_allianceinternalnodeutilities.SharedConfigKeys.DbEndpoint),_graphql.GetUserDocument,{objectId,workspaceSlug},{authorization:(0,_allianceinternalnodeutilities.createSystemUserToken)(this.configService)});userHasAccess=!!user.id}catch{}if(!userHasAccess){return htmlTemplate(unauthorizedPortalBody())}const distribution={opts:{},url:this.configService.getOrThrow(_config1.ConfigKeys.WebprovisionsDistributionUrl)};if(!req.query["wp-tag"]&&!req.query["wp-version"]){distribution.opts.tag=this.configService.getOrThrow(_config1.ConfigKeys.WebprovisionsTag)}this.logger.info("opening portal",{user:req.oidc.user,distribution,workspaceSlug});return htmlTemplate(portalBody({distribution,workspaceSlug}))}constructor(logger,configService,httpService,healthService,redisHealthCheck){this.logger=logger;this.configService=configService;this.httpService=httpService;this.healthService=healthService;this.redisHealthCheck=redisHealthCheck}};_ts_decorate([(0,_common.Get)("/signin-oidc"),_ts_metadata("design:type",Function),_ts_metadata("design:paramtypes",[])],AppController.prototype,"signin",null);_ts_decorate([(0,_common.Get)("/favicon*"),_ts_metadata("design:type",Function),_ts_metadata("design:paramtypes",[])],AppController.prototype,"catchall",null);_ts_decorate([(0,_common.Get)("/health"),(0,_terminus.HealthCheck)(),_ts_metadata("design:type",Function),_ts_metadata("design:paramtypes",[])],AppController.prototype,"check",null);_ts_decorate([(0,_common.Get)(["/:workspace/cookie-policy"]),_ts_metadata("design:type",Function),_ts_metadata("design:paramtypes",[])],AppController.prototype,"cookiePolicy",null);_ts_decorate([(0,_common.Get)(["/:workspace*"]),_ts_param(0,(0,_common.Req)()),_ts_param(1,(0,_common.Param)("workspace")),_ts_metadata("design:type",Function),_ts_metadata("design:paramtypes",[typeof _express.Request==="undefined"?Object:_express.Request,String])],AppController.prototype,"index",null);AppController=_ts_decorate([(0,_common.Controller)(),_ts_metadata("design:type",Function),_ts_metadata("design:paramtypes",[typeof _allianceinternalnodeutilities.LoggerService==="undefined"?Object:_allianceinternalnodeutilities.LoggerService,typeof _config.ConfigService==="undefined"?Object:_config.ConfigService,typeof _axios.HttpService==="undefined"?Object:_axios.HttpService,typeof _terminus.HealthCheckService==="undefined"?Object:_terminus.HealthCheckService,typeof _allianceinternalnodeutilities.RedisHealthIndicator==="undefined"?Object:_allianceinternalnodeutilities.RedisHealthIndicator])],AppController);return AppController}const loader=`
|
|
2
2
|
<style>
|
|
3
3
|
.alliance-portal-loader-wrapper {
|
|
4
4
|
position: fixed;
|
package/dist/app.module.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"AppModule",{enumerable:true,get:function(){return AppModule}});const _axios=require("@nestjs/axios");const _common=require("@nestjs/common");const _config=require("@nestjs/config");const _allianceinternalnodeutilities=require("@telia-ace/alliance-internal-node-utilities");const _appcontroller=require("./app.controller");function _ts_decorate(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)if(d=decorators[i])r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r;return c>3&&r&&Object.defineProperty(target,key,r),r}let AppModule=class AppModule{};AppModule=_ts_decorate([(0,_common.Module)({controllers:[(0,_appcontroller.createAppController)({})],imports:[_config.ConfigModule.forRoot({isGlobal:true}),_allianceinternalnodeutilities.LoggerModule.forRoot(),_axios.HttpModule],exports:[]})],AppModule);
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"AppModule",{enumerable:true,get:function(){return AppModule}});const _axios=require("@nestjs/axios");const _common=require("@nestjs/common");const _config=require("@nestjs/config");const _terminus=require("@nestjs/terminus");const _allianceinternalnodeutilities=require("@telia-ace/alliance-internal-node-utilities");const _appcontroller=require("./app.controller");function _ts_decorate(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)if(d=decorators[i])r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r;return c>3&&r&&Object.defineProperty(target,key,r),r}let AppModule=class AppModule{};AppModule=_ts_decorate([(0,_common.Module)({controllers:[(0,_appcontroller.createAppController)({})],imports:[_config.ConfigModule.forRoot({isGlobal:true}),_terminus.TerminusModule,_allianceinternalnodeutilities.LoggerModule.forRoot(),_axios.HttpModule],exports:[],providers:[_allianceinternalnodeutilities.RedisHealthIndicator]})],AppModule);
|
package/dist/auth.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"auth",{enumerable:true,get:function(){return auth}});const _allianceinternalnodeutilities=require("@telia-ace/alliance-internal-node-utilities");const _graphqlrequest=require("graphql-request");const _jose=require("jose");const _config=require("./config");const _graphql=require("./graphql");function auth(configService,logger){const middleware=(0,_allianceinternalnodeutilities.authMiddleware)(configService,{baseURL:configService.getOrThrow(_config.ConfigKeys.ServiceBaseUrl).replace("{{port}}",configService.getOrThrow(_allianceinternalnodeutilities.SharedConfigKeys.ServicePort)),clientSecret:configService.getOrThrow(_config.ConfigKeys.AuthClientSecret),clientID:configService.getOrThrow(_config.ConfigKeys.AuthClientId),authorizationParams:{response_type:configService.getOrThrow(_config.ConfigKeys.AuthResponseType),scope:configService.getOrThrow(_config.ConfigKeys.AuthScopes)},sessionCookiePath:configService.get(_config.ConfigKeys.AuthCookiePath),issuerBaseURL:`${configService.getOrThrow(_config.ConfigKeys.AuthAuthority)}/.well-known/openid-configuration`,async afterCallback(_,__,session){const claims=(0,_jose.decodeJwt)(session.id_token);const user={displayName:claims.name||"Empty displayName",email:claims.email||claims.emails[0]||"Empty email",objectId:claims.sub||claims.oid};logger.trace("decoded JWT and mapped claims to user, getting or creating user in database",{claims,user});try{await (0,_graphqlrequest.request)(configService.getOrThrow(_allianceinternalnodeutilities.SharedConfigKeys.DbEndpoint),_graphql.GetOrCreateUserDocument,{input:user},{authorization:(0,_allianceinternalnodeutilities.createSystemUserToken)(configService)});logger.trace("added user to database, if it did not already exist")}catch{}const skipGroupClaimCheck=configService.get(_config.ConfigKeys.AuthSkipGroupClaimCheck)==="true";if(!skipGroupClaimCheck){const type=hasEnterpriseAdminRole(claims)?"system-admin":"user";logger.trace("updating user type according to user claims",{type});try{await (0,_graphqlrequest.request)(configService.getOrThrow(_allianceinternalnodeutilities.SharedConfigKeys.DbEndpoint),_graphql.SetUserTypeDocument,{input:{objectId:user.objectId,type}},{authorization:(0,_allianceinternalnodeutilities.createSystemUserToken)(configService)});logger.trace("user type updated")}catch{}}return session}});return(req,res,next)=>{if(req.url.startsWith("/health")){return next()}return middleware(req,res,next)}}function hasEnterpriseAdminRole(claims){if(!claims.groups){return false}const aceEnterpriseAdminRoleId="PROD_ACE_Enterprise_Admins";return claims.groups.includes(aceEnterpriseAdminRoleId)}
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});const _config=require("@nestjs/config");const _core=require("@nestjs/core");const _allianceinternalnodeutilities=require("@telia-ace/alliance-internal-node-utilities");const
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});const _config=require("@nestjs/config");const _core=require("@nestjs/core");const _allianceinternalnodeutilities=require("@telia-ace/alliance-internal-node-utilities");const _appmodule=require("./app.module");const _auth=require("./auth");async function startPortal(){const app=await _core.NestFactory.create(_appmodule.AppModule,{bufferLogs:true});const configService=app.get(_config.ConfigService);const logger=await app.resolve(_allianceinternalnodeutilities.LoggerService);app.useLogger(logger);app.flushLogs();app.use((0,_auth.auth)(configService,logger));app.useGlobalInterceptors(new _allianceinternalnodeutilities.LoggerErrorInterceptor);app.useGlobalFilters(new _allianceinternalnodeutilities.AllianceExceptionFilter);await app.listen(configService.getOrThrow(_allianceinternalnodeutilities.SharedConfigKeys.ServicePort))}startPortal();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@telia-ace/alliance-portal",
|
|
3
|
-
"version": "1.0.7-next.
|
|
3
|
+
"version": "1.0.7-next.2",
|
|
4
4
|
"description": "ACE Alliance portal",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"author": "Telia Company AB",
|
|
@@ -18,12 +18,13 @@
|
|
|
18
18
|
"@nestjs/config": "^3.1.1",
|
|
19
19
|
"@nestjs/core": "^10.2.7",
|
|
20
20
|
"@nestjs/platform-express": "^10.2.7",
|
|
21
|
-
"@telia-ace/alliance-internal-node-utilities": "1.0.4-next.
|
|
21
|
+
"@telia-ace/alliance-internal-node-utilities": "1.0.4-next.2",
|
|
22
22
|
"express": "^4.18.2",
|
|
23
23
|
"graphql": "^16.8.1",
|
|
24
24
|
"graphql-request": "^6.1.0",
|
|
25
25
|
"jose": "^4.15.3",
|
|
26
26
|
"reflect-metadata": "^0.1.13",
|
|
27
|
+
"@nestjs/terminus": "^10.1.1",
|
|
27
28
|
"rxjs": "^7.8.1"
|
|
28
29
|
},
|
|
29
30
|
"devDependencies": {
|