Getting started with QEWD, mg-dbx and Cache/IRIS on Windows

317 views
Skip to first unread message

rtweed

unread,
May 10, 2020, 5:49:25 AM5/10/20
to Enterprise Web Developer Community
To save people hunting around for this information, I've put it all together here:

1) Install the latest version of Node.js for Windows (see https:nodejs.org)

I'd currently recommend 12.x

2) Create a new directory for your QEWD installation, eg C:\qewd-up

and then create sub-directories: C:\qewd-up\apis   and C:\qewd-up\apis\getInfo

and subdirectory: C:\qewd-up\configuration


3) Create the following files

a) C:\qewd-up\package.json    containing:

{
  "name": "qewd-up",
  "version": "1.0.0",
  "description": "Automated QEWD Builder",
  "author": "Rob Tweed <rtw...@mgateway.com>",
  "scripts": {
    "start": "node node_modules/qewd/up/run_native"
  },
  "dependencies": {
    "qewd": "",
    "qewd-transform-json": ""
  }
}

Note the double-quotes - this is a JSON file and will fail if not proper JSON syntax!

b) C:\qewd-up\configuration\config.json   containing:

  {
    "qewd": {
      "managementPassword": "qewdtest",
      "serverName": "My QEWD Server",
      "poolSize": 2,
      "port": 8080,
      "database": {
        "type": "dbx",
        "params": {
          "database": "Cache",
          "path": "C:\\Cache\\intersystems\\Mgr",
          "username": "_SYSTEM'",
          "password": "SYS",
          "namespace": "USER"
        }
      }
    }
  }

Change the Cache path, username, password and namespace as appropriate to your Cache setup

If you're using IRIS, change this line:

          "database": "IRIS",

and, of course, modify the path, username, password and namespace as appropriate

Try starting with a poolsize of between 2 and 4.  A rough initial rule of thumb is set it to the number of CPU cores minus 1 (on the server that runs QEWD and Cache/IRIS.   QEWD will consume Cache/IRIS licenses only up to the poolsize.  You won't ever run out of Cache/IRIS licenses as any excess activity will be queued (hence the name!)

Change the port to something other than 8080 if you wish - this is the port the QEWD webserver will listen on.


4) If you want to try out a simply REST API:


c) C:\qewd-up\configuration\routes.json   containing:

  [
    {
      "uri": "/api/info",
      "method": "GET",
      "handler": "getInfo"
    }
  ]

d) C:\qewd-up\apis\getInfo\index.js   containing:

  module.exports = function(args, finished) {
    finished({
      info: {
        server: 'Qewd-Up Native',
        arch: process.arch,
        platform: process.platform,
        versions: process.versions,
        memory: process.memoryUsage(),
      }
    });
  };


5) *** One-off step *** to install your QEWD setup


cd C:\qewd-up
npm install

This will automatically install QEWD and its dependencies into C:\qewd-up\node_modules



6) Subsequently and thereafter, to start QEWD:

  npm start


First time you start QEWD + Cache (or IRIS) like this, it will automatically fetch the correct version of the mg-dbx connector and install/configure it for you!  No more messing about with cache.node files!


You should now be able to start qewd-monitor:


and try the pre-configured test REST API


If those both work OK, then you're good to go and ready to start developing.


Then see the tutorials (REST and Interactive apps) at:  https://github.com/robtweed/qewd-baseline


You're running in Native Monolith mode...but how you create APIs and Apps is just the same as for the Dockerised version

In QEWD-Up, it's just a matter of putting the right things in the correctly-named directories - QEWD-Up finds them and does everything else for you!


rtweed

unread,
May 11, 2020, 9:55:13 AM5/11/20
to Enterprise Web Developer Community
 *** UPDATE !!!! ****

I've now modified the QEWD Native startup to automatically install all the latest new mg-webComponents front-end technology, so it's available to try out.  Also automatically installed is the new adminui version of QEWD Monitor which is built around this webComponent technology and which showcases what's possible with it.

There's one important change you need to make to the package.json file.  It should now look like this:

{
 
"name": "qewd-up",
 
"version": "1.0.0",
 
"description": "Automated QEWD Builder",
 
"author": "Rob Tweed <rtw...@mgateway.com>",
 
"scripts": {
   
"start": "node node_modules/qewd/up/run_native"
 
},
 
"dependencies": {

   
"git-clone": "^0.1.0",
   
"qewd": "",
   
"qewd-transform-json": ""
 
}
}

