@@ -5,7 +5,7 @@ import { WebSocketClient, QueuedMessage } from "../WebSocketClient";
55import { QueryMessage } from "./QueryMessage" ;
66import { Base , Rights , WellknownIds } from "../base" ;
77import { SigninMessage } from "./SigninMessage" ;
8- import { User } from "../User" ;
8+ import { User , NoderedUser } from "../User" ;
99import { Auth } from "../Auth" ;
1010import { Crypt } from "../Crypt" ;
1111import { TokenUser } from "../TokenUser" ;
@@ -753,23 +753,30 @@ export class Message {
753753 private async EnsureNoderedInstance ( cli : WebSocketClient ) : Promise < void > {
754754 this . Reply ( ) ;
755755 var msg : EnsureNoderedInstanceMessage ;
756- var user : User ;
756+ var user : NoderedUser ;
757757 try {
758758 cli . _logger . debug ( "[" + cli . user . username + "] EnsureNoderedInstance" ) ;
759759 msg = EnsureNoderedInstanceMessage . assign ( this . data ) ;
760760 var name = await this . GetInstanceName ( cli , msg . _id , msg . name ) ;
761761 var _id = msg . _id ;
762762 if ( _id === null || _id === undefined || _id === "" ) _id = cli . user . _id ;
763+
764+ var users = await Config . db . query < NoderedUser > ( { _id : _id } , null , 1 , 0 , null , "users" , cli . jwt ) ;
765+ if ( users . length == 0 ) {
766+ throw new Error ( "Unknown userid " + _id ) ;
767+ }
768+ user = NoderedUser . assign ( users [ 0 ] ) ;
769+
770+
763771 var namespace = Config . namespace ;
764772 var hostname = Config . nodered_domain_schema . replace ( "$nodered_id$" , name ) ;
765773
766774 var nodereduser = await User . FindById ( _id , cli . jwt ) ;
767775 var tuser : TokenUser = new TokenUser ( nodereduser ) ;
768776 var nodered_jwt : string = Crypt . createToken ( tuser , Config . personalnoderedtoken_expires_in ) ;
769777
770- var queue_prefix : string = "" ;
771778 if ( Config . force_queue_prefix ) {
772- queue_prefix = nodereduser . username ;
779+ user . nodered . queue_prefix = nodereduser . username ;
773780 }
774781
775782 cli . _logger . debug ( "[" + cli . user . username + "] ensure nodered role " + name + "noderedadmins" ) ;
@@ -799,14 +806,15 @@ export class Message {
799806 image : Config . nodered_image ,
800807 imagePullPolicy : "Always" ,
801808 ports : [ { containerPort : 80 } , { containerPort : 5858 } ] ,
809+ resources : user . nodered . resources ,
802810 env : [
803811 { name : "saml_federation_metadata" , value : Config . saml_federation_metadata } ,
804812 { name : "saml_issuer" , value : Config . saml_issuer } ,
805813 { name : "saml_baseurl" , value : Config . protocol + "://" + hostname + "/" } ,
806814 { name : "nodered_id" , value : name } ,
807815 { name : "nodered_sa" , value : nodereduser . username } ,
808816 { name : "jwt" , value : nodered_jwt } ,
809- { name : "queue_prefix" , value : queue_prefix } ,
817+ { name : "queue_prefix" , value : user . nodered . queue_prefix } ,
810818 { name : "api_ws_url" , value : Config . api_ws_url } ,
811819 { name : "amqp_url" , value : Config . amqp_url } ,
812820 { name : "nodered_domain_schema" , value : hostname } ,
@@ -815,6 +823,8 @@ export class Message {
815823 { name : "port" , value : Config . port . toString ( ) } ,
816824 { name : "noderedusers" , value : ( name + "noderedusers" ) } ,
817825 { name : "noderedadmins" , value : ( name + "noderedadmins" ) } ,
826+ { name : "api_allow_anonymous" , value : user . nodered . api_allow_anonymous . toString ( ) } ,
827+ { name : "NODE_ENV" , value : Config . NODE_ENV } ,
818828 ] ,
819829 livenessProbe : {
820830 httpGet : {
@@ -889,6 +899,7 @@ export class Message {
889899 } catch ( error ) {
890900 this . data = "" ;
891901 cli . _logger . error ( error ) ;
902+ console . log ( JSON . stringify ( error , null , 2 ) ) ;
892903 //msg.error = JSON.stringify(error, null, 2);
893904 if ( msg !== null && msg !== undefined ) msg . error = "Request failed!"
894905 }
0 commit comments