@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 @@
1
+ {"version":3,"file":"core.cjs","sources":["../src/core.ts"],"sourcesContent":["import type { ChildProcess, SpawnSyncReturns } from 'node:child_process';\nimport fs from 'node:fs';\nimport os from 'node:os';\nimport path from 'node:path';\nimport * as pkg from './package';\nimport * as run from './run';\nimport * as composeCfg from './templates/compose';\nimport * as plCfg from './templates/pl-config';\nimport type * as types from './templates/types';\nimport * as platforma from './platforma';\nimport type { instanceInfo, instanceCommand } from './state';\nimport state from './state';\nimport * as util from './util';\nimport type winston from 'winston';\n\nexport default class Core {\n constructor(private readonly logger: winston.Logger) { }\n\n public startLast(): ChildProcess[] {\n const instance = state.currentInstance;\n if (!instance) {\n this.logger.error('failed to bring back Platforma Backend in the last started configuration: no last configuration found');\n throw new Error('no previous run info found');\n }\n\n return this.startInstance(instance);\n }\n\n public startInstance(instance: instanceInfo): ChildProcess[] {\n if (instance.runInfo) {\n const runInfo = this.renderRunInfo(instance.runInfo);\n this.logger.info(`Starting platforma backend instance '${instance.name}':\\n${runInfo}`);\n }\n\n const result = run.runCommands(\n this.logger,\n instance.upCommands,\n );\n checkRunError(result.executed);\n\n if (result.spawned.length > 0 && instance.type === 'process') {\n instance.pid = result.spawned[result.spawned.length - 1].pid;\n state.setInstanceInfo(instance.name, instance);\n this.logger.info(`instance '${instance.name}' started`);\n }\n\n state.currentInstanceName = instance.name;\n\n return result.spawned;\n }\n\n public stopInstance(instance: instanceInfo) {\n this.logger.info(`stopping platforma backend instance '${instance.name}'...`);\n const result = run.runCommands(this.logger, instance.downCommands);\n checkRunError(result.executed);\n\n const iType = instance.type;\n switch (iType) {\n case 'docker': {\n return;\n }\n\n case 'process': {\n if (instance.pid && state.isInstanceActive(instance)) {\n process.kill(instance.pid);\n }\n\n return;\n }\n default:\n util.assertNever(iType);\n }\n }\n\n public switchInstance(instance: instanceInfo): ChildProcess[] {\n // Stop all other active instances before switching to new one;\n for (const iName of state.instanceList) {\n if (iName !== instance.name) {\n const iToStop = state.getInstanceInfo(iName);\n if (state.isInstanceActive(iToStop)) {\n this.stopInstance(iToStop);\n }\n }\n }\n\n return this.startInstance(instance);\n }\n\n public createLocal(instanceName: string, options?: createLocalOptions): instanceInfo {\n let plBinaryPath = platforma.binaryPath(options?.version, 'binaries', 'platforma');\n if (options?.sourcesPath) {\n plBinaryPath = path.join(os.tmpdir(), 'platforma-custom-build');\n }\n if (options?.binaryPath) {\n plBinaryPath = options.binaryPath;\n }\n\n let configPath = options?.configPath;\n const workdir: string = options?.workdir ?? (configPath ? process.cwd() : state.instanceDir(instanceName));\n\n if (options?.primaryURL) {\n options.configOptions = {\n ...options.configOptions,\n storages: {\n ...options.configOptions?.storages,\n primary: plCfg.storageSettingsFromURL(options.primaryURL, workdir, options.configOptions?.storages?.primary),\n },\n };\n }\n if (options?.libraryURL) {\n options.configOptions = {\n ...options.configOptions,\n storages: {\n ...options.configOptions?.storages,\n library: plCfg.storageSettingsFromURL(options.libraryURL, workdir, options.configOptions?.storages?.library),\n },\n };\n }\n\n const configOptions = plCfg.loadDefaults(this.getLastJwt(), options?.configOptions);\n\n this.logger.debug(` checking license...`);\n this.checkLicense(options?.configOptions?.license?.value, options?.configOptions?.license?.file);\n\n const storageDirs: string[] = [\n `${configOptions.localRoot}/packages`,\n `${configOptions.localRoot}/packages-local`,\n `${configOptions.localRoot}/blocks-local`,\n ];\n if (configOptions.storages.primary.type === 'FS') {\n storageDirs.push(configOptions.storages.primary.rootPath);\n }\n if (configOptions.storages.library.type === 'FS') {\n storageDirs.push(configOptions.storages.library.rootPath);\n configOptions.hacks.libraryDownloadable = false;\n }\n if (configOptions.storages.work.type === 'FS') {\n storageDirs.push(configOptions.storages.work.rootPath);\n }\n\n this.logger.debug(' creating pl state directories...');\n for (const dir of storageDirs) {\n if (!fs.existsSync(dir)) {\n this.logger.debug(` '${dir}'`);\n fs.mkdirSync(dir, { recursive: true });\n }\n }\n\n for (const drv of configOptions.core.auth.drivers) {\n if (drv.driver === 'htpasswd') {\n if (!fs.existsSync(drv.path)) {\n this.logger.debug(` installing default 'users.htpasswd' to ${drv.path}...`);\n fs.copyFileSync(pkg.assets('users.htpasswd'), drv.path);\n }\n }\n }\n\n if (!configPath) {\n configPath = path.join(configOptions.localRoot, 'config.yaml');\n this.logger.debug(` rendering configuration '${configPath}'...`);\n fs.writeFileSync(configPath, plCfg.render(configOptions));\n }\n\n const upCommands: instanceCommand[] = [];\n if (options?.sourcesPath) {\n upCommands.push({\n cmd: 'go',\n args: ['build', '-o', plBinaryPath, '.'],\n workdir: path.resolve(options.sourcesPath, 'cmd', 'platforma'),\n runOpts: {\n stdio: 'inherit',\n },\n });\n }\n\n const runBinary: instanceCommand = {\n async: true,\n cmd: plBinaryPath,\n args: ['--quiet', '--config', configPath],\n workdir: workdir,\n runOpts: {\n stdio: 'inherit',\n },\n };\n\n if (options?.configOptions?.numCpu) {\n runBinary.runOpts.env = {\n GOMAXPROCS: String(options?.configOptions?.numCpu),\n };\n }\n\n upCommands.push(runBinary);\n\n state.setInstanceInfo(instanceName, {\n type: 'process',\n upCommands: upCommands,\n downCommands: [],\n cleanupCommands: [],\n runInfo: {\n configPath,\n dbPath: configOptions.core.db.path,\n apiAddr: configOptions.grpc.listen,\n logPath: configOptions.log.path,\n primary: configOptions.storages.primary,\n work: configOptions.storages.work,\n library: configOptions.storages.library,\n },\n });\n\n return state.getInstanceInfo(instanceName);\n }\n\n public createLocalS3(instanceName: string, options?: createLocalS3Options): instanceInfo {\n this.logger.debug('creating platforma instance in \\'local s3\\' mode...');\n\n const minioPort = options?.minioPort ?? 9000;\n\n const instance = this.createLocal(instanceName, {\n ...options,\n primaryURL: options?.primaryURL ?? `s3e://testuser:testpassword@localhost:${minioPort}/main-bucket/?region=no-region`,\n libraryURL: options?.libraryURL ?? `s3e://testuser:testpassword@localhost:${minioPort}/library-bucket/?region=no-region`,\n });\n\n const localRoot = options?.configOptions?.localRoot;\n const minioRunCmd = this.createMinio(instanceName, {\n minioPort: minioPort,\n minioConsolePort: options?.minioConsolePort,\n storage: localRoot ? path.join(localRoot, 'minio') : undefined,\n });\n\n instance.upCommands = [\n minioRunCmd.start,\n ...instance.upCommands,\n ];\n\n instance.downCommands = [\n minioRunCmd.stop,\n ...instance.downCommands,\n ];\n\n instance.cleanupCommands = [\n minioRunCmd.cleanup,\n ...instance.cleanupCommands,\n ];\n\n state.setInstanceInfo(instanceName, instance);\n return instance;\n }\n\n public createMinio(\n instanceName: string,\n options?: {\n image?: string;\n version?: string;\n minioPort?: number;\n minioConsolePort?: number;\n storage?: string;\n }): {\n start: instanceCommand;\n stop: instanceCommand;\n cleanup: instanceCommand;\n } {\n this.logger.debug(' creating docker compose for minio service...');\n const composeSrc = pkg.assets('compose-backend.yaml');\n const composeMinio = state.instanceDir(instanceName, 'compose-minio.yaml');\n\n composeCfg.render(composeSrc, composeMinio, `pl-${instanceName}-minio`,\n new Map([\n ['minio', {}],\n ]),\n { dropVolumes: true },\n );\n\n const version = options?.version ? `:${options.version}` : '';\n this.logger.debug(` minio version: ${version}`);\n const image = options?.image ?? `quay.io/minio/minio${version}`;\n this.logger.debug(` minio image: ${image}`);\n\n const storage = options?.storage ?? state.instanceDir(instanceName, 'minio');\n util.ensureDir(storage, { mode: '0775' });\n\n const minioPort = options?.minioPort ?? 9000;\n const minioConsolePort = options?.minioConsolePort ?? 9001;\n\n const envs = {\n MINIO_IMAGE: image,\n MINIO_STORAGE: path.resolve(storage),\n MINIO_PORT: minioPort.toString(),\n MINIO_CONSOLE_PORT: minioConsolePort.toString(),\n };\n\n return {\n start: {\n cmd: 'docker',\n args: ['compose', `--file=${composeMinio}`, 'up', '--detach', '--remove-orphans', '--pull=missing'],\n envs: envs,\n workdir: state.instanceDir(instanceName),\n runOpts: { stdio: 'inherit' },\n },\n stop: {\n cmd: 'docker',\n args: ['compose', `--file=${composeMinio}`, 'down'],\n envs: envs,\n workdir: state.instanceDir(instanceName),\n runOpts: { stdio: 'inherit' },\n },\n cleanup: {\n cmd: 'docker',\n args: ['compose', `--file=${composeMinio}`, 'down', '--volumes', '--remove-orphans'],\n envs: envs,\n workdir: state.instanceDir(instanceName),\n runOpts: { stdio: 'inherit' },\n },\n };\n }\n\n public createDockerS3(\n instanceName: string,\n localRoot: string,\n options?: {\n image?: string;\n version?: string;\n platformOverride?: string;\n\n logLevel?: string;\n auth?: types.authOptions;\n\n license?: string;\n licenseFile?: string;\n\n grpcPort?: number;\n grpcAddr?: string;\n\n presignHost?: string;\n\n monitoringPort?: number;\n monitoringAddr?: string;\n\n debugPort?: number;\n debugAddr?: string;\n\n s3Port?: number;\n s3ConsolePort?: number;\n\n customMounts?: { hostPath: string; containerPath?: string }[];\n },\n ): instanceInfo {\n this.logger.debug('creating platforma instance in \\'docker s3\\' mode...');\n\n const composeS3Path = pkg.assets('compose-backend.yaml');\n const image = options?.image ?? pkg.plImageTag(options?.version);\n\n this.checkLicense(options?.license, options?.licenseFile);\n\n const storagePath = (...s: string[]) => path.join(localRoot, ...s);\n const storageDir = (s: string) => {\n const p = storagePath(s);\n util.ensureDir(p, { mode: '0775' });\n return p;\n };\n\n const logFilePath = storagePath('logs', 'platforma.log');\n if (!fs.existsSync(logFilePath)) {\n fs.mkdirSync(path.dirname(logFilePath), { recursive: true });\n fs.writeFileSync(logFilePath, '');\n }\n\n const presignHost = options?.presignHost ?? 'localhost';\n const presignPort = options?.s3Port ?? 9000;\n\n const primary = plCfg.storageSettingsFromURL(`s3e://testuser:testpassword@minio:${presignPort}/main-bucket`);\n if (primary.type !== 'S3') {\n throw new Error('primary storage must have \\'S3\\' type in \\'docker s3\\' configuration');\n } else {\n primary.presignEndpoint = `http://${presignHost}:${presignPort}`;\n }\n\n const library = plCfg.storageSettingsFromURL(`s3e://testuser:testpassword@minio:${presignPort}/library-bucket`);\n if (library.type !== 'S3') {\n throw new Error(`${library.type} storage type is not supported for library storage`);\n } else {\n library.presignEndpoint = `http://${presignHost}:${presignPort}`;\n }\n\n const dbFSPath = storageDir('db');\n const workFSPath = storageDir('work');\n const usersFSPath = storagePath('users.htpasswd');\n if (!fs.existsSync(usersFSPath)) {\n fs.copyFileSync(pkg.assets('users.htpasswd'), usersFSPath);\n }\n\n const composeDstPath = storagePath('compose.yaml');\n if (fs.existsSync(composeDstPath)) {\n this.logger.info(`replacing docker compose file ${composeDstPath}`);\n }\n\n const backendMounts: composeCfg.VolumeMountOption[] = [];\n for (const mnt of options?.customMounts ?? []) {\n backendMounts.push({\n hostPath: mnt.hostPath,\n containerPath: mnt.containerPath ?? mnt.hostPath,\n });\n }\n composeCfg.render(composeS3Path, composeDstPath, `pl-${instanceName}`, new Map([\n ['minio', {}],\n ['backend', {\n platform: options?.platformOverride,\n mounts: backendMounts,\n }],\n ]));\n\n const envs: NodeJS.ProcessEnv = {\n MINIO_IMAGE: 'quay.io/minio/minio',\n MINIO_STORAGE: storageDir('minio'),\n\n PL_IMAGE: image,\n\n PL_AUTH_HTPASSWD_PATH: usersFSPath,\n PL_LICENSE: options?.license,\n PL_LICENSE_FILE: options?.licenseFile,\n\n PL_LOG_LEVEL: options?.logLevel ?? 'info',\n PL_LOG_DIR: path.dirname(logFilePath),\n PL_LOG_ROTATION_ENABLED: 'true',\n\n PL_RUNNER_WD_CACHE_ON_FAILURE: '1h',\n\n PL_DATA_DB_ROOT: dbFSPath,\n PL_DATA_PRIMARY_ROOT: storageDir('primary'),\n PL_DATA_LIBRARY_ROOT: storageDir('library'),\n PL_DATA_WORKDIR_ROOT: workFSPath,\n\n // Mount packages storage as volume, because APFS is case-insensitive on Mac OS X and this breaks some pl software installation.\n // PL_DATA_PACKAGE_ROOT: storageDir('packages'),\n\n ...this.configureDockerStorage('primary', primary),\n ...this.configureDockerStorage('library', library),\n };\n\n if (options?.grpcAddr) envs.PL_GRPC_ADDR = options.grpcAddr;\n if (options?.grpcPort) envs.PL_GRPC_PORT = options.grpcPort.toString();\n if (options?.monitoringAddr) envs.PL_MONITORING_ADDR = options.monitoringAddr;\n if (options?.monitoringPort) envs.PL_MONITORING_PORT = options.monitoringPort.toString();\n if (options?.debugAddr) envs.PL_DEBUG_ADDR = options.debugAddr;\n if (options?.debugPort) envs.PL_DEBUG_PORT = options.debugPort.toString();\n\n if (options?.s3Port) envs.MINIO_PORT = options.s3Port.toString();\n if (options?.s3ConsolePort) envs.MINIO_CONSOLE_PORT = options.s3ConsolePort.toString();\n\n if (options?.auth) {\n if (options.auth.enabled) {\n envs['PL_AUTH_ENABLED'] = 'true';\n }\n if (options.auth.drivers) {\n for (const drv of options.auth.drivers) {\n if (drv.driver === 'htpasswd') {\n envs['PL_AUTH_HTPASSWD_PATH'] = path.resolve(drv.path);\n drv.path = '/etc/platforma/users.htpasswd';\n }\n }\n envs['PL_AUTH_DRIVERS'] = JSON.stringify(options.auth.drivers);\n }\n }\n\n state.setInstanceInfo(instanceName, {\n type: 'docker',\n upCommands: [{\n cmd: 'docker',\n args: ['compose', `--file=${composeDstPath}`, 'up', '--detach', '--remove-orphans', '--pull=missing'],\n envs: envs,\n runOpts: { stdio: 'inherit' },\n }],\n downCommands: [{\n cmd: 'docker',\n args: ['compose', `--file=${composeDstPath}`, 'down'],\n envs: envs,\n runOpts: { stdio: 'inherit' },\n }],\n cleanupCommands: [{\n cmd: 'docker',\n args: ['compose', `--file=${composeDstPath}`, 'down', '--volumes', '--remove-orphans'],\n envs: envs,\n runOpts: { stdio: 'inherit' },\n }],\n runInfo: {\n apiPort: options?.grpcPort,\n apiAddr: options?.grpcAddr,\n logPath: logFilePath,\n primary: primary,\n work: { type: 'FS', rootPath: workFSPath },\n library: library,\n dbPath: dbFSPath,\n },\n });\n\n return state.getInstanceInfo(instanceName);\n }\n\n public createDocker(\n instanceName: string,\n localRoot: string,\n options?: {\n primaryStorageURL?: string;\n workStoragePath?: string;\n libraryStorageURL?: string;\n customMounts?: { hostPath: string; containerPath?: string }[];\n\n image?: string;\n version?: string;\n platformOverride?: string;\n\n logLevel?: string;\n\n auth?: types.authOptions;\n\n license?: string;\n licenseFile?: string;\n grpcPort?: number;\n grpcAddr?: string;\n\n monitoringPort?: number;\n monitoringAddr?: string;\n\n debugPort?: number;\n debugAddr?: string;\n },\n ): instanceInfo {\n this.logger.debug('creating platforma instance in \\'docker\\' mode...');\n\n const composeFSPath = pkg.assets('compose-backend.yaml');\n const image = options?.image ?? pkg.plImageTag(options?.version);\n\n this.checkLicense(options?.license, options?.licenseFile);\n\n const storagePath = (...s: string[]) => path.join(localRoot, ...s);\n const storageDir = (s: string) => {\n const p = storagePath(s);\n util.ensureDir(p, { mode: '0775' });\n return p;\n };\n\n const logFilePath = storagePath('logs', 'platforma.log');\n if (!fs.existsSync(logFilePath)) {\n fs.mkdirSync(path.dirname(logFilePath), { recursive: true });\n fs.writeFileSync(logFilePath, '');\n }\n\n const dbFSPath = storageDir('db');\n const primaryFSPath = storageDir('primary');\n const libraryFSPath = storageDir('library');\n const workFSPath = storageDir('work');\n const usersFSPath = storagePath('users.htpasswd');\n if (!fs.existsSync(usersFSPath)) {\n fs.copyFileSync(pkg.assets('users.htpasswd'), usersFSPath);\n }\n\n const composeDstPath = storagePath('compose.yaml');\n if (fs.existsSync(composeDstPath)) {\n this.logger.info(`replacing docker compose file ${composeDstPath}`);\n }\n\n const backendMounts: composeCfg.VolumeMountOption[] = [];\n for (const mnt of options?.customMounts ?? []) {\n backendMounts.push({\n hostPath: mnt.hostPath,\n containerPath: mnt.containerPath ?? mnt.hostPath,\n });\n }\n this.logger.debug(`Rendering docker compose file '${composeDstPath}' using '${composeFSPath}' as base template`);\n composeCfg.render(composeFSPath, composeDstPath, `pl-${instanceName}`, new Map([\n ['backend', {\n platform: options?.platformOverride,\n mounts: backendMounts,\n }],\n ]));\n\n const primary = plCfg.storageSettingsFromURL(options?.primaryStorageURL ?? `file:${primaryFSPath}`, '.');\n const library = plCfg.storageSettingsFromURL(options?.libraryStorageURL ?? `file:${libraryFSPath}`, '.');\n\n const envs: NodeJS.ProcessEnv = {\n PL_IMAGE: image,\n PL_AUTH_HTPASSWD_PATH: usersFSPath,\n PL_LICENSE: options?.license,\n PL_LICENSE_FILE: options?.licenseFile,\n\n PL_LOG_LEVEL: 'info',\n PL_LOG_DIR: path.dirname(logFilePath),\n PL_LOG_ROTATION_ENABLED: 'true',\n\n PL_RUNNER_WD_CACHE_ON_FAILURE: '1h',\n\n PL_DATA_DB_ROOT: dbFSPath,\n PL_DATA_PRIMARY_ROOT: primaryFSPath,\n PL_DATA_LIBRARY_ROOT: libraryFSPath,\n PL_DATA_WORKDIR_ROOT: workFSPath,\n PL_DATA_PACKAGE_ROOT: storageDir('packages'),\n\n ...this.configureDockerStorage('primary', primary),\n ...this.configureDockerStorage('library', library),\n };\n\n if (options?.grpcAddr) envs.PL_GRPC_ADDR = options.grpcAddr;\n if (options?.grpcPort) envs.PL_GRPC_PORT = options.grpcPort.toString();\n if (options?.monitoringAddr) envs.PL_MONITORING_ADDR = options.monitoringAddr;\n if (options?.monitoringPort) envs.PL_MONITORING_PORT = options.monitoringPort.toString();\n if (options?.debugAddr) envs.PL_DEBUG_ADDR = options.debugAddr;\n if (options?.debugPort) envs.PL_DEBUG_PORT = options.debugPort.toString();\n\n if (options?.auth) {\n if (options.auth.enabled) {\n envs['PL_AUTH_ENABLED'] = 'true';\n }\n if (options.auth.drivers) {\n for (const drv of options.auth.drivers) {\n if (drv.driver === 'htpasswd') {\n envs['PL_AUTH_HTPASSWD_PATH'] = path.resolve(drv.path);\n drv.path = '/etc/platforma/users.htpasswd';\n }\n }\n envs['PL_AUTH_DRIVERS'] = JSON.stringify(options.auth.drivers);\n }\n }\n\n state.setInstanceInfo(instanceName, {\n type: 'docker',\n upCommands: [{\n cmd: 'docker',\n args: ['compose', `--file=${composeDstPath}`, 'up', '--detach', '--remove-orphans', '--pull=missing'],\n envs: envs,\n runOpts: { stdio: 'inherit' },\n }],\n downCommands: [{\n cmd: 'docker',\n args: ['compose', `--file=${composeDstPath}`, 'down'],\n envs: envs,\n runOpts: { stdio: 'inherit' },\n }],\n cleanupCommands: [{\n cmd: 'docker',\n args: ['compose', `--file=${composeDstPath}`, 'down', '--volumes', '--remove-orphans'],\n envs: envs,\n runOpts: { stdio: 'inherit' },\n }],\n runInfo: {\n apiPort: options?.grpcPort,\n apiAddr: options?.grpcAddr,\n logPath: logFilePath,\n primary: primary,\n work: { type: 'FS', rootPath: workFSPath },\n library: library,\n dbPath: dbFSPath,\n },\n });\n\n return state.getInstanceInfo(instanceName);\n }\n\n public cleanupInstance(instanceName?: string) {\n const removeWarns: string[] = [];\n const instancesToDrop = new Map<string, instanceInfo>();\n let warnMessage: string = '';\n\n if (instanceName) {\n const instance = state.getInstanceInfo(instanceName);\n instancesToDrop.set(instanceName, instance);\n const iType = instance.type;\n switch (iType) {\n case 'docker':{\n removeWarns.push(`docker service 'pl-${instanceName}', including all its volumes and data in '${state.instanceDir(instanceName)}' will be destroyed`);\n break;\n }\n case 'process':{\n removeWarns.push(`directory '${state.instanceDir(instanceName)}' would be deleted`);\n if (instance.downCommands) {\n removeWarns.push(`associated docker service, including all volumes and data will be destroyed`);\n }\n break;\n }\n default:\n util.assertNever(iType);\n }\n\n if (instanceName === state.currentInstanceName) {\n removeWarns.push(\n 'last command run cache (\\'pl-dev start\\' shorthand will stop working until next full start command call)',\n );\n }\n\n warnMessage = `\nYou are going to reset the state of platforma service '${instanceName}':\n - ${removeWarns.join('\\n - ')}\n`;\n } else {\n for (const iName of state.instanceList) {\n instancesToDrop.set(iName, state.getInstanceInfo(iName));\n }\n\n removeWarns.push(\n 'last command run cache (\\'pl-dev start\\' shorthand will stop working until next full start command call)',\n `all service configurations stored in: ${state.instanceDir()} (including all associated docker containers and volumes)`,\n );\n\n warnMessage = `\nYou are going to reset the state of all platforma services configured with pl-bootstrap package.\n - ${removeWarns.join('\\n - ')}\n`;\n }\n\n this.logger.warn(warnMessage);\n if (!util.askYN('Are you sure?')) {\n this.logger.info('Reset action was canceled');\n return;\n }\n\n for (const [name, instance] of instancesToDrop.entries()) {\n if (instance.cleanupCommands.length) {\n this.logger.info(`Wiping instance ${name} services`);\n const result = run.runCommands(this.logger, instance.cleanupCommands);\n checkRunError(result.executed, `failed to wipe instance ${name} services`);\n }\n\n this.logger.info(`Destroying instance '${name}' data directory`);\n fs.rmSync(state.instanceDir(name), { recursive: true, force: true });\n }\n\n if (!instanceName) {\n this.logger.info(`Destroying state dir '${state.path()}'`);\n fs.rmSync(state.path(), { recursive: true, force: true });\n }\n\n this.logger.info(\n `\\nIf you want to remove all downloaded platforma binaries, delete '${state.binaries()}' dir manually\\n`,\n );\n }\n\n public mergeLicenseEnvs(flags: { 'license'?: string; 'license-file'?: string }) {\n if (flags.license === undefined) {\n if ((process.env.MI_LICENSE ?? '') != '') flags.license = process.env.MI_LICENSE;\n else if ((process.env.PL_LICENSE ?? '') != '') flags.license = process.env.PL_LICENSE;\n }\n\n // set 'license-file' only if license is still undefined\n if (flags['license-file'] === undefined && flags.license === undefined) {\n if ((process.env.MI_LICENSE_FILE ?? '') != '') flags['license-file'] = process.env.MI_LICENSE_FILE;\n else if ((process.env.PL_LICENSE_FILE ?? '') != '') flags['license-file'] = process.env.PL_LICENSE_FILE;\n else if (fs.existsSync(path.resolve(os.homedir(), '.pl.license')))\n flags['license-file'] = path.resolve(os.homedir(), '.pl.license');\n }\n }\n\n public initAuthDriversList(\n flags: {\n 'auth-htpasswd-file'?: string;\n\n 'auth-ldap-server'?: string;\n 'auth-ldap-default-dn'?: string;\n },\n workdir: string,\n ): types.authDriver[] | undefined {\n const authDrivers: types.authDriver[] = [];\n if (flags['auth-htpasswd-file']) {\n authDrivers.push({\n driver: 'htpasswd',\n path: path.resolve(workdir, flags['auth-htpasswd-file']),\n });\n }\n\n if (Boolean(flags['auth-ldap-server']) !== Boolean(flags['auth-ldap-default-dn'])) {\n throw new Error('LDAP auth settings require both \\'server\\' and \\'default DN\\' options to be set');\n }\n\n if (flags['auth-ldap-server']) {\n authDrivers.push({\n driver: 'ldap',\n serverUrl: flags['auth-ldap-server'],\n defaultDN: flags['auth-ldap-default-dn']!,\n });\n }\n\n if (authDrivers.length === 0) {\n return undefined;\n }\n\n return [{ driver: 'jwt', key: this.getLastJwt() }, ...authDrivers] as types.authDriver[];\n }\n\n /** Gets the last stored JWT secret key or generates it and stores in a file. */\n public getLastJwt() {\n const jwtFile = state.path('auth.jwt');\n const encoding = 'utf-8';\n\n let lastJwt = '';\n if (fs.existsSync(jwtFile)) {\n lastJwt = fs.readFileSync(jwtFile, { encoding });\n }\n\n if (lastJwt == '') {\n lastJwt = util.randomStr(64);\n fs.writeFileSync(jwtFile, lastJwt, { encoding });\n }\n\n return lastJwt;\n }\n\n private checkLicense(value?: string, file?: string) {\n if (value !== undefined && value != '') return;\n\n if (file !== undefined && file != '') return;\n\n this.logger.error(`A license for Platforma Backend must be set.\n\nYou can provide the license directly using the '--license' flag\nor use the '--license-file' flag if the license is stored in a file.\n\nAlternatively, you can set it via the environment variables 'MI_LICENSE' or 'PL_LICENSE'.\n\nThe license file can also be set with the variables 'MI_LICENSE_FILE' or 'PL_LICENSE_FILE',\nor stored in '$HOME/.pl.license'.\n\nYou can obtain the license from \"https://licensing.milaboratories.com\".`);\n\n throw new Error(`The license was not provided.`);\n }\n\n private configureDockerStorage(storageID: string, storage: types.storageOptions): NodeJS.ProcessEnv {\n const envs: NodeJS.ProcessEnv = {};\n const sType = storage.type;\n storageID = storageID.toUpperCase();\n\n switch (sType) {\n case 'S3':\n envs[`PL_DATA_${storageID}_TYPE`] = 'S3';\n envs[`PL_DATA_${storageID}_S3_BUCKET`] = storage.bucketName!;\n\n if (storage.endpoint) envs[`PL_DATA_${storageID}_S3_ENDPOINT`] = storage.endpoint;\n if (storage.presignEndpoint) envs[`PL_DATA_${storageID}_S3_PRESIGN_ENDPOINT`] = storage.presignEndpoint;\n if (storage.region) envs[`PL_DATA_${storageID}_S3_REGION`] = storage.region;\n if (storage.key) envs[`PL_DATA_${storageID}_S3_KEY`] = storage.key;\n if (storage.secret) envs[`PL_DATA_${storageID}_S3_SECRET`] = storage.secret;\n\n return envs;\n\n case 'FS':\n envs[`PL_DATA_${storageID}_TYPE`] = 'FS';\n\n return envs;\n\n default:\n util.assertNever(sType);\n }\n\n return {};\n }\n\n private renderRunInfo(\n runInfo: {\n configPath?: string;\n apiPort?: number;\n apiAddr?: string;\n logPath?: string;\n dbPath?: string;\n primary?: types.storageOptions;\n work?: types.fsStorageOptions;\n library?: types.storageOptions;\n },\n indent: number = 10,\n ) {\n const report: string[] = [];\n\n const column = (t: string) => t.padStart(indent, ' ');\n if (runInfo.configPath) {\n report.push(`${column('config')}: ${runInfo.configPath}`);\n }\n\n if (runInfo.apiAddr) {\n report.push(`${column('API')}: ${runInfo.apiAddr}`);\n } else if (runInfo.apiPort) {\n report.push(`${column('API')}: 127.0.0.1:${runInfo.apiPort.toString()}`);\n } else {\n report.push(`${column('API')}: 127.0.0.1:6345`);\n }\n\n if (runInfo.logPath) {\n report.push(`${column('log')}: ${runInfo.logPath}`);\n }\n\n const primaryType = runInfo.primary?.type;\n switch (primaryType) {\n case undefined:\n break;\n\n case 'FS':\n report.push(`${column('primary')}: ${runInfo.primary!.rootPath!}`);\n break;\n\n case 'S3':\n report.push(\n `${column('primary')}: S3 at '${runInfo.primary!.endpoint ?? 'AWS'}', bucket '${runInfo.primary!.bucketName!}', prefix: '${runInfo.primary!.keyPrefix ?? ''}'`,\n );\n break;\n\n default:\n util.assertNever(primaryType);\n }\n\n const libraryType = runInfo.library?.type;\n switch (libraryType) {\n case undefined:\n break;\n\n case 'FS':\n report.push(`${column('library')}: ${runInfo.library!.rootPath!}`);\n break;\n\n case 'S3':\n report.push(\n `${column('library')}: S3 at '${runInfo.library!.endpoint ?? 'AWS'}', bucket '${runInfo.library!.bucketName!}', prefix: '${runInfo.library!.keyPrefix ?? ''}'`,\n );\n break;\n\n default:\n util.assertNever(libraryType);\n }\n\n if (runInfo.work) {\n report.push(`${column('workdirs')}: ${runInfo.work.rootPath}`);\n }\n\n if (runInfo.dbPath) {\n report.push(`${column('db')}: ${runInfo.dbPath}`);\n }\n\n return report.join('\\n');\n }\n}\n\nexport function checkRunError(result: SpawnSyncReturns<Buffer>[], message?: string) {\n for (const buffer of result) {\n if (buffer.error) {\n throw buffer.error;\n }\n\n const msg = message ?? 'failed to run command';\n\n if (buffer.status !== 0) {\n throw new Error(`${msg}, process exited with code '${buffer.status}'`);\n }\n }\n}\n\nexport type createLocalOptions = {\n version?: string;\n sourcesPath?: string;\n binaryPath?: string;\n configPath?: string;\n configOptions?: plCfg.plOptions;\n workdir?: string;\n\n primaryURL?: string;\n libraryURL?: string;\n};\n\nexport type createLocalFSOptions = createLocalOptions;\n\nexport type createLocalS3Options = createLocalOptions & {\n minioPort?: number;\n minioConsolePort?: number;\n};\n"],"names":["run.runCommands","util.assertNever","platforma.binaryPath","plCfg.storageSettingsFromURL","plCfg.loadDefaults","pkg.assets","plCfg.render","composeCfg.render","util.ensureDir","pkg.plImageTag","util.askYN","util.randomStr"],"mappings":"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"}
package/dist/core.d.ts CHANGED
@@ -99,4 +99,3 @@ export type createLocalS3Options = createLocalOptions & {
99
99
  minioPort?: number;
100
100
  minioConsolePort?: number;
101
101
  };
102
- //# sourceMappingURL=core.d.ts.map