@platforma-sdk/bootstrap 3.5.19 → 3.5.20

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.
Files changed (171) hide show
  1. package/dist/block.cjs +172 -0
  2. package/dist/block.cjs.map +1 -0
  3. package/dist/block.d.ts +0 -1
  4. package/dist/block.js +151 -0
  5. package/dist/block.js.map +1 -0
  6. package/dist/cmd-opts.cjs +205 -0
  7. package/dist/cmd-opts.cjs.map +1 -0
  8. package/dist/cmd-opts.d.ts +36 -38
  9. package/dist/cmd-opts.js +181 -0
  10. package/dist/cmd-opts.js.map +1 -0
  11. package/dist/commands/create-block.cjs +22 -0
  12. package/dist/commands/create-block.cjs.map +1 -0
  13. package/dist/commands/create-block.d.ts +1 -3
  14. package/dist/commands/create-block.js +20 -0
  15. package/dist/commands/create-block.js.map +1 -0
  16. package/dist/commands/reset.cjs +23 -0
  17. package/dist/commands/reset.cjs.map +1 -0
  18. package/dist/commands/reset.d.ts +1 -3
  19. package/dist/commands/reset.js +21 -0
  20. package/dist/commands/reset.js.map +1 -0
  21. package/dist/commands/start/docker/s3.cjs +69 -0
  22. package/dist/commands/start/docker/s3.cjs.map +1 -0
  23. package/dist/commands/start/docker/s3.d.ts +21 -23
  24. package/dist/commands/start/docker/s3.js +67 -0
  25. package/dist/commands/start/docker/s3.js.map +1 -0
  26. package/dist/commands/start/docker.cjs +69 -0
  27. package/dist/commands/start/docker.cjs.map +1 -0
  28. package/dist/commands/start/docker.d.ts +21 -23
  29. package/dist/commands/start/docker.js +67 -0
  30. package/dist/commands/start/docker.js.map +1 -0
  31. package/dist/commands/start/local/s3.cjs +135 -0
  32. package/dist/commands/start/local/s3.cjs.map +1 -0
  33. package/dist/commands/start/local/s3.d.ts +25 -27
  34. package/dist/commands/start/local/s3.js +114 -0
  35. package/dist/commands/start/local/s3.js.map +1 -0
  36. package/dist/commands/start/local.cjs +122 -0
  37. package/dist/commands/start/local.cjs.map +1 -0
  38. package/dist/commands/start/local.d.ts +23 -25
  39. package/dist/commands/start/local.js +101 -0
  40. package/dist/commands/start/local.js.map +1 -0
  41. package/dist/commands/start.cjs +23 -0
  42. package/dist/commands/start.cjs.map +1 -0
  43. package/dist/commands/start.d.ts +1 -3
  44. package/dist/commands/start.js +21 -0
  45. package/dist/commands/start.js.map +1 -0
  46. package/dist/commands/stop.cjs +29 -0
  47. package/dist/commands/stop.cjs.map +1 -0
  48. package/dist/commands/stop.d.ts +1 -3
  49. package/dist/commands/stop.js +27 -0
  50. package/dist/commands/stop.js.map +1 -0
  51. package/dist/commands/svc/create/docker/s3.cjs +75 -0
  52. package/dist/commands/svc/create/docker/s3.cjs.map +1 -0
  53. package/dist/commands/svc/create/docker/s3.d.ts +22 -24
  54. package/dist/commands/svc/create/docker/s3.js +73 -0
  55. package/dist/commands/svc/create/docker/s3.js.map +1 -0
  56. package/dist/commands/svc/create/docker.cjs +72 -0
  57. package/dist/commands/svc/create/docker.cjs.map +1 -0
  58. package/dist/commands/svc/create/docker.d.ts +22 -24
  59. package/dist/commands/svc/create/docker.js +70 -0
  60. package/dist/commands/svc/create/docker.js.map +1 -0
  61. package/dist/commands/svc/create/local/s3.cjs +121 -0
  62. package/dist/commands/svc/create/local/s3.cjs.map +1 -0
  63. package/dist/commands/svc/create/local/s3.d.ts +26 -28
  64. package/dist/commands/svc/create/local/s3.js +100 -0
  65. package/dist/commands/svc/create/local/s3.js.map +1 -0
  66. package/dist/commands/svc/create/local.cjs +117 -0
  67. package/dist/commands/svc/create/local.cjs.map +1 -0
  68. package/dist/commands/svc/create/local.d.ts +24 -26
  69. package/dist/commands/svc/create/local.js +96 -0
  70. package/dist/commands/svc/create/local.js.map +1 -0
  71. package/dist/commands/svc/delete.cjs +40 -0
  72. package/dist/commands/svc/delete.cjs.map +1 -0
  73. package/dist/commands/svc/delete.d.ts +3 -5
  74. package/dist/commands/svc/delete.js +38 -0
  75. package/dist/commands/svc/delete.js.map +1 -0
  76. package/dist/commands/svc/down.cjs +32 -0
  77. package/dist/commands/svc/down.cjs.map +1 -0
  78. package/dist/commands/svc/down.d.ts +2 -4
  79. package/dist/commands/svc/down.js +30 -0
  80. package/dist/commands/svc/down.js.map +1 -0
  81. package/dist/commands/svc/list.cjs +31 -0
  82. package/dist/commands/svc/list.cjs.map +1 -0
  83. package/dist/commands/svc/list.d.ts +0 -1
  84. package/dist/commands/svc/list.js +29 -0
  85. package/dist/commands/svc/list.js.map +1 -0
  86. package/dist/commands/svc/up.cjs +51 -0
  87. package/dist/commands/svc/up.cjs.map +1 -0
  88. package/dist/commands/svc/up.d.ts +2 -4
  89. package/dist/commands/svc/up.js +49 -0
  90. package/dist/commands/svc/up.js.map +1 -0
  91. package/dist/core.cjs +742 -0
  92. package/dist/core.cjs.map +1 -0
  93. package/dist/core.d.ts +0 -1
  94. package/dist/core.js +737 -0
  95. package/dist/core.js.map +1 -0
  96. package/dist/index.cjs +42 -0
  97. package/dist/index.cjs.map +1 -0
  98. package/dist/index.d.ts +0 -1
  99. package/dist/index.js +39 -126
  100. package/dist/index.js.map +1 -1
  101. package/dist/package.cjs +27 -0
  102. package/dist/package.cjs.map +1 -0
  103. package/dist/package.d.ts +0 -1
  104. package/dist/package.js +22 -0
  105. package/dist/package.js.map +1 -0
  106. package/dist/platforma.cjs +169 -0
  107. package/dist/platforma.cjs.map +1 -0
  108. package/dist/platforma.d.ts +0 -1
  109. package/dist/platforma.js +141 -0
  110. package/dist/platforma.js.map +1 -0
  111. package/dist/run.cjs +68 -0
  112. package/dist/run.cjs.map +1 -0
  113. package/dist/run.d.ts +0 -1
  114. package/dist/run.js +64 -0
  115. package/dist/run.js.map +1 -0
  116. package/dist/state.cjs +143 -0
  117. package/dist/state.cjs.map +1 -0
  118. package/dist/state.d.ts +0 -1
  119. package/dist/state.js +141 -0
  120. package/dist/state.js.map +1 -0
  121. package/dist/templates/compose.cjs +67 -0
  122. package/dist/templates/compose.cjs.map +1 -0
  123. package/dist/templates/compose.d.ts +0 -1
  124. package/dist/templates/compose.js +65 -0
  125. package/dist/templates/compose.js.map +1 -0
  126. package/dist/templates/pl-config.cjs +264 -0
  127. package/dist/templates/pl-config.cjs.map +1 -0
  128. package/dist/templates/pl-config.d.ts +0 -1
  129. package/dist/templates/pl-config.js +260 -0
  130. package/dist/templates/pl-config.js.map +1 -0
  131. package/dist/templates/types.cjs +31 -0
  132. package/dist/templates/types.cjs.map +1 -0
  133. package/dist/templates/types.d.ts +0 -1
  134. package/dist/templates/types.js +28 -0
  135. package/dist/templates/types.js.map +1 -0
  136. package/dist/util.cjs +98 -0
  137. package/dist/util.cjs.map +1 -0
  138. package/dist/util.d.ts +0 -1
  139. package/dist/util.js +89 -0
  140. package/dist/util.js.map +1 -0
  141. package/package.json +10 -13
  142. package/dist/block.d.ts.map +0 -1
  143. package/dist/cmd-opts.d.ts.map +0 -1
  144. package/dist/commands/create-block.d.ts.map +0 -1
  145. package/dist/commands/reset.d.ts.map +0 -1
  146. package/dist/commands/start/docker/s3.d.ts.map +0 -1
  147. package/dist/commands/start/docker.d.ts.map +0 -1
  148. package/dist/commands/start/local/s3.d.ts.map +0 -1
  149. package/dist/commands/start/local.d.ts.map +0 -1
  150. package/dist/commands/start.d.ts.map +0 -1
  151. package/dist/commands/stop.d.ts.map +0 -1
  152. package/dist/commands/svc/create/docker/s3.d.ts.map +0 -1
  153. package/dist/commands/svc/create/docker.d.ts.map +0 -1
  154. package/dist/commands/svc/create/local/s3.d.ts.map +0 -1
  155. package/dist/commands/svc/create/local.d.ts.map +0 -1
  156. package/dist/commands/svc/delete.d.ts.map +0 -1
  157. package/dist/commands/svc/down.d.ts.map +0 -1
  158. package/dist/commands/svc/list.d.ts.map +0 -1
  159. package/dist/commands/svc/up.d.ts.map +0 -1
  160. package/dist/core.d.ts.map +0 -1
  161. package/dist/index.d.ts.map +0 -1
  162. package/dist/index.mjs +0 -1945
  163. package/dist/index.mjs.map +0 -1
  164. package/dist/package.d.ts.map +0 -1
  165. package/dist/platforma.d.ts.map +0 -1
  166. package/dist/run.d.ts.map +0 -1
  167. package/dist/state.d.ts.map +0 -1
  168. package/dist/templates/compose.d.ts.map +0 -1
  169. package/dist/templates/pl-config.d.ts.map +0 -1
  170. package/dist/templates/types.d.ts.map +0 -1
  171. package/dist/util.d.ts.map +0 -1
