From d9bfa9bb4b3d92a1357ccd22a97a222158e82002 Mon Sep 17 00:00:00 2001 From: Kasra Bigdeli Date: Wed, 5 Dec 2018 22:15:23 -0800 Subject: [PATCH] Reorganized directories --- app-backend/built/app.js | 2 +- app-backend/built/app.js.map | 2 +- app-backend/built/injection/Injector.js | 2 +- app-backend/built/injection/Injector.js.map | 2 +- .../system/SystemRouteSelfHostRegistry.js | 2 +- .../system/SystemRouteSelfHostRegistry.js.map | 2 +- .../built/routes/system/SystemRouter.js | 2 +- .../built/routes/system/SystemRouter.js.map | 2 +- app-backend/built/user/Authenticator.js | 2 +- app-backend/built/user/Authenticator.js.map | 2 +- app-backend/built/user/ServiceManager.js | 2 +- app-backend/built/user/ServiceManager.js.map | 2 +- app-backend/built/user/TemplateHelper.js | 2 +- app-backend/built/user/TemplateHelper.js.map | 2 +- .../built/user/system/CaptainManager.js | 692 ++++++++++++++++++ .../built/user/system/CaptainManager.js.map | 1 + .../built/user/system/CertbotManager.js | 288 ++++++++ .../built/user/system/CertbotManager.js.map | 1 + .../built/user/system/LoadBalancerManager.js | 393 ++++++++++ .../user/system/LoadBalancerManager.js.map | 1 + .../user/system/SelfHostedDockerRegistry.js | 156 ++++ .../system/SelfHostedDockerRegistry.js.map | 1 + .../utils/TemplateHelperVersionPrinter.js | 118 +++ .../utils/TemplateHelperVersionPrinter.js.map | 1 + app-backend/src/app.ts | 2 +- app-backend/src/injection/Injector.ts | 2 +- .../system/SystemRouteSelfHostRegistry.ts | 2 +- app-backend/src/routes/system/SystemRouter.ts | 2 +- app-backend/src/user/Authenticator.ts | 2 +- app-backend/src/user/ServiceManager.ts | 4 +- app-backend/src/user/TemplateHelper.ts | 2 +- .../src/user/{ => system}/CaptainManager.ts | 22 +- .../src/user/{ => system}/CertbotManager.ts | 8 +- .../user/{ => system}/LoadBalancerManager.ts | 12 +- .../SelfHostedDockerRegistry.ts} | 22 +- .../TemplateHelperVersionPrinter.ts | 4 +- 36 files changed, 1708 insertions(+), 56 deletions(-) create mode 100644 app-backend/built/user/system/CaptainManager.js create mode 100644 app-backend/built/user/system/CaptainManager.js.map create mode 100644 app-backend/built/user/system/CertbotManager.js create mode 100644 app-backend/built/user/system/CertbotManager.js.map create mode 100644 app-backend/built/user/system/LoadBalancerManager.js create mode 100644 app-backend/built/user/system/LoadBalancerManager.js.map create mode 100644 app-backend/built/user/system/SelfHostedDockerRegistry.js create mode 100644 app-backend/built/user/system/SelfHostedDockerRegistry.js.map create mode 100644 app-backend/built/utils/TemplateHelperVersionPrinter.js create mode 100644 app-backend/built/utils/TemplateHelperVersionPrinter.js.map rename app-backend/src/user/{ => system}/CaptainManager.ts (98%) rename app-backend/src/user/{ => system}/CertbotManager.ts (98%) rename app-backend/src/user/{ => system}/LoadBalancerManager.ts (98%) rename app-backend/src/user/{DockerRegistry.ts => system/SelfHostedDockerRegistry.ts} (92%) rename app-backend/src/{user => utils}/TemplateHelperVersionPrinter.ts (97%) diff --git a/app-backend/built/app.js b/app-backend/built/app.js index a4ac3d3..85867ff 100644 --- a/app-backend/built/app.js +++ b/app-backend/built/app.js @@ -6,7 +6,7 @@ const logger = require("morgan"); const cookieParser = require("cookie-parser"); const bodyParser = require("body-parser"); const httpProxyImport = require("http-proxy"); -const CaptainManager = require("./user/CaptainManager"); +const CaptainManager = require("./user/system/CaptainManager"); const BaseApi = require("./api/BaseApi"); const ApiStatusCodes = require("./api/ApiStatusCodes"); const Injector = require("./injection/Injector"); diff --git a/app-backend/built/app.js.map b/app-backend/built/app.js.map index 193b4a2..4206693 100644 --- a/app-backend/built/app.js.map +++ b/app-backend/built/app.js.map @@ -1 +1 @@ -{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app-backend/built/injection/Injector.js b/app-backend/built/injection/Injector.js index 7b6118c..223b1a2 100644 --- a/app-backend/built/injection/Injector.js +++ b/app-backend/built/injection/Injector.js @@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const DataStoreProvider = require("../datastore/DataStoreProvider"); const Authenticator = require("../user/Authenticator"); const CaptainConstants = require("../utils/CaptainConstants"); -const CaptainManager = require("../user/CaptainManager"); +const CaptainManager = require("../user/system/CaptainManager"); const ServiceManager = require("../user/ServiceManager"); const DockerApiProvider = require("../docker/DockerApi"); const BaseApi = require("../api/BaseApi"); diff --git a/app-backend/built/injection/Injector.js.map b/app-backend/built/injection/Injector.js.map index d0e08eb..4064a65 100644 --- a/app-backend/built/injection/Injector.js.map +++ b/app-backend/built/injection/Injector.js.map @@ -1 +1 @@ -{"version":3,"file":"Injector.js","sourceRoot":"","sources":["../../src/injection/Injector.ts"],"names":[],"mappings":";;AAAA,oEAAoE;AACpE,uDAAuD;AACvD,8DAA8D;AAC9D,yDAAyD;AACzD,yDAAyD;AACzD,yDAAyD;AACzD,0CAA0C;AAE1C,0CAA0C;AAG1C,2DAA2D;AAC3D,wDAAwD;AAExD,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,EAAE,CAAA;AAEzC,MAAM,kBAAkB,GAAG,EAAqC,CAAA;AAEhE;;GAEG;AACH,SAAgB,YAAY;IACxB,OAAO,UAAS,GAAY,EAAE,GAAa,EAAE,IAAkB;QAC3D,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;QAEzB,MAAM,CAAC,WAAW,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE,CAAA;QACzD,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAA;QAC/D,MAAM,CAAC,QAAQ,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC,gBAAgB,EAAE,CAAA;QAEzD,IACI,MAAM,CAAC,SAAS;YAChB,MAAM,CAAC,SAAS,KAAK,gBAAgB,CAAC,aAAa,EACrD;YACE,MAAM,cAAc,CAAC,WAAW,CAC5B,cAAc,CAAC,oBAAoB,EACnC,mBAAmB,CACtB,CAAA;SACJ;QAED,IAAI,EAAE,CAAA;IACV,CAAC,CAAA;AACL,CAAC;AApBD,oCAoBC;AAED;;GAEG;AACH,SAAgB,UAAU;IACtB,OAAO,UAAS,GAAY,EAAE,GAAa,EAAE,IAAkB;QAC3D,IAAI,kBAAkB,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;YACtD,IAAI,EAAE,CAAA;YACN,OAAM,CAAC,4CAA4C;SACtD;QAED,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAA;QAEtC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC;aACvB,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;aAC9D,IAAI,CAAC,UAAS,WAAW;YACtB,IAAI,WAAW,EAAE;gBACb,MAAM,SAAS,GAAG,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;gBAC3D,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE;oBAChC,kBAAkB,CAAC,SAAS,CAAC,GAAG,IAAI,cAAc,CAC9C,SAAS,EACT,SAAS,EACT,cAAc,CAAC,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAC/C,CAAA;iBACJ;gBACD,MAAM,IAAI,GAA2B;oBACjC,SAAS,EAAE,SAAS;oBACpB,SAAS,EAAE,SAAS;oBACpB,cAAc,EAAE,kBAAkB,CAAC,SAAS,CAAC;oBAC7C,WAAW,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;iBACxD,CAAA;gBACD,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;aACzB;YAED,IAAI,EAAE,CAAA;QACV,CAAC,CAAC;aACD,KAAK,CAAC,UAAS,KAAmB;YAC/B,IAAI,KAAK,IAAI,KAAK,CAAC,gBAAgB,EAAE;gBACjC,GAAG,CAAC,IAAI,CACJ,IAAI,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,UAAU,CAAC,CACxD,CAAA;gBACD,OAAM;aACT;YACD,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;YACf,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,SAAS,CAAA;YAC3B,IAAI,EAAE,CAAA;QACV,CAAC,CAAC,CAAA;IACV,CAAC,CAAA;AACL,CAAC;AA5CD,gCA4CC;AAED;;GAEG;AACH,SAAgB,oBAAoB;IAChC,OAAO,UAAS,GAAY,EAAE,GAAa,EAAE,IAAkB;QAC3D,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAA;QAC7B,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAA;QACrC,IAAI,GAAG,GAAG,SAAS,CAAA;QAEnB,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,EAAE;YACtB,MAAM,CAAC,CAAC,CAAC,iDAAiD,CAAC,CAAA;YAC3D,IAAI,EAAE,CAAA;YACN,OAAM;SACT;QAED,MAAM,SAAS,GAAG,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;QAE3D,IAAI,WAAuC,CAAA;QAE3C,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC;aACvB,yBAAyB,CAAC,KAAK,CAAC;aAChC,IAAI,CAAC,UAAS,IAAI;YACf,WAAW,GAAG,IAAI,CAAA;YAElB,OAAO,SAAS;iBACX,gBAAgB,EAAE;iBAClB,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAC9C,CAAC,CAAC;aACD,IAAI,CAAC,UAAS,QAAQ;YACnB,GAAG,GAAG,QAAQ,CAAA;YAEd,IACI,GAAG,CAAC,cAAc;gBAClB,GAAG,CAAC,cAAc,CAAC,YAAY,KAAK,WAAW,CAAC,YAAY,EAC9D;gBACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;aAC7C;YAED,MAAM,SAAS,GAAG,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;YAE3D,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE;gBAChC,kBAAkB,CAAC,SAAS,CAAC,GAAG,IAAI,cAAc,CAC9C,SAAS,EACT,SAAS,EACT,cAAc,CAAC,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAC/C,CAAA;aACJ;YAED,MAAM,IAAI,GAA2B;gBACjC,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,SAAS;gBACpB,cAAc,EAAE,kBAAkB,CAAC,SAAS,CAAC;gBAC7C,WAAW,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;aACxD,CAAA;YAED,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;YACtB,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAA;YACpB,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAA;YAExC,IAAI,EAAE,CAAA;QACV,CAAC,CAAC;aACD,KAAK,CAAC,UAAS,KAAK;YACjB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,SAAS,CAAA;YAC1B,IAAI,EAAE,CAAA;QACV,CAAC,CAAC,CAAA;IACV,CAAC,CAAA;AACL,CAAC;AAhED,oDAgEC;AAED;;;GAGG;AACH,SAAgB,6BAA6B;IACzC,OAAO,UAAS,GAAY,EAAE,GAAa,EAAE,IAAkB;QAC3D,aAAa,CAAC,GAAG,CAAC,gBAAgB,CAAC,aAAa,CAAC;aAC5C,0BAA0B,CACvB,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CACjD;aACA,IAAI,CAAC,UAAS,IAAI;YACf,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;YAEtB,IAAI,EAAE,CAAA;QACV,CAAC,CAAC;aACD,KAAK,CAAC,UAAS,KAAK;YACjB,IAAI,KAAK,IAAI,KAAK,CAAC,gBAAgB,EAAE;gBACjC,GAAG,CAAC,IAAI,CACJ,IAAI,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,UAAU,CAAC,CACxD,CAAA;gBACD,OAAM;aACT;YACD,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;YACf,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,SAAS,CAAA;YAC3B,IAAI,EAAE,CAAA;QACV,CAAC,CAAC,CAAA;IACV,CAAC,CAAA;AACL,CAAC;AAvBD,sEAuBC"} \ No newline at end of file +{"version":3,"file":"Injector.js","sourceRoot":"","sources":["../../src/injection/Injector.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app-backend/built/routes/system/SystemRouteSelfHostRegistry.js b/app-backend/built/routes/system/SystemRouteSelfHostRegistry.js index b085701..cbe8354 100644 --- a/app-backend/built/routes/system/SystemRouteSelfHostRegistry.js +++ b/app-backend/built/routes/system/SystemRouteSelfHostRegistry.js @@ -3,7 +3,7 @@ const express = require("express"); const BaseApi = require("../../api/BaseApi"); const ApiStatusCodes = require("../../api/ApiStatusCodes"); const Logger = require("../../utils/Logger"); -const CaptainManager = require("../../user/CaptainManager"); +const CaptainManager = require("../../user/system/CaptainManager"); const CaptainConstants = require("../../utils/CaptainConstants"); const InjectionExtractor = require("../../injection/InjectionExtractor"); const uuid = require("uuid/v4"); diff --git a/app-backend/built/routes/system/SystemRouteSelfHostRegistry.js.map b/app-backend/built/routes/system/SystemRouteSelfHostRegistry.js.map index c68e615..2faca2b 100644 --- a/app-backend/built/routes/system/SystemRouteSelfHostRegistry.js.map +++ b/app-backend/built/routes/system/SystemRouteSelfHostRegistry.js.map @@ -1 +1 @@ -{"version":3,"file":"SystemRouteSelfHostRegistry.js","sourceRoot":"","sources":["../../../src/routes/system/SystemRouteSelfHostRegistry.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"SystemRouteSelfHostRegistry.js","sourceRoot":"","sources":["../../../src/routes/system/SystemRouteSelfHostRegistry.ts"],"names":[],"mappings":";AAAA,mCAAmC;AACnC,6CAA6C;AAC7C,2DAA2D;AAC3D,6CAA6C;AAC7C,mEAAmE;AAEnE,iEAAiE;AACjE,yEAAyE;AACzE,gCAAgC;AAEhC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAA;AAE/B,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAS,GAAG,EAAE,GAAG,EAAE,IAAI;IACnD,MAAM,cAAc,GAAG,cAAc,CAAC,GAAG,EAAE,CAAA;IAC3C,MAAM,QAAQ,GAAG,IAAI,EAAE,CAAA;IACvB,MAAM,cAAc,GAAG,kBAAkB,CAAC,2BAA2B,CACjE,GAAG,CACN,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAA;IAEzC,OAAO,OAAO,CAAC,OAAO,EAAE;SACnB,IAAI,CAAC;QACF,OAAO,cAAc,CAAC,GAAG,EAAE;aACtB,iBAAiB,EAAE;aACnB,iBAAiB,EAAE,CAAA;IAC5B,CAAC,CAAC;SACD,IAAI,CAAC;QACF,OAAO,cAAc;aAChB,iBAAiB,EAAE;aACnB,qCAAqC,CAAC,QAAQ,CAAC,CAAA;IACxD,CAAC,CAAC;SACD,IAAI,CAAC;QACF,IAAI,IAAI,GAAG,gBAAgB,CAAC,uBAAuB,CAAA;QACnD,IAAI,MAAM,GAAG,cAAc;aACtB,iBAAiB,EAAE;aACnB,6BAA6B,EAAE,CAAA;QAEpC,OAAO,cAAc,CAAC,WAAW,CAC7B,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,cAAc,CAAC,SAAS,CAC3B,CAAA;IACL,CAAC,CAAC;SACD,IAAI,CAAC;QACF,IAAI,GAAG,GAAG,4BAA4B,CAAA;QACtC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QACb,GAAG,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAA;IACxD,CAAC,CAAC;SACD,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;AACjD,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,UAAS,GAAG,EAAE,GAAG,EAAE,IAAI;IACpD,MAAM,cAAc,GAAG,cAAc,CAAC,GAAG,EAAE,CAAA;IAC3C,MAAM,cAAc,GAAG,kBAAkB,CAAC,2BAA2B,CACjE,GAAG,CACN,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAA;IAEzC,IAAI,eAAe,GAAG,EAAE,CAAA;IAExB,OAAO,OAAO,CAAC,OAAO,EAAE;SACnB,IAAI,CAAC;QACF,OAAO,cAAc,CAAC,gBAAgB,EAAE,CAAA;IAC5C,CAAC,CAAC;SACD,IAAI,CAAC,UAAS,IAAI;QACf,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;YACxC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;YACzB,IAAI,OAAO,CAAC,YAAY,IAAI,cAAc,CAAC,SAAS,EAAE;gBAClD,sFAAsF;gBACtF,eAAe,GAAG,OAAO,CAAC,EAAE,CAAA;aAC/B;SACJ;QAED,OAAO,cAAc,CAAC,wBAAwB,EAAE,CAAA;IACpD,CAAC,CAAC;SACD,IAAI,CAAC,UAAS,SAAS;QACpB,IAAI,CAAC,CAAC,SAAS,IAAI,SAAS,KAAK,eAAe,EAAE;YAC9C,MAAM,cAAc,CAAC,WAAW,CAC5B,cAAc,CAAC,iBAAiB,EAChC,6EAA6E,CAChF,CAAA;SACJ;QAED,OAAO,cAAc,CAAC,iBAAiB,EAAE,CAAC,oBAAoB,EAAE,CAAA;IACpE,CAAC,CAAC;SAED,IAAI,CAAC;QACF,IAAI,eAAe,EAAE;YACjB,OAAO,cAAc,CAAC,cAAc,CAAC,eAAe,CAAC,CAAA;SACxD;IACL,CAAC,CAAC;SACD,IAAI,CAAC;QACF,IAAI,GAAG,GAAG,4BAA4B,CAAA;QACtC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QACb,GAAG,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAA;IACxD,CAAC,CAAC;SACD,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;AACjD,CAAC,CAAC,CAAA;AAEF,iBAAS,MAAM,CAAA"} \ No newline at end of file diff --git a/app-backend/built/routes/system/SystemRouter.js b/app-backend/built/routes/system/SystemRouter.js index 85e14a1..321a028 100644 --- a/app-backend/built/routes/system/SystemRouter.js +++ b/app-backend/built/routes/system/SystemRouter.js @@ -3,7 +3,7 @@ const express = require("express"); const BaseApi = require("../../api/BaseApi"); const ApiStatusCodes = require("../../api/ApiStatusCodes"); const Logger = require("../../utils/Logger"); -const CaptainManager = require("../../user/CaptainManager"); +const CaptainManager = require("../../user/system/CaptainManager"); const Validator = require("validator"); const SystemRouteSelfHostRegistry = require("./SystemRouteSelfHostRegistry"); const CaptainConstants = require("../../utils/CaptainConstants"); diff --git a/app-backend/built/routes/system/SystemRouter.js.map b/app-backend/built/routes/system/SystemRouter.js.map index 2598f10..ac59a88 100644 --- a/app-backend/built/routes/system/SystemRouter.js.map +++ b/app-backend/built/routes/system/SystemRouter.js.map @@ -1 +1 @@ -{"version":3,"file":"SystemRouter.js","sourceRoot":"","sources":["../../../src/routes/system/SystemRouter.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"SystemRouter.js","sourceRoot":"","sources":["../../../src/routes/system/SystemRouter.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app-backend/built/user/Authenticator.js b/app-backend/built/user/Authenticator.js index f187258..592427e 100644 --- a/app-backend/built/user/Authenticator.js +++ b/app-backend/built/user/Authenticator.js @@ -4,7 +4,7 @@ const uuid = require("uuid/v4"); const bcrypt = require("bcryptjs"); const ApiStatusCodes = require("../api/ApiStatusCodes"); const EnvVar = require("../utils/EnvVars"); -const CaptainManager = require("./CaptainManager"); +const CaptainManager = require("./system/CaptainManager"); const CaptainConstants = require("../utils/CaptainConstants"); const Logger = require("../utils/Logger"); const DataStoreProvider = require("../datastore/DataStoreProvider"); diff --git a/app-backend/built/user/Authenticator.js.map b/app-backend/built/user/Authenticator.js.map index 01d2f0c..b123a3b 100644 --- a/app-backend/built/user/Authenticator.js.map +++ b/app-backend/built/user/Authenticator.js.map @@ -1 +1 @@ -{"version":3,"file":"Authenticator.js","sourceRoot":"","sources":["../../src/user/Authenticator.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Authenticator.js","sourceRoot":"","sources":["../../src/user/Authenticator.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app-backend/built/user/ServiceManager.js b/app-backend/built/user/ServiceManager.js index b480193..17b1b5b 100644 --- a/app-backend/built/user/ServiceManager.js +++ b/app-backend/built/user/ServiceManager.js @@ -1,7 +1,7 @@ "use strict"; const Logger = require("../utils/Logger"); const CaptainConstants = require("../utils/CaptainConstants"); -const CaptainManager = require("./CaptainManager"); +const CaptainManager = require("./system/CaptainManager"); const ApiStatusCodes = require("../api/ApiStatusCodes"); const Authenticator = require("./Authenticator"); const requireFromString = require("require-from-string"); diff --git a/app-backend/built/user/ServiceManager.js.map b/app-backend/built/user/ServiceManager.js.map index 6c2d22b..333754b 100644 --- a/app-backend/built/user/ServiceManager.js.map +++ b/app-backend/built/user/ServiceManager.js.map @@ -1 +1 @@ -{"version":3,"file":"ServiceManager.js","sourceRoot":"","sources":["../../src/user/ServiceManager.ts"],"names":[],"mappings":";AAAA,0CAA0C;AAC1C,8DAA8D;AAC9D,mDAAmD;AAInD,wDAAwD;AACxD,iDAAiD;AACjD,yDAAyD;AACzD,uCAAuC;AAEvC,2CAA2C;AAC3C,+DAA+D;AAE/D,MAAM,cAAc;IAOhB,YACY,SAAoB,EACpB,SAAoB,EACpB,mBAAwC;QAFxC,cAAS,GAAT,SAAS,CAAW;QACpB,cAAS,GAAT,SAAS,CAAW;QACpB,wBAAmB,GAAnB,mBAAmB,CAAqB;QAEhD,IAAI,CAAC,YAAY,GAAG,EAAE,CAAA;QACtB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;QACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACnB,IAAI,CAAC,oBAAoB,GAAG,IAAI,oBAAoB,CAChD,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,CACjB,CAAA;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAC5B,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,YAAY,CACpB,CAAA;IACL,CAAC;IAED,iBAAiB;QACb,OAAO,IAAI,CAAC,oBAAoB,CAAA;IACpC,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;IAED,gBAAgB,CAAC,OAAe,EAAE,MAAoB,EAAE,OAAgB;QACpE,MAAM,IAAI,GAAG,IAAI,CAAA;QACjB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAChC,IAAI,eAAuB,CAAA;QAC3B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE;aACtB,IAAI,CAAC;YACF,OAAO,SAAS,CAAC,gBAAgB,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;QACjE,CAAC,CAAC;aACD,IAAI,CAAC,UAAS,UAAU;YACrB,eAAe,GAAG,UAAU,CAAA;YAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;QACnE,CAAC,CAAC;aACD,IAAI,CAAC,UAAS,SAAS;YACpB,OAAO,SAAS;iBACX,gBAAgB,EAAE;iBAClB,0BAA0B,CACvB,OAAO,EACP,eAAe,EACf,SAAS,CACZ,CAAA;QACT,CAAC,CAAC;aACD,IAAI,CAAC;YACF,OAAO,IAAI,CAAC,6BAA6B,CAAC,OAAO,CAAC,CAAA;QACtD,CAAC,CAAC;aACD,KAAK,CAAC,UAAS,KAAK;YACjB,OAAO,IAAI,OAAO,CAAO,UAAS,OAAO,EAAE,MAAM;gBAC7C,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;gBACnC,MAAM,CAAC,KAAK,CAAC,CAAA;YACjB,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACV,CAAC;IAED,qBAAqB,CAAC,OAAe,EAAE,YAAoB;QACvD,MAAM,IAAI,GAAG,IAAI,CAAA;QAEjB,OAAO,OAAO,CAAC,OAAO,EAAE;aACnB,IAAI,CAAC;YACF,MAAM,CAAC,CAAC,CAAC,iCAAiC,GAAG,YAAY,CAAC,CAAA;YAE1D,OAAO,cAAc,CAAC,GAAG,EAAE,CAAC,8BAA8B,CACtD,YAAY,EACZ,SAAS,CACZ,CAAA;QACL,CAAC,CAAC;aACD,IAAI,CAAC;YACF,MAAM,CAAC,CAAC,CAAC,oBAAoB,GAAG,OAAO,GAAG,MAAM,GAAG,YAAY,CAAC,CAAA;YAEhE,OAAO,IAAI,CAAC,SAAS;iBAChB,gBAAgB,EAAE;iBAClB,8BAA8B,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;QAC9D,CAAC,CAAC;aACD,IAAI,CAAC;YACF,OAAO,cAAc,CAAC,GAAG,EAAE,CAAC,2BAA2B,CACnD,YAAY,CACf,CAAA;QACL,CAAC,CAAC;aACD,IAAI,CAAC;YACF,OAAO,IAAI,CAAC,SAAS;iBAChB,gBAAgB,EAAE;iBAClB,qBAAqB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;QACrD,CAAC,CAAC;aACD,IAAI,CAAC;YACF,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACpC,CAAC,CAAC,CAAA;IACV,CAAC;IAED,eAAe,CAAC,OAAe,EAAE,YAAoB;QACjD,MAAM,IAAI,GAAG,IAAI,CAAA;QAEjB,OAAO,OAAO,CAAC,OAAO,EAAE;aACnB,IAAI,CAAC;YACF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAA;YACjD,MAAM,aAAa,GAAG,GAAG,GAAG,UAAU,CAAA;YAEtC,IAAI,CAAC,YAAY,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;gBACxD,MAAM,cAAc,CAAC,WAAW,CAC5B,cAAc,CAAC,qBAAqB,EACpC,2FAA2F,CAC9F,CAAA;aACJ;YAED,IAAI,YAAY,CAAC,MAAM,GAAG,EAAE,EAAE;gBAC1B,MAAM,cAAc,CAAC,WAAW,CAC5B,cAAc,CAAC,qBAAqB,EACpC,mGAAmG,CACtG,CAAA;aACJ;YAED,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACjC,MAAM,cAAc,CAAC,WAAW,CAC5B,cAAc,CAAC,qBAAqB,EACpC,8JAA8J,CACjK,CAAA;aACJ;YAED,IACI,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;gBACxC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC;oBAC/B,aAAa,CAAC,MAAM;oBACpB,YAAY,CAAC,MAAM,EACzB;gBACE,MAAM,cAAc,CAAC,WAAW,CAC5B,cAAc,CAAC,qBAAqB,EACpC,gFAAgF,CACnF,CAAA;aACJ;QACL,CAAC,CAAC;aACD,IAAI,CAAC;YACF,OAAO,cAAc,CAAC,GAAG,EAAE,CAAC,yCAAyC,CACjE,YAAY,CACf,CAAA;QACL,CAAC,CAAC;aACD,IAAI,CAAC;YACF,MAAM,CAAC,CAAC,CAAC,8BAA8B,GAAG,OAAO,CAAC,CAAA;YAElD,OAAO,IAAI,CAAC,SAAS;iBAChB,gBAAgB,EAAE;iBAClB,qBAAqB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;QACrD,CAAC,CAAC;aACD,IAAI,CAAC;YACF,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACpC,CAAC,CAAC,CAAA;IACV,CAAC;IAED,kBAAkB,CAAC,OAAe,EAAE,YAAoB;QACpD,MAAM,IAAI,GAAG,IAAI,CAAA;QAEjB,OAAO,OAAO,CAAC,OAAO,EAAE;aACnB,IAAI,CAAC;YACF,MAAM,CAAC,CAAC,CAAC,8BAA8B,GAAG,OAAO,CAAC,CAAA;YAElD,OAAO,IAAI,CAAC,SAAS;iBAChB,gBAAgB,EAAE;iBAClB,wBAAwB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;QACxD,CAAC,CAAC;aACD,IAAI,CAAC;YACF,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACpC,CAAC,CAAC,CAAA;IACV,CAAC;IAED,eAAe,CAAC,OAAe;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAA;QAEjB,IAAI,UAAkB,CAAA;QAEtB,OAAO,OAAO,CAAC,OAAO,EAAE;aACnB,IAAI,CAAC;YACF,OAAO,IAAI,CAAC,iCAAiC,CAAC,OAAO,CAAC,CAAA;QAC1D,CAAC,CAAC;aACD,IAAI,CAAC;YACF,MAAM,CAAC,CAAC,CAAC,oBAAoB,GAAG,OAAO,CAAC,CAAA;YAExC,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAA;QACzC,CAAC,CAAC;aACD,IAAI,CAAC,UAAS,GAAG;YACd,UAAU,GAAG,GAAG,CAAA;YAEhB,IAAI,CAAC,UAAU,EAAE;gBACb,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;aACzD;QACL,CAAC,CAAC;aACD,IAAI,CAAC;YACF,uEAAuE;YACvE,OAAO,IAAI,CAAC,SAAS;iBAChB,gBAAgB,EAAE;iBAClB,gBAAgB,CAAC,OAAO,CAAC,CAAA;QAClC,CAAC,CAAC;aACD,IAAI,CAAC;YACF,OAAO,OAAO,GAAG,GAAG,GAAG,UAAU,CAAA;QACrC,CAAC,CAAC;aACD,IAAI,CAAC,UAAS,UAAU;YACrB,OAAO,cAAc,CAAC,GAAG,EAAE,CAAC,2BAA2B,CACnD,UAAU,CACb,CAAA;QACL,CAAC,CAAC;aACD,IAAI,CAAC;YACF,OAAO,IAAI,CAAC,SAAS;iBAChB,gBAAgB,EAAE;iBAClB,4BAA4B,CAAC,OAAO,CAAC,CAAA;QAC9C,CAAC,CAAC;aACD,IAAI,CAAC;YACF,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACpC,CAAC,CAAC,CAAA;IACV,CAAC;IAED,iCAAiC,CAAC,OAAe;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAA;QAEjB,IAAI,UAAkB,CAAA;QAEtB,OAAO,OAAO,CAAC,OAAO,EAAE;aACnB,IAAI,CAAC;YACF,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAA;QACzC,CAAC,CAAC;aACD,IAAI,CAAC,UAAS,GAAG;YACd,UAAU,GAAG,GAAG,CAAA;QACpB,CAAC,CAAC;aACD,IAAI,CAAC;YACF,uEAAuE;YACvE,OAAO,IAAI,CAAC,SAAS;iBAChB,gBAAgB,EAAE;iBAClB,gBAAgB,CAAC,OAAO,CAAC,CAAA;QAClC,CAAC,CAAC;aACD,IAAI,CAAC;YACF,OAAO,OAAO,GAAG,GAAG,GAAG,UAAU,CAAA;QACrC,CAAC,CAAC;aACD,IAAI,CAAC,UAAS,UAAU;YACrB,MAAM,CAAC,CAAC,CAAC,iCAAiC,GAAG,UAAU,CAAC,CAAA;YAExD,OAAO,cAAc,CAAC,GAAG,EAAE,CAAC,8BAA8B,CACtD,UAAU,EACV,SAAS,CACZ,CAAA;QACL,CAAC,CAAC,CAAA;IACV,CAAC;IAED,SAAS,CAAC,OAAe;QACrB,MAAM,CAAC,CAAC,CAAC,wBAAwB,GAAG,OAAO,CAAC,CAAA;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAA;QAEjB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS;aAC7B,gBAAgB,EAAE;aAClB,cAAc,CAAC,OAAO,CAAC,CAAA;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAEhC,OAAO,OAAO,CAAC,OAAO,EAAE;aACnB,IAAI,CAAC;YACF,MAAM,CAAC,CAAC,CAAC,+BAA+B,GAAG,WAAW,CAAC,CAAA;YACvD,OAAO,SAAS,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAA;QACxD,CAAC,CAAC;aACD,IAAI,CAAC,UAAS,SAAS;YACpB,IAAI,SAAS,EAAE;gBACX,OAAO,SAAS,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAA;aACpD;iBAAM;gBACH,MAAM,CAAC,CAAC,CACJ,8CAA8C;oBAC1C,WAAW,CAClB,CAAA;gBACD,OAAO,IAAI,CAAA;aACd;QACL,CAAC,CAAC;aACD,IAAI,CAAC;YACF,OAAO,SAAS,CAAC,gBAAgB,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAA;QACpE,CAAC,CAAC;aACD,IAAI,CAAC;YACF,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACpC,CAAC,CAAC,CAAA;IACV,CAAC;IAED,eAAe,CAAC,eAAuB;QACnC,MAAM,CAAC,CAAC,CACJ,qDAAqD;YACjD,eAAe,CACtB,CAAA;QACD,MAAM,IAAI,GAAG,IAAI,CAAA;QAEjB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAChC,IAAI,SAAsB,CAAA;QAE1B,OAAO,OAAO,CAAC,OAAO,EAAE;aACnB,IAAI,CAAC;YACF,OAAO,SAAS,CAAC,SAAS,EAAE,CAAA;QAChC,CAAC,CAAC;aACD,IAAI,CAAC,UAAS,MAAM;YACjB,SAAS,GAAG,MAAM,CAAA;YAElB,OAAO,SAAS,CAAC,gBAAgB,EAAE,CAAC,iBAAiB,EAAE,CAAA;QAC3D,CAAC,CAAC;aACD,IAAI,CAAC,UAAS,IAAI;YACf,MAAM,YAAY,GAAG,EAAE,CAAA;YAEvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACvC,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;gBACxB,IAAI,UAAU,GAAG,KAAK,CAAA;gBACtB,IAAI,GAAG,CAAC,QAAQ,EAAE;oBACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;wBAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAS,GAAG,EAAE,KAAK;4BACzC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;4BACrB,MAAM,OAAO,GAAG,GAAG,CAAA;4BACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gCAC1C,IACI,OAAO,CAAC,OAAO,CACX,SAAS,CAAC,kBAAkB,CACxB,OAAO,EACP,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAClC,CACJ,IAAI,CAAC,EACR;oCACE,UAAU,GAAG,IAAI,CAAA;iCACpB;6BACJ;wBACL,CAAC,CAAC,CAAA;qBACL;iBACJ;gBAED,IAAI,CAAC,UAAU,EAAE;oBACb,YAAY,CAAC,IAAI,CAAC;wBACd,EAAE,EAAE,GAAG,CAAC,EAAE;wBACV,WAAW,EACP,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM;4BAC/B,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;4BACjB,CAAC,CAAC,UAAU;qBACvB,CAAC,CAAA;iBACL;aACJ;YAED,OAAO,YAAY,CAAA;QACvB,CAAC,CAAC,CAAA;IACV,CAAC;IAED,YAAY,CAAC,QAAkB;QAC3B,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAA;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAA;QAEjB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAEhC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC;YAC1B,OAAO,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;QAC3C,CAAC,CAAC,CAAA;IACN,CAAC;IAED,8BAA8B,CAAC,GAAY;QACvC,IAAI,iBAAiB,GAAG,GAAG,CAAC,iBAAiB,CAAA;QAE7C,IAAI,CAAC,iBAAiB,EAAE;YACpB,OAAO,SAAS,CAAA;SACnB;QAED;;;;;;;;;;;;;WAaG;QAEH,iBAAiB;YACb,iBAAiB,GAAG,yCAAyC,CAAA;QAEjE,OAAO,iBAAiB,CAAC,iBAAiB,CAAC,CAAA;IAC/C,CAAC;IAED,mBAAmB,CACf,OAAe,EACf,aAAqB,EACrB,OAAqB,EACrB,OAAqB,EACrB,MAAc,EACd,iBAA0B,EAC1B,QAAiB,EACjB,KAAiB,EACjB,QAAkB,EAClB,iBAAyB,EACzB,iBAAyB;QAEzB,MAAM,IAAI,GAAG,IAAI,CAAA;QACjB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAEhC,IAAI,WAAmB,CAAA;QAEvB,MAAM,mBAAmB,GAAG,UAAS,aAAqB;YACtD,OAAO,SAAS,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,UAAS,QAAQ;gBAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACtC,IAAI,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;wBACtC,OAAM;qBACT;iBACJ;gBAED,MAAM,cAAc,CAAC,WAAW,CAC5B,cAAc,CAAC,oBAAoB,EACnC,iDAAiD;oBAC7C,aAAa,CACpB,CAAA;YACL,CAAC,CAAC,CAAA;QACN,CAAC,CAAA;QAED,OAAO,OAAO,CAAC,OAAO,EAAE;aACnB,IAAI,CAAC;YACF,OAAO,SAAS,CAAC,gBAAgB,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;QACjE,CAAC,CAAC;aACD,IAAI,CAAC,UAAS,GAAG;YACd,WAAW,GAAG,SAAS;iBAClB,gBAAgB,EAAE;iBAClB,cAAc,CAAC,OAAO,CAAC,CAAA;YAE5B,oEAAoE;YACpE,IAAI,GAAG,CAAC,iBAAiB,EAAE;gBACvB,IAAI,MAAM,EAAE;oBACR,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAA;iBACrC;qBAAM;oBACH,IAAI,GAAG,CAAC,MAAM,EAAE;wBACZ,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;qBACtB;yBAAM;wBACH,OAAO,SAAS;6BACX,sBAAsB,CAAC,WAAW,CAAC;6BACnC,IAAI,CAAC,UAAS,SAAkB;4BAC7B,IAAI,CAAC,SAAS,EAAE;gCACZ,MAAM,cAAc,CAAC,WAAW,CAC5B,cAAc,CAAC,oBAAoB,EACnC,mDAAmD,CACtD,CAAA;6BACJ;4BACD,OAAO,SAAS,CAAC,sBAAsB,CACnC,WAAW,EACX,CAAC,CACJ,CAAA;wBACL,CAAC,CAAC;6BACD,IAAI,CAAC,UAAS,oBAA4B;4BACvC,IAAI,CAAC,oBAAoB,EAAE;gCACvB,MAAM,cAAc,CAAC,WAAW,CAC5B,cAAc,CAAC,oBAAoB,EACnC,+CAA+C,CAClD,CAAA;6BACJ;4BAED,MAAM,GAAG,oBAAoB,CAAA;wBACjC,CAAC,CAAC,CAAA;qBACT;iBACJ;aACJ;iBAAM;gBACH,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE;oBAC3B,MAAM,cAAc,CAAC,WAAW,CAC5B,cAAc,CAAC,iBAAiB,EAChC,oDAAoD,CACvD,CAAA;iBACJ;gBAED,IAAI,MAAM,EAAE;oBACR,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAA;iBACrC;aACJ;QACL,CAAC,CAAC;aACD,IAAI,CAAC;YACF,OAAO,SAAS;iBACX,gBAAgB,EAAE;iBAClB,uBAAuB,CACpB,OAAO,EACP,aAAa,EACb,OAAO,EACP,OAAO,EACP,MAAM,EACN,iBAAiB,EACjB,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,EAC3C,iBAAiB,EACjB,iBAAiB,CACpB,CAAA;QACT,CAAC,CAAC;aACD,IAAI,CAAC;YACF,OAAO,IAAI,CAAC,6BAA6B,CAAC,OAAO,CAAC,CAAA;QACtD,CAAC,CAAC;aACD,IAAI,CAAC;YACF,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACpC,CAAC,CAAC,CAAA;IACV,CAAC;IAED,aAAa,CAAC,OAAe;QACzB,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;IACvC,CAAC;IAED;;;OAGG;IACH,iBAAiB;QACb,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;QAEtC,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE;YAChC,IAAI,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;gBACzB,OAAO,OAAO,CAAA;aACjB;SACJ;QAED,OAAO,SAAS,CAAA;IACpB,CAAC;IAED,cAAc,CAAC,OAAe;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBACvB,IAAI,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QAEvD,OAAO;YACH,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;YAC1C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE;YACvC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,aAAa;SACvD,CAAA;IACL,CAAC;IAED,cAAc,CAAC,OAAe,EAAE,KAAa;QACzC,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,EAAE,CAAA;QAC1B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBACvB,IAAI,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QACvD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IAChD,CAAC;IAED,6BAA6B,CAAC,OAAe;QACzC,MAAM,CAAC,CAAC,CAAC,yCAAyC,GAAG,OAAO,CAAC,CAAA;QAC7D,MAAM,IAAI,GAAG,IAAI,CAAA;QAEjB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS;aAC7B,gBAAgB,EAAE;aAClB,cAAc,CAAC,OAAO,CAAC,CAAA;QAE5B,IAAI,SAA6B,CAAA;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAChC,IAAI,GAAY,CAAA;QAChB,IAAI,gBAA2C,CAAA;QAE/C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE;aACtB,IAAI,CAAC;YACF,OAAO,SAAS,CAAC,gBAAgB,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;QACjE,CAAC,CAAC;aACD,IAAI,CAAC,UAAS,QAAQ;YACnB,GAAG,GAAG,QAAQ,CAAA;YAEd,MAAM,CAAC,CAAC,CAAC,gCAAgC,WAAW,EAAE,CAAC,CAAA;YACvD,OAAO,SAAS,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAA;QACxD,CAAC,CAAC;aACD,IAAI,CAAC,UAAS,SAAS;YACpB,IAAI,SAAS,EAAE;gBACX,MAAM,CAAC,CAAC,CAAC,8BAA8B,GAAG,WAAW,CAAC,CAAA;gBACtD,OAAO,IAAI,CAAA;aACd;iBAAM;gBACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;oBAC/B,IAAI,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC,eAAe,EAAE;wBACxC,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAA;wBACrC,MAAK;qBACR;iBACJ;gBAED,IAAI,CAAC,SAAS,EAAE;oBACZ,MAAM,cAAc,CAAC,WAAW,CAC5B,cAAc,CAAC,iBAAiB,EAChC,iHAAiH,CACpH,CAAA;iBACJ;gBAED,MAAM,CAAC,CAAC,CACJ,oBAAoB,WAAW,iDAAiD,CACnF,CAAA;gBAED,yFAAyF;gBACzF,2CAA2C;gBAC3C,OAAO,SAAS,CAAC,qBAAqB,CAClC,gBAAgB,CAAC,uBAAuB,EACxC,WAAW,EACX,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACZ,CAAA;aACJ;QACL,CAAC,CAAC;aACD,IAAI,CAAC;YACF,OAAO,IAAI,CAAC,oBAAoB,CAAC,+BAA+B,CAC5D,SAAU,CACb,CAAA;QACL,CAAC,CAAC;aACD,IAAI,CAAC,UAAS,IAAI;YACf,gBAAgB,GAAG,IAAI,CAAA;QAC3B,CAAC,CAAC;aACD,IAAI,CAAC;YACF,OAAO,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAA;QACnD,CAAC,CAAC;aACD,IAAI,CAAC,UAAS,iBAAiB;YAC5B,MAAM,CAAC,CAAC,CACJ,oBAAoB,WAAW,eAAe,SAAS,EAAE,CAC5D,CAAA;YAED,OAAO,SAAS,CAAC,aAAa,CAC1B,WAAW,EACX,SAAS,EACT,GAAG,CAAC,OAAO,EACX,GAAG,CAAC,QAAQ,EACZ,GAAG,CAAC,OAAO,EACX,SAAS,EACT,gBAAgB,EAChB,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,EACzB,GAAG,CAAC,MAAM,EACV,SAAS,CAAC,YAAY,EAAE,EACxB,GAAG,CAAC,KAAK,EACT,GAAG,EACH,iBAAiB,CACpB,CAAA;QACL,CAAC,CAAC;aACD,IAAI,CAAC;YACF,OAAO,IAAI,OAAO,CAAO,UAAS,OAAO;gBACrC,oEAAoE;gBACpE,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YAC7B,CAAC,CAAC,CAAA;QACN,CAAC,CAAC;aACD,IAAI,CAAC;YACF,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACpC,CAAC,CAAC,CAAA;IACV,CAAC;IAED,kBAAkB;QACd,MAAM,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAA;QAClC,MAAM,IAAI,GAAG,IAAI,CAAA;QACjB,OAAO,IAAI,CAAC,mBAAmB;aAC1B,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC;aACzC,IAAI,CAAC;YACF,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAA;YAC/B,OAAO,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,CAAA;QACtD,CAAC,CAAC,CAAA;IACV,CAAC;CACJ;AAED,iBAAS,cAAc,CAAA"} \ No newline at end of file +{"version":3,"file":"ServiceManager.js","sourceRoot":"","sources":["../../src/user/ServiceManager.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app-backend/built/user/TemplateHelper.js b/app-backend/built/user/TemplateHelper.js index bc40f62..58bb6b5 100644 --- a/app-backend/built/user/TemplateHelper.js +++ b/app-backend/built/user/TemplateHelper.js @@ -2,7 +2,7 @@ const fs = require("fs-extra"); const ApiStatusCodes = require("../api/ApiStatusCodes"); const CaptainConstants = require("../utils/CaptainConstants"); -const TemplateHelperVersionPrinter = require("./TemplateHelperVersionPrinter"); +const TemplateHelperVersionPrinter = require("../utils/TemplateHelperVersionPrinter"); class TemplateHelper { constructor() { const templates = [ diff --git a/app-backend/built/user/TemplateHelper.js.map b/app-backend/built/user/TemplateHelper.js.map index 92d14b8..44c36b0 100644 --- a/app-backend/built/user/TemplateHelper.js.map +++ b/app-backend/built/user/TemplateHelper.js.map @@ -1 +1 @@ -{"version":3,"file":"TemplateHelper.js","sourceRoot":"","sources":["../../src/user/TemplateHelper.ts"],"names":[],"mappings":";AACA,+BAA+B;AAC/B,wDAAwD;AAExD,8DAA8D;AAE9D,+EAA+E;AAE/E,MAAM,cAAc;IAGhB;QACI,MAAM,SAAS,GAAgB;YAC3B;gBACI,YAAY,EAAE,MAAM;gBACpB,kBAAkB,EAAE,cAAc;gBAClC,SAAS,EAAE,SAAS;aACvB;YACD;gBACI,YAAY,EAAE,KAAK;gBACnB,kBAAkB,EAAE,aAAa;gBACjC,SAAS,EAAE,SAAS;aACvB;YACD;gBACI,YAAY,EAAE,eAAe;gBAC7B,kBAAkB,EAAE,gBAAgB;gBACpC,SAAS,EAAE,YAAY;aAC1B;YACD;gBACI,YAAY,EAAE,WAAW;gBACzB,kBAAkB,EAAE,cAAc;gBAClC,SAAS,EAAE,YAAY;aAC1B;SACJ,CAAA;QAED,MAAM,eAAe,GAAG,SAAS,GAAG,qBAAqB,CAAA;QAEzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,EAAE,CAAC,YAAY,CACxC,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,EAC3C,MAAM,CACT,CAAA;SACJ;QAED,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAE1B,IAAI,gBAAgB,CAAC,OAAO,EAAE;YAC1B,IAAI,4BAA4B,EAAE,CAAC,gCAAgC,CAC/D,IAAI,CAAC,SAAS,CACjB,CAAA;SACJ;IACL,CAAC;IAED,2BAA2B,CAAC,YAAoB;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC5C,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,KAAK,YAAY,EAAE;gBACjD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;aAC3B;SACJ;QACD,MAAM,cAAc,CAAC,WAAW,CAC5B,cAAc,CAAC,oBAAoB,EACnC,2BAA2B,GAAG,YAAY,CAC7C,CAAA;IACL,CAAC;IAED,mCAAmC,CAAC,kBAA0B;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAA;QACjB,MAAM,YAAY,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACrD,MAAM,eAAe,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACxD,IAAI,CAAC,eAAe,EAAE;YAClB,MAAM,cAAc,CAAC,WAAW,CAC5B,cAAc,CAAC,oBAAoB,EACnC,kCAAkC,CACrC,CAAA;SACJ;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,2BAA2B,CAAC,YAAY,CAAC,CAAA;QAElE,MAAM,QAAQ,GACV,WAAW,CAAC,kBAAkB;YAC9B,GAAG;YACH,eAAe;YACf,WAAW,CAAC,SAAS,CAAA;QAEzB,OAAO,OAAO,GAAG,QAAQ,GAAG,IAAI,GAAG,WAAW,CAAC,aAAa,CAAA;IAChE,CAAC;CACJ;AAED,MAAM,sBAAsB,GAAG,IAAI,cAAc,EAAE,CAAA;AAEnD,iBAAS;IACL,GAAG,EAAE;QACD,OAAO,sBAAsB,CAAA;IACjC,CAAC;CACJ,CAAA"} \ No newline at end of file +{"version":3,"file":"TemplateHelper.js","sourceRoot":"","sources":["../../src/user/TemplateHelper.ts"],"names":[],"mappings":";AACA,+BAA+B;AAC/B,wDAAwD;AAExD,8DAA8D;AAE9D,sFAAsF;AAEtF,MAAM,cAAc;IAGhB;QACI,MAAM,SAAS,GAAgB;YAC3B;gBACI,YAAY,EAAE,MAAM;gBACpB,kBAAkB,EAAE,cAAc;gBAClC,SAAS,EAAE,SAAS;aACvB;YACD;gBACI,YAAY,EAAE,KAAK;gBACnB,kBAAkB,EAAE,aAAa;gBACjC,SAAS,EAAE,SAAS;aACvB;YACD;gBACI,YAAY,EAAE,eAAe;gBAC7B,kBAAkB,EAAE,gBAAgB;gBACpC,SAAS,EAAE,YAAY;aAC1B;YACD;gBACI,YAAY,EAAE,WAAW;gBACzB,kBAAkB,EAAE,cAAc;gBAClC,SAAS,EAAE,YAAY;aAC1B;SACJ,CAAA;QAED,MAAM,eAAe,GAAG,SAAS,GAAG,qBAAqB,CAAA;QAEzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,EAAE,CAAC,YAAY,CACxC,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,EAC3C,MAAM,CACT,CAAA;SACJ;QAED,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAE1B,IAAI,gBAAgB,CAAC,OAAO,EAAE;YAC1B,IAAI,4BAA4B,EAAE,CAAC,gCAAgC,CAC/D,IAAI,CAAC,SAAS,CACjB,CAAA;SACJ;IACL,CAAC;IAED,2BAA2B,CAAC,YAAoB;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC5C,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,KAAK,YAAY,EAAE;gBACjD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;aAC3B;SACJ;QACD,MAAM,cAAc,CAAC,WAAW,CAC5B,cAAc,CAAC,oBAAoB,EACnC,2BAA2B,GAAG,YAAY,CAC7C,CAAA;IACL,CAAC;IAED,mCAAmC,CAAC,kBAA0B;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAA;QACjB,MAAM,YAAY,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACrD,MAAM,eAAe,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACxD,IAAI,CAAC,eAAe,EAAE;YAClB,MAAM,cAAc,CAAC,WAAW,CAC5B,cAAc,CAAC,oBAAoB,EACnC,kCAAkC,CACrC,CAAA;SACJ;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,2BAA2B,CAAC,YAAY,CAAC,CAAA;QAElE,MAAM,QAAQ,GACV,WAAW,CAAC,kBAAkB;YAC9B,GAAG;YACH,eAAe;YACf,WAAW,CAAC,SAAS,CAAA;QAEzB,OAAO,OAAO,GAAG,QAAQ,GAAG,IAAI,GAAG,WAAW,CAAC,aAAa,CAAA;IAChE,CAAC;CACJ;AAED,MAAM,sBAAsB,GAAG,IAAI,cAAc,EAAE,CAAA;AAEnD,iBAAS;IACL,GAAG,EAAE;QACD,OAAO,sBAAsB,CAAA;IACjC,CAAC;CACJ,CAAA"} \ No newline at end of file diff --git a/app-backend/built/user/system/CaptainManager.js b/app-backend/built/user/system/CaptainManager.js new file mode 100644 index 0000000..114013f --- /dev/null +++ b/app-backend/built/user/system/CaptainManager.js @@ -0,0 +1,692 @@ +"use strict"; +const uuid = require("uuid/v4"); +const SshClientImport = require("ssh2"); +const request = require("request"); +const fs = require("fs-extra"); +const CaptainConstants = require("../../utils/CaptainConstants"); +const Logger = require("../../utils/Logger"); +const LoadBalancerManager = require("./LoadBalancerManager"); +const CertbotManager = require("./CertbotManager"); +const SelfHostedDockerRegistry = require("./SelfHostedDockerRegistry"); +const ApiStatusCodes = require("../../api/ApiStatusCodes"); +const DataStoreProvider = require("../../datastore/DataStoreProvider"); +const DockerApi = require("../../docker/DockerApi"); +const DEBUG_SALT = 'THIS IS NOT A REAL CERTIFICATE'; +const SshClient = SshClientImport.Client; +const MAX_FAIL_ALLOWED = 4; +const HEALTH_CHECK_INTERVAL = 20000; // ms +const TIMEOUT_HEALTH_CHECK = 15000; // ms +class CaptainManager { + constructor() { + const dockerApi = DockerApi.get(); + this.hasForceSsl = false; + this.dataStore = DataStoreProvider.getDataStore(CaptainConstants.rootNameSpace); + this.dockerApi = dockerApi; + this.certbotManager = new CertbotManager(dockerApi); + this.loadBalancerManager = new LoadBalancerManager(dockerApi, this.certbotManager, this.dataStore); + this.dockerRegistry = new SelfHostedDockerRegistry(dockerApi, this.dataStore, this.certbotManager, this.loadBalancerManager, this); + this.myNodeId = undefined; + this.inited = false; + this.waitUntilRestarted = false; + this.captainSalt = ''; + this.consecutiveHealthCheckFailCount = 0; + this.healthCheckUuid = uuid(); + } + initialize() { + // If a linked file / directory is deleted on the host, it loses the connection to + // the container and needs an update to be picked up again. + const self = this; + const dataStore = this.dataStore; + const dockerApi = this.dockerApi; + const loadBalancerManager = this.loadBalancerManager; + const certbotManager = this.certbotManager; + let myNodeId; + self.refreshForceSslState() + .then(function () { + return dockerApi.getNodeIdByServiceName(CaptainConstants.captainServiceName, 0); + }) + .then(function (nodeId) { + myNodeId = nodeId; + self.myNodeId = myNodeId; + return dockerApi.isNodeManager(myNodeId); + }) + .then(function (isManager) { + if (!isManager) { + throw new Error('Captain should only run on a manager node'); + } + }) + .then(function () { + Logger.d('Emptying generated and temp folders.'); + return fs.emptyDir(CaptainConstants.captainRootDirectoryTemp); + }) + .then(function () { + return fs.emptyDir(CaptainConstants.captainRootDirectoryGenerated); + }) + .then(function () { + Logger.d('Ensuring directories are available on host. Started.'); + return fs.ensureDir(CaptainConstants.letsEncryptEtcPath); + }) + .then(function () { + return fs.ensureDir(CaptainConstants.letsEncryptLibPath); + }) + .then(function () { + return fs.ensureDir(CaptainConstants.captainStaticFilesDir); + }) + .then(function () { + return fs.ensureDir(CaptainConstants.perAppNginxConfigPathBase); + }) + .then(function () { + return fs.ensureFile(CaptainConstants.baseNginxConfigPath); + }) + .then(function () { + return fs.ensureDir(CaptainConstants.registryPathOnHost); + }) + .then(function () { + return dockerApi.ensureOverlayNetwork(CaptainConstants.captainNetworkName); + }) + .then(function () { + Logger.d('Ensuring directories are available on host. Finished.'); + return dockerApi.ensureServiceConnectedToNetwork(CaptainConstants.captainServiceName, CaptainConstants.captainNetworkName); + }) + .then(function () { + return loadBalancerManager.init(myNodeId, dataStore); + }) + .then(function () { + const valueIfNotExist = CaptainConstants.isDebug + ? DEBUG_SALT + : uuid(); + return dockerApi.ensureSecret(CaptainConstants.captainSaltSecretKey, valueIfNotExist); + }) + .then(function () { + return dockerApi.ensureSecretOnService(CaptainConstants.captainServiceName, CaptainConstants.captainSaltSecretKey); + }) + .then(function (secretHadExistedBefore) { + if (!secretHadExistedBefore) { + return new Promise(function () { + Logger.d('I am halting here. I expect to get restarted in a few seconds due to a secret (captain salt) being updated.'); + }); + } + }) + .then(function () { + const secretFileName = '/run/secrets/' + CaptainConstants.captainSaltSecretKey; + if (!fs.existsSync(secretFileName)) { + throw new Error('Secret is attached according to Docker. But file cannot be found. ' + + secretFileName); + } + const secretContent = fs.readFileSync(secretFileName).toString(); + if (!secretContent) { + throw new Error('Salt secret content is empty!'); + } + self.captainSalt = secretContent; + return true; + }) + .then(function () { + return dataStore.setEncryptionSalt(self.getCaptainSalt()); + }) + .then(function () { + return certbotManager.init(myNodeId); + }) + .then(function () { + return dataStore.getRegistriesDataStore().getAllRegistries(); + }) + .then(function (registries) { + let localRegistry = undefined; + for (let idx = 0; idx < registries.length; idx++) { + const element = registries[idx]; + if (element.registryType == IRegistryTypes.LOCAL_REG) { + localRegistry = element; + } + } + if (!!localRegistry) { + Logger.d('Ensuring Docker Registry is running...'); + return self.dockerRegistry.ensureDockerRegistryRunningOnThisNode(localRegistry.registryPassword); + } + return Promise.resolve(true); + }) + .then(function () { + self.inited = true; + self.performHealthCheck(); + Logger.d('**** Captain is initialized and ready to serve you! ****'); + }) + .catch(function (error) { + Logger.e(error); + setTimeout(function () { + process.exit(0); + }, 5000); + }); + } + performHealthCheck() { + const self = this; + const captainPublicDomain = CaptainConstants.captainSubDomain + + '.' + + self.dataStore.getRootDomain(); + function scheduleNextHealthCheck() { + self.healthCheckUuid = uuid(); + setTimeout(function () { + self.performHealthCheck(); + }, HEALTH_CHECK_INTERVAL); + } + // For debug build, we'll turn off health check + if (CaptainConstants.isDebug || !self.dataStore.hasCustomDomain()) { + scheduleNextHealthCheck(); + return; + } + function checkCaptainHealth(callback) { + let callbackCalled = false; + setTimeout(function () { + if (callbackCalled) { + return; + } + callbackCalled = true; + callback(false); + }, TIMEOUT_HEALTH_CHECK); + const url = 'http://' + + captainPublicDomain + + CaptainConstants.healthCheckEndPoint; + request(url, function (error, response, body) { + if (callbackCalled) { + return; + } + callbackCalled = true; + if (error || !body || body !== self.getHealthCheckUuid()) { + callback(false); + } + else { + callback(true); + } + }); + } + function checkNginxHealth(callback) { + let callbackCalled = false; + setTimeout(function () { + if (callbackCalled) { + return; + } + callbackCalled = true; + callback(false); + }, TIMEOUT_HEALTH_CHECK); + self.verifyCaptainOwnsDomainOrThrow(captainPublicDomain, '-healthcheck') + .then(function () { + if (callbackCalled) { + return; + } + callbackCalled = true; + callback(true); + }) + .catch(function () { + if (callbackCalled) { + return; + } + callbackCalled = true; + callback(false); + }); + } + const checksPerformed = {}; + function scheduleIfNecessary() { + if (!checksPerformed.captainHealth || + !checksPerformed.nginxHealth) { + return; + } + let hasFailedCheck = false; + if (!checksPerformed.captainHealth.value) { + Logger.w('Captain health check failed: #' + + self.consecutiveHealthCheckFailCount + + ' at ' + + captainPublicDomain); + hasFailedCheck = true; + } + if (!checksPerformed.nginxHealth.value) { + Logger.w('NGINX health check failed: #' + + self.consecutiveHealthCheckFailCount); + hasFailedCheck = true; + } + if (hasFailedCheck) { + self.consecutiveHealthCheckFailCount = + self.consecutiveHealthCheckFailCount + 1; + } + else { + self.consecutiveHealthCheckFailCount = 0; + } + scheduleNextHealthCheck(); + if (self.consecutiveHealthCheckFailCount > MAX_FAIL_ALLOWED) { + process.exit(1); + } + } + checkCaptainHealth(function (success) { + checksPerformed.captainHealth = { + value: success, + }; + scheduleIfNecessary(); + }); + checkNginxHealth(function (success) { + checksPerformed.nginxHealth = { + value: success, + }; + scheduleIfNecessary(); + }); + } + getHealthCheckUuid() { + return this.healthCheckUuid; + } + isInitialized() { + return this.inited && !this.waitUntilRestarted; + } + getCaptainImageTags() { + const url = 'https://hub.docker.com/v2/repositories/' + + CaptainConstants.configs.publishedNameOnDockerHub + + '/tags'; + return new Promise(function (resolve, reject) { + request(url, function (error, response, body) { + if (CaptainConstants.isDebug) { + resolve(['v0.0.1']); + return; + } + if (error) { + reject(error); + } + else if (!body || !JSON.parse(body).results) { + reject(new Error('Received empty body or no result for version list on docker hub.')); + } + else { + const results = JSON.parse(body).results; + const tags = []; + for (let idx = 0; idx < results.length; idx++) { + tags.push(results[idx].name); + } + resolve(tags); + } + }); + }); + } + updateCaptain(versionTag) { + const self = this; + return Promise.resolve().then(function () { + return self.dockerApi.updateService(CaptainConstants.captainServiceName, CaptainConstants.configs.publishedNameOnDockerHub + ':' + versionTag, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); + }); + } + getMyNodeId() { + if (!this.myNodeId) { + const msg = 'myNodeId is not set yet!!'; + Logger.e(msg); + throw new Error(msg); + } + return this.myNodeId; + } + getCaptainSalt() { + if (!this.captainSalt) { + const msg = 'Captain Salt is not set yet!!'; + Logger.e(msg); + throw new Error(msg); + } + return this.captainSalt; + } + updateNetDataInfo(netDataInfo) { + const self = this; + const dockerApi = this.dockerApi; + return Promise.resolve() + .then(function () { + return dockerApi.ensureContainerStoppedAndRemoved(CaptainConstants.netDataContainerName, CaptainConstants.captainNetworkName); + }) + .then(function () { + if (netDataInfo.isEnabled) { + const vols = [ + { + hostPath: '/proc', + containerPath: '/host/proc', + mode: 'ro', + }, + { + hostPath: '/sys', + containerPath: '/host/sys', + mode: 'ro', + }, + { + hostPath: '/var/run/docker.sock', + containerPath: '/var/run/docker.sock', + }, + ]; + const envVars = []; + if (netDataInfo.data.smtp) { + envVars.push({ + key: 'SSMTP_TO', + value: netDataInfo.data.smtp.to, + }); + envVars.push({ + key: 'SSMTP_HOSTNAME', + value: netDataInfo.data.smtp.hostname, + }); + envVars.push({ + key: 'SSMTP_SERVER', + value: netDataInfo.data.smtp.server, + }); + envVars.push({ + key: 'SSMTP_PORT', + value: netDataInfo.data.smtp.port, + }); + envVars.push({ + key: 'SSMTP_TLS', + value: netDataInfo.data.smtp.allowNonTls + ? 'NO' + : 'YES', + }); + envVars.push({ + key: 'SSMTP_USER', + value: netDataInfo.data.smtp.username, + }); + envVars.push({ + key: 'SSMTP_PASS', + value: netDataInfo.data.smtp.password, + }); + } + if (netDataInfo.data.slack) { + envVars.push({ + key: 'SLACK_WEBHOOK_URL', + value: netDataInfo.data.slack.hook, + }); + envVars.push({ + key: 'SLACK_CHANNEL', + value: netDataInfo.data.slack.channel, + }); + } + if (netDataInfo.data.telegram) { + envVars.push({ + key: 'TELEGRAM_BOT_TOKEN', + value: netDataInfo.data.telegram.botToken, + }); + envVars.push({ + key: 'TELEGRAM_CHAT_ID', + value: netDataInfo.data.telegram.chatId, + }); + } + if (netDataInfo.data.pushBullet) { + envVars.push({ + key: 'PUSHBULLET_ACCESS_TOKEN', + value: netDataInfo.data.pushBullet.apiToken, + }); + envVars.push({ + key: 'PUSHBULLET_DEFAULT_EMAIL', + value: netDataInfo.data.pushBullet.fallbackEmail, + }); + } + return dockerApi.createStickyContainer(CaptainConstants.netDataContainerName, CaptainConstants.netDataImageName, vols, CaptainConstants.captainNetworkName, envVars, ['SYS_PTRACE']); + } + // Just removing the old container. No need to create a new one. + return true; + }) + .then(function () { + return self.dataStore.setNetDataInfo(netDataInfo); + }); + } + getNodesInfo() { + const dockerApi = this.dockerApi; + return Promise.resolve() + .then(function () { + return dockerApi.getNodesInfo(); + }) + .then(function (data) { + if (!data || !data.length) { + throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_GENERIC, 'No cluster node was found!'); + } + return data; + }); + } + joinDockerNode(captainIpAddress, isManager, remoteNodeIpAddress, remoteUserName, privateKey) { + const dockerApi = this.dockerApi; + return Promise.resolve() + .then(function () { + return dockerApi.getJoinToken(isManager); + }) + .then(function (token) { + return new Promise(function (resolve, reject) { + const conn = new SshClient(); + conn.on('error', function (err) { + Logger.e(err); + reject(ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_GENERIC, 'SSH Connection error!!')); + }) + .on('ready', function () { + Logger.d('SSH Client :: ready'); + conn.exec(dockerApi.createJoinCommand(captainIpAddress, token), function (err, stream) { + if (err) { + Logger.e(err); + reject(ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_GENERIC, 'SSH Running command failed!!')); + return; + } + let hasExisted = false; + stream + .on('close', function (code, signal) { + Logger.d('Stream :: close :: code: ' + + code + + ', signal: ' + + signal); + conn.end(); + if (hasExisted) { + return; + } + hasExisted = true; + resolve(); + }) + .on('data', function (data) { + Logger.d('STDOUT: ' + data); + }) + .stderr.on('data', function (data) { + Logger.e('STDERR: ' + data); + if (hasExisted) { + return; + } + hasExisted = true; + reject(ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_GENERIC, 'Error during setup: ' + + data)); + }); + }); + }) + .connect({ + host: remoteNodeIpAddress, + port: 22, + username: remoteUserName, + privateKey: privateKey, + }); + }); + }); + } + getLoadBalanceManager() { + return this.loadBalancerManager; + } + reloadLoadBalancer(datastore) { + const self = this; + return self.loadBalancerManager + .rePopulateNginxConfigFile(datastore) + .then(function () { + Logger.d('sendReloadSignal...'); + return self.loadBalancerManager.sendReloadSignal(); + }); + } + getDockerRegistry() { + return this.dockerRegistry; + } + enableSsl(emailAddress) { + const self = this; + return Promise.resolve() + .then(function () { + return self.certbotManager.ensureRegistered(emailAddress); + }) + .then(function () { + return self.certbotManager.enableSsl(CaptainConstants.captainSubDomain + + '.' + + self.dataStore.getRootDomain()); + }) + .then(function () { + return self.dataStore.setUserEmailAddress(emailAddress); + }) + .then(function () { + return self.dataStore.setHasRootSsl(true); + }) + .then(function () { + return self.loadBalancerManager.rePopulateNginxConfigFile(self.dataStore); + }) + .then(function () { + return self.loadBalancerManager.sendReloadSignal(); + }); + } + forceSsl(isEnabled) { + const self = this; + return Promise.resolve() + .then(function () { + return self.dataStore.getHasRootSsl(); + }) + .then(function (hasRootSsl) { + if (!hasRootSsl) { + throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_GENERIC, 'You first need to enable SSL on the root domain before forcing it.'); + } + return self.dataStore.setForceSsl(isEnabled); + }) + .then(function () { + return self.refreshForceSslState(); + }); + } + refreshForceSslState() { + const self = this; + return Promise.resolve() + .then(function () { + return self.dataStore.getForceSsl(); + }) + .then(function (hasForceSsl) { + self.hasForceSsl = hasForceSsl; + }); + } + getForceSslValue() { + return !!this.hasForceSsl; + } + /** + * Returns a promise successfully if verification is succeeded. If it fails, it throws an exception. + * + * @param domainName the domain to verify, app.mycaptainroot.com or www.myawesomeapp.com + * @param identifierSuffix an optional suffix to be added to the identifier file name to avoid name conflict + * + * @returns {Promise.} + */ + verifyCaptainOwnsDomainOrThrow(domainName, identifierSuffix) { + const self = this; + const randomUuid = uuid(); + const captainConfirmationPath = CaptainConstants.captainConfirmationPath + + (identifierSuffix ? identifierSuffix : ''); + return Promise.resolve() + .then(function () { + return self.certbotManager.domainValidOrThrow(domainName); + }) + .then(function () { + return fs.outputFile(CaptainConstants.captainStaticFilesDir + + CaptainConstants.nginxDomainSpecificHtmlDir + + '/' + + domainName + + captainConfirmationPath, randomUuid); + }) + .then(function () { + return new Promise(function (resolve) { + setTimeout(function () { + resolve(); + }, 1000); + }); + }) + .then(function () { + return new Promise(function (resolve, reject) { + const url = 'http://' + + domainName + + ':' + + CaptainConstants.nginxPortNumber + + captainConfirmationPath; + request(url, function (error, response, body) { + if (error || !body || body !== randomUuid) { + Logger.e('Verification Failed for ' + domainName); + Logger.e('Error ' + error); + Logger.e('body ' + body); + Logger.e('randomUuid ' + randomUuid); + reject(ApiStatusCodes.createError(ApiStatusCodes.VERIFICATION_FAILED, 'Verification Failed.')); + return; + } + resolve(); + }); + }); + }); + } + getNginxConfig() { + const self = this; + return Promise.resolve().then(function () { + return self.dataStore.getNginxConfig(); + }); + } + setNginxConfig(baseConfig, captainConfig) { + const self = this; + return Promise.resolve() + .then(function () { + return self.dataStore.setNginxConfig(baseConfig, captainConfig); + }) + .then(function () { + self.resetSelf(); + }); + } + requestCertificateForDomain(domainName) { + return this.certbotManager.enableSsl(domainName); + } + verifyDomainResolvesToDefaultServerOnHost(domainName) { + const self = this; + return new Promise(function (resolve, reject) { + const url = 'http://' + + domainName + + CaptainConstants.captainConfirmationPath; + Logger.d('Sending request to ' + url); + request(url, function (error, response, body) { + if (error || + !body || + body !== + self.loadBalancerManager.getCaptainPublicRandomKey()) { + reject(ApiStatusCodes.createError(ApiStatusCodes.VERIFICATION_FAILED, 'Verification Failed.')); + return; + } + resolve(); + }); + }); + } + changeCaptainRootDomain(requestedCustomDomain) { + const self = this; + // Some DNS servers do not allow wild cards. Therefore this line may fail. + // We still allow users to specify the domains in their DNS settings individually + // SubDomains that need to be added are "captain." "registry." "app-name." + const url = (CaptainConstants.configs.preCheckForWildCard + ? uuid() + : CaptainConstants.captainSubDomain) + + '.' + + requestedCustomDomain + + ':' + + CaptainConstants.nginxPortNumber; + return self + .verifyDomainResolvesToDefaultServerOnHost(url) + .then(function () { + return self.dataStore.getHasRootSsl(); + }) + .then(function (hasRootSsl) { + if (hasRootSsl && + self.dataStore.getRootDomain() !== requestedCustomDomain) { + throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_GENERIC, 'SSL is enabled for root. Too late to change your mind!'); + } + return self.dataStore.setCustomDomain(requestedCustomDomain); + }) + .then(function () { + return self.reloadLoadBalancer(self.dataStore); + }); + } + resetSelf() { + const self = this; + Logger.d('Captain is resetting itself!'); + return new Promise(function (resolve, reject) { + setTimeout(function () { + const promiseToIgnore = self.dockerApi.updateService(CaptainConstants.captainServiceName, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); + }, 2000); + }); + } + static get() { + return captainManagerInstance; + } +} +const captainManagerInstance = new CaptainManager(); +module.exports = CaptainManager; +//# sourceMappingURL=CaptainManager.js.map \ No newline at end of file diff --git a/app-backend/built/user/system/CaptainManager.js.map b/app-backend/built/user/system/CaptainManager.js.map new file mode 100644 index 0000000..c5727f2 --- /dev/null +++ b/app-backend/built/user/system/CaptainManager.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CaptainManager.js","sourceRoot":"","sources":["../../../src/user/system/CaptainManager.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app-backend/built/user/system/CertbotManager.js b/app-backend/built/user/system/CertbotManager.js new file mode 100644 index 0000000..0841fd7 --- /dev/null +++ b/app-backend/built/user/system/CertbotManager.js @@ -0,0 +1,288 @@ +"use strict"; +const CaptainConstants = require("../../utils/CaptainConstants"); +const Logger = require("../../utils/Logger"); +const fs = require("fs-extra"); +const ApiStatusCodes = require("../../api/ApiStatusCodes"); +const CAPTAIN_WEBROOT_PATH_CERTBOT = '/captain-webroot'; +const shouldUseStaging = false; // CaptainConstants.isDebug; +class CertbotManager { + constructor(dockerApi) { + this.dockerApi = dockerApi; + this.dockerApi = dockerApi; + } + domainValidOrThrow(domainName) { + if (!domainName) { + throw new Error('Domain Name is empty'); + } + const RegExpression = /^[a-z0-9\.\-]*$/; + if (!RegExpression.test(domainName)) { + throw new Error('Bad Domain Name!'); + } + } + getCertRelativePathForDomain(domainName) { + const self = this; + self.domainValidOrThrow(domainName); + return '/live/' + domainName + '/fullchain.pem'; + } + getKeyRelativePathForDomain(domainName) { + const self = this; + self.domainValidOrThrow(domainName); + return '/live/' + domainName + '/privkey.pem'; + } + enableSsl(domainName) { + const dockerApi = this.dockerApi; + const self = this; + Logger.d('Enabling SSL for ' + domainName); + self.domainValidOrThrow(domainName); + return Promise.resolve() + .then(function () { + const webrootInCaptainContainer = CaptainConstants.captainStaticFilesDir + + CaptainConstants.nginxDomainSpecificHtmlDir + + '/' + + domainName; + return fs.ensureDir(webrootInCaptainContainer); + }) + .then(function () { + const cmd = [ + 'certbot', + 'certonly', + '--webroot', + '-w', + CAPTAIN_WEBROOT_PATH_CERTBOT + '/' + domainName, + '-d', + domainName, + '--non-interactive', + ]; + if (shouldUseStaging) { + cmd.push('--staging'); + } + return self.runCommand(cmd).then(function (output) { + Logger.d(output); + if (output.indexOf('Congratulations! Your certificate and chain have been saved') >= 0) { + return true; + } + if (output.indexOf('Certificate not yet due for renewal; no action taken') >= 0) { + return true; + } + throw ApiStatusCodes.createError(ApiStatusCodes.VERIFICATION_FAILED, 'Unexpected output when enabling SSL for' + + domainName + + ' with ACME Certbot \n' + + output); + }); + }); + } + ensureRegistered(emailAddress) { + const dockerApi = this.dockerApi; + const self = this; + return Promise.resolve() + .then(function () { + const rootPathDir = CaptainConstants.letsEncryptEtcPath + + '/accounts/acme-' + + (shouldUseStaging ? 'staging' : 'v01') + + '.api.letsencrypt.org/directory'; + if (!fs.existsSync(rootPathDir)) { + Logger.d('Fresh install of Certbot. There is no registration directory'); + return undefined; + } + const files = fs.readdirSync(rootPathDir); + if (files.length === 0) { + Logger.d('Fresh install of Certbot. There is nothing in the registration directory'); + return undefined; + } + if (files.length !== 1) { + throw new Error('I do not know know what to do when there are multiple directories in ' + + rootPathDir); + } + const regFilePath = rootPathDir + '/' + files[0] + '/regr.json'; + if (!fs.existsSync(regFilePath)) { + throw new Error('ACME Reg directory exists, but there is no file! ' + + regFilePath); + } + return fs.readJson(regFilePath); + }) + .then(function (regrContent) { + if (!regrContent) { + const cmd = [ + 'certbot', + 'register', + '--email', + emailAddress, + '--agree-tos', + '--no-eff-email', + '--non-interactive', + ]; + if (shouldUseStaging) { + cmd.push('--staging'); + } + return self.runCommand(cmd).then(function (registerOutput) { + if (registerOutput.indexOf('Your account credentials have been saved in your Certbot') >= 0) { + return true; + } + throw new Error('Unexpected output when registering with ACME Certbot \n' + + registerOutput); + }); + } + else { + /* + + /etc/letsencrypt/accounts/acme-v01.api.letsencrypt.org/directory/864339b5816d33d67743 # cat regr.json + + { + "body":{ + "contact":[ + "mailto:testemail@gmail.com" + ], + "agreement":"https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf", + "key":{ + "e":"AQAB", + "kty":"RSA", + "n":"1l-5ihAl0BFSiS3Pl3LjQ" + } + }, + "uri":"https://acme-v01.api.letsencrypt.org/acme/reg/0421", + "new_authzr_uri":"https://acme-v01.api.letsencrypt.org/acme/new-authz", + "terms_of_service":"https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf" + } + + */ + let contact = undefined; + if (regrContent && + regrContent.body && + regrContent.body.contact && + Array.isArray(regrContent.body.contact)) { + contact = regrContent.body.contact; + for (let idx = 0; idx < contact.length; idx++) { + if (contact[idx] === 'mailto:' + emailAddress) { + return true; + } + } + } + throw new Error('Previously registered with a different address: ' + + contact + ? JSON.stringify(contact) + : 'NULL'); + } + }); + } + runCommand(cmd) { + const dockerApi = this.dockerApi; + const self = this; + return Promise.resolve().then(function () { + return dockerApi.executeCommand(CaptainConstants.certbotServiceName, cmd); + }); + } + renewAllCerts() { + const self = this; + /* + From Certbot docs: + This command attempts to renew all previously-obtained certificates that expire in less than 30 days. + The same plugin and options that were used at the time the certificate was originally issued will be + used for the renewal attempt, unless you specify other plugins or options. Unlike certonly, renew + acts on multiple certificates and always takes into account whether each one is near expiry. Because + of this, renew is suitable (and designed) for automated use, to allow your system to automatically + renew each certificate when appropriate. Since renew only renews certificates that are near expiry + it can be run as frequently as you want - since it will usually take no action. + */ + // before doing renewal, let's schedule the next one in 20.3 hours! + // this random schedule helps to avoid retrying at the same time of + // the day in case if that's our super high traffic time + setTimeout(function () { + self.renewAllCerts(); + }, 1000 * 3600 * 20.3); + const cmd = ['certbot', 'renew']; + if (shouldUseStaging) { + cmd.push('--staging'); + } + return self.runCommand(cmd).then(function (output) { + // Ignore output :) + }); + } + init(myNodeId) { + const dockerApi = this.dockerApi; + const self = this; + const domainSpecificRootDirectoryInHost = CaptainConstants.captainStaticFilesDir + + CaptainConstants.nginxDomainSpecificHtmlDir; + function createCertbotServiceOnNode(nodeId) { + return dockerApi + .createServiceOnNodeId(CaptainConstants.certbotImageName, CaptainConstants.certbotServiceName, undefined, nodeId, undefined, undefined, undefined) + .then(function () { + const waitTimeInMillis = 5000; + Logger.d('Waiting for ' + + waitTimeInMillis / 1000 + + ' seconds for Certbot to start up'); + return new Promise(function (resolve, reject) { + setTimeout(function () { + resolve(true); + }, waitTimeInMillis); + }); + }); + } + return Promise.resolve() + .then(function () { + return fs.ensureDir(CaptainConstants.letsEncryptEtcPath); + }) + .then(function () { + return fs.ensureDir(CaptainConstants.letsEncryptLibPath); + }) + .then(function () { + return fs.ensureDir(domainSpecificRootDirectoryInHost); + }) + .then(function () { + return dockerApi.isServiceRunningByName(CaptainConstants.certbotServiceName); + }) + .then(function (isRunning) { + if (isRunning) { + Logger.d('Captain Certbot is already running.. '); + return dockerApi.getNodeIdByServiceName(CaptainConstants.certbotServiceName, 0); + } + else { + Logger.d('No Captain Certbot service is running. Creating one...'); + return createCertbotServiceOnNode(myNodeId).then(function () { + return myNodeId; + }); + } + }) + .then(function (nodeId) { + if (nodeId !== myNodeId) { + Logger.d('Captain Certbot is running on a different node. Removing...'); + return dockerApi + .removeServiceByName(CaptainConstants.certbotServiceName) + .then(function () { + return createCertbotServiceOnNode(myNodeId).then(function () { + return true; + }); + }); + } + else { + return true; + } + }) + .then(function () { + Logger.d('Updating Certbot service...'); + return dockerApi.updateService(CaptainConstants.certbotServiceName, undefined, [ + { + hostPath: CaptainConstants.letsEncryptEtcPath, + containerPath: '/etc/letsencrypt', + }, + { + hostPath: CaptainConstants.letsEncryptLibPath, + containerPath: '/var/lib/letsencrypt', + }, + { + hostPath: domainSpecificRootDirectoryInHost, + containerPath: CAPTAIN_WEBROOT_PATH_CERTBOT, + }, + ], + // No need to certbot to be connected to the network + undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); + }) + .then(function () { + // schedule the first attempt to renew certs in 1 minute + setTimeout(function () { + self.renewAllCerts(); + }, 1000 * 60); + }); + } +} +module.exports = CertbotManager; +//# sourceMappingURL=CertbotManager.js.map \ No newline at end of file diff --git a/app-backend/built/user/system/CertbotManager.js.map b/app-backend/built/user/system/CertbotManager.js.map new file mode 100644 index 0000000..75fbbf2 --- /dev/null +++ b/app-backend/built/user/system/CertbotManager.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CertbotManager.js","sourceRoot":"","sources":["../../../src/user/system/CertbotManager.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app-backend/built/user/system/LoadBalancerManager.js b/app-backend/built/user/system/LoadBalancerManager.js new file mode 100644 index 0000000..3a47023 --- /dev/null +++ b/app-backend/built/user/system/LoadBalancerManager.js @@ -0,0 +1,393 @@ +"use strict"; +const ejs = require("ejs"); +const CaptainConstants = require("../../utils/CaptainConstants"); +const Logger = require("../../utils/Logger"); +const fs = require("fs-extra"); +const uuid = require("uuid/v4"); +const request = require("request"); +const ApiStatusCodes = require("../../api/ApiStatusCodes"); +const defaultPageTemplate = fs + .readFileSync(__dirname + '/../../template/default-page.ejs') + .toString(); +class LoadBalancerManager { + constructor(dockerApi, certbotManager, dataStore) { + this.dockerApi = dockerApi; + this.certbotManager = certbotManager; + this.dataStore = dataStore; + this.reloadInProcess = false; + this.requestedReloadPromises = []; + this.captainPublicRandomKey = uuid(); + } + /** + * Reloads the configuation for NGINX. + * NOTE that this can return synchronously with UNDEFINED if there is already a process in the background. + * @param dataStoreToQueue + * @returns {Promise.<>} + */ + rePopulateNginxConfigFile(dataStoreToQueue) { + const self = this; + return new Promise(function (res, rej) { + self.requestedReloadPromises.push({ + dataStore: dataStoreToQueue, + resolve: res, + reject: rej, + }); + self.consumeQueueIfAnyInNginxReloadQueue(); + }); + } + consumeQueueIfAnyInNginxReloadQueue() { + const self = this; + const q = self.requestedReloadPromises.pop(); + if (!q) { + return; + } + if (self.reloadInProcess) { + Logger.d('NGINX Reload already in process, Bouncing off...'); + return; + } + Logger.d('Locking NGINX configuration reloading...'); + self.reloadInProcess = true; + const dataStore = q.dataStore; + // This will resolve to something like: /captain/nginx/conf.d/captain + const configFilePathBase = CaptainConstants.perAppNginxConfigPathBase + + '/' + + dataStore.getNameSpace(); + const FUTURE = configFilePathBase + '.fut'; + const BACKUP = configFilePathBase + '.bak'; + const CONFIG = configFilePathBase + '.conf'; + let nginxConfigContent = ''; + return Promise.resolve() + .then(function () { + return fs.remove(FUTURE); + }) + .then(function () { + return dataStore.getServerList(); + }) + .then(function (servers) { + const promises = []; + if (servers && !!servers.length) { + for (let i = 0; i < servers.length; i++) { + const s = servers[i]; + if (s.hasSsl) { + s.crtPath = self.getSslCertPath(s.publicDomain); + s.keyPath = self.getSslKeyPath(s.publicDomain); + } + s.staticWebRoot = + CaptainConstants.nginxStaticRootDir + + CaptainConstants.nginxDomainSpecificHtmlDir + + '/' + + s.publicDomain; + promises.push(Promise.resolve() + .then(function () { + return ejs.render(s.nginxConfigTemplate, { + s: s, + }); + }) + .then(function (rendered) { + nginxConfigContent += rendered; + })); + } + } + return Promise.all(promises); + }) + .then(function () { + return fs.outputFile(FUTURE, nginxConfigContent); + }) + .then(function () { + return fs.remove(BACKUP); + }) + .then(function () { + return fs.ensureFile(CONFIG); + }) + .then(function () { + return fs.renameSync(CONFIG, BACKUP); // sync method. It's really fast. + }) + .then(function () { + return fs.renameSync(FUTURE, CONFIG); // sync method. It's really fast. + }) + .then(function () { + return self.createRootConfFile(dataStore); + }) + .then(function () { + Logger.d('SUCCESS: UNLocking NGINX configuration reloading...'); + self.reloadInProcess = false; + q.resolve(); + self.consumeQueueIfAnyInNginxReloadQueue(); + }) + .catch(function (error) { + Logger.e(error); + Logger.d('Error: UNLocking NGINX configuration reloading...'); + self.reloadInProcess = false; + q.reject(error); + self.consumeQueueIfAnyInNginxReloadQueue(); + }); + } + sendReloadSignal() { + return this.dockerApi.sendSingleContainerKillHUP(CaptainConstants.nginxServiceName); + } + getCaptainPublicRandomKey() { + return this.captainPublicRandomKey; + } + getSslCertPath(domainName) { + const self = this; + return (CaptainConstants.letsEncryptEtcPathOnNginx + + self.certbotManager.getCertRelativePathForDomain(domainName)); + } + getSslKeyPath(domainName) { + const self = this; + return (CaptainConstants.letsEncryptEtcPathOnNginx + + self.certbotManager.getKeyRelativePathForDomain(domainName)); + } + getInfo() { + return new Promise(function (resolve, reject) { + const url = 'http://' + CaptainConstants.nginxServiceName + '/nginx_status'; + request(url, function (error, response, body) { + if (error || !body) { + Logger.e('Error ' + error); + reject(ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_GENERIC, 'Request to nginx Failed.')); + return; + } + try { + const data = new LoadBalancerInfo(); + const lines = body.split('\n'); + data.activeConnections = Number(lines[0].split(' ')[2].trim()); + data.accepted = Number(lines[2].split(' ')[1].trim()); + data.handled = Number(lines[2].split(' ')[2].trim()); + data.total = Number(lines[2].split(' ')[3].trim()); + data.reading = Number(lines[3].split(' ')[1].trim()); + data.writing = Number(lines[3].split(' ')[3].trim()); + data.waiting = Number(lines[3].split(' ')[5].trim()); + resolve(data); + } + catch (error) { + Logger.e('Cannot parse ' + body); + reject(ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_GENERIC, 'Parser Failed. See internal logs...')); + } + }); + }); + } + createRootConfFile(dataStore) { + const self = this; + const captainDomain = CaptainConstants.captainSubDomain + '.' + dataStore.getRootDomain(); + const registryDomain = CaptainConstants.registrySubDomain + '.' + dataStore.getRootDomain(); + let hasRootSsl = false; + const FUTURE = CaptainConstants.rootNginxConfigPath + '.fut'; + const BACKUP = CaptainConstants.rootNginxConfigPath + '.bak'; + const CONFIG = CaptainConstants.rootNginxConfigPath + '.conf'; + let rootNginxTemplate = undefined; + return Promise.resolve() + .then(function () { + return dataStore.getNginxConfig(); + }) + .then(function (nginxConfig) { + rootNginxTemplate = + nginxConfig.captainConfig.customValue || + nginxConfig.captainConfig.byDefault; + return dataStore.getHasRootSsl(); + }) + .then(function (hasSsl) { + hasRootSsl = hasSsl; + return dataStore.getHasRegistrySsl(); + }) + .then(function (hasRegistrySsl) { + return ejs.render(rootNginxTemplate, { + captain: { + crtPath: self.getSslCertPath(captainDomain), + keyPath: self.getSslKeyPath(captainDomain), + hasRootSsl: hasRootSsl, + serviceName: CaptainConstants.captainServiceName, + domain: captainDomain, + serviceExposedPort: CaptainConstants.captainServiceExposedPort, + defaultHtmlDir: CaptainConstants.nginxStaticRootDir + + CaptainConstants.nginxDefaultHtmlDir, + staticWebRoot: CaptainConstants.nginxStaticRootDir + + CaptainConstants.nginxDomainSpecificHtmlDir + + '/' + + captainDomain, + }, + registry: { + crtPath: self.getSslCertPath(registryDomain), + keyPath: self.getSslKeyPath(registryDomain), + hasRootSsl: hasRegistrySsl, + domain: registryDomain, + staticWebRoot: CaptainConstants.nginxStaticRootDir + + CaptainConstants.nginxDomainSpecificHtmlDir + + '/' + + registryDomain, + }, + }); + }) + .then(function (rootNginxConfContent) { + return fs.outputFile(FUTURE, rootNginxConfContent); + }) + .then(function () { + return fs.remove(BACKUP); + }) + .then(function () { + return fs.ensureFile(CONFIG); + }) + .then(function () { + return fs.renameSync(CONFIG, BACKUP); // sync method. It's really fast. + }) + .then(function () { + return fs.renameSync(FUTURE, CONFIG); // sync method. It's really fast. + }); + } + ensureBaseNginxConf() { + const self = this; + return Promise.resolve() + .then(function () { + return self.dataStore.getNginxConfig(); + }) + .then(function (captainConfig) { + const baseConfigTemplate = captainConfig.baseConfig.customValue || + captainConfig.baseConfig.byDefault; + return ejs.render(baseConfigTemplate, {}); + }) + .then(function (baseNginxConfFileContent) { + return fs.outputFile(CaptainConstants.baseNginxConfigPath, baseNginxConfFileContent); + }); + } + init(myNodeId, dataStore) { + const dockerApi = this.dockerApi; + const self = this; + function createNginxServiceOnNode(nodeId) { + Logger.d('No Captain Nginx service is running. Creating one on captain node...'); + return dockerApi + .createServiceOnNodeId(CaptainConstants.nginxImageName, CaptainConstants.nginxServiceName, [ + { + protocol: 'tcp', + publishMode: 'host', + containerPort: 80, + hostPort: CaptainConstants.nginxPortNumber, + }, + { + protocol: 'tcp', + publishMode: 'host', + containerPort: 443, + hostPort: 443, + }, + ], nodeId, undefined, undefined, { + Reservation: { + MemoryBytes: 30 * 1024 * 1024, + }, + }) + .then(function () { + const waitTimeInMillis = 5000; + Logger.d('Waiting for ' + + waitTimeInMillis / 1000 + + ' seconds for nginx to start up'); + return new Promise(function (resolve, reject) { + setTimeout(function () { + resolve(true); + }, waitTimeInMillis); + }); + }); + } + return fs + .outputFile(CaptainConstants.captainStaticFilesDir + + CaptainConstants.nginxDefaultHtmlDir + + CaptainConstants.captainConfirmationPath, self.getCaptainPublicRandomKey()) + .then(function () { + return ejs.render(defaultPageTemplate, { + message: 'Nothing here yet :/', + }); + }) + .then(function (staticPageContent) { + return fs.outputFile(CaptainConstants.captainStaticFilesDir + + CaptainConstants.nginxDefaultHtmlDir + + '/index.html', staticPageContent); + }) + .then(function () { + return ejs.render(defaultPageTemplate, { + message: 'An Error Occurred :/', + }); + }) + .then(function (errorPageContent) { + return fs.outputFile(CaptainConstants.captainStaticFilesDir + + CaptainConstants.nginxDefaultHtmlDir + + '/error.html', errorPageContent); + }) + .then(function () { + Logger.d('Setting up NGINX conf file...'); + return self.ensureBaseNginxConf(); + }) + .then(function () { + return self.rePopulateNginxConfigFile(dataStore); + }) + .then(function () { + return fs.ensureDir(CaptainConstants.letsEncryptEtcPath); + }) + .then(function () { + return fs.ensureDir(CaptainConstants.nginxSharedPathOnHost); + }) + .then(function () { + return dockerApi.isServiceRunningByName(CaptainConstants.nginxServiceName); + }) + .then(function (isRunning) { + if (isRunning) { + Logger.d('Captain Nginx is already running.. '); + return dockerApi.getNodeIdByServiceName(CaptainConstants.nginxServiceName, 0); + } + else { + return createNginxServiceOnNode(myNodeId).then(function () { + return myNodeId; + }); + } + }) + .then(function (nodeId) { + if (nodeId !== myNodeId) { + Logger.d('Captain Nginx is running on a different node. Removing...'); + return dockerApi + .removeServiceByName(CaptainConstants.nginxServiceName) + .then(function () { + return createNginxServiceOnNode(myNodeId).then(function () { + return true; + }); + }); + } + else { + return true; + } + }) + .then(function () { + Logger.d('Updating NGINX service...'); + return dockerApi.updateService(CaptainConstants.nginxServiceName, undefined, [ + { + containerPath: CaptainConstants.nginxStaticRootDir, + hostPath: CaptainConstants.captainStaticFilesDir, + }, + { + containerPath: '/etc/nginx/nginx.conf', + hostPath: CaptainConstants.baseNginxConfigPath, + }, + { + containerPath: '/etc/nginx/conf.d', + hostPath: CaptainConstants.perAppNginxConfigPathBase, + }, + { + containerPath: CaptainConstants.letsEncryptEtcPathOnNginx, + hostPath: CaptainConstants.letsEncryptEtcPath, + }, + { + containerPath: CaptainConstants.nginxSharedPathOnNginx, + hostPath: CaptainConstants.nginxSharedPathOnHost, + }, + ], [CaptainConstants.captainNetworkName], undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined); + }) + .then(function () { + const waitTimeInMillis = 5000; + Logger.d('Waiting for ' + + waitTimeInMillis / 1000 + + ' seconds for nginx reload to take into effect'); + return new Promise(function (resolve, reject) { + setTimeout(function () { + Logger.d('NGINX is fully set up and working...'); + resolve(true); + }, waitTimeInMillis); + }); + }); + } +} +module.exports = LoadBalancerManager; +//# sourceMappingURL=LoadBalancerManager.js.map \ No newline at end of file diff --git a/app-backend/built/user/system/LoadBalancerManager.js.map b/app-backend/built/user/system/LoadBalancerManager.js.map new file mode 100644 index 0000000..1aa99d8 --- /dev/null +++ b/app-backend/built/user/system/LoadBalancerManager.js.map @@ -0,0 +1 @@ +{"version":3,"file":"LoadBalancerManager.js","sourceRoot":"","sources":["../../../src/user/system/LoadBalancerManager.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app-backend/built/user/system/SelfHostedDockerRegistry.js b/app-backend/built/user/system/SelfHostedDockerRegistry.js new file mode 100644 index 0000000..bd1d56e --- /dev/null +++ b/app-backend/built/user/system/SelfHostedDockerRegistry.js @@ -0,0 +1,156 @@ +"use strict"; +const CaptainConstants = require("../../utils/CaptainConstants"); +const Logger = require("../../utils/Logger"); +const fs = require("fs-extra"); +const ApiStatusCodes = require("../../api/ApiStatusCodes"); +const bcrypt = require("bcryptjs"); +class SelfHostedDockerRegistry { + constructor(dockerApi, dataStore, certbotManager, loadBalancerManager, captainManager) { + this.dockerApi = dockerApi; + this.dataStore = dataStore; + this.certbotManager = certbotManager; + this.loadBalancerManager = loadBalancerManager; + this.captainManager = captainManager; + // + } + enableRegistrySsl() { + const self = this; + return Promise.resolve() + .then(function () { + return self.dataStore.getHasRootSsl(); + }) + .then(function (rootHasSsl) { + if (!rootHasSsl) { + throw ApiStatusCodes.createError(ApiStatusCodes.ILLEGAL_OPERATION, 'Root must have SSL before enabling ssl for docker registry.'); + } + return self.certbotManager.enableSsl(CaptainConstants.registrySubDomain + + '.' + + self.dataStore.getRootDomain()); + }) + .then(function () { + return self.dataStore.setHasRegistrySsl(true); + }) + .then(function () { + return self.loadBalancerManager.rePopulateNginxConfigFile(self.dataStore); + }) + .then(function () { + return self.loadBalancerManager.sendReloadSignal(); + }); + } + getLocalRegistryDomainAndPort() { + const self = this; + return (CaptainConstants.registrySubDomain + + '.' + + self.dataStore.getRootDomain() + + ':' + + CaptainConstants.configs.registrySubDomainPort); + } + ensureServiceRemoved() { + const dockerApi = this.dockerApi; + return Promise.resolve() // + .then(function () { + return dockerApi.isServiceRunningByName(CaptainConstants.registryServiceName); + }) + .then(function (isRunning) { + if (!isRunning) + return; + return dockerApi.removeServiceByName(CaptainConstants.registryServiceName); + }); + } + ensureDockerRegistryRunningOnThisNode(password) { + const dockerApi = this.dockerApi; + const dataStore = this.dataStore; + const myNodeId = this.captainManager.getMyNodeId(); + function createRegistryServiceOnNode() { + return dockerApi.createServiceOnNodeId(CaptainConstants.registryImageName, CaptainConstants.registryServiceName, [ + { + protocol: 'tcp', + containerPort: 5000, + hostPort: CaptainConstants.configs.registrySubDomainPort, + }, + ], myNodeId, [ + { + containerPath: '/cert-files', + hostPath: CaptainConstants.letsEncryptEtcPath, + }, + { + containerPath: '/var/lib/registry', + hostPath: CaptainConstants.registryPathOnHost, + }, + { + containerPath: '/etc/auth', + hostPath: CaptainConstants.registryAuthPathOnHost, + }, + ], [ + { + key: 'REGISTRY_HTTP_TLS_CERTIFICATE', + value: '/cert-files/live/' + + CaptainConstants.registrySubDomain + + '.' + + dataStore.getRootDomain() + + '/fullchain.pem', + }, + { + key: 'REGISTRY_HTTP_TLS_KEY', + value: '/cert-files/live/' + + CaptainConstants.registrySubDomain + + '.' + + dataStore.getRootDomain() + + '/privkey.pem', + }, + { + key: 'REGISTRY_AUTH', + value: 'htpasswd', + }, + { + key: 'REGISTRY_AUTH_HTPASSWD_REALM', + value: 'Registry Realm', + }, + { + key: 'REGISTRY_AUTH_HTPASSWD_PATH', + value: '/etc/auth', + }, + ], undefined); + } + return Promise.resolve() + .then(function () { + const authContent = CaptainConstants.captainRegistryUsername + + ':' + + bcrypt.hashSync(password, bcrypt.genSaltSync(5)); + return fs.outputFile(CaptainConstants.registryAuthPathOnHost, authContent); + }) + .then(function () { + return dockerApi.isServiceRunningByName(CaptainConstants.registryServiceName); + }) + .then(function (isRunning) { + if (isRunning) { + Logger.d('Captain Registry is already running.. '); + return dockerApi.getNodeIdByServiceName(CaptainConstants.registryServiceName, 0); + } + else { + Logger.d('No Captain Registry service is running. Creating one...'); + return createRegistryServiceOnNode().then(function () { + return myNodeId; + }); + } + }) + .then(function (nodeId) { + if (nodeId !== myNodeId) { + Logger.d('Captain Registry is running on a different node. Removing...'); + return dockerApi + .removeServiceByName(CaptainConstants.registryServiceName) + .then(function () { + Logger.d('Creating Registry on this node...'); + return createRegistryServiceOnNode().then(function () { + return true; + }); + }); + } + else { + return true; + } + }); + } +} +module.exports = SelfHostedDockerRegistry; +//# sourceMappingURL=SelfHostedDockerRegistry.js.map \ No newline at end of file diff --git a/app-backend/built/user/system/SelfHostedDockerRegistry.js.map b/app-backend/built/user/system/SelfHostedDockerRegistry.js.map new file mode 100644 index 0000000..31edc71 --- /dev/null +++ b/app-backend/built/user/system/SelfHostedDockerRegistry.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SelfHostedDockerRegistry.js","sourceRoot":"","sources":["../../../src/user/system/SelfHostedDockerRegistry.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app-backend/built/utils/TemplateHelperVersionPrinter.js b/app-backend/built/utils/TemplateHelperVersionPrinter.js new file mode 100644 index 0000000..4dd6b7d --- /dev/null +++ b/app-backend/built/utils/TemplateHelperVersionPrinter.js @@ -0,0 +1,118 @@ +"use strict"; +const request = require("request"); +const ApiStatusCodes = require("../api/ApiStatusCodes"); +const Logger = require("./Logger"); +function getTagsForImage(imageBaseName, url, allTags) { + if (!url) { + url = + 'https://hub.docker.com/v2/repositories/' + imageBaseName + '/tags'; + } + return new Promise(function (resolve, reject) { + request(url, function (error, response, body) { + if (error || !body) { + Logger.e(error); + reject(error); + return; + } + try { + // Sometimes Docker server is down and it crashes Captain! + body = JSON.parse(body); + } + catch (e) { + Logger.e(e); + } + let results; + if (body) { + results = body.results; + } + if (!results) { + Logger.e('NO RESULT'); + reject(new Error('NO RESULT')); + return; + } + if (!allTags) { + allTags = []; + } + for (let idx = 0; idx < results.length; idx++) { + allTags.push(results[idx].name); + } + if (body.next) { + resolve(getTagsForImage(imageBaseName, body.next, allTags)); + return; + } + resolve(allTags); + }); + }); +} +function firstEndsWithSecond(str1, str2) { + if (!str1 || !str2) { + throw new Error('Str1 or Str2 are null ' + !str1 + ' ' + !str2); + } + const idx = str1.indexOf(str2); + return idx >= 0 && idx + str2.length === str1.length; +} +function isEmpty(obj) { + for (const key in obj) { + if (obj.hasOwnProperty(key)) { + return false; + } + } + return true; +} +class TemplateHelperVersionPrinter { + constructor() { + this.cachedImageTags = {}; + } + getDockerVersionsForTemplateName(templateObj) { + const self = this; + if (isEmpty(this.cachedImageTags)) { + throw ApiStatusCodes.createError(ApiStatusCodes.STATUS_ERROR_GENERIC, 'Please wait about 30 seconds, then try again.'); + } + const tags = self.cachedImageTags[templateObj.dockerHubImageName]; + const dockerVersions = []; + for (let i = 0; i < tags.length; i++) { + const t = tags[i]; + if (firstEndsWithSecond(t, templateObj.tagSuffix)) { + dockerVersions.push(t.substring(0, t.length - templateObj.tagSuffix.length)); + } + } + return dockerVersions; + } + printAvailableImageTagsForReadme(templates) { + const self = this; + self.cachedImageTags = {}; + const tempCache = {}; + for (let i = 0; i < templates.length; i++) { + const currentImageName = templates[i].dockerHubImageName; + getTagsForImage(currentImageName, undefined, undefined) + .then(function (tags) { + tempCache[currentImageName] = tags; + let isAllDone = true; + for (let j = 0; j < templates.length; j++) { + const imageName = templates[j].dockerHubImageName; + if (!tempCache[imageName]) { + isAllDone = false; + } + } + if (isAllDone) { + Logger.d('Template Cache Updated!'); + self.cachedImageTags = tempCache; + // Used for README + for (let tempIdx = 0; tempIdx < templates.length; tempIdx++) { + Logger.d(' '); + Logger.d(templates[tempIdx].templateName + '/'); + Logger.d(self + .getDockerVersionsForTemplateName(templates[tempIdx]) + .join(', ')); + Logger.d(' '); + } + } + }) + .catch(function (error) { + Logger.e(error); + }); + } + } +} +module.exports = TemplateHelperVersionPrinter; +//# sourceMappingURL=TemplateHelperVersionPrinter.js.map \ No newline at end of file diff --git a/app-backend/built/utils/TemplateHelperVersionPrinter.js.map b/app-backend/built/utils/TemplateHelperVersionPrinter.js.map new file mode 100644 index 0000000..3404d12 --- /dev/null +++ b/app-backend/built/utils/TemplateHelperVersionPrinter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"TemplateHelperVersionPrinter.js","sourceRoot":"","sources":["../../src/utils/TemplateHelperVersionPrinter.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/app-backend/src/app.ts b/app-backend/src/app.ts index bb20a11..0c33f2a 100644 --- a/app-backend/src/app.ts +++ b/app-backend/src/app.ts @@ -6,7 +6,7 @@ import cookieParser = require('cookie-parser') import bodyParser = require('body-parser') import httpProxyImport = require('http-proxy') -import CaptainManager = require('./user/CaptainManager') +import CaptainManager = require('./user/system/CaptainManager') import BaseApi = require('./api/BaseApi') import ApiStatusCodes = require('./api/ApiStatusCodes') import Injector = require('./injection/Injector') diff --git a/app-backend/src/injection/Injector.ts b/app-backend/src/injection/Injector.ts index 0d72e31..079960e 100644 --- a/app-backend/src/injection/Injector.ts +++ b/app-backend/src/injection/Injector.ts @@ -1,7 +1,7 @@ import DataStoreProvider = require('../datastore/DataStoreProvider') import Authenticator = require('../user/Authenticator') import CaptainConstants = require('../utils/CaptainConstants') -import CaptainManager = require('../user/CaptainManager') +import CaptainManager = require('../user/system/CaptainManager') import ServiceManager = require('../user/ServiceManager') import DockerApiProvider = require('../docker/DockerApi') import BaseApi = require('../api/BaseApi') diff --git a/app-backend/src/routes/system/SystemRouteSelfHostRegistry.ts b/app-backend/src/routes/system/SystemRouteSelfHostRegistry.ts index cf92e99..901a2a2 100644 --- a/app-backend/src/routes/system/SystemRouteSelfHostRegistry.ts +++ b/app-backend/src/routes/system/SystemRouteSelfHostRegistry.ts @@ -2,7 +2,7 @@ import express = require('express') import BaseApi = require('../../api/BaseApi') import ApiStatusCodes = require('../../api/ApiStatusCodes') import Logger = require('../../utils/Logger') -import CaptainManager = require('../../user/CaptainManager') +import CaptainManager = require('../../user/system/CaptainManager') import Validator = require('validator') import CaptainConstants = require('../../utils/CaptainConstants') import InjectionExtractor = require('../../injection/InjectionExtractor') diff --git a/app-backend/src/routes/system/SystemRouter.ts b/app-backend/src/routes/system/SystemRouter.ts index 2b98aa9..c6c2427 100644 --- a/app-backend/src/routes/system/SystemRouter.ts +++ b/app-backend/src/routes/system/SystemRouter.ts @@ -2,7 +2,7 @@ import express = require('express') import BaseApi = require('../../api/BaseApi') import ApiStatusCodes = require('../../api/ApiStatusCodes') import Logger = require('../../utils/Logger') -import CaptainManager = require('../../user/CaptainManager') +import CaptainManager = require('../../user/system/CaptainManager') import Validator = require('validator') import SystemRouteSelfHostRegistry = require('./SystemRouteSelfHostRegistry') import CaptainConstants = require('../../utils/CaptainConstants') diff --git a/app-backend/src/user/Authenticator.ts b/app-backend/src/user/Authenticator.ts index b1d6574..e34cdab 100644 --- a/app-backend/src/user/Authenticator.ts +++ b/app-backend/src/user/Authenticator.ts @@ -5,7 +5,7 @@ import bcrypt = require('bcryptjs') import ApiStatusCodes = require('../api/ApiStatusCodes') import EnvVar = require('../utils/EnvVars') -import CaptainManager = require('./CaptainManager') +import CaptainManager = require('./system/CaptainManager') import CaptainConstants = require('../utils/CaptainConstants') import Logger = require('../utils/Logger') import DataStoreProvider = require('../datastore/DataStoreProvider') diff --git a/app-backend/src/user/ServiceManager.ts b/app-backend/src/user/ServiceManager.ts index 0578f87..dc239f3 100644 --- a/app-backend/src/user/ServiceManager.ts +++ b/app-backend/src/user/ServiceManager.ts @@ -1,7 +1,7 @@ import Logger = require('../utils/Logger') import CaptainConstants = require('../utils/CaptainConstants') -import CaptainManager = require('./CaptainManager') -import LoadBalancerManager = require('./LoadBalancerManager') +import CaptainManager = require('./system/CaptainManager') +import LoadBalancerManager = require('./system/LoadBalancerManager') import DockerApi = require('../docker/DockerApi') import DataStore = require('../datastore/DataStore') import ApiStatusCodes = require('../api/ApiStatusCodes') diff --git a/app-backend/src/user/TemplateHelper.ts b/app-backend/src/user/TemplateHelper.ts index 93e0850..d2dfc37 100644 --- a/app-backend/src/user/TemplateHelper.ts +++ b/app-backend/src/user/TemplateHelper.ts @@ -4,7 +4,7 @@ import ApiStatusCodes = require('../api/ApiStatusCodes') import Logger = require('../utils/Logger') import CaptainConstants = require('../utils/CaptainConstants') import { ITemplate } from '../models/OtherTypes' -import TemplateHelperVersionPrinter = require('./TemplateHelperVersionPrinter') +import TemplateHelperVersionPrinter = require('../utils/TemplateHelperVersionPrinter') class TemplateHelper { private templates: ITemplate[] diff --git a/app-backend/src/user/CaptainManager.ts b/app-backend/src/user/system/CaptainManager.ts similarity index 98% rename from app-backend/src/user/CaptainManager.ts rename to app-backend/src/user/system/CaptainManager.ts index cd22a9d..eead4e4 100644 --- a/app-backend/src/user/CaptainManager.ts +++ b/app-backend/src/user/system/CaptainManager.ts @@ -2,17 +2,17 @@ import uuid = require('uuid/v4') import SshClientImport = require('ssh2') import request = require('request') import fs = require('fs-extra') -import CaptainConstants = require('../utils/CaptainConstants') -import Logger = require('../utils/Logger') +import CaptainConstants = require('../../utils/CaptainConstants') +import Logger = require('../../utils/Logger') import LoadBalancerManager = require('./LoadBalancerManager') -import EnvVars = require('../utils/EnvVars') -import Encryptor = require('../utils/Encryptor') +import EnvVars = require('../../utils/EnvVars') +import Encryptor = require('../../utils/Encryptor') import CertbotManager = require('./CertbotManager') -import DockerRegistry = require('./DockerRegistry') -import ApiStatusCodes = require('../api/ApiStatusCodes') -import DataStoreProvider = require('../datastore/DataStoreProvider') -import DataStore = require('../datastore/DataStore') -import DockerApi = require('../docker/DockerApi') +import SelfHostedDockerRegistry = require('./SelfHostedDockerRegistry') +import ApiStatusCodes = require('../../api/ApiStatusCodes') +import DataStoreProvider = require('../../datastore/DataStoreProvider') +import DataStore = require('../../datastore/DataStore') +import DockerApi = require('../../docker/DockerApi') const DEBUG_SALT = 'THIS IS NOT A REAL CERTIFICATE' const SshClient = SshClientImport.Client @@ -30,7 +30,7 @@ class CaptainManager { private dockerApi: DockerApi private certbotManager: CertbotManager private loadBalancerManager: LoadBalancerManager - private dockerRegistry: DockerRegistry + private dockerRegistry: SelfHostedDockerRegistry private myNodeId: string | undefined private inited: boolean private waitUntilRestarted: boolean @@ -52,7 +52,7 @@ class CaptainManager { this.certbotManager, this.dataStore ) - this.dockerRegistry = new DockerRegistry( + this.dockerRegistry = new SelfHostedDockerRegistry( dockerApi, this.dataStore, this.certbotManager, diff --git a/app-backend/src/user/CertbotManager.ts b/app-backend/src/user/system/CertbotManager.ts similarity index 98% rename from app-backend/src/user/CertbotManager.ts rename to app-backend/src/user/system/CertbotManager.ts index 388d6b1..2ac7628 100644 --- a/app-backend/src/user/CertbotManager.ts +++ b/app-backend/src/user/system/CertbotManager.ts @@ -1,9 +1,9 @@ -import CaptainConstants = require('../utils/CaptainConstants') -import Logger = require('../utils/Logger') +import CaptainConstants = require('../../utils/CaptainConstants') +import Logger = require('../../utils/Logger') import fs = require('fs-extra') import uuid = require('uuid/v4') -import ApiStatusCodes = require('../api/ApiStatusCodes') -import DockerApi = require('../docker/DockerApi') +import ApiStatusCodes = require('../../api/ApiStatusCodes') +import DockerApi = require('../../docker/DockerApi') const CAPTAIN_WEBROOT_PATH_CERTBOT = '/captain-webroot' diff --git a/app-backend/src/user/LoadBalancerManager.ts b/app-backend/src/user/system/LoadBalancerManager.ts similarity index 98% rename from app-backend/src/user/LoadBalancerManager.ts rename to app-backend/src/user/system/LoadBalancerManager.ts index cb65223..5dba0d3 100644 --- a/app-backend/src/user/LoadBalancerManager.ts +++ b/app-backend/src/user/system/LoadBalancerManager.ts @@ -1,14 +1,14 @@ import ejs = require('ejs') -import CaptainConstants = require('../utils/CaptainConstants') -import Logger = require('../utils/Logger') +import CaptainConstants = require('../../utils/CaptainConstants') +import Logger = require('../../utils/Logger') import fs = require('fs-extra') import uuid = require('uuid/v4') import request = require('request') -import ApiStatusCodes = require('../api/ApiStatusCodes') -import DockerApi = require('../docker/DockerApi') -import DataStore = require('../datastore/DataStore') +import ApiStatusCodes = require('../../api/ApiStatusCodes') +import DockerApi = require('../../docker/DockerApi') +import DataStore = require('../../datastore/DataStore') import CertbotManager = require('./CertbotManager') -import { AnyError } from '../models/OtherTypes' +import { AnyError } from '../../models/OtherTypes' const defaultPageTemplate = fs .readFileSync(__dirname + '/../../template/default-page.ejs') diff --git a/app-backend/src/user/DockerRegistry.ts b/app-backend/src/user/system/SelfHostedDockerRegistry.ts similarity index 92% rename from app-backend/src/user/DockerRegistry.ts rename to app-backend/src/user/system/SelfHostedDockerRegistry.ts index 74c4f7a..f79855c 100644 --- a/app-backend/src/user/DockerRegistry.ts +++ b/app-backend/src/user/system/SelfHostedDockerRegistry.ts @@ -1,17 +1,17 @@ -import CaptainConstants = require('../utils/CaptainConstants') -import Logger = require('../utils/Logger') -import EnvVars = require('../utils/EnvVars') +import CaptainConstants = require('../../utils/CaptainConstants') +import Logger = require('../../utils/Logger') +import EnvVars = require('../../utils/EnvVars') import fs = require('fs-extra') import uuid = require('uuid/v4') -import ApiStatusCodes = require('../api/ApiStatusCodes') +import ApiStatusCodes = require('../../api/ApiStatusCodes') import bcrypt = require('bcryptjs') -import DockerApi = require('../docker/DockerApi') -import DataStore = require('../datastore/DataStore') -import CertbotManager = require('../user/CertbotManager') -import LoadBalancerManager = require('../user/LoadBalancerManager') -import CaptainManager = require('../user/CaptainManager') +import DockerApi = require('../../docker/DockerApi') +import DataStore = require('../../datastore/DataStore') +import CertbotManager = require('./CertbotManager') +import LoadBalancerManager = require('./LoadBalancerManager') +import CaptainManager = require('./CaptainManager') -class DockerRegistry { +class SelfHostedDockerRegistry { constructor( private dockerApi: DockerApi, private dataStore: DataStore, @@ -215,4 +215,4 @@ class DockerRegistry { } } -export = DockerRegistry +export = SelfHostedDockerRegistry diff --git a/app-backend/src/user/TemplateHelperVersionPrinter.ts b/app-backend/src/utils/TemplateHelperVersionPrinter.ts similarity index 97% rename from app-backend/src/user/TemplateHelperVersionPrinter.ts rename to app-backend/src/utils/TemplateHelperVersionPrinter.ts index 1b25df6..829a137 100644 --- a/app-backend/src/user/TemplateHelperVersionPrinter.ts +++ b/app-backend/src/utils/TemplateHelperVersionPrinter.ts @@ -1,8 +1,8 @@ import request = require('request') import fs = require('fs-extra') import ApiStatusCodes = require('../api/ApiStatusCodes') -import Logger = require('../utils/Logger') -import CaptainConstants = require('../utils/CaptainConstants') +import Logger = require('./Logger') +import CaptainConstants = require('./CaptainConstants') import { ITemplate } from '../models/OtherTypes' function getTagsForImage(