** Specifically, there's an extra dependency for the git-clone module. ***

If you've already installed QEWD for Windows and Cache/IRIS, simply delete the node_modules directory, make the change above to the package.json file and rerun:

  npm install

You'll get all the very latest updates to QEWD.


When you first run:

  npm start

all the new mg-webComponents code and the qewd-monitor-adminui application will be added to your QEWD setup.


To start qewd-monitor-adminui, simply use the URL:


  http://xx.xx.xx.xx:8080/qewd-monitor-adminui

Change the IP address and port as necessary

Log in as usual using the QEWD Management password.

You'll find it provides all the same features as the original qewd-monitor, but not only looks prettier, but also contains a very cool feature to try out - click the "QEWD JSdb Inspector" option and take a look

Read all about mg-webComponent:


and the adminui webComponent library:



Enjoy!
Rob

rtweed

unread,
May 13, 2020, 1:48:06 PM5/13/20
to Enterprise Web Developer Community
 Suggested next steps when you get your QEWD/Windows/Cache or IRIS / mg-dbx system running:

Read the tutorials here for REST and interactive applications:


To learn all about the QEWD-JSdb projection of the Cache/IRIS database:


 

wdbacker

unread,
May 14, 2020, 3:10:22 AM5/14/20
to Enterprise Web Developer Community
Very clear tutorial, makes it very easy to get started, thanks! :-) 

Ward 

FutureWeb.io

unread,
Jun 11, 2020, 8:21:38 AM6/11/20
to Enterprise Web Developer Community
Hi,

I have tried the above example and so far working well with mg-dbx plugin for IRIS.

I have a use case like below to save an object value property to a class.

Example class

Class MyApp.Main.Patient Extends %Persistent
{

Property PatientID As %String [Required];

Property PrimaryCarePhysician As Doctor;

Property Allergies As list Of PatientAllergy;
}

To save 'PrimaryCarePhysician' to the above class from QEWD, I have tried below code.

   let primaryCarePhysician = body.PrimaryCarePhysician;

   let db = this.db.dbx;

   let pCarePhysician = db.classmethod('MyApp.Main.Patient', '%New');

   pCarePhysician.setproperty('PrimaryCarePhysician', primaryCarePhysician); 

  Since PrimaryCarePhysician is a object value property, setproperty is not working and the primaryCarePhysician field value can't save to the MyApp.Main.Patient class.

  Would like to know how to save and retrieve PrimaryCarePhysician and Allergies object value properties to a table using mg-dbx similar to a setproperty way?
  
  In IRIS we normally use PrimaryCarePhysicianSetObjectId and PrimaryCarePhysicianGetObjectId methods for set and get.

 Thanks,

Chris Munt

unread,
Jun 11, 2020, 9:34:15 AM6/11/20
to Enterprise Web Developer Community
Thanks for the information.  I think I can see what you're trying to achieve and I'll investigate why this doesn't seem to be working through the mg-dbx interface and what can be done to address the problem.

In the meantime it should be possible to wrap this functionality in a COS function so that the mechanics of embedded Object References (orefs) are handled entirely on the Cache/IRIS side.

Regards,

Chris.

rtweed

unread,
Jun 11, 2020, 11:00:40 AM6/11/20
to Enterprise Web Developer Community
Note that QEWD makes the mg-dbx function() API available via this.db.dbx.function()

Rob

FutureWeb.io

unread,
Jun 11, 2020, 11:42:55 PM6/11/20
to Enterprise Web Developer Community
Thanks Chris

FutureWeb.io

unread,
Jun 14, 2020, 8:33:31 AM6/14/20
to Enterprise Web Developer Community
Thanks Rob. 

Not sure what is the reason. 

When I access the the IRIS database using the SQL using mg-dbx, sometimes it returns 0 records. 

Example:

let db = this.db.dbx;

let query = db.sql({sql: "select * from SQLUser.Person", type: "IRIS"});

let result = query.execute();
let results = [];

while ((result = query.next()) !== null) {
results.push(result);
}

If I execute the same query in the IRIS System Management Portal it returns the records.

I am using IRIS with 3 concurrent users. 

Anyone facing the same issue using mg-dbx connector with IRIS?

Regards,

Rob Tweed

unread,
Jun 14, 2020, 8:46:08 AM6/14/20
to enterprise-web-de...@googlegroups.com
Which version of mg-dbx are you using? (Qewd-monitor can be used to provide this info)
Rob