@@ -0,0 +1,67 @@
1
+ import path from 'node:path';
2
+ import { Command } from '@oclif/core';
3
+ import Core from '../../../core.js';
4
+ import { MinioPresignHostFlag, StorageFlag, MountFlag, LicenseFlags, AuthFlags, ArchFlag, VersionFlag, ImageFlag, S3AddressesFlags, AddressesFlags, GlobalFlags } from '../../../cmd-opts.js';
5
+ import { createLogger } from '../../../util.js';
6
+ import state from '../../../state.js';
7
+
8
+ class S3 extends Command {
9
+ static description = 'Run platforma backend service with \'S3\' primary storage type';
10
+ static examples = ['<%= config.bin %> <%= command.id %>'];
11
+ static flags = {
12
+ ...GlobalFlags,
13
+ ...AddressesFlags,
14
+ ...S3AddressesFlags,
15
+ ...ImageFlag,
16
+ ...VersionFlag,
17
+ ...ArchFlag,
18
+ ...AuthFlags,
19
+ ...LicenseFlags,
20
+ ...MountFlag,
21
+ ...StorageFlag,
22
+ ...MinioPresignHostFlag,
23
+ };
24
+ async run() {
25
+ const { flags } = await this.parse(S3);
26
+ const logger = createLogger(flags['log-level']);
27
+ const core = new Core(logger);
28
+ core.mergeLicenseEnvs(flags);
29
+ const instanceName = 'docker-s3';
30
+ const authEnabled = flags['auth-enabled'];
31
+ const authOptions = authEnabled
32
+ ? {
33
+ enabled: authEnabled,
34
+ drivers: core.initAuthDriversList(flags, '.'),
35
+ }
36
+ : undefined;
37
+ const storage = flags.storage ? path.join('.', flags.storage) : state.instanceDir(instanceName);
38
+ const mounts = [];
39
+ for (const p of flags.mount ?? []) {
40
+ mounts.push({ hostPath: p });
41
+ }
42
+ const platformOverride = flags.arch ? `linux/${flags.arch}` : undefined;
43
+ const presignHost = flags['minio-presign-host'] ? 'minio' : 'localhost';
44
+ const instance = core.createDockerS3(instanceName, storage, {
45
+ image: flags.image,
46
+ version: flags.version,
47
+ license: flags['license'],
48
+ licenseFile: flags['license-file'],
49
+ platformOverride: platformOverride,
50
+ customMounts: mounts,
51
+ auth: authOptions,
52
+ grpcAddr: flags['grpc-listen'],
53
+ grpcPort: flags['grpc-port'],
54
+ monitoringAddr: flags['monitoring-listen'],
55
+ monitoringPort: flags['monitoring-port'],
56
+ debugAddr: flags['debug-listen'],
57
+ debugPort: flags['debug-port'],
58
+ s3Port: flags['s3-port'],
59
+ s3ConsolePort: flags['s3-console-port'],
60
+ presignHost: presignHost,
61
+ });
62
+ core.switchInstance(instance);
63
+ }
64
+ }
65
+
66
+ export { S3 as default };
67
+ //# sourceMappingURL=s3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3.js","sources":["../../../../src/commands/start/docker/s3.ts"],"sourcesContent":["import path from 'node:path';\n\nimport { Command } from '@oclif/core';\nimport Core from '../../../core';\nimport * as cmdOpts from '../../../cmd-opts';\nimport * as util from '../../../util';\nimport type * as types from '../../../templates/types';\nimport state from '../../../state';\n\nexport default class S3 extends Command {\n static override description = 'Run platforma backend service with \\'S3\\' primary storage type';\n\n static override examples = ['<%= config.bin %> <%= command.id %>'];\n\n static override flags = {\n ...cmdOpts.GlobalFlags,\n\n ...cmdOpts.AddressesFlags,\n ...cmdOpts.S3AddressesFlags,\n ...cmdOpts.ImageFlag,\n ...cmdOpts.VersionFlag,\n ...cmdOpts.ArchFlag,\n\n ...cmdOpts.AuthFlags,\n ...cmdOpts.LicenseFlags,\n\n ...cmdOpts.MountFlag,\n ...cmdOpts.StorageFlag,\n ...cmdOpts.MinioPresignHostFlag,\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(S3);\n\n const logger = util.createLogger(flags['log-level']);\n const core = new Core(logger);\n core.mergeLicenseEnvs(flags);\n\n const instanceName = 'docker-s3';\n\n const authEnabled = flags['auth-enabled'];\n const authOptions: types.authOptions | undefined = authEnabled\n ? {\n enabled: authEnabled,\n drivers: core.initAuthDriversList(flags, '.'),\n }\n : undefined;\n\n const storage = flags.storage ? path.join('.', flags.storage) : state.instanceDir(instanceName);\n\n const mounts: { hostPath: string; containerPath?: string }[] = [];\n for (const p of flags.mount ?? []) {\n mounts.push({ hostPath: p });\n }\n\n const platformOverride = flags.arch ? `linux/${flags.arch}` : undefined;\n const presignHost = flags['minio-presign-host'] ? 'minio' : 'localhost';\n\n const instance = core.createDockerS3(instanceName, storage, {\n image: flags.image,\n version: flags.version,\n\n license: flags['license'],\n licenseFile: flags['license-file'],\n\n platformOverride: platformOverride,\n customMounts: mounts,\n\n auth: authOptions,\n\n grpcAddr: flags['grpc-listen'],\n grpcPort: flags['grpc-port'],\n\n monitoringAddr: flags['monitoring-listen'],\n monitoringPort: flags['monitoring-port'],\n\n debugAddr: flags['debug-listen'],\n debugPort: flags['debug-port'],\n\n s3Port: flags['s3-port'],\n s3ConsolePort: flags['s3-console-port'],\n\n presignHost: presignHost,\n });\n\n core.switchInstance(instance);\n }\n}\n"],"names":["cmdOpts.GlobalFlags","cmdOpts.AddressesFlags","cmdOpts.S3AddressesFlags","cmdOpts.ImageFlag","cmdOpts.VersionFlag","cmdOpts.ArchFlag","cmdOpts.AuthFlags","cmdOpts.LicenseFlags","cmdOpts.MountFlag","cmdOpts.StorageFlag","cmdOpts.MinioPresignHostFlag","util.createLogger"],"mappings":";;;;;;;AASc,MAAO,EAAG,SAAQ,OAAO,CAAA;AACrC,IAAA,OAAgB,WAAW,GAAG,gEAAgE;AAE9F,IAAA,OAAgB,QAAQ,GAAG,CAAC,qCAAqC,CAAC;IAElE,OAAgB,KAAK,GAAG;QACtB,GAAGA,WAAmB;QAEtB,GAAGC,cAAsB;QACzB,GAAGC,gBAAwB;QAC3B,GAAGC,SAAiB;QACpB,GAAGC,WAAmB;QACtB,GAAGC,QAAgB;QAEnB,GAAGC,SAAiB;QACpB,GAAGC,YAAoB;QAEvB,GAAGC,SAAiB;QACpB,GAAGC,WAAmB;QACtB,GAAGC,oBAA4B;KAChC;AAEM,IAAA,MAAM,GAAG,GAAA;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAEtC,MAAM,MAAM,GAAGC,YAAiB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACpD,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC;AAC7B,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;QAE5B,MAAM,YAAY,GAAG,WAAW;AAEhC,QAAA,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC;QACzC,MAAM,WAAW,GAAkC;AACjD,cAAE;AACE,gBAAA,OAAO,EAAE,WAAW;gBACpB,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC;AAC9C;cACD,SAAS;QAEb,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC;QAE/F,MAAM,MAAM,GAAmD,EAAE;QACjE,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE;YACjC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QAC9B;AAEA,QAAA,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,GAAG,CAAA,MAAA,EAAS,KAAK,CAAC,IAAI,CAAA,CAAE,GAAG,SAAS;AACvE,QAAA,MAAM,WAAW,GAAG,KAAK,CAAC,oBAAoB,CAAC,GAAG,OAAO,GAAG,WAAW;QAEvE,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,OAAO,EAAE;YAC1D,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO;AAEtB,YAAA,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;AACzB,YAAA,WAAW,EAAE,KAAK,CAAC,cAAc,CAAC;AAElC,YAAA,gBAAgB,EAAE,gBAAgB;AAClC,YAAA,YAAY,EAAE,MAAM;AAEpB,YAAA,IAAI,EAAE,WAAW;AAEjB,YAAA,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;AAC9B,YAAA,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC;AAE5B,YAAA,cAAc,EAAE,KAAK,CAAC,mBAAmB,CAAC;AAC1C,YAAA,cAAc,EAAE,KAAK,CAAC,iBAAiB,CAAC;AAExC,YAAA,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC;AAChC,YAAA,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC;AAE9B,YAAA,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;AACxB,YAAA,aAAa,EAAE,KAAK,CAAC,iBAAiB,CAAC;AAEvC,YAAA,WAAW,EAAE,WAAW;AACzB,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;IAC/B;;;;;"}
@@ -0,0 +1,69 @@
1
+ 'use strict';
2
+
3
+ var path = require('node:path');
4
+ var core = require('@oclif/core');
5
+ var core$1 = require('../../core.cjs');
6
+ var cmdOpts = require('../../cmd-opts.cjs');
7
+ var util = require('../../util.cjs');
8
+ var state = require('../../state.cjs');
9
+
10
+ class Docker extends core.Command {
11
+ static description = 'Run platforma backend service with \'FS\' primary storage type';
12
+ static examples = ['<%= config.bin %> <%= command.id %>'];
13
+ static flags = {
14
+ ...cmdOpts.GlobalFlags,
15
+ ...cmdOpts.AddressesFlags,
16
+ ...cmdOpts.ImageFlag,
17
+ ...cmdOpts.VersionFlag,
18
+ ...cmdOpts.ArchFlag,
19
+ ...cmdOpts.AuthFlags,
20
+ ...cmdOpts.LicenseFlags,
21
+ ...cmdOpts.MountFlag,
22
+ ...cmdOpts.StorageFlag,
23
+ ...cmdOpts.StoragePrimaryURLFlag,
24
+ ...cmdOpts.StorageWorkPathFlag,
25
+ ...cmdOpts.StorageLibraryURLFlag,
26
+ };
27
+ async run() {
28
+ const { flags } = await this.parse(Docker);
29
+ const logger = util.createLogger(flags['log-level']);
30
+ const core = new core$1.default(logger);
31
+ core.mergeLicenseEnvs(flags);
32
+ const instanceName = 'docker';
33
+ const authEnabled = flags['auth-enabled'];
34
+ const authOptions = authEnabled
35
+ ? {
36
+ enabled: authEnabled,
37
+ drivers: core.initAuthDriversList(flags, '.'),
38
+ }
39
+ : undefined;
40
+ const storage = flags.storage ? path.join('.', flags.storage) : state.instanceDir(instanceName);
41
+ const mounts = [];
42
+ for (const p of flags.mount ?? []) {
43
+ mounts.push({ hostPath: p });
44
+ }
45
+ const platformOverride = flags.arch ? `linux/${flags.arch}` : undefined;
46
+ const instance = core.createDocker(instanceName, storage, {
47
+ primaryStorageURL: flags['storage-primary'],
48
+ workStoragePath: flags['storage-work'],
49
+ libraryStorageURL: flags['storage-library'],
50
+ image: flags.image,
51
+ version: flags.version,
52
+ platformOverride: platformOverride,
53
+ customMounts: mounts,
54
+ license: flags['license'],
55
+ licenseFile: flags['license-file'],
56
+ auth: authOptions,
57
+ grpcAddr: flags['grpc-listen'],
58
+ grpcPort: flags['grpc-port'],
59
+ monitoringAddr: flags['monitoring-listen'],
60
+ monitoringPort: flags['monitoring-port'],
61
+ debugAddr: flags['debug-listen'],
62
+ debugPort: flags['debug-port'],
63
+ });
64
+ core.switchInstance(instance);
65
+ }
66
+ }
67
+
68
+ module.exports = Docker;
69
+ //# sourceMappingURL=docker.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker.cjs","sources":["../../../src/commands/start/docker.ts"],"sourcesContent":["import path from 'node:path';\n\nimport { Command } from '@oclif/core';\nimport Core from '../../core';\nimport * as cmdOpts from '../../cmd-opts';\nimport * as util from '../../util';\nimport type * as types from '../../templates/types';\nimport state from '../../state';\n\nexport default class Docker extends Command {\n static override description = 'Run platforma backend service with \\'FS\\' primary storage type';\n\n static override examples = ['<%= config.bin %> <%= command.id %>'];\n\n static override flags = {\n ...cmdOpts.GlobalFlags,\n\n ...cmdOpts.AddressesFlags,\n ...cmdOpts.ImageFlag,\n ...cmdOpts.VersionFlag,\n ...cmdOpts.ArchFlag,\n\n ...cmdOpts.AuthFlags,\n ...cmdOpts.LicenseFlags,\n\n ...cmdOpts.MountFlag,\n ...cmdOpts.StorageFlag,\n ...cmdOpts.StoragePrimaryURLFlag,\n ...cmdOpts.StorageWorkPathFlag,\n ...cmdOpts.StorageLibraryURLFlag,\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(Docker);\n\n const logger = util.createLogger(flags['log-level']);\n const core = new Core(logger);\n core.mergeLicenseEnvs(flags);\n\n const instanceName = 'docker';\n\n const authEnabled = flags['auth-enabled'];\n const authOptions: types.authOptions | undefined = authEnabled\n ? {\n enabled: authEnabled,\n drivers: core.initAuthDriversList(flags, '.'),\n }\n : undefined;\n const storage = flags.storage ? path.join('.', flags.storage) : state.instanceDir(instanceName);\n\n const mounts: { hostPath: string; containerPath?: string }[] = [];\n for (const p of flags.mount ?? []) {\n mounts.push({ hostPath: p });\n }\n\n const platformOverride = flags.arch ? `linux/${flags.arch}` : undefined;\n\n const instance = core.createDocker(instanceName, storage, {\n primaryStorageURL: flags['storage-primary'],\n workStoragePath: flags['storage-work'],\n libraryStorageURL: flags['storage-library'],\n\n image: flags.image,\n version: flags.version,\n\n platformOverride: platformOverride,\n customMounts: mounts,\n\n license: flags['license'],\n licenseFile: flags['license-file'],\n\n auth: authOptions,\n\n grpcAddr: flags['grpc-listen'],\n grpcPort: flags['grpc-port'],\n\n monitoringAddr: flags['monitoring-listen'],\n monitoringPort: flags['monitoring-port'],\n\n debugAddr: flags['debug-listen'],\n debugPort: flags['debug-port'],\n });\n\n core.switchInstance(instance);\n }\n}\n"],"names":["Command","cmdOpts.GlobalFlags","cmdOpts.AddressesFlags","cmdOpts.ImageFlag","cmdOpts.VersionFlag","cmdOpts.ArchFlag","cmdOpts.AuthFlags","cmdOpts.LicenseFlags","cmdOpts.MountFlag","cmdOpts.StorageFlag","cmdOpts.StoragePrimaryURLFlag","cmdOpts.StorageWorkPathFlag","cmdOpts.StorageLibraryURLFlag","util.createLogger","Core"],"mappings":";;;;;;;;;AASc,MAAO,MAAO,SAAQA,YAAO,CAAA;AACzC,IAAA,OAAgB,WAAW,GAAG,gEAAgE;AAE9F,IAAA,OAAgB,QAAQ,GAAG,CAAC,qCAAqC,CAAC;IAElE,OAAgB,KAAK,GAAG;QACtB,GAAGC,mBAAmB;QAEtB,GAAGC,sBAAsB;QACzB,GAAGC,iBAAiB;QACpB,GAAGC,mBAAmB;QACtB,GAAGC,gBAAgB;QAEnB,GAAGC,iBAAiB;QACpB,GAAGC,oBAAoB;QAEvB,GAAGC,iBAAiB;QACpB,GAAGC,mBAAmB;QACtB,GAAGC,6BAA6B;QAChC,GAAGC,2BAA2B;QAC9B,GAAGC,6BAA6B;KACjC;AAEM,IAAA,MAAM,GAAG,GAAA;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAE1C,MAAM,MAAM,GAAGC,iBAAiB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACpD,QAAA,MAAM,IAAI,GAAG,IAAIC,cAAI,CAAC,MAAM,CAAC;AAC7B,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;QAE5B,MAAM,YAAY,GAAG,QAAQ;AAE7B,QAAA,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC;QACzC,MAAM,WAAW,GAAkC;AACjD,cAAE;AACE,gBAAA,OAAO,EAAE,WAAW;gBACpB,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC;AAC9C;cACD,SAAS;QACb,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC;QAE/F,MAAM,MAAM,GAAmD,EAAE;QACjE,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE;YACjC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QAC9B;AAEA,QAAA,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,GAAG,CAAA,MAAA,EAAS,KAAK,CAAC,IAAI,CAAA,CAAE,GAAG,SAAS;QAEvE,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,EAAE;AACxD,YAAA,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,CAAC;AAC3C,YAAA,eAAe,EAAE,KAAK,CAAC,cAAc,CAAC;AACtC,YAAA,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,CAAC;YAE3C,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO;AAEtB,YAAA,gBAAgB,EAAE,gBAAgB;AAClC,YAAA,YAAY,EAAE,MAAM;AAEpB,YAAA,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;AACzB,YAAA,WAAW,EAAE,KAAK,CAAC,cAAc,CAAC;AAElC,YAAA,IAAI,EAAE,WAAW;AAEjB,YAAA,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;AAC9B,YAAA,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC;AAE5B,YAAA,cAAc,EAAE,KAAK,CAAC,mBAAmB,CAAC;AAC1C,YAAA,cAAc,EAAE,KAAK,CAAC,iBAAiB,CAAC;AAExC,YAAA,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC;AAChC,YAAA,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC;AAC/B,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;IAC/B;;;;;"}
@@ -1,31 +1,29 @@
1
1
  import { Command } from '@oclif/core';
