@niledatabase/server 2.4.0-alpha.0 → 2.4.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -55,7 +55,7 @@ Configuration passed to `Server` takes precedence over `.env` vars.
55
55
  | db | `PoolConfig` | | Configuration object for [pg.Pool](https://node-postgres.com/apis/pool). |
56
56
  | db.host | `string` | NILEDB_HOST | Base host for DB. Defaut is `db.thenile.dev` |
57
57
  | api | `object` | | Configuration object for API settings. |
58
- | api.basePath | `string` | NILEDB_API | Base host for API for a specific region. |
58
+ | api.basePath | `string` | NILEDB_API_URL | Base host for API for a specific region. |
59
59
  | api.cookieKey | `string` | | Key for API cookie. Default is `token`. |
60
60
  | api.token | `string` | NILEDB_TOKEN | Token for API authentication. Mostly for debugging. |
61
61
  | debug | `boolean` | | Flag for enabling debug logging. |
@@ -483,6 +483,10 @@ var getDatbaseId = function getDatbaseId(cfg) {
483
483
  logger && info(logger, 'config', config.databaseId);
484
484
  return String(config == null ? void 0 : config.databaseId);
485
485
  }
486
+ if (process.env.NILEDB_POSTGRES_URL) {
487
+ var pgUrl = new URL(process.env.NILEDB_POSTGRES_URL);
488
+ return pgUrl.pathname.substring(1);
489
+ }
486
490
  logger && info(logger, 'env', process.env.NILEDB_ID);
487
491
  return process.env.NILEDB_ID;
488
492
  };
@@ -495,7 +499,7 @@ var getUsername = function getUsername(cfg) {
495
499
  logger && info(logger, 'config', config.user);
496
500
  return String(config == null ? void 0 : config.user);
497
501
  }
498
- logger && info(logger, '.env', process.env.NILEDB_USER);
502
+ logger && info(logger, 'NILEDB_USER', process.env.NILEDB_USER);
499
503
  return process.env.NILEDB_USER;
500
504
  };
501
505
  var getPassword = function getPassword(cfg) {
@@ -508,7 +512,7 @@ var getPassword = function getPassword(cfg) {
508
512
  log && info(logger, 'config', config.password);
509
513
  return String(config.password);
510
514
  }
511
- log && info(logger, '.env', process.env.NILEDB_PASSWORD);
515
+ log && info(logger, 'NILEDB_PASSWORD', process.env.NILEDB_PASSWORD);
512
516
  return process.env.NILEDB_PASSWORD;
513
517
  };
