@nocobase/app-installer 0.1.0-beta.3 → 0.1.0-beta.5
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 +96 -99
- package/dist/cli.js +8 -9
- package/dist/cli.js.map +1 -1
- package/dist/commands/install.js +41 -91
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/rollback.js +8 -11
- package/dist/commands/rollback.js.map +1 -1
- package/dist/commands/status.js +6 -27
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/upgrade.js +82 -213
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/lib/app-source.js +163 -0
- package/dist/lib/app-source.js.map +1 -0
- package/dist/lib/ecosystem.js +1 -5
- package/dist/lib/ecosystem.js.map +1 -1
- package/dist/lib/layout.js +0 -13
- package/dist/lib/layout.js.map +1 -1
- package/dist/lib/prechecks.js +1 -38
- package/dist/lib/prechecks.js.map +1 -1
- package/dist/lib/registry.js +0 -50
- package/dist/lib/registry.js.map +1 -1
- package/dist/lib/release.js +6 -161
- package/dist/lib/release.js.map +1 -1
- package/dist/lib/source.js +5 -51
- package/dist/lib/source.js.map +1 -1
- package/dist/lib/state.js +15 -1
- package/dist/lib/state.js.map +1 -1
- package/package.json +3 -3
package/dist/commands/install.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { mkdir, readdir, rm, writeFile } from 'node:fs/promises';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { Args, Flags } from '@oclif/core';
|
|
4
|
+
import { buildApp, parseAppSpec, resolveApp } from "../lib/app-source.js";
|
|
4
5
|
import { runAppCli } from "../lib/app-cli.js";
|
|
5
6
|
import { switchCurrent } from "../lib/current-link.js";
|
|
6
7
|
import { buildEcosystemConfig, buildLauncher } from "../lib/ecosystem.js";
|
|
@@ -9,15 +10,15 @@ import { buildAppEnv, endpointsOf, healthUrl, mountPathOf, readAppEnv, } from ".
|
|
|
9
10
|
import { EXIT_INVALID, InstallerError } from "../lib/errors.js";
|
|
10
11
|
import { pm2StartFailed, waitForHealthy } from "../lib/health.js";
|
|
11
12
|
import { readInitialAdmin } from "../lib/initial-admin.js";
|
|
12
|
-
import {
|
|
13
|
+
import { layoutOf, releaseLinkTarget } from "../lib/layout.js";
|
|
13
14
|
import { acquireLock } from "../lib/lock.js";
|
|
14
15
|
import { assertFixedMountPath, parseBasePathFlag } from "../lib/mount-path.js";
|
|
15
|
-
import { checkEnvVariables, checkPlatform, checkPm2, checkPm2NameFree,
|
|
16
|
-
import { defaultRegistry, normalizeRegistry,
|
|
17
|
-
import { DIALECTS, assertStorageOutsideRelease,
|
|
16
|
+
import { checkEnvVariables, checkPlatform, checkPm2, checkPm2NameFree, checkPortFree, checkTargetEmpty, } from "../lib/prechecks.js";
|
|
17
|
+
import { defaultRegistry, normalizeRegistry, } from "../lib/registry.js";
|
|
18
|
+
import { DIALECTS, assertStorageOutsideRelease, checkArchiveDriver, unpackRelease, } from "../lib/release.js";
|
|
18
19
|
import { runCommand } from "../lib/run-command.js";
|
|
19
20
|
import { errorLogCommandLine, errorLogTail, startAdvice, } from "../lib/service.js";
|
|
20
|
-
import {
|
|
21
|
+
import { resolveArchivePath } from "../lib/source.js";
|
|
21
22
|
import { writeState } from "../lib/state.js";
|
|
22
23
|
export const INSTALL_ARGS = {
|
|
23
24
|
directory: Args.string({
|
|
@@ -28,17 +29,17 @@ export const INSTALL_FLAGS = {
|
|
|
28
29
|
dir: Flags.string({
|
|
29
30
|
description: 'Directory to install into, as the other commands name it; the same as the DIRECTORY argument.',
|
|
30
31
|
}),
|
|
32
|
+
app: Flags.string({
|
|
33
|
+
description: 'Published application to build and deploy, e.g. studio, @nocobase/studio or studio@beta. Requires pnpm 11+.',
|
|
34
|
+
}),
|
|
31
35
|
archive: Flags.string({
|
|
32
36
|
description: 'Deployment archive to install, as `pnpm build --tar` writes it to storage/exports/dist.tar.gz. Build it for this machine with --target and --node-version.',
|
|
33
37
|
}),
|
|
34
|
-
template: Flags.string({
|
|
35
|
-
description: 'Published template to build on this machine instead: hub, or hub@<version or dist-tag> (latest by default).',
|
|
36
|
-
}),
|
|
37
38
|
origin: Flags.string({
|
|
38
39
|
description: 'Public origin the application is reached at, without its base path, e.g. https://apps.example.com. Defaults to http://HOST:PORT.',
|
|
39
40
|
}),
|
|
40
41
|
'base-path': Flags.string({
|
|
41
|
-
description: "Path the application is mounted at, e.g. /crm, or / for the origin root. Written to app.env as APP_BASE_PATH; without it the server's default applies
|
|
42
|
+
description: "Path the application is mounted at, e.g. /crm, or / for the origin root. Written to app.env as APP_BASE_PATH; without it the server's default applies. An archive from before relocatable builds runs only at the path it was built for.",
|
|
42
43
|
}),
|
|
43
44
|
host: Flags.string({
|
|
44
45
|
default: '127.0.0.1',
|
|
@@ -64,7 +65,7 @@ export const INSTALL_FLAGS = {
|
|
|
64
65
|
description: 'A setting read from an environment variable, as key=VARIABLE, e.g. database.connections.main.password=DB_PASSWORD.',
|
|
65
66
|
}),
|
|
66
67
|
registry: Flags.string({
|
|
67
|
-
description: 'npm registry for
|
|
68
|
+
description: 'npm registry for application packages, build dependencies and suggested installer commands.',
|
|
68
69
|
}),
|
|
69
70
|
name: Flags.string({
|
|
70
71
|
description: 'pm2 process name. Defaults to nocobase- followed by the directory name, so each installation on a machine has its own.',
|
|
@@ -79,10 +80,6 @@ export const INSTALL_FLAGS = {
|
|
|
79
80
|
min: 1,
|
|
80
81
|
description: 'Seconds to wait for the application to answer its health check.',
|
|
81
82
|
}),
|
|
82
|
-
'keep-source': Flags.boolean({
|
|
83
|
-
default: false,
|
|
84
|
-
description: 'With --template, keep the build directory with the sources and development dependencies, also when the install fails.',
|
|
85
|
-
}),
|
|
86
83
|
json: Flags.boolean({
|
|
87
84
|
default: false,
|
|
88
85
|
description: 'Print one JSON result on stdout; progress stays on stderr.',
|
|
@@ -103,23 +100,20 @@ function describeInitialAdmin(admin) {
|
|
|
103
100
|
.filter(Boolean)
|
|
104
101
|
.join(' ') || 'the account';
|
|
105
102
|
const password = admin.defaultPassword === true
|
|
106
|
-
? `the
|
|
103
|
+
? `the default password from config.example.yml; change it after signing in`
|
|
107
104
|
: 'the password set there';
|
|
108
105
|
return `${who} under ${admin.key} in config.yml, with ${password}`;
|
|
109
106
|
}
|
|
110
107
|
/**
|
|
111
108
|
* Removes what a failed install wrote. The target was new or empty when the install began, so everything in it now
|
|
112
|
-
* came from this run. `created` is the topmost directory the install created, which may be a parent of the root
|
|
113
|
-
* `keep` names entries to leave, such as the build directory under `--keep-source`.
|
|
109
|
+
* came from this run. `created` is the topmost directory the install created, which may be a parent of the root.
|
|
114
110
|
*/
|
|
115
|
-
async function cleanUp(root, created
|
|
116
|
-
if (created
|
|
111
|
+
async function cleanUp(root, created) {
|
|
112
|
+
if (created) {
|
|
117
113
|
await rm(created, { recursive: true, force: true });
|
|
118
114
|
return;
|
|
119
115
|
}
|
|
120
116
|
for (const entry of await readdir(root).catch(() => [])) {
|
|
121
|
-
if (keep.includes(entry))
|
|
122
|
-
continue;
|
|
123
117
|
await rm(path.join(root, entry), { recursive: true, force: true });
|
|
124
118
|
}
|
|
125
119
|
}
|
|
@@ -137,22 +131,12 @@ export async function install(input, deps) {
|
|
|
137
131
|
path.resolve(cwd, input.directory) !== path.resolve(cwd, flags.dir)) {
|
|
138
132
|
throw new InstallerError('INVALID_USAGE', `The DIRECTORY argument (${input.directory}) and --dir (${flags.dir}) name different directories; give one of them.`, { exitCode: EXIT_INVALID });
|
|
139
133
|
}
|
|
140
|
-
if ((flags.archive === undefined) === (flags.
|
|
141
|
-
throw new InstallerError('INVALID_USAGE',
|
|
142
|
-
? 'Name what to install: --archive with a deployment archive built by `pnpm build --tar`, or --template hub to build the published Hub here.'
|
|
143
|
-
: '--archive and --template name two different things to install; give one of them.', { exitCode: EXIT_INVALID });
|
|
134
|
+
if ((flags.archive === undefined) === (flags.app === undefined)) {
|
|
135
|
+
throw new InstallerError('INVALID_USAGE', 'Choose exactly one source: --app with a published application, or --archive with a deployment archive.', { exitCode: EXIT_INVALID });
|
|
144
136
|
}
|
|
145
137
|
const requestedBasePath = parseBasePathFlag(flags['base-path']);
|
|
146
138
|
const root = path.resolve(cwd, directory);
|
|
147
139
|
const layout = layoutOf(root);
|
|
148
|
-
const spec = flags.template === undefined
|
|
149
|
-
? undefined
|
|
150
|
-
: parseTemplateSpec(flags.template);
|
|
151
|
-
const template = spec?.template;
|
|
152
|
-
const archive = flags.archive === undefined
|
|
153
|
-
? undefined
|
|
154
|
-
: resolveArchivePath(cwd, flags.archive);
|
|
155
|
-
const title = template?.title ?? 'application';
|
|
156
140
|
const name = flags.name ?? `nocobase-${path.basename(root)}`;
|
|
157
141
|
const dialect = flags.dialect;
|
|
158
142
|
const registry = normalizeRegistry(flags.registry ?? defaultRegistry());
|
|
@@ -166,18 +150,17 @@ export async function install(input, deps) {
|
|
|
166
150
|
checkPlatform();
|
|
167
151
|
await checkTargetEmpty(root);
|
|
168
152
|
checkEnvVariables(setsFromEnv.map(([, variable]) => variable));
|
|
169
|
-
|
|
170
|
-
|
|
153
|
+
const archive = flags.archive === undefined
|
|
154
|
+
? undefined
|
|
155
|
+
: resolveArchivePath(cwd, flags.archive);
|
|
156
|
+
const app = flags.app === undefined ? undefined : parseAppSpec(flags.app);
|
|
171
157
|
if (flags.start) {
|
|
172
158
|
await checkPm2(pm2);
|
|
173
159
|
await checkPm2NameFree(pm2, name);
|
|
174
160
|
}
|
|
175
161
|
await checkPortFree(flags.host, flags.port, { suggestPort: true });
|
|
176
|
-
const version = spec && template
|
|
177
|
-
? await resolveTemplateVersion(registry, template.package, spec.version, deps.fetchImpl)
|
|
178
|
-
: undefined;
|
|
179
162
|
if (!flags.origin) {
|
|
180
|
-
reporter.warn(`No --origin given; the
|
|
163
|
+
reporter.warn(`No --origin given; the application will build links for ${origin}. Pass --origin with the public address before exposing it.`);
|
|
181
164
|
}
|
|
182
165
|
// `mkdir` returns the first directory it created, so a failure can remove parents the install made as well.
|
|
183
166
|
const created = await mkdir(root, { recursive: true });
|
|
@@ -192,39 +175,22 @@ export async function install(input, deps) {
|
|
|
192
175
|
}
|
|
193
176
|
let switched = false;
|
|
194
177
|
try {
|
|
195
|
-
const
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
reporter.progress(`Installing the ${title} ${version} into ${root}`);
|
|
199
|
-
prepared = await buildFromTemplate({
|
|
200
|
-
layout,
|
|
201
|
-
template,
|
|
202
|
-
version,
|
|
178
|
+
const prepared = app
|
|
179
|
+
? await buildApp({
|
|
180
|
+
app: await resolveApp(app, registry, run),
|
|
203
181
|
registry,
|
|
204
|
-
|
|
205
|
-
keepSource: flags['keep-source'],
|
|
206
|
-
reporter,
|
|
182
|
+
layout,
|
|
207
183
|
run,
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
}
|
|
216
|
-
// What the application is, by its own manifest: a Hub deployed from an archive is as much a Hub as one built from
|
|
217
|
-
// the template. Builds too old to record it are only ever the Hub template's, which the template names.
|
|
218
|
-
const templateKind = prepared.templateKind ?? (template === HUB_TEMPLATE ? 'hub' : 'app');
|
|
219
|
-
const hub = templateKind === 'hub';
|
|
220
|
-
// A relocatable release is mounted where the installation says. A Hub keeps its own default whether it was built
|
|
221
|
-
// from the template or arrived as an archive: a build records no path and ships no `.env`, so nothing else carries
|
|
222
|
-
// the `/hub` its checkout served at, and the server's `/main` would move it. An earlier release runs only at the
|
|
223
|
-
// path its client was compiled for.
|
|
184
|
+
reporter,
|
|
185
|
+
})
|
|
186
|
+
: await unpackRelease({ layout, archive: archive });
|
|
187
|
+
checkArchiveDriver(prepared.dir, dialect);
|
|
188
|
+
reporter.progress(`Installing ${prepared.appName} ${prepared.version} (${prepared.id})`);
|
|
189
|
+
// A relocatable release is mounted where the installation says, or at the server's default. An earlier release
|
|
190
|
+
// runs only at the path its client was compiled for.
|
|
224
191
|
let mountPath;
|
|
225
192
|
if (prepared.relocatable) {
|
|
226
|
-
mountPath =
|
|
227
|
-
requestedBasePath ?? (hub ? HUB_TEMPLATE.basePath : template?.basePath);
|
|
193
|
+
mountPath = requestedBasePath;
|
|
228
194
|
}
|
|
229
195
|
else {
|
|
230
196
|
mountPath = prepared.basePath;
|
|
@@ -255,29 +221,17 @@ export async function install(input, deps) {
|
|
|
255
221
|
// Everything else the root needs is written first: the switch is the last write before starting, so a failure
|
|
256
222
|
// anywhere up to it leaves nothing half-installed for status and install to disagree about.
|
|
257
223
|
await mkdir(layout.logsDir, { recursive: true });
|
|
258
|
-
await writeFile(layout.ecosystemFile, buildEcosystemConfig({
|
|
259
|
-
name,
|
|
260
|
-
nodePath: process.execPath,
|
|
261
|
-
keepChildren: hub,
|
|
262
|
-
}));
|
|
224
|
+
await writeFile(layout.ecosystemFile, buildEcosystemConfig({ name, nodePath: process.execPath }));
|
|
263
225
|
await writeFile(layout.launcherFile, buildLauncher());
|
|
264
226
|
const at = new Date().toISOString();
|
|
265
227
|
const state = {
|
|
266
228
|
schemaVersion: 1,
|
|
267
229
|
appName: prepared.appName,
|
|
268
230
|
basePath: mountPathOf(env) || '/',
|
|
269
|
-
|
|
270
|
-
source: template
|
|
271
|
-
? {
|
|
272
|
-
kind: 'template',
|
|
273
|
-
template: template.name,
|
|
274
|
-
package: template.package,
|
|
275
|
-
}
|
|
276
|
-
: { kind: 'archive' },
|
|
231
|
+
source: app ? { kind: 'app', package: app.package } : { kind: 'archive' },
|
|
277
232
|
name,
|
|
278
233
|
registry,
|
|
279
234
|
dialect,
|
|
280
|
-
drivers,
|
|
281
235
|
current: prepared.id,
|
|
282
236
|
releases: [
|
|
283
237
|
{
|
|
@@ -298,7 +252,7 @@ export async function install(input, deps) {
|
|
|
298
252
|
switched = true;
|
|
299
253
|
const url = healthUrl(env);
|
|
300
254
|
if (flags.start) {
|
|
301
|
-
reporter.progress(
|
|
255
|
+
reporter.progress('Starting the application with pm2');
|
|
302
256
|
await pm2.start(layout.ecosystemFile, root);
|
|
303
257
|
const healthy = await waitForHealthy(url, {
|
|
304
258
|
timeoutMs: flags['health-timeout'] * 1000,
|
|
@@ -308,7 +262,7 @@ export async function install(input, deps) {
|
|
|
308
262
|
if (!healthy) {
|
|
309
263
|
// The name was free before this install, so the process under it is the one just started.
|
|
310
264
|
await pm2.remove(name).catch(() => undefined);
|
|
311
|
-
throw new InstallerError('START_FAILED', `The
|
|
265
|
+
throw new InstallerError('START_FAILED', `The application did not become healthy at ${url} (waited up to ${flags['health-timeout']}s). It is installed but not running.`, {
|
|
312
266
|
details: { log: await errorLogTail(layout) },
|
|
313
267
|
suggestions: [
|
|
314
268
|
{
|
|
@@ -351,7 +305,7 @@ export async function install(input, deps) {
|
|
|
351
305
|
nextCommands,
|
|
352
306
|
},
|
|
353
307
|
summary: [
|
|
354
|
-
`${
|
|
308
|
+
`${prepared.appName} ${prepared.version} is installed at ${root}${flags.start ? ' and running' : ''}.`,
|
|
355
309
|
` URL ${endpoints.url}`,
|
|
356
310
|
` Release ${prepared.id}`,
|
|
357
311
|
` Sign in ${describeInitialAdmin(initialAdmin)}`,
|
|
@@ -359,7 +313,7 @@ export async function install(input, deps) {
|
|
|
359
313
|
'Next steps',
|
|
360
314
|
...(flags.start ? [] : [` Start it: ${startCommand}`]),
|
|
361
315
|
' Start pm2 at boot: run `pm2 startup` and execute the command it prints (needs sudo).',
|
|
362
|
-
` Proxy ${origin} to http://${flags.host}:${flags.port} with location
|
|
316
|
+
` Proxy ${origin} to http://${flags.host}:${flags.port} with location /.`,
|
|
363
317
|
],
|
|
364
318
|
};
|
|
365
319
|
}
|
|
@@ -368,11 +322,7 @@ export async function install(input, deps) {
|
|
|
368
322
|
// After it, the release, configuration and data are real and stay.
|
|
369
323
|
if (!switched) {
|
|
370
324
|
await releaseLock();
|
|
371
|
-
|
|
372
|
-
await cleanUp(root, created, keep);
|
|
373
|
-
if (keep.length > 0) {
|
|
374
|
-
reporter.warn(`The build directory was kept for inspection: ${path.join(layout.buildDir)}. Remove it before installing into ${root} again.`);
|
|
375
|
-
}
|
|
325
|
+
await cleanUp(root, created);
|
|
376
326
|
}
|
|
377
327
|
throw error;
|
|
378
328
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ import { installerCommandLine } from "../lib/invocation.js";
|
|
|
12
12
|
import { acquireLock } from "../lib/lock.js";
|
|
13
13
|
import { checkPlatform, checkPm2, currentNodeMajor } from "../lib/prechecks.js";
|
|
14
14
|
import { checkPm2Ownership, errorLogCommandLine, errorLogTail, startApp, stopApp, } from "../lib/service.js";
|
|
15
|
-
import {
|
|
15
|
+
import { nodeRebuildAdvice } from "../lib/source.js";
|
|
16
16
|
import { fixedMountPathOf, readState, resolveReleaseRef, writeState, } from "../lib/state.js";
|
|
17
17
|
export const ROLLBACK_FLAGS = {
|
|
18
18
|
dir: Flags.string({
|
|
@@ -100,7 +100,6 @@ export async function rollback(input, deps) {
|
|
|
100
100
|
// Read under the lock: a run that waited on it must see what the previous one wrote.
|
|
101
101
|
const state = await readState(layout);
|
|
102
102
|
checkPlatform();
|
|
103
|
-
const subject = subjectOf(state);
|
|
104
103
|
const from = state.current;
|
|
105
104
|
const interrupted = state.pending;
|
|
106
105
|
const requested = flags.to ?? defaultRollbackTarget(state);
|
|
@@ -118,7 +117,7 @@ export async function rollback(input, deps) {
|
|
|
118
117
|
return {
|
|
119
118
|
status: 'success-noop',
|
|
120
119
|
result: { directory: root, current: from, rolledBack: false },
|
|
121
|
-
summary: [
|
|
120
|
+
summary: [`The application is already on ${from}.`],
|
|
122
121
|
};
|
|
123
122
|
}
|
|
124
123
|
if (!record || !existsSync(releaseDir(layout, record.id))) {
|
|
@@ -163,10 +162,8 @@ export async function rollback(input, deps) {
|
|
|
163
162
|
reporter.warn(`The databases may have been migrated past ${target}, and app-installer holds no copy of them from before (an external database, or a backup that was cut short). Restore them from your own backup if ${target} misbehaves.`);
|
|
164
163
|
}
|
|
165
164
|
await confirm([
|
|
166
|
-
`Roll
|
|
167
|
-
|
|
168
|
-
? `${capitalize(subject)} and every application it hosts stop while the release switches.`
|
|
169
|
-
: `${capitalize(subject)} stops while the release switches.`,
|
|
165
|
+
`Roll the application at ${root} back from ${from} to ${target}.`,
|
|
166
|
+
'The application stops while the release switches.',
|
|
170
167
|
restoreFrom
|
|
171
168
|
? `The SQLite databases are restored from ${restoreFrom}: whatever was written since that upgrade is lost.`
|
|
172
169
|
: 'The databases are left as they are; rolling back does not undo migrations.',
|
|
@@ -221,8 +218,8 @@ export async function rollback(input, deps) {
|
|
|
221
218
|
await writeState(layout, state);
|
|
222
219
|
const reason = failure instanceof Error ? ` (${failure.message})` : '';
|
|
223
220
|
throw new InstallerError('ROLLBACK_FAILED', switched
|
|
224
|
-
? `${target} did not come back${reason}.
|
|
225
|
-
: `${restoreFrom && !restored ? 'Restoring the databases' : 'Switching to ' + target} failed${reason};
|
|
221
|
+
? `${target} did not come back${reason}. The application is down.`
|
|
222
|
+
: `${restoreFrom && !restored ? 'Restoring the databases' : 'Switching to ' + target} failed${reason}; the application is stopped and still on ${from}.`, {
|
|
226
223
|
exitCode: EXIT_ROLLBACK_FAILED,
|
|
227
224
|
details: {
|
|
228
225
|
log: await errorLogTail(layout),
|
|
@@ -272,8 +269,8 @@ export async function rollback(input, deps) {
|
|
|
272
269
|
},
|
|
273
270
|
summary: [
|
|
274
271
|
interrupted
|
|
275
|
-
? `Recovered from the interrupted ${interrupted.action} (${interrupted.from} to ${interrupted.to});
|
|
276
|
-
: `Rolled
|
|
272
|
+
? `Recovered from the interrupted ${interrupted.action} (${interrupted.from} to ${interrupted.to}); the application runs ${target}.`
|
|
273
|
+
: `Rolled the application back from ${from} to ${target}.`,
|
|
277
274
|
restored
|
|
278
275
|
? ` Databases restored from ${restoreFrom}`
|
|
279
276
|
: ' Databases left as they were',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rollback.js","sourceRoot":"","sources":["../../src/commands/rollback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EACL,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,QAAQ,EACR,OAAO,GAER,MAAM,mBAAmB,CAAC;AAC3B,OAAO,
|
|
1
|
+
{"version":3,"file":"rollback.js","sourceRoot":"","sources":["../../src/commands/rollback.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/status.js
CHANGED
|
@@ -8,17 +8,12 @@ import { formatCommandLine, quoteForShell } from '@nocobase/cli-envelope';
|
|
|
8
8
|
import { installerCommand } from "../lib/invocation.js";
|
|
9
9
|
import { layoutOf, releaseDir } from "../lib/layout.js";
|
|
10
10
|
import { currentNodeMajor } from "../lib/prechecks.js";
|
|
11
|
-
import {
|
|
12
|
-
import { capitalize, nodeRebuildAdvice, subjectOf, templateOf, } from "../lib/source.js";
|
|
11
|
+
import { nodeRebuildAdvice } from "../lib/source.js";
|
|
13
12
|
import { findRelease, readState } from "../lib/state.js";
|
|
14
13
|
export const STATUS_FLAGS = {
|
|
15
14
|
dir: Flags.string({
|
|
16
15
|
description: 'Installation root managed by app-installer. Defaults to the current directory.',
|
|
17
16
|
}),
|
|
18
|
-
offline: Flags.boolean({
|
|
19
|
-
default: false,
|
|
20
|
-
description: 'Skip asking the registry for a newer version of a template installation.',
|
|
21
|
-
}),
|
|
22
17
|
json: Flags.boolean({
|
|
23
18
|
default: false,
|
|
24
19
|
description: 'Print one JSON result on stdout.',
|
|
@@ -48,8 +43,6 @@ export async function status(input, deps) {
|
|
|
48
43
|
const root = path.resolve(deps.cwd ?? process.cwd(), input.flags.dir ?? '.');
|
|
49
44
|
const layout = layoutOf(root);
|
|
50
45
|
const state = await readState(layout);
|
|
51
|
-
const subject = subjectOf(state);
|
|
52
|
-
const template = templateOf(state);
|
|
53
46
|
const env = await readAppEnv(layout);
|
|
54
47
|
const link = await readCurrent(layout);
|
|
55
48
|
const releases = [];
|
|
@@ -68,7 +61,7 @@ export async function status(input, deps) {
|
|
|
68
61
|
const backups = (await readdir(layout.backupsDir).catch(() => [])).sort();
|
|
69
62
|
const endpoints = endpointsOf(env);
|
|
70
63
|
if (endpoints.port === null) {
|
|
71
|
-
deps.reporter.warn(`APP_SERVER_PORT in app.env is "${env.APP_SERVER_PORT ?? ''}", which is not a port number;
|
|
64
|
+
deps.reporter.warn(`APP_SERVER_PORT in app.env is "${env.APP_SERVER_PORT ?? ''}", which is not a port number; the application cannot listen on it.`);
|
|
72
65
|
}
|
|
73
66
|
const url = healthUrl(env);
|
|
74
67
|
const healthy = await checkHealth(url, deps.fetchImpl);
|
|
@@ -93,15 +86,6 @@ export async function status(input, deps) {
|
|
|
93
86
|
.join(' ');
|
|
94
87
|
deps.reporter.warn(`The current release was built for Node ${currentRelease?.buildTarget.nodeMajor ?? '?'}, but this machine runs Node ${nodeMajor}; it will not load its native modules until a release built for this machine replaces it. ${advice}`);
|
|
95
88
|
}
|
|
96
|
-
let latest = null;
|
|
97
|
-
if (template && !input.flags.offline) {
|
|
98
|
-
try {
|
|
99
|
-
latest = await resolveTemplateVersion(state.registry, template.package, 'latest', deps.fetchImpl);
|
|
100
|
-
}
|
|
101
|
-
catch {
|
|
102
|
-
deps.reporter.warn(`Could not ask ${state.registry} for the latest version.`);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
89
|
return {
|
|
106
90
|
status: 'success',
|
|
107
91
|
result: {
|
|
@@ -128,22 +112,17 @@ export async function status(input, deps) {
|
|
|
128
112
|
matches: nodeMatches,
|
|
129
113
|
},
|
|
130
114
|
pending: state.pending ?? null,
|
|
131
|
-
latest,
|
|
132
|
-
updateAvailable: latest === null ? null : latest !== currentRelease?.version,
|
|
133
115
|
},
|
|
134
116
|
summary: [
|
|
135
|
-
|
|
117
|
+
`The application ${state.appName} ${currentRelease?.version ?? '?'} at ${root}`,
|
|
136
118
|
` Release ${state.current}${currentRelease ? `, built ${currentRelease.builtAt}` : ''}`,
|
|
137
|
-
|
|
119
|
+
state.source.kind === 'app'
|
|
120
|
+
? ` Source npm ${state.source.package}`
|
|
121
|
+
: ' Source deployment archives',
|
|
138
122
|
` URL ${endpoints.url} (listening on ${endpoints.host}:${endpoints.port ?? `invalid port "${env.APP_SERVER_PORT ?? ''}"`})`,
|
|
139
123
|
` Health ${healthy ? 'ok' : 'not answering'} (${url})`,
|
|
140
124
|
` Process ${processInfo ? `${processInfo.status}, pid ${processInfo.pid}, ${processInfo.restarts} restarts` : 'not registered with pm2'} (${state.name})`,
|
|
141
125
|
` Node machine ${nodeMajor}, release ${currentRelease?.buildTarget.nodeMajor ?? '?'}${nodeMatches ? '' : ' — mismatch'}`,
|
|
142
|
-
...(latest === null
|
|
143
|
-
? []
|
|
144
|
-
: [
|
|
145
|
-
` Latest ${latest}${latest === currentRelease?.version ? ' (installed)' : ' (update available)'}`,
|
|
146
|
-
]),
|
|
147
126
|
' Releases',
|
|
148
127
|
...releases.map((release) => ` ${release.current ? '*' : ' '} ${release.id} ${formatSize(release.sizeBytes)} installed ${release.installedAt}`),
|
|
149
128
|
...(backups.length > 0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EACL,WAAW,EACX,SAAS,EACT,WAAW,EACX,UAAU,GACX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|