2
- import { OptionFlag, CustomOptions, BooleanFlag } from '@oclif/core/interfaces';
3
2
  export default class Docker extends Command {
4
3
  static description: string;
5
4
  static examples: string[];
6
5
  static flags: {
7
- 'storage-library': OptionFlag<string | undefined, CustomOptions>;
8
- 'storage-work': OptionFlag<string | undefined, CustomOptions>;
9
- 'storage-primary': OptionFlag<string | undefined, CustomOptions>;
10
- storage: OptionFlag<string | undefined, CustomOptions>;
11
- mount: OptionFlag<string[] | undefined, CustomOptions>;
12
- license: OptionFlag<string | undefined, CustomOptions>;
13
- 'license-file': OptionFlag<string | undefined, CustomOptions>;
14
- 'auth-ldap-default-dn': OptionFlag<string | undefined, CustomOptions>;
15
- 'auth-ldap-server': OptionFlag<string | undefined, CustomOptions>;
16
- 'auth-htpasswd-file': OptionFlag<string | undefined, CustomOptions>;
17
- 'auth-enabled': BooleanFlag<boolean>;
18
- arch: OptionFlag<string | undefined, CustomOptions>;
19
- version: OptionFlag<string | undefined, CustomOptions>;
20
- image: OptionFlag<string | undefined, CustomOptions>;
21
- 'grpc-port': OptionFlag<number | undefined, CustomOptions>;
22
- 'grpc-listen': OptionFlag<string | undefined, CustomOptions>;
23
- 'monitoring-port': OptionFlag<number | undefined, CustomOptions>;
24
- 'monitoring-listen': OptionFlag<string | undefined, CustomOptions>;
25
- 'debug-port': OptionFlag<number | undefined, CustomOptions>;
26
- 'debug-listen': OptionFlag<string | undefined, CustomOptions>;
27
- 'log-level': OptionFlag<string, CustomOptions>;
6
+ 'storage-library': import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
7
+ 'storage-work': import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
8
+ 'storage-primary': import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
9
+ storage: import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
10
+ mount: import('@oclif/core/interfaces').OptionFlag<string[] | undefined, import('@oclif/core/interfaces').CustomOptions>;
11
+ license: import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
12
+ 'license-file': import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
13
+ 'auth-ldap-default-dn': import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
14
+ 'auth-ldap-server': import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
15
+ 'auth-htpasswd-file': import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
16
+ 'auth-enabled': import('@oclif/core/interfaces').BooleanFlag<boolean>;
17
+ arch: import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
18
+ version: import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
19
+ image: import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
20
+ 'grpc-port': import('@oclif/core/interfaces').OptionFlag<number | undefined, import('@oclif/core/interfaces').CustomOptions>;
21
+ 'grpc-listen': import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
22
+ 'monitoring-port': import('@oclif/core/interfaces').OptionFlag<number | undefined, import('@oclif/core/interfaces').CustomOptions>;
23
+ 'monitoring-listen': import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
24
+ 'debug-port': import('@oclif/core/interfaces').OptionFlag<number | undefined, import('@oclif/core/interfaces').CustomOptions>;
25
+ 'debug-listen': import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
26
+ 'log-level': import('@oclif/core/interfaces').OptionFlag<string, import('@oclif/core/interfaces').CustomOptions>;
28
27
  };
29
28
  run(): Promise<void>;
30
29
  }