514
518
  var getInfoBearer = function getInfoBearer(cfg) {
@@ -526,7 +530,7 @@ var getToken = function getToken(cfg) {
526
530
  return String((_config$api3 = config.api) == null ? void 0 : _config$api3.token);
527
531
  }
528
532
  if (process.env.NILEDB_TOKEN) {
529
- logger && info(logger, '.env', process.env.NILEDB_TOKEN);
533
+ logger && info(logger, 'NILEDB_TOKEN', process.env.NILEDB_TOKEN);
530
534
  return process.env.NILEDB_TOKEN;
531
535
  }
532
536
  return undefined;
@@ -541,7 +545,7 @@ var getDatabaseName = function getDatabaseName(cfg) {
541
545
  return String(config.databaseName);
542
546
  }
543
547
  if (process.env.NILEDB_NAME) {
544
- logger && info(logger, 'config', process.env.NILEDB_NAME);
548
+ logger && info(logger, 'NILEDB_NAME', process.env.NILEDB_NAME);
545
549
  return process.env.NILEDB_NAME;
546
550
  }
547
551
  return null;
@@ -556,7 +560,7 @@ var getTenantId = function getTenantId(cfg) {
556
560
  return config.tenantId;
557
561
  }
558
562
  if (process.env.NILEDB_TENANT) {
559
- logger && info(logger, '.env', process.env.NILEDB_TENANT);
563
+ logger && info(logger, 'NILEDB_TENANT', process.env.NILEDB_TENANT);
560
564
  return process.env.NILEDB_TENANT;
561
565
  }
562
566
  return null;
@@ -573,24 +577,42 @@ var getBasePath = function getBasePath(cfg) {
573
577
  logger && info(logger, 'config', config == null || (_config$api5 = config.api) == null ? void 0 : _config$api5.basePath);
574
578
  return basePath;
575
579
  }
576
- if (process.env.NILEDB_API) {
577
- logger && info(logger, '.env', process.env.NILEDB_API);
578
- return "https://" + process.env.NILEDB_API;
580
+ if (process.env.NILEDB_API_URL) {
581
+ logger && info(logger, 'NILEDB_API_URL', process.env.NILEDB_API_URL);
582
+ var apiUrl = new URL(process.env.NILEDB_API_URL);
583
+ return apiUrl.origin;
579
584
  }
580
- logger && info(logger, 'default', process.env.NILEDB_API);
585
+ logger && info(logger, 'default', 'https://api.thenile.dev');
581
586
  return 'https://api.thenile.dev';
582
587
  };
583
- function getDbHost(cfg) {
588
+ var getControlPlane = function getControlPlane(cfg) {
584
589
  var config = cfg.config,
585
590
  logger = cfg.logger;
586
- var _Logger8 = Logger(config, '[db.host]'),
591
+ var _Logger8 = Logger(config, '[basePath]'),
587
592
  info = _Logger8.info;
593
+ if (process.env.NILEDB_CONFIGURE) {
594
+ logger && info(logger, 'NILEDB_CONFIGURE', process.env.NILEDB_CONFIGURE);
595
+ return "https://" + process.env.NILEDB_CONFIGURE;
596
+ }
597
+ logger && info(logger, 'default', process.env.NILEDB_CONFIGURE);
598
+ return 'https://api.thenile.dev';
599
+ };
600
+ function getDbHost(cfg) {
601
+ var config = cfg.config,
602
+ logger = cfg.logger;
603
+ var _Logger9 = Logger(config, '[db.host]'),
604
+ info = _Logger9.info;
588
605
  if (config != null && config.db && config.db.host) {
589
606
  logger && info(logger, 'config', config == null ? void 0 : config.db.host);
590
607
  return config.db.host;
591
608
  }
609
+ if (process.env.NILEDB_POSTGRES_URL) {
610
+ var pgUrl = new URL(process.env.NILEDB_POSTGRES_URL);
611
+ logger && info(logger, 'NILEDB_POSTGRES_URL', pgUrl.host);
612
+ return pgUrl.host;
613
+ }
592
614
  if (process.env.NILEDB_HOST) {
593
- logger && info(logger, '.env', process.env.NILEDB_HOST);
615
+ logger && info(logger, 'NILEDB_HOST', process.env.NILEDB_HOST);
594
616
  return process.env.NILEDB_HOST;
595
617
  }
596
618
  logger && info(logger, 'default', 'db.thenile.dev');
@@ -600,8 +622,8 @@ function getDbPort(cfg) {
600
622
  var _config$db;
601
623
  var config = cfg.config,
602
624
  logger = cfg.logger;
603
- var _Logger9 = Logger(config, '[db.port]'),
604
- info = _Logger9.info;
625
+ var _Logger10 = Logger(config, '[db.port]'),
626
+ info = _Logger10.info;
605
627
  if (config != null && (_config$db = config.db) != null && _config$db.port && config.db.port != null) {
606
628
  var _config$db2;
607
629
  logger && info(logger, 'config', config == null ? void 0 : config.db.port);
@@ -644,7 +666,7 @@ var ApiConfig = /*#__PURE__*/function () {
644
666
  }]);
645
667
  }();
646
668
  var Config = /*#__PURE__*/function () {
647
- function Config(_config) {
669
+ function Config(_config, logger) {
648
670
  var _this = this,
649
671
  _config$db2,
650
672
  _config$api$cookieKey2,
@@ -661,7 +683,7 @@ var Config = /*#__PURE__*/function () {
661
683
  this.configure = /*#__PURE__*/function () {
662
684
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(config) {
663
685
  var _config$db, _config$api$cookieKey, _config$api;
664
- var _Logger, info, error, envVarConfig, _ref3, host, port, dbConfig, configuredHost, configuredPort, basePath, databaseName, url, res, database, possibleError, json, message, _database, apiHost, dbHost, name, id, dburl, apiurl;
686
+ var _Logger, info, error, envVarConfig, _ref3, host, port, dbConfig, configuredHost, configuredPort, basePath, cp, databaseName, url, res, database, possibleError, json, message, _database, apiHost, dbHost, name, id, dburl, apiurl;
665
687
  return _regeneratorRuntime().wrap(function _callee$(_context) {
666
688
  while (1) switch (_context.prev = _context.next) {
667
689
  case 0:
@@ -680,16 +702,17 @@ var Config = /*#__PURE__*/function () {
680
702
  return _context.abrupt("return", _this);
681
703
  case 8:
682
704
  basePath = getBasePath(envVarConfig);
705
+ cp = getControlPlane(envVarConfig);
683
706
  databaseName = getDatabaseName({
684
707
  config: config,
685
708
  logger: 'getInfo'
686
709
  });
687
- url = new URL(basePath + "/databases/configure");
710
+ url = new URL(cp + "/databases/configure");
688
711
  if (databaseName) {
689
712
  url.searchParams.set('databaseName', databaseName);
690
713
  }
691
714
  info(url.href);
692
- _context.next = 15;
715
+ _context.next = 16;
693
716
  return fetch(url, {
694
717
  headers: {
695
718
  Authorization: "Bearer " + getInfoBearer({
@@ -697,13 +720,13 @@ var Config = /*#__PURE__*/function () {
697
720
  })
698
721
  }
699
722
  });
700
- case 15:
723
+ case 16:
701
724
  res = _context.sent;
702
725
  possibleError = res.clone();
703
- _context.prev = 17;
704
- _context.next = 20;
726
+ _context.prev = 18;
727
+ _context.next = 21;
705
728
  return res.json();
706
- case 20:
729
+ case 21:
707
730
  json = _context.sent;
708
731
  if (res.status === 404) {
709
732
  info('is the configured databaseName correct?');
@@ -715,34 +738,34 @@ var Config = /*#__PURE__*/function () {
715
738
  } else {
716
739
  database = json;
717
740
  }
718
- _context.next = 32;
741
+ _context.next = 33;
719
742
  break;
720
- case 25:
721
- _context.prev = 25;
722
- _context.t0 = _context["catch"](17);
723
- _context.next = 29;
743
+ case 26:
744
+ _context.prev = 26;
745
+ _context.t0 = _context["catch"](18);
746
+ _context.next = 30;
724
747
  return possibleError.text();
725
- case 29:
748
+ case 30:
726
749
  message = _context.sent;
727
750
  error(message);
728
751
  database = {
729
752
  message: message
730
753
  };
731
- case 32:
754
+ case 33:
732
755
  info('[fetched database]', database);
733
756
  if (!('message' in database)) {
734
- _context.next = 41;
757
+ _context.next = 42;
735
758
  break;
736
759
  }
737
760
  if (!('statusCode' in database)) {
738
- _context.next = 40;
761
+ _context.next = 41;
739
762
  break;
740
763
  }
741
764
  error(database);
742
765
  throw new Error('HTTP error has occured');
743
- case 40:
744
- throw new Error('Unable to auto-configure. Please set or remove NILEDB_API, NILEDB_NAME, and NILEDB_HOST in your .env file.');
745
766
  case 41:
767
+ throw new Error('Unable to auto-configure. Please set or remove NILEDB_API, NILEDB_NAME, and NILEDB_HOST in your .env file.');
768
+ case 42:
746
769
  if (typeof database === 'object') {
747
770
  _database = database, apiHost = _database.apiHost, dbHost = _database.dbHost, name = _database.name, id = _database.id;
748
771
  _this.databaseId = id;
@@ -752,7 +775,7 @@ var Config = /*#__PURE__*/function () {
752
775
  configuredHost = dburl.host;
753
776
  basePath = apiurl.origin;
754
777
  }
755
- case 42:
778
+ case 43:
756
779
  _this.api = new ApiConfig({
757
780
  basePath: basePath,
758
781
  cookieKey: (_config$api$cookieKey = config == null || (_config$api = config.api) == null ? void 0 : _config$api.cookieKey) != null ? _config$api$cookieKey : 'token',
@@ -769,18 +792,19 @@ var Config = /*#__PURE__*/function () {
769
792
  }, dbConfig);
770
793
  info('[config set]', _this);
771
794
  return _context.abrupt("return", _this);
772
- case 46:
795
+ case 47:
773
796
  case "end":
774
797
  return _context.stop();
775
798
  }
776
- }, _callee, null, [[17, 25]]);
799
+ }, _callee, null, [[18, 26]]);
777
800
  }));
778
801
  return function (_x) {
779
802
  return _ref2.apply(this, arguments);
780
803
  };
781
804
  }();
782
805
  var _envVarConfig = {
783
- config: _config
806
+ config: _config,
807
+ logger: logger
784
808
  };
785
809
  this.databaseId = getDatbaseId(_envVarConfig);
786
810
  this.user = getUsername(_envVarConfig);
@@ -2021,7 +2045,7 @@ var Server = /*#__PURE__*/function () {
2021
2045
  this.api = void 0;
2022
2046
  this.manager = void 0;
2023
2047
  this.servers = void 0;
2024
- this.config = new Config(config);
2048
+ this.config = new Config(config, '[initial config]');
2025
2049
  this.servers = new Map();
2026
2050
  this.api = _init(this.config);
2027
2051
  this.manager = new DBManager(this.config);