Sent from my iPhone

On 14 Jun 2020, at 13:33, FutureWeb.io <iamjos...@gmail.com> wrote:


--
You received this message because you are subscribed to the Google Groups "Enterprise Web Developer Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to enterprise-web-develope...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/enterprise-web-developer-community/1b254484-5f18-4c03-9c95-f47acd3f2669o%40googlegroups.com.

FutureWeb.io

unread,
Jun 14, 2020, 8:54:46 AM6/14/20
to Enterprise Web Developer Community
Hi Rob,

Please see the below info

Node.jsv12.16.3 / Express.js / socket.io
Database Interfacemg-dbx: version: 2.0.12
DatabaseIRIS version: 2019.1 build 111
QEWD2.50.6
ewd-qoper83.18.1
ewd-document-store2.1.19
ewd-qoper8-express3.25.3


Thanks,
To unsubscribe from this group and stop receiving emails from it, send an email to enterprise-web-developer-community+unsubscribe@googlegroups.com.

Rob Tweed

unread,
Jun 14, 2020, 9:48:51 AM6/14/20
to enterprise-web-de...@googlegroups.com
Could you try the very latest - 2.0.13. Easiest way to install it is to go to your node_modules folder and delete the mg-dbx.node file. Then restart QEWD. It should notice that mg-dbx is missing and will fetch the latest version. Use qewd-monitor to confirm.

See if the latest version is more reliable 

Rob

Sent from my iPhone

On 14 Jun 2020, at 13:54, FutureWeb.io <iamjos...@gmail.com> wrote:


To unsubscribe from this group and stop receiving emails from it, send an email to enterprise-web-develope...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/enterprise-web-developer-community/37f3a803-631d-41e5-b500-afdb77be72e2o%40googlegroups.com.

FutureWeb.io

unread,
Jun 14, 2020, 10:21:39 AM6/14/20
to Enterprise Web Developer Community
Hi Rob,


Still issue exist with mg-dbx version 2.0.13. 

Database Interfacemg-dbx: version: 2.0.13

 If I change the SQL and recompile from QEWD and restart micro-service, then it will work. This issue exist in most of the end points which returns a list of records.

Kind regards,

Rob Tweed

unread,
Jun 14, 2020, 10:26:41 AM6/14/20
to enterprise-web-de...@googlegroups.com
Did you update mg-dbx on all your qewd instances?

Rob

Sent from my iPhone
To unsubscribe from this group and stop receiving emails from it, send an email to enterprise-web-develope...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/enterprise-web-developer-community/cf73e969-6004-46d6-ac03-b1993b58a8dfo%40googlegroups.com.

FutureWeb.io

unread,
Jun 14, 2020, 10:29:08 AM6/14/20
to Enterprise Web Developer Community

Yes Rob, I have updated mg-dbx and restarted (two times) all my micro-service instances.

Regards,

Rob Tweed

unread,
Jun 14, 2020, 10:32:28 AM6/14/20
to enterprise-web-de...@googlegroups.com
Ok we’ll need to get Chris to investigate

I’ll check it out on my setup tomorrow also. 2.0.13 fixed an issue when running interactive apps with sql, so I’m surprised it’s giving problems when running Rest requests - it’s basically doing the same stuff at the mg-dbx level

Rob

Sent from my iPhone

On 14 Jun 2020, at 15:29, FutureWeb.io <iamjos...@gmail.com> wrote:


To unsubscribe from this group and stop receiving emails from it, send an email to enterprise-web-develope...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/enterprise-web-developer-community/2a39f3e0-09cc-4866-ba67-d88aaf16faa1o%40googlegroups.com.

Rob Tweed

unread,
Jun 14, 2020, 10:39:12 AM6/14/20
to enterprise-web-de...@googlegroups.com
In the meantime can you try moving your sql into an ObjectScript function and invoke it via this.db.dbx.function() - that should work ok as a workaround 

Rob

Sent from my iPhone

On 14 Jun 2020, at 15:32, Rob Tweed <rob....@gmail.com> wrote:

Ok we’ll need to get Chris to investigate

FutureWeb.io

unread,
Jun 14, 2020, 10:43:53 AM6/14/20
to Enterprise Web Developer Community
This is another issue when I try to get the total number of records in a table after getting top 20 rows.

query.cleanup();