31
- //# sourceMappingURL=docker.d.ts.map
@@ -0,0 +1,67 @@
1
+ import path from 'node:path';
2
+ import { Command } from '@oclif/core';
3
+ import Core from '../../core.js';
4
+ import { StorageLibraryURLFlag, StorageWorkPathFlag, StoragePrimaryURLFlag, StorageFlag, MountFlag, LicenseFlags, AuthFlags, ArchFlag, VersionFlag, ImageFlag, AddressesFlags, GlobalFlags } from '../../cmd-opts.js';
5
+ import { createLogger } from '../../util.js';
6
+ import state from '../../state.js';
7
+
8
+ class Docker extends Command {
9
+ static description = 'Run platforma backend service with \'FS\' primary storage type';
10
+ static examples = ['<%= config.bin %> <%= command.id %>'];
11
+ static flags = {
12
+ ...GlobalFlags,
13
+ ...AddressesFlags,
14
+ ...ImageFlag,
15
+ ...VersionFlag,
16
+ ...ArchFlag,
17
+ ...AuthFlags,
18
+ ...LicenseFlags,
19
+ ...MountFlag,
20
+ ...StorageFlag,
21
+ ...StoragePrimaryURLFlag,
22
+ ...StorageWorkPathFlag,
23
+ ...StorageLibraryURLFlag,
24
+ };
25
+ async run() {
26
+ const { flags } = await this.parse(Docker);
27
+ const logger = createLogger(flags['log-level']);
28
+ const core = new Core(logger);
29
+ core.mergeLicenseEnvs(flags);
30
+ const instanceName = 'docker';
31
+ const authEnabled = flags['auth-enabled'];
32
+ const authOptions = authEnabled
33
+ ? {
34
+ enabled: authEnabled,
35
+ drivers: core.initAuthDriversList(flags, '.'),
36
+ }
37
+ : undefined;
38
+ const storage = flags.storage ? path.join('.', flags.storage) : state.instanceDir(instanceName);
39
+ const mounts = [];
40
+ for (const p of flags.mount ?? []) {
41
+ mounts.push({ hostPath: p });
42
+ }
43
+ const platformOverride = flags.arch ? `linux/${flags.arch}` : undefined;
44
+ const instance = core.createDocker(instanceName, storage, {
45
+ primaryStorageURL: flags['storage-primary'],
46
+ workStoragePath: flags['storage-work'],
47
+ libraryStorageURL: flags['storage-library'],
48
+ image: flags.image,
49
+ version: flags.version,
50
+ platformOverride: platformOverride,
51
+ customMounts: mounts,
52
+ license: flags['license'],
53
+ licenseFile: flags['license-file'],
54
+ auth: authOptions,
55
+ grpcAddr: flags['grpc-listen'],
56
+ grpcPort: flags['grpc-port'],
57
+ monitoringAddr: flags['monitoring-listen'],
58
+ monitoringPort: flags['monitoring-port'],
59
+ debugAddr: flags['debug-listen'],
60
+ debugPort: flags['debug-port'],
61
+ });
62
+ core.switchInstance(instance);
63
+ }
64
+ }
65
+
66
+ export { Docker as default };
67
+ //# sourceMappingURL=docker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker.js","sources":["../../../src/commands/start/docker.ts"],"sourcesContent":["import path from 'node:path';\n\nimport { Command } from '@oclif/core';\nimport Core from '../../core';\nimport * as cmdOpts from '../../cmd-opts';\nimport * as util from '../../util';\nimport type * as types from '../../templates/types';\nimport state from '../../state';\n\nexport default class Docker extends Command {\n static override description = 'Run platforma backend service with \\'FS\\' primary storage type';\n\n static override examples = ['<%= config.bin %> <%= command.id %>'];\n\n static override flags = {\n ...cmdOpts.GlobalFlags,\n\n ...cmdOpts.AddressesFlags,\n ...cmdOpts.ImageFlag,\n ...cmdOpts.VersionFlag,\n ...cmdOpts.ArchFlag,\n\n ...cmdOpts.AuthFlags,\n ...cmdOpts.LicenseFlags,\n\n ...cmdOpts.MountFlag,\n ...cmdOpts.StorageFlag,\n ...cmdOpts.StoragePrimaryURLFlag,\n ...cmdOpts.StorageWorkPathFlag,\n ...cmdOpts.StorageLibraryURLFlag,\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(Docker);\n\n const logger = util.createLogger(flags['log-level']);\n const core = new Core(logger);\n core.mergeLicenseEnvs(flags);\n\n const instanceName = 'docker';\n\n const authEnabled = flags['auth-enabled'];\n const authOptions: types.authOptions | undefined = authEnabled\n ? {\n enabled: authEnabled,\n drivers: core.initAuthDriversList(flags, '.'),\n }\n : undefined;\n const storage = flags.storage ? path.join('.', flags.storage) : state.instanceDir(instanceName);\n\n const mounts: { hostPath: string; containerPath?: string }[] = [];\n for (const p of flags.mount ?? []) {\n mounts.push({ hostPath: p });\n }\n\n const platformOverride = flags.arch ? `linux/${flags.arch}` : undefined;\n\n const instance = core.createDocker(instanceName, storage, {\n primaryStorageURL: flags['storage-primary'],\n workStoragePath: flags['storage-work'],\n libraryStorageURL: flags['storage-library'],\n\n image: flags.image,\n version: flags.version,\n\n platformOverride: platformOverride,\n customMounts: mounts,\n\n license: flags['license'],\n licenseFile: flags['license-file'],\n\n auth: authOptions,\n\n grpcAddr: flags['grpc-listen'],\n grpcPort: flags['grpc-port'],\n\n monitoringAddr: flags['monitoring-listen'],\n monitoringPort: flags['monitoring-port'],\n\n debugAddr: flags['debug-listen'],\n debugPort: flags['debug-port'],\n });\n\n core.switchInstance(instance);\n }\n}\n"],"names":["cmdOpts.GlobalFlags","cmdOpts.AddressesFlags","cmdOpts.ImageFlag","cmdOpts.VersionFlag","cmdOpts.ArchFlag","cmdOpts.AuthFlags","cmdOpts.LicenseFlags","cmdOpts.MountFlag","cmdOpts.StorageFlag","cmdOpts.StoragePrimaryURLFlag","cmdOpts.StorageWorkPathFlag","cmdOpts.StorageLibraryURLFlag","util.createLogger"],"mappings":";;;;;;;AASc,MAAO,MAAO,SAAQ,OAAO,CAAA;AACzC,IAAA,OAAgB,WAAW,GAAG,gEAAgE;AAE9F,IAAA,OAAgB,QAAQ,GAAG,CAAC,qCAAqC,CAAC;IAElE,OAAgB,KAAK,GAAG;QACtB,GAAGA,WAAmB;QAEtB,GAAGC,cAAsB;QACzB,GAAGC,SAAiB;QACpB,GAAGC,WAAmB;QACtB,GAAGC,QAAgB;QAEnB,GAAGC,SAAiB;QACpB,GAAGC,YAAoB;QAEvB,GAAGC,SAAiB;QACpB,GAAGC,WAAmB;QACtB,GAAGC,qBAA6B;QAChC,GAAGC,mBAA2B;QAC9B,GAAGC,qBAA6B;KACjC;AAEM,IAAA,MAAM,GAAG,GAAA;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAE1C,MAAM,MAAM,GAAGC,YAAiB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACpD,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC;AAC7B,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;QAE5B,MAAM,YAAY,GAAG,QAAQ;AAE7B,QAAA,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC;QACzC,MAAM,WAAW,GAAkC;AACjD,cAAE;AACE,gBAAA,OAAO,EAAE,WAAW;gBACpB,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC;AAC9C;cACD,SAAS;QACb,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC;QAE/F,MAAM,MAAM,GAAmD,EAAE;QACjE,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE;YACjC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QAC9B;AAEA,QAAA,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,GAAG,CAAA,MAAA,EAAS,KAAK,CAAC,IAAI,CAAA,CAAE,GAAG,SAAS;QAEvE,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,EAAE;AACxD,YAAA,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,CAAC;AAC3C,YAAA,eAAe,EAAE,KAAK,CAAC,cAAc,CAAC;AACtC,YAAA,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,CAAC;YAE3C,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO;AAEtB,YAAA,gBAAgB,EAAE,gBAAgB;AAClC,YAAA,YAAY,EAAE,MAAM;AAEpB,YAAA,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;AACzB,YAAA,WAAW,EAAE,KAAK,CAAC,cAAc,CAAC;AAElC,YAAA,IAAI,EAAE,WAAW;AAEjB,YAAA,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;AAC9B,YAAA,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC;AAE5B,YAAA,cAAc,EAAE,KAAK,CAAC,mBAAmB,CAAC;AAC1C,YAAA,cAAc,EAAE,KAAK,CAAC,iBAAiB,CAAC;AAExC,YAAA,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC;AAChC,YAAA,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC;AAC/B,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;IAC/B;;;;;"}
@@ -0,0 +1,135 @@
1
+ 'use strict';
2
+
3
+ var path = require('node:path');
4
+ var core = require('@oclif/core');
5
+ var core$1 = require('../../../core.cjs');
6
+ var cmdOpts = require('../../../cmd-opts.cjs');
7
+ var platforma = require('../../../platforma.cjs');
8
+ var util = require('../../../util.cjs');
9
+ var state = require('../../../state.cjs');
10
+ var os = require('node:os');
11
+
12
+ function _interopNamespaceDefault(e) {
13
+ var n = Object.create(null);
14
+ if (e) {
15
+ Object.keys(e).forEach(function (k) {
16
+ if (k !== 'default') {
17
+ var d = Object.getOwnPropertyDescriptor(e, k);
18
+ Object.defineProperty(n, k, d.get ? d : {
19
+ enumerable: true,
20
+ get: function () { return e[k]; }
21
+ });
22
+ }
23
+ });
24
+ }
25
+ n.default = e;
26
+ return Object.freeze(n);
27
+ }
28
+
29
+ var os__namespace = /*#__PURE__*/_interopNamespaceDefault(os);
30
+
31
+ class S3 extends core.Command {
32
+ static description = 'Run Platforma Backend service as local process on current host (no docker container)';
33
+ static examples = ['<%= config.bin %> <%= command.id %>'];
34
+ static flags = {
35
+ ...cmdOpts.GlobalFlags,
36
+ ...cmdOpts.VersionFlag,
37
+ ...cmdOpts.AddressesFlags,
38
+ ...cmdOpts.S3AddressesFlags,
39
+ ...cmdOpts.PlBinaryFlag,
40
+ ...cmdOpts.PlSourcesFlag,
41
+ ...cmdOpts.ConfigFlag,
42
+ ...cmdOpts.LicenseFlags,
43
+ ...cmdOpts.StorageFlag,
44
+ ...cmdOpts.StoragePrimaryURLFlag,
45
+ ...cmdOpts.StorageWorkPathFlag,
46
+ ...cmdOpts.StorageLibraryURLFlag,
47
+ ...cmdOpts.PlLogFileFlag,
48
+ ...cmdOpts.PlWorkdirFlag,
49
+ ...cmdOpts.AuthFlags,
50
+ };
51
+ async run() {
52
+ const { flags } = await this.parse(S3);
53
+ const logger = util.createLogger(flags['log-level']);
54
+ const core = new core$1.default(logger);
55
+ core.mergeLicenseEnvs(flags);
56
+ const instanceName = 'local-s3';
57
+ const workdir = flags['pl-workdir'] ?? '.';
58
+ const storage = flags.storage ? path.join(workdir, flags.storage) : state.instanceDir(instanceName);
59
+ const logFile = flags['pl-log-file'] ? path.join(workdir, flags['pl-log-file']) : undefined;
60
+ const authDrivers = core.initAuthDriversList(flags, workdir);
61
+ const authEnabled = flags['auth-enabled'] ?? authDrivers !== undefined;
62
+ let listenGrpc = '127.0.0.1:6345';
63
+ if (flags['grpc-listen'])
64
+ listenGrpc = flags['grpc-listen'];
65
+ else if (flags['grpc-port'])
66
+ listenGrpc = `127.0.0.1:${flags['grpc-port']}`;
67
+ let listenMon = '127.0.0.1:9090';
68
+ if (flags['monitoring-listen'])
69
+ listenMon = flags['monitoring-listen'];
70
+ else if (flags['monitoring-port'])
71
+ listenMon = `127.0.0.1:${flags['monitoring-port']}`;
72
+ let listenDbg = '127.0.0.1:9091';
73
+ if (flags['debug-listen'])
74
+ listenDbg = flags['debug-listen'];
75
+ else if (flags['debug-port'])
76
+ listenDbg = `127.0.0.1:${flags['debug-port']}`;
77
+ const startOptions = {
78
+ sourcesPath: flags['pl-sources'],
79
+ binaryPath: flags['pl-binary'],
80
+ version: flags.version,
81
+ configPath: flags.config,
82
+ workdir: flags['pl-workdir'],
83
+ primaryURL: flags['storage-primary'],
84
+ libraryURL: flags['storage-library'],
85
+ minioPort: flags['s3-port'],
86
+ minioConsolePort: flags['s3-console-port'],
87
+ configOptions: {
88
+ grpc: { listen: listenGrpc },
89
+ monitoring: { listen: listenMon },
90
+ debug: { listen: listenDbg },
91
+ license: { value: flags['license'], file: flags['license-file'] },
92
+ log: { path: logFile },
93
+ localRoot: storage,
94
+ core: {
95
+ auth: { enabled: authEnabled, drivers: authDrivers },
96
+ },
97
+ // Backend could consume a lot of CPU power,
98
+ // we want to keep at least a couple for UI and other apps to work.
99
+ numCpu: Math.max(os__namespace.cpus().length - 2, 1),
100
+ storages: {
101
+ work: { type: 'FS', rootPath: flags['storage-work'] },
102
+ },
103
+ },
104
+ };
105
+ const instance = core.createLocalS3(instanceName, startOptions);
106
+ if (startOptions.binaryPath || startOptions.sourcesPath) {
107
+ core.switchInstance(instance);
108
+ }
109
+ else {
110
+ await platforma.getBinary(logger, { version: flags.version })
111
+ .then(() => {
112
+ const children = core.switchInstance(instance);
113
+ // setTimeout(() => {
114
+ // for (const child of children) {
115
+ // child.unref();
116
+ // }
117
+ // }, 1000);
118
+ const results = [];
119
+ for (const child of children) {
120
+ results.push(new Promise((resolve, reject) => {
121
+ child.on('close', resolve);
122
+ child.on('error', reject);
123
+ }));
124
+ }
125
+ return Promise.all(results);
126
+ })
127
+ .catch(function (err) {
128
+ logger.error(err.message);
129
+ });
130
+ }
131
+ }
132
+ }
133
+
134
+ module.exports = S3;
135
+ //# sourceMappingURL=s3.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3.cjs","sources":["../../../../src/commands/start/local/s3.ts"],"sourcesContent":["import path from 'node:path';\n\nimport { Command } from '@oclif/core';\nimport type { createLocalS3Options } from '../../../core';\nimport Core from '../../../core';\nimport * as cmdOpts from '../../../cmd-opts';\nimport * as platforma from '../../../platforma';\nimport * as util from '../../../util';\nimport state from '../../../state';\nimport * as os from 'node:os';\n\nexport default class S3 extends Command {\n static override description = 'Run Platforma Backend service as local process on current host (no docker container)';\n\n static override examples = ['<%= config.bin %> <%= command.id %>'];\n\n static override flags = {\n ...cmdOpts.GlobalFlags,\n ...cmdOpts.VersionFlag,\n\n ...cmdOpts.AddressesFlags,\n ...cmdOpts.S3AddressesFlags,\n ...cmdOpts.PlBinaryFlag,\n ...cmdOpts.PlSourcesFlag,\n\n ...cmdOpts.ConfigFlag,\n\n ...cmdOpts.LicenseFlags,\n\n ...cmdOpts.StorageFlag,\n ...cmdOpts.StoragePrimaryURLFlag,\n ...cmdOpts.StorageWorkPathFlag,\n ...cmdOpts.StorageLibraryURLFlag,\n\n ...cmdOpts.PlLogFileFlag,\n ...cmdOpts.PlWorkdirFlag,\n ...cmdOpts.AuthFlags,\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(S3);\n\n const logger = util.createLogger(flags['log-level']);\n const core = new Core(logger);\n core.mergeLicenseEnvs(flags);\n\n const instanceName = 'local-s3';\n\n const workdir = flags['pl-workdir'] ?? '.';\n const storage = flags.storage ? path.join(workdir, flags.storage) : state.instanceDir(instanceName);\n const logFile = flags['pl-log-file'] ? path.join(workdir, flags['pl-log-file']) : undefined;\n\n const authDrivers = core.initAuthDriversList(flags, workdir);\n const authEnabled = flags['auth-enabled'] ?? authDrivers !== undefined;\n\n let listenGrpc: string = '127.0.0.1:6345';\n if (flags['grpc-listen']) listenGrpc = flags['grpc-listen'];\n else if (flags['grpc-port']) listenGrpc = `127.0.0.1:${flags['grpc-port']}`;\n\n let listenMon: string = '127.0.0.1:9090';\n if (flags['monitoring-listen']) listenMon = flags['monitoring-listen'];\n else if (flags['monitoring-port']) listenMon = `127.0.0.1:${flags['monitoring-port']}`;\n\n let listenDbg: string = '127.0.0.1:9091';\n if (flags['debug-listen']) listenDbg = flags['debug-listen'];\n else if (flags['debug-port']) listenDbg = `127.0.0.1:${flags['debug-port']}`;\n\n const startOptions: createLocalS3Options = {\n sourcesPath: flags['pl-sources'],\n binaryPath: flags['pl-binary'],\n\n version: flags.version,\n configPath: flags.config,\n workdir: flags['pl-workdir'],\n\n primaryURL: flags['storage-primary'],\n libraryURL: flags['storage-library'],\n\n minioPort: flags['s3-port'],\n minioConsolePort: flags['s3-console-port'],\n\n configOptions: {\n grpc: { listen: listenGrpc },\n monitoring: { listen: listenMon },\n debug: { listen: listenDbg },\n license: { value: flags['license'], file: flags['license-file'] },\n log: { path: logFile },\n localRoot: storage,\n core: {\n auth: { enabled: authEnabled, drivers: authDrivers },\n },\n\n // Backend could consume a lot of CPU power,\n // we want to keep at least a couple for UI and other apps to work.\n numCpu: Math.max(os.cpus().length - 2, 1),\n\n storages: {\n work: { type: 'FS', rootPath: flags['storage-work'] },\n },\n },\n };\n\n const instance = core.createLocalS3(instanceName, startOptions);\n\n if (startOptions.binaryPath || startOptions.sourcesPath) {\n core.switchInstance(instance);\n } else {\n await platforma\n .getBinary(logger, { version: flags.version })\n .then(() => {\n const children = core.switchInstance(instance);\n\n // setTimeout(() => {\n // for (const child of children) {\n // child.unref();\n // }\n // }, 1000);\n\n const results: Promise<void>[] = [];\n for (const child of children) {\n results.push(new Promise((resolve, reject) => {\n child.on('close', resolve);\n child.on('error', reject);\n }));\n }\n\n return Promise.all(results);\n })\n .catch(function (err: Error) {\n logger.error(err.message);\n });\n }\n }\n}\n"],"names":["Command","cmdOpts.GlobalFlags","cmdOpts.VersionFlag","cmdOpts.AddressesFlags","cmdOpts.S3AddressesFlags","cmdOpts.PlBinaryFlag","cmdOpts.PlSourcesFlag","cmdOpts.ConfigFlag","cmdOpts.LicenseFlags","cmdOpts.StorageFlag","cmdOpts.StoragePrimaryURLFlag","cmdOpts.StorageWorkPathFlag","cmdOpts.StorageLibraryURLFlag","cmdOpts.PlLogFileFlag","cmdOpts.PlWorkdirFlag","cmdOpts.AuthFlags","util.createLogger","Core","os","platforma\n .getBinary"],"mappings":"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"}
@@ -1,35 +1,33 @@
1
1
  import { Command } from '@oclif/core';