let total = db.sql({sql: "select count(*) AS rowCount from TableName", type: "IRIS"});
let totalCount = total.execute();

console.log(totalCount);

while ((totalCount = total.next()) !== null) {
rowCount = totalCount.rowCount;
}

total.cleanup();

and the above console.log returns below error most of the time

{
  sqlcode: 0,
  sqlstate: '00000',
  error: 'ERROR #5475: Error compiling routine: %sqlcq.NAMESPACE.cls431.  Errors:  %sqlcq.NAMESPACE.cls431.cls(%OnNew+7) : <ILLEGAL VALUE>SerializeArray+23^%qaqplansave :'
}

Thanks,

FutureWeb.io

unread,
Jun 14, 2020, 10:48:49 AM6/14/20
to Enterprise Web Developer Community
I will give a try tomorrow with object scripts. 

Jose

FutureWeb.io

unread,
Jun 14, 2020, 10:57:14 AM6/14/20
to Enterprise Web Developer Community
To work with the object scripts, we need to solve the first issue we discussed on June 11th. Other wise I can't get the relationship to other tables using objects.

I think Chris will have look on that soon.

Kind regards,
Jose Thomas

Rob Tweed

unread,
Jun 14, 2020, 11:56:23 AM6/14/20
to enterprise-web-de...@googlegroups.com
You should be able to implement that code in an ObjectScript function also. Once you invoke a function, you have full access to the IRIS programming environment.

Rob

Sent from my iPhone

On 14 Jun 2020, at 15:57, FutureWeb.io <iamjos...@gmail.com> wrote:


To unsubscribe from this group and stop receiving emails from it, send an email to enterprise-web-develope...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/enterprise-web-developer-community/a5d6dd7b-adb0-4f62-bba0-b58160b79582o%40googlegroups.com.

Chris Munt

unread,
Jun 14, 2020, 11:59:57 AM6/14/20
to Enterprise Web Developer Community
Both queries mentioned in this thread seem to work fine on my system (see code below).  Check that you have the correct version  of the %zmgsi routines in IRIS:

=======
USER>do ^%zmgsi
 
M/Gateway Developments Ltd - Service Integration Gateway
Version: 3.3; Revision 8 (25 May 2020)
=======

If these routines are not there (or out of date) then you should find the new ones in the NPM/GitHub distribution in the /m subdirectory.

Regards,

Chris.

let query = db.sql({sql: "select * from SQLUser.Person", type: "IRIS"});
let result = query.execute();
let results = [];
while ((result = query.next()) !== null) {
    //results.push(result);
    console.log("Query Result: " + JSON.stringify(result, null, '\t'));
}
query.cleanup()
let total = db.sql({sql: "select count(*) AS rowCount from SQLUser.Person", type: "IRIS"});
let totalCount = total.execute();
console.log("\ntotalCount: " + JSON.stringify(totalCount, null, '\t'));

while ((totalCount = total.next()) !== null) {
    //rowCount = totalCount.rowCount;
    console.log("Query Result (totalCount): " + JSON.stringify(totalCount, null, '\t'));
}
total.cleanup()

FutureWeb.io

unread,
Jun 14, 2020, 8:29:31 PM6/14/20
to Enterprise Web Developer Community
Hi Chris,

Thanks for checking it.

I am also using the same version. Please see the below image

The issue will not occur if we have few records. Most of my table contains tens of thousands of records and some table contains around 30 fields.

I will recreate the issue with Person table and update here with sample data later.

Kind regards,

FutureWeb.io

unread,
Jun 15, 2020, 5:47:48 AM6/15/20
to Enterprise Web Developer Community
Hi,

When I converted to object scripts it returns the result set, but added back slash to the JSON as seen below. 