2
- import { OptionFlag, CustomOptions, BooleanFlag } from '@oclif/core/interfaces';
3
2
  export default class S3 extends Command {
4
3
  static description: string;
5
4
  static examples: string[];
6
5
  static flags: {
7
- 'auth-ldap-default-dn': OptionFlag<string | undefined, CustomOptions>;
8
- 'auth-ldap-server': OptionFlag<string | undefined, CustomOptions>;
9
- 'auth-htpasswd-file': OptionFlag<string | undefined, CustomOptions>;
10
- 'auth-enabled': BooleanFlag<boolean>;
11
- "pl-workdir": OptionFlag<string | undefined, CustomOptions>;
12
- "pl-log-file": OptionFlag<string | undefined, CustomOptions>;
13
- 'storage-library': OptionFlag<string | undefined, CustomOptions>;
14
- 'storage-work': OptionFlag<string | undefined, CustomOptions>;
15
- 'storage-primary': OptionFlag<string | undefined, CustomOptions>;
16
- storage: OptionFlag<string | undefined, CustomOptions>;
17
- license: OptionFlag<string | undefined, CustomOptions>;
18
- 'license-file': OptionFlag<string | undefined, CustomOptions>;
19
- config: OptionFlag<string | undefined, CustomOptions>;
20
- "pl-sources": OptionFlag<string | undefined, CustomOptions>;
21
- "pl-binary": OptionFlag<string | undefined, CustomOptions>;
22
- 's3-port': OptionFlag<number, CustomOptions>;
23
- 's3-console-port': OptionFlag<number, CustomOptions>;
24
- 'grpc-port': OptionFlag<number | undefined, CustomOptions>;
25
- 'grpc-listen': OptionFlag<string | undefined, CustomOptions>;
26
- 'monitoring-port': OptionFlag<number | undefined, CustomOptions>;
27
- 'monitoring-listen': OptionFlag<string | undefined, CustomOptions>;
28
- 'debug-port': OptionFlag<number | undefined, CustomOptions>;
29
- 'debug-listen': OptionFlag<string | undefined, CustomOptions>;
30
- version: OptionFlag<string | undefined, CustomOptions>;
31
- 'log-level': OptionFlag<string, CustomOptions>;
6
+ 'auth-ldap-default-dn': import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
7
+ 'auth-ldap-server': import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
8
+ 'auth-htpasswd-file': import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
9
+ 'auth-enabled': import('@oclif/core/interfaces').BooleanFlag<boolean>;
10
+ "pl-workdir": import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
11
+ "pl-log-file": import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
12
+ 'storage-library': import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
13
+ 'storage-work': import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
14
+ 'storage-primary': import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
15
+ storage: import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
16
+ license: import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
17
+ 'license-file': import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
18
+ config: import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
19
+ "pl-sources": import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
20
+ "pl-binary": import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
21
+ 's3-port': import('@oclif/core/interfaces').OptionFlag<number, import('@oclif/core/interfaces').CustomOptions>;
22
+ 's3-console-port': import('@oclif/core/interfaces').OptionFlag<number, import('@oclif/core/interfaces').CustomOptions>;
23
+ 'grpc-port': import('@oclif/core/interfaces').OptionFlag<number | undefined, import('@oclif/core/interfaces').CustomOptions>;
24
+ 'grpc-listen': import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
25
+ 'monitoring-port': import('@oclif/core/interfaces').OptionFlag<number | undefined, import('@oclif/core/interfaces').CustomOptions>;
26
+ 'monitoring-listen': import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
27
+ 'debug-port': import('@oclif/core/interfaces').OptionFlag<number | undefined, import('@oclif/core/interfaces').CustomOptions>;
28
+ 'debug-listen': import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
29
+ version: import('@oclif/core/interfaces').OptionFlag<string | undefined, import('@oclif/core/interfaces').CustomOptions>;
30
+ 'log-level': import('@oclif/core/interfaces').OptionFlag<string, import('@oclif/core/interfaces').CustomOptions>;
32
31
  };
33
32
  run(): Promise<void>;
34
33
  }
35
- //# sourceMappingURL=s3.d.ts.map
@@ -0,0 +1,114 @@
1
+ import path from 'node:path';
2
+ import { Command } from '@oclif/core';
3
+ import Core from '../../../core.js';
4
+ import { AuthFlags, PlWorkdirFlag, PlLogFileFlag, StorageLibraryURLFlag, StorageWorkPathFlag, StoragePrimaryURLFlag, StorageFlag, LicenseFlags, ConfigFlag, PlSourcesFlag, PlBinaryFlag, S3AddressesFlags, AddressesFlags, VersionFlag, GlobalFlags } from '../../../cmd-opts.js';
5
+ import { getBinary } from '../../../platforma.js';
6
+ import { createLogger } from '../../../util.js';
7
+ import state from '../../../state.js';
8
+ import * as os from 'node:os';
9
+
10
+ class S3 extends Command {
11
+ static description = 'Run Platforma Backend service as local process on current host (no docker container)';
12
+ static examples = ['<%= config.bin %> <%= command.id %>'];
13
+ static flags = {
14
+ ...GlobalFlags,
15
+ ...VersionFlag,
16
+ ...AddressesFlags,
17
+ ...S3AddressesFlags,
18
+ ...PlBinaryFlag,
19
+ ...PlSourcesFlag,
20
+ ...ConfigFlag,
21
+ ...LicenseFlags,
22
+ ...StorageFlag,
23
+ ...StoragePrimaryURLFlag,
24
+ ...StorageWorkPathFlag,
25
+ ...StorageLibraryURLFlag,
26
+ ...PlLogFileFlag,
27
+ ...PlWorkdirFlag,
28
+ ...AuthFlags,
29
+ };
30
+ async run() {
31
+ const { flags } = await this.parse(S3);
32
+ const logger = createLogger(flags['log-level']);
33
+ const core = new Core(logger);
34
+ core.mergeLicenseEnvs(flags);
35
+ const instanceName = 'local-s3';
36
+ const workdir = flags['pl-workdir'] ?? '.';
37
+ const storage = flags.storage ? path.join(workdir, flags.storage) : state.instanceDir(instanceName);
38
+ const logFile = flags['pl-log-file'] ? path.join(workdir, flags['pl-log-file']) : undefined;
39
+ const authDrivers = core.initAuthDriversList(flags, workdir);
40
+ const authEnabled = flags['auth-enabled'] ?? authDrivers !== undefined;
41
+ let listenGrpc = '127.0.0.1:6345';
42
+ if (flags['grpc-listen'])
43
+ listenGrpc = flags['grpc-listen'];
44
+ else if (flags['grpc-port'])
45
+ listenGrpc = `127.0.0.1:${flags['grpc-port']}`;
46
+ let listenMon = '127.0.0.1:9090';
47
+ if (flags['monitoring-listen'])
48
+ listenMon = flags['monitoring-listen'];
49
+ else if (flags['monitoring-port'])
50
+ listenMon = `127.0.0.1:${flags['monitoring-port']}`;
51
+ let listenDbg = '127.0.0.1:9091';
52
+ if (flags['debug-listen'])
53
+ listenDbg = flags['debug-listen'];
54
+ else if (flags['debug-port'])
55
+ listenDbg = `127.0.0.1:${flags['debug-port']}`;
56
+ const startOptions = {
57
+ sourcesPath: flags['pl-sources'],
58
+ binaryPath: flags['pl-binary'],
59
+ version: flags.version,
60
+ configPath: flags.config,
61
+ workdir: flags['pl-workdir'],
62
+ primaryURL: flags['storage-primary'],
63
+ libraryURL: flags['storage-library'],
64
+ minioPort: flags['s3-port'],
65
+ minioConsolePort: flags['s3-console-port'],
66
+ configOptions: {
67
+ grpc: { listen: listenGrpc },
68
+ monitoring: { listen: listenMon },
69
+ debug: { listen: listenDbg },
70
+ license: { value: flags['license'], file: flags['license-file'] },
71
+ log: { path: logFile },
72
+ localRoot: storage,
73
+ core: {
74
+ auth: { enabled: authEnabled, drivers: authDrivers },
75
+ },
76
+ // Backend could consume a lot of CPU power,
77
+ // we want to keep at least a couple for UI and other apps to work.
78
+ numCpu: Math.max(os.cpus().length - 2, 1),
79
+ storages: {
80
+ work: { type: 'FS', rootPath: flags['storage-work'] },
81
+ },
82
+ },
83
+ };
84
+ const instance = core.createLocalS3(instanceName, startOptions);
85
+ if (startOptions.binaryPath || startOptions.sourcesPath) {
86
+ core.switchInstance(instance);
87
+ }
88
+ else {
89
+ await getBinary(logger, { version: flags.version })
90
+ .then(() => {
91
+ const children = core.switchInstance(instance);
92
+ // setTimeout(() => {
93
+ // for (const child of children) {
94
+ // child.unref();
95
+ // }
96
+ // }, 1000);
97
+ const results = [];
98
+ for (const child of children) {
99
+ results.push(new Promise((resolve, reject) => {
100
+ child.on('close', resolve);
101
+ child.on('error', reject);
102
+ }));
103
+ }
104
+ return Promise.all(results);
105
+ })
106
+ .catch(function (err) {
107
+ logger.error(err.message);
108
+ });
109
+ }
110
+ }
111
+ }
112
+
113
+ export { S3 as default };
114
+ //# sourceMappingURL=s3.js.map