{"ok":true,"total":2,"rows":"[{\"ID\":\"1\",\"Name\":\"2\",\"Email\":\"\"},{\"ID\":\"2\",\"Name\":\"2\",\"Email\":\"\"}]"

Is this something we can fix in QEWD?

Thanks,

Chris Munt

unread,
Jun 15, 2020, 6:11:05 AM6/15/20
to Enterprise Web Developer Community
If the table queried is huge in both dimensions I guess some IRIS limit might be breached.  mg-dbx will cache query results in global ^mgsqls, so there will need to be enough space in the underlying IRIS.dat file to accommodate it if the query returns large volumes of data.  We don't have the facility to use a different 'spool' global at this time.

Either way, I would expect a suitable error message to be sent back in the JSON object returned from the query 'execute' method.  For example:

query.execute() Result: {
        "sqlcode": -1,
        "sqlstate": "HY000",
        "error": "<UNDEFINED>sqleisc+9^%zmgsis *v"
}

Regards,

Chris.

Rob Tweed

unread,
Jun 15, 2020, 6:16:07 AM6/15/20
to Enterprise Web Developer Community
I'll let Chris comment on the format of the resultset returned via the function call - looks like it's being double-JSON stringified

However, it's also worth noting that there's a cool trick you can do to pass complex (ie JSON) data in and out of an ObjectScript /M function and your Node.js Worker process.

- first thing is to recognise that process.pid in Node will be the same as $J in ObjectScript (or M if using YottaDB), since mg-dbx creates an in-process connection with Cache/IRIS/YottaDB

- to pass a complex object from your Node.js message handler into an ObjectScript / M function, map the JSON into a temporary global, subscripted by process.pid, eg:

      let temp = this.db.use('temp', process.pid);
      temp.delete(); // just in case it already has stuff in it
      temp.setDocument(myJSON);
      // now invoke the function, eg
      let result = this.db.dbx.function('someFn');

In the ObjectScript/M function, you now have the JSON data mapped into ^temp($j), so you can use/access it from there

- to do the reverse, basically reverse the process.  First, in ObjectScript / M, merge your results array into ^temp($j).  Then
on the Node.js side:

       let result = this.db.dbx.function('someFn');
       let jsonResponse = temp.getDocument(true);
       temp.delete();

Hopefully this may come in handy

Rob






Chris Munt

unread,
Jun 15, 2020, 6:36:09 AM6/15/20
to Enterprise Web Developer Community
We'd need to know more about the context of this as I don't recognize the JSON construct cited as being anything that the mg-dbx tier will generate.  It looks like a JSON array is being returned (from somewhere) as a string - hence the 'doubling-up' of the quotes inside the array; whereas the array should be resolved as a JSON array before embedding in the 'outer' JSON object as the 'rows' attribute.

Regards,

Chris.
Message has been deleted

FutureWeb.io

unread,
Jun 15, 2020, 9:28:32 AM6/15/20
to Enterprise Web Developer Community
Hi Chris,
If I parse the result returned from the mg-dbx it works fine.

Example: 
Data returned from IRIS:

{"records":[{"ID":"1","State":"4"}],"total":1393}

let db = this.db.dbx;
let results = db.classmethod('User.Persons', 'GetRecords');

finished(
{ok: true, rows: JSON.parse(results)}
);

If don't parse results, it will double stringify on the http response in browser

I usually bring only less than 100 (pagination of 25, 50, 75,100, which is selected by the user) records in a single request from the front-end.

Thanks,

Rob Tweed

unread,
Jun 15, 2020, 10:33:03 AM6/15/20
to Enterprise Web Developer Community
Yes - due to the nature of the Node.js child_process communication protocol, the transfer of the object argument of the QEWD finished() function between the QEWD Worker and Master processes involves a JSON.stringify() (on the Worker side) and a JSON.parse() (on the Master Process side).  If the output from the db.classMethod() is, itself, stringified JSON, then, naturally, if you put that through finished(), it will end up double stringified on the Master process (and hence on your REST client).  So by parsing it before putting it through finished() you're ending up with what you want on your REST client




On Mon, 15 Jun 2020 at 14:23, FutureWeb.io <iamjos...@gmail.com> wrote:
Hi Chris,
If I parse the result returned from the mg-dbx it works fine.

Example: 
Data returned from IRIS:

W ##Class(Data.WRMS.Site).GetPersons()

{"records":[{"ID":"1","State":"4"}],"total":1393}

let db = this.db.dbx;
let results = db.classmethod('Data.WRMS.Site', 'GetRecords');

finished(
{ok: true, rows: JSON.parse(results)}
);

If don't parse, it will double stringify

Thanks,

On Monday, June 15, 2020 at 8:36:09 PM UTC+10, Chris Munt wrote:

--
You received this message because you are subscribed to the Google Groups "Enterprise Web Developer Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to enterprise-web-develope...@googlegroups.com.


--
Rob Tweed
Director, M/Gateway Developments Ltd
http://www.mgateway.com

FutureWeb.io

unread,
Jun 15, 2020, 8:02:36 PM6/15/20
to Enterprise Web Developer Community
This is really a cool way to handle big payload like a JSON loaded from a file.

Regards,

FutureWeb.io

unread,
Jun 16, 2020, 7:54:49 AM6/16/20
to Enterprise Web Developer Community
Hi,

Even by calling the object script, sometimes it return null, but I can see the object script method has been executed and IRIS is ready to send JSON.

let db = this.db.dbx;
let results = db.classmethod('Data.Persons', 'GetPersons');

results return null

Regards,
To unsubscribe from this group and stop receiving emails from it, send an email to enterprise-web-developer-community+unsubscribe@googlegroups.com.

Rob Tweed

unread,
Jun 16, 2020, 9:15:14 AM6/16/20
to Enterprise Web Developer Community
That''s invoking an IRIS class method

What I've been referring to is invoking a Mumps extrinsic function, from inside of which you can invoke IRIS class methods, SQL etc

ie the equivalent of s result=$$myFn^myRoutine(input1,input2)

which is invoked via let result = this.db.dbx.function('myFn^myRoutine', input1, input2)

Could you try this approach and see what happens?

Rob



To unsubscribe from this group and stop receiving emails from it, send an email to enterprise-web-develope...@googlegroups.com.


--
Rob Tweed
Director, M/Gateway Developments Ltd
http://www.mgateway.com

--
You received this message because you are subscribed to the Google Groups "Enterprise Web Developer Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to enterprise-web-develope...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/enterprise-web-developer-community/5b7471c9-1e69-4968-a602-4eb42400ad50o%40googlegroups.com.

FutureWeb.io

unread,
Jun 16, 2020, 12:19:58 PM6/16/20
to Enterprise Web Developer Community
Hi Rob,

I have added the SSL details in the orchestrator config file, just under the 'params' block as below

      "ssl": {
        "keyFilePath":"C:\\ssl\\xxx_crt",
        "certFilePath": "C:\\ssl\\xxx_key"
      }

Restarted the orchestrator, and when I initiate a POST request from postman, it returns an error like below

Error: write EPROTO 4208791528:error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBE

Is there any other setup in QEWD or is it node issue?

Thanks,
To unsubscribe from this group and stop receiving emails from it, send an email to enterprise-web-developer-community+unsubscribe@googlegroups.com.


--
Rob Tweed
Director, M/Gateway Developments Ltd
http://www.mgateway.com

--
You received this message because you are subscribed to the Google Groups "Enterprise Web Developer Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to enterprise-web-developer-community+unsubscribe@googlegroups.com.

Rob Tweed

unread,
Jun 16, 2020, 1:10:20 PM6/16/20
to Enterprise Web Developer Community
That doesn't look familiar - I think that's going to be a Node.js / SSL issue.  Check on Google/StackOverflow

BTW the alternative (and some would say better) approach is to proxy the QEWD orchestrator behind NGINX, and let NGINX look after the SSL side of things

Rob

To unsubscribe from this group and stop receiving emails from it, send an email to enterprise-web-develope...@googlegroups.com.


--
Rob Tweed
Director, M/Gateway Developments Ltd
http://www.mgateway.com

--
You received this message because you are subscribed to the Google Groups "Enterprise Web Developer Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to enterprise-web-develope...@googlegroups.com.


--
Rob Tweed
Director, M/Gateway Developments Ltd
http://www.mgateway.com

--
You received this message because you are subscribed to the Google Groups "Enterprise Web Developer Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to enterprise-web-develope...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/enterprise-web-developer-community/41620d27-70fe-49b5-950c-7d9eb6898d83o%40googlegroups.com.

FutureWeb.io

unread,
Jun 17, 2020, 5:25:10 AM6/17/20
to Enterprise Web Developer Community

SSL issue has been fixed. ssl node was in wrong place in config.json and understood it by looking at master.js
To unsubscribe from this group and stop receiving emails from it, send an email to enterprise-web-developer-community+unsubscribe@googlegroups.com.


--
Rob Tweed
Director, M/Gateway Developments Ltd
http://www.mgateway.com

--
You received this message because you are subscribed to the Google Groups "Enterprise Web Developer Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to enterprise-web-developer-community+unsubscribe@googlegroups.com.


--
Rob Tweed
Director, M/Gateway Developments Ltd
http://www.mgateway.com

--
You received this message because you are subscribed to the Google Groups "Enterprise Web Developer Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to enterprise-web-developer-community+unsubscribe@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages