clever-tools 4.4.0 → 4.5.0
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/bin/clever.js +208 -2128
- package/package.json +33 -25
- package/src/clever-client/auth-bridge.js +0 -9
- package/src/clever-client/drains.js +0 -17
- package/src/clever-client/operators.js +1 -1
- package/src/commands/README.md +65 -0
- package/src/commands/accesslogs/accesslogs.command.js +158 -0
- package/src/commands/accesslogs/accesslogs.docs.md +20 -0
- package/src/commands/{activity.js → activity/activity.command.js} +74 -44
- package/src/commands/activity/activity.docs.md +19 -0
- package/src/commands/addon/addon.args.js +14 -0
- package/src/commands/addon/addon.command.js +7 -0
- package/src/commands/addon/addon.create.command.js +236 -0
- package/src/commands/addon/addon.delete.command.js +32 -0
- package/src/commands/addon/addon.docs.md +156 -0
- package/src/commands/addon/addon.env.command.js +50 -0
- package/src/commands/addon/addon.list.command.js +55 -0
- package/src/commands/addon/addon.providers.command.js +45 -0
- package/src/commands/addon/addon.providers.show.command.js +99 -0
- package/src/commands/addon/addon.rename.command.js +24 -0
- package/src/commands/applications/applications.command.js +59 -0
- package/src/commands/applications/applications.docs.md +31 -0
- package/src/commands/applications/applications.list.command.js +100 -0
- package/src/commands/cancel-deploy/cancel-deploy.command.js +30 -0
- package/src/commands/cancel-deploy/cancel-deploy.docs.md +16 -0
- package/src/commands/config/config.args.js +10 -0
- package/src/commands/config/config.command.js +20 -0
- package/src/commands/config/config.docs.md +86 -0
- package/src/commands/config/config.get.command.js +21 -0
- package/src/commands/config/config.set.command.js +38 -0
- package/src/commands/config/config.update.command.js +88 -0
- package/src/commands/console/console.command.js +31 -0
- package/src/commands/console/console.docs.md +16 -0
- package/src/commands/create/create.command.js +173 -0
- package/src/commands/create/create.docs.md +27 -0
- package/src/commands/{curl.js → curl/curl.command.js} +10 -3
- package/src/commands/curl/curl.docs.md +9 -0
- package/src/commands/database/database.args.js +8 -0
- package/src/commands/database/database.backups.command.js +60 -0
- package/src/commands/database/database.backups.download.command.js +55 -0
- package/src/commands/database/database.command.js +10 -0
- package/src/commands/database/database.docs.md +52 -0
- package/src/commands/delete/delete.command.js +43 -0
- package/src/commands/delete/delete.docs.md +17 -0
- package/src/commands/deploy/deploy.command.js +166 -0
- package/src/commands/deploy/deploy.docs.md +22 -0
- package/src/commands/diag/diag.command.js +136 -0
- package/src/commands/diag/diag.docs.md +15 -0
- package/src/commands/domain/domain.add.command.js +25 -0
- package/src/commands/domain/domain.args.js +8 -0
- package/src/commands/domain/domain.command.js +38 -0
- package/src/commands/domain/domain.diag.command.js +204 -0
- package/src/commands/domain/domain.docs.md +143 -0
- package/src/commands/domain/domain.favourite.command.js +35 -0
- package/src/commands/domain/domain.favourite.set.command.js +24 -0
- package/src/commands/domain/domain.favourite.unset.command.js +23 -0
- package/src/commands/domain/domain.overview.command.js +157 -0
- package/src/commands/domain/domain.rm.command.js +25 -0
- package/src/commands/drain/drain.args.js +8 -0
- package/src/commands/drain/drain.command.js +56 -0
- package/src/commands/drain/drain.create.command.js +128 -0
- package/src/commands/drain/drain.disable.command.js +27 -0
- package/src/commands/drain/drain.docs.md +129 -0
- package/src/commands/drain/drain.enable.command.js +27 -0
- package/src/commands/drain/drain.get.command.js +38 -0
- package/src/commands/drain/drain.remove.command.js +26 -0
- package/src/commands/emails/emails.add.command.js +32 -0
- package/src/commands/emails/emails.args.js +8 -0
- package/src/commands/emails/emails.command.js +35 -0
- package/src/commands/emails/emails.docs.md +79 -0
- package/src/commands/emails/emails.open.command.js +15 -0
- package/src/commands/emails/emails.primary.command.js +29 -0
- package/src/commands/emails/emails.remove-all.command.js +54 -0
- package/src/commands/emails/emails.remove.command.js +25 -0
- package/src/commands/env/env.command.js +77 -0
- package/src/commands/env/env.docs.md +99 -0
- package/src/commands/env/env.import-vars.command.js +45 -0
- package/src/commands/env/env.import.command.js +29 -0
- package/src/commands/env/env.rm.command.js +25 -0
- package/src/commands/env/env.set.command.js +32 -0
- package/src/commands/features/features.args.js +9 -0
- package/src/commands/features/features.command.js +7 -0
- package/src/commands/features/features.disable.command.js +25 -0
- package/src/commands/features/features.docs.md +71 -0
- package/src/commands/features/features.enable.command.js +32 -0
- package/src/commands/features/features.info.command.js +27 -0
- package/src/commands/features/features.list.command.js +49 -0
- package/src/commands/global.args.js +45 -0
- package/src/commands/global.commands.js +461 -0
- package/src/commands/global.options.js +186 -0
- package/src/commands/help/help.command.js +9 -0
- package/src/commands/help/help.docs.md +9 -0
- package/src/commands/k8s/k8s.add-persistent-storage.command.js +39 -0
- package/src/commands/k8s/k8s.args.js +9 -0
- package/src/commands/k8s/k8s.command.js +12 -0
- package/src/commands/k8s/k8s.create.command.js +86 -0
- package/src/commands/k8s/k8s.delete.command.js +40 -0
- package/src/commands/k8s/k8s.docs.md +131 -0
- package/src/commands/k8s/k8s.get-kubeconfig.command.js +32 -0
- package/src/commands/k8s/k8s.get.command.js +43 -0
- package/src/commands/k8s/k8s.list.command.js +38 -0
- package/src/commands/keycloak/keycloak.command.js +17 -0
- package/src/commands/keycloak/keycloak.disable-ng.command.js +13 -0
- package/src/commands/keycloak/keycloak.docs.md +197 -0
- package/src/commands/keycloak/keycloak.enable-ng.command.js +13 -0
- package/src/commands/keycloak/keycloak.get.command.js +17 -0
- package/src/commands/keycloak/keycloak.open.command.js +13 -0
- package/src/commands/keycloak/keycloak.open.logs.command.js +13 -0
- package/src/commands/keycloak/keycloak.open.webui.command.js +13 -0
- package/src/commands/keycloak/keycloak.rebuild.command.js +13 -0
- package/src/commands/keycloak/keycloak.restart.command.js +13 -0
- package/src/commands/keycloak/keycloak.version.check.command.js +17 -0
- package/src/commands/keycloak/keycloak.version.command.js +17 -0
- package/src/commands/keycloak/keycloak.version.update.command.js +17 -0
- package/src/commands/kv/kv.command.js +99 -0
- package/src/commands/kv/kv.docs.md +27 -0
- package/src/commands/link/link.command.js +31 -0
- package/src/commands/link/link.docs.md +22 -0
- package/src/commands/{login.js → login/login.command.js} +44 -22
- package/src/commands/login/login.docs.md +16 -0
- package/src/commands/logout/logout.command.js +15 -0
- package/src/commands/logout/logout.docs.md +9 -0
- package/src/commands/logs/logs.command.js +81 -0
- package/src/commands/logs/logs.docs.md +22 -0
- package/src/commands/make-default/make-default.command.js +17 -0
- package/src/commands/make-default/make-default.docs.md +15 -0
- package/src/commands/matomo/matomo.command.js +17 -0
- package/src/commands/matomo/matomo.docs.md +109 -0
- package/src/commands/matomo/matomo.get.command.js +17 -0
- package/src/commands/matomo/matomo.open.command.js +13 -0
- package/src/commands/matomo/matomo.open.logs.command.js +13 -0
- package/src/commands/matomo/matomo.open.webui.command.js +13 -0
- package/src/commands/matomo/matomo.rebuild.command.js +13 -0
- package/src/commands/matomo/matomo.restart.command.js +13 -0
- package/src/commands/metabase/metabase.command.js +17 -0
- package/src/commands/metabase/metabase.docs.md +169 -0
- package/src/commands/metabase/metabase.get.command.js +17 -0
- package/src/commands/metabase/metabase.open.command.js +13 -0
- package/src/commands/metabase/metabase.open.logs.command.js +13 -0
- package/src/commands/metabase/metabase.open.webui.command.js +13 -0
- package/src/commands/metabase/metabase.rebuild.command.js +13 -0
- package/src/commands/metabase/metabase.restart.command.js +13 -0
- package/src/commands/metabase/metabase.version.check.command.js +17 -0
- package/src/commands/metabase/metabase.version.command.js +17 -0
- package/src/commands/metabase/metabase.version.update.command.js +17 -0
- package/src/commands/ng/ng.args.js +27 -0
- package/src/commands/ng/ng.command.js +45 -0
- package/src/commands/ng/ng.create.command.js +60 -0
- package/src/commands/ng/ng.create.external.command.js +44 -0
- package/src/commands/ng/ng.delete.command.js +22 -0
- package/src/commands/ng/ng.delete.external.command.js +25 -0
- package/src/commands/ng/ng.docs.md +214 -0
- package/src/commands/ng/ng.get-config.command.js +32 -0
- package/src/commands/ng/ng.get.command.js +22 -0
- package/src/commands/ng/ng.link.command.js +25 -0
- package/src/commands/ng/ng.options.js +9 -0
- package/src/commands/ng/ng.search.command.js +22 -0
- package/src/commands/ng/ng.unlink.command.js +25 -0
- package/src/commands/notify-email/notify-email.add.command.js +65 -0
- package/src/commands/notify-email/notify-email.command.js +61 -0
- package/src/commands/notify-email/notify-email.docs.md +60 -0
- package/src/commands/notify-email/notify-email.remove.command.js +24 -0
- package/src/commands/open/open.command.js +24 -0
- package/src/commands/open/open.docs.md +16 -0
- package/src/commands/otoroshi/otoroshi.command.js +17 -0
- package/src/commands/otoroshi/otoroshi.disable-ng.command.js +13 -0
- package/src/commands/otoroshi/otoroshi.docs.md +211 -0
- package/src/commands/otoroshi/otoroshi.enable-ng.command.js +13 -0
- package/src/commands/otoroshi/otoroshi.get-config.command.js +13 -0
- package/src/commands/otoroshi/otoroshi.get.command.js +17 -0
- package/src/commands/otoroshi/otoroshi.open.command.js +13 -0
- package/src/commands/otoroshi/otoroshi.open.logs.command.js +13 -0
- package/src/commands/otoroshi/otoroshi.open.webui.command.js +13 -0
- package/src/commands/otoroshi/otoroshi.rebuild.command.js +13 -0
- package/src/commands/otoroshi/otoroshi.restart.command.js +13 -0
- package/src/commands/otoroshi/otoroshi.version.check.command.js +17 -0
- package/src/commands/otoroshi/otoroshi.version.command.js +17 -0
- package/src/commands/otoroshi/otoroshi.version.update.command.js +17 -0
- package/src/commands/profile/profile.command.js +60 -0
- package/src/commands/profile/profile.docs.md +23 -0
- package/src/commands/profile/profile.open.command.js +12 -0
- package/src/commands/published-config/published-config.command.js +40 -0
- package/src/commands/published-config/published-config.docs.md +77 -0
- package/src/commands/published-config/published-config.import.command.js +29 -0
- package/src/commands/published-config/published-config.rm.command.js +27 -0
- package/src/commands/published-config/published-config.set.command.js +34 -0
- package/src/commands/restart/restart.command.js +77 -0
- package/src/commands/restart/restart.docs.md +21 -0
- package/src/commands/scale/scale.command.js +121 -0
- package/src/commands/scale/scale.docs.md +23 -0
- package/src/commands/service/service.command.js +91 -0
- package/src/commands/service/service.docs.md +104 -0
- package/src/commands/service/service.link-addon.command.js +24 -0
- package/src/commands/service/service.link-app.command.js +23 -0
- package/src/commands/service/service.unlink-addon.command.js +24 -0
- package/src/commands/service/service.unlink-app.command.js +23 -0
- package/src/commands/ssh/ssh.command.js +40 -0
- package/src/commands/ssh/ssh.docs.md +17 -0
- package/src/commands/ssh-keys/ssh-keys.add.command.js +41 -0
- package/src/commands/ssh-keys/ssh-keys.args.js +8 -0
- package/src/commands/ssh-keys/ssh-keys.command.js +50 -0
- package/src/commands/ssh-keys/ssh-keys.docs.md +66 -0
- package/src/commands/ssh-keys/ssh-keys.open.command.js +12 -0
- package/src/commands/ssh-keys/ssh-keys.remove-all.command.js +54 -0
- package/src/commands/ssh-keys/ssh-keys.remove.command.js +26 -0
- package/src/commands/status/status.command.js +122 -0
- package/src/commands/status/status.docs.md +17 -0
- package/src/commands/stop/stop.command.js +23 -0
- package/src/commands/stop/stop.docs.md +16 -0
- package/src/commands/tcp-redirs/tcp-redirs.add.command.js +24 -0
- package/src/commands/tcp-redirs/tcp-redirs.command.js +41 -0
- package/src/commands/tcp-redirs/tcp-redirs.docs.md +71 -0
- package/src/commands/tcp-redirs/tcp-redirs.list-namespaces.command.js +48 -0
- package/src/commands/tcp-redirs/tcp-redirs.options.js +11 -0
- package/src/commands/tcp-redirs/tcp-redirs.remove.command.js +34 -0
- package/src/commands/tokens/tokens.command.js +43 -0
- package/src/commands/tokens/tokens.create.command.js +108 -0
- package/src/commands/tokens/tokens.docs.md +50 -0
- package/src/commands/tokens/tokens.revoke.command.js +25 -0
- package/src/commands/unlink/unlink.command.js +21 -0
- package/src/commands/unlink/unlink.docs.md +15 -0
- package/src/commands/version/version.command.js +13 -0
- package/src/commands/version/version.docs.md +9 -0
- package/src/commands/webhooks/webhooks.add.command.js +51 -0
- package/src/commands/webhooks/webhooks.command.js +57 -0
- package/src/commands/webhooks/webhooks.docs.md +61 -0
- package/src/commands/webhooks/webhooks.remove.command.js +24 -0
- package/src/lib/cliparse-patched.js +192 -0
- package/src/lib/define-argument.js +7 -0
- package/src/lib/define-argument.types.d.ts +23 -0
- package/src/lib/define-command.js +7 -0
- package/src/lib/define-command.types.d.ts +85 -0
- package/src/lib/define-common.types.d.ts +18 -0
- package/src/lib/define-option.js +7 -0
- package/src/lib/define-option.types.d.ts +29 -0
- package/src/lib/get-command-info.js +86 -0
- package/src/lib/get-command-info.types.d.ts +42 -0
- package/src/lib/k8s.js +1 -1
- package/src/lib/zod-utils.js +66 -0
- package/src/models/addon.js +2 -19
- package/src/models/app_configuration.js +0 -30
- package/src/models/application.js +4 -5
- package/src/models/application_configuration.js +5 -23
- package/src/models/domain.js +34 -2
- package/src/models/exit-strategy-option.js +0 -9
- package/src/models/git.js +1 -4
- package/src/models/log-v4.js +15 -4
- package/src/models/log.js +5 -0
- package/src/models/namespaces.js +1 -2
- package/src/models/notification.js +1 -7
- package/src/parsers.js +33 -111
- package/src/command-options.js +0 -55
- package/src/command-promise-handler.js +0 -16
- package/src/commands/accesslogs.js +0 -138
- package/src/commands/addon.js +0 -391
- package/src/commands/applications.js +0 -123
- package/src/commands/cancel-deploy.js +0 -19
- package/src/commands/config.js +0 -47
- package/src/commands/console.js +0 -20
- package/src/commands/create.js +0 -129
- package/src/commands/database.js +0 -73
- package/src/commands/delete.js +0 -24
- package/src/commands/deploy.js +0 -133
- package/src/commands/diag.js +0 -126
- package/src/commands/domain.js +0 -445
- package/src/commands/drain.js +0 -164
- package/src/commands/emails.js +0 -156
- package/src/commands/env.js +0 -124
- package/src/commands/features.js +0 -87
- package/src/commands/k8s.js +0 -193
- package/src/commands/keycloak.js +0 -138
- package/src/commands/kv.js +0 -93
- package/src/commands/link.js +0 -20
- package/src/commands/logout.js +0 -8
- package/src/commands/logs.js +0 -45
- package/src/commands/makeDefault.js +0 -11
- package/src/commands/matomo.js +0 -85
- package/src/commands/metabase.js +0 -112
- package/src/commands/ng.js +0 -202
- package/src/commands/notify-email.js +0 -99
- package/src/commands/open.js +0 -13
- package/src/commands/otoroshi.js +0 -150
- package/src/commands/profile.js +0 -55
- package/src/commands/published-config.js +0 -70
- package/src/commands/restart.js +0 -52
- package/src/commands/scale.js +0 -66
- package/src/commands/service.js +0 -105
- package/src/commands/ssh-keys.js +0 -144
- package/src/commands/ssh.js +0 -20
- package/src/commands/status.js +0 -115
- package/src/commands/stop.js +0 -12
- package/src/commands/tcp-redirs.js +0 -80
- package/src/commands/tokens.js +0 -144
- package/src/commands/unlink.js +0 -14
- package/src/commands/version.js +0 -6
- package/src/commands/webhooks.js +0 -74
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { getEmailhooks } from '@clevercloud/client/esm/api/v2/notification.js';
|
|
2
|
+
import { defineCommand } from '../../lib/define-command.js';
|
|
3
|
+
import { styleText } from '../../lib/style-text.js';
|
|
4
|
+
import { Logger } from '../../logger.js';
|
|
5
|
+
import { getOwnerAndApp } from '../../models/notification.js';
|
|
6
|
+
import { sendToApi } from '../../models/send-to-api.js';
|
|
7
|
+
import { humanJsonOutputFormatOption, listAllNotificationsOption, orgaIdOrNameOption } from '../global.options.js';
|
|
8
|
+
|
|
9
|
+
export const notifyEmailCommand = defineCommand({
|
|
10
|
+
description: 'Manage email notifications',
|
|
11
|
+
since: '0.6.1',
|
|
12
|
+
options: {
|
|
13
|
+
org: orgaIdOrNameOption,
|
|
14
|
+
listAll: listAllNotificationsOption,
|
|
15
|
+
format: humanJsonOutputFormatOption,
|
|
16
|
+
},
|
|
17
|
+
args: [],
|
|
18
|
+
async handler(options) {
|
|
19
|
+
const { org, listAll, format } = options;
|
|
20
|
+
|
|
21
|
+
// TODO: fix alias option
|
|
22
|
+
const { ownerId, appId } = await getOwnerAndApp(null, org, !listAll);
|
|
23
|
+
const hooks = await getEmailhooks({ ownerId }).then(sendToApi);
|
|
24
|
+
|
|
25
|
+
const formattedHooks = hooks
|
|
26
|
+
.filter((hook) => {
|
|
27
|
+
const emptyScope = !hook.scope || hook.scope.length === 0;
|
|
28
|
+
return !appId || emptyScope || hook.scope.includes(appId);
|
|
29
|
+
})
|
|
30
|
+
.map((hook) => ({
|
|
31
|
+
id: hook.id,
|
|
32
|
+
name: hook.name,
|
|
33
|
+
ownerId: hook.ownerId,
|
|
34
|
+
services: hook.scope ?? [hook.ownerId],
|
|
35
|
+
events: hook.events ?? ['ALL'],
|
|
36
|
+
notified: hook.notified ? hook.notified.map(({ target }) => target ?? 'whole team') : ['whole team'],
|
|
37
|
+
}));
|
|
38
|
+
|
|
39
|
+
switch (format) {
|
|
40
|
+
case 'json': {
|
|
41
|
+
Logger.printJson(formattedHooks);
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
case 'human':
|
|
45
|
+
default: {
|
|
46
|
+
formattedHooks.forEach((hook) => {
|
|
47
|
+
Logger.println(styleText('bold', hook.name ?? hook.id));
|
|
48
|
+
Logger.println(` id: ${hook.id}`);
|
|
49
|
+
Logger.println(` services: ${hook.services.join(', ')}`);
|
|
50
|
+
Logger.println(` events: ${hook.events.join(', ')}`);
|
|
51
|
+
if (hook.notified.length > 1) {
|
|
52
|
+
Logger.println(' to:');
|
|
53
|
+
hook.notified.forEach((target) => Logger.println(` ${target}`));
|
|
54
|
+
} else {
|
|
55
|
+
Logger.println(` to: ${hook.notified[0]}`);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
});
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# 📖 `clever notify-email` command reference
|
|
2
|
+
|
|
3
|
+
## ➡️ `clever notify-email` <kbd>Since 0.6.1</kbd>
|
|
4
|
+
|
|
5
|
+
Manage email notifications
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
clever notify-email [options]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
### ⚙️ Options
|
|
12
|
+
|
|
13
|
+
|Name|Description|
|
|
14
|
+
|---|---|
|
|
15
|
+
|`-F`, `--format` `<format>`|Output format (human, json) (default: human)|
|
|
16
|
+
|`--list-all`|List all notifications for your user or for an organisation with the '--org' option|
|
|
17
|
+
|`-o`, `--org`, `--owner` `<org-id\|org-name>`|Organisation to target by its ID (or name, if unambiguous)|
|
|
18
|
+
|
|
19
|
+
## ➡️ `clever notify-email add` <kbd>Since 0.6.1</kbd>
|
|
20
|
+
|
|
21
|
+
Add a new email notification
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
clever notify-email add --notify <email-address|user-id|organisation> <name> [options]
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### 📥 Arguments
|
|
28
|
+
|
|
29
|
+
|Name|Description|
|
|
30
|
+
|---|---|
|
|
31
|
+
|`name`|Notification name|
|
|
32
|
+
|
|
33
|
+
### ⚙️ Options
|
|
34
|
+
|
|
35
|
+
|Name|Description|
|
|
36
|
+
|---|---|
|
|
37
|
+
|`--notify` `<email-address\|user-id\|organisation>`|Notify a user, a specific email address or the whole organisation (multiple values allowed, comma separated) **(required)**|
|
|
38
|
+
|`--event` `<event-type>`|Restrict notifications to specific event types|
|
|
39
|
+
|`-o`, `--org`, `--owner` `<org-id\|org-name>`|Organisation to target by its ID (or name, if unambiguous)|
|
|
40
|
+
|`--service` `<service-id>`|Restrict notifications to specific applications and add-ons|
|
|
41
|
+
|
|
42
|
+
## ➡️ `clever notify-email remove` <kbd>Since 0.6.1</kbd>
|
|
43
|
+
|
|
44
|
+
Remove an existing email notification
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
clever notify-email remove <notification-id> [options]
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### 📥 Arguments
|
|
51
|
+
|
|
52
|
+
|Name|Description|
|
|
53
|
+
|---|---|
|
|
54
|
+
|`notification-id`|Notification ID|
|
|
55
|
+
|
|
56
|
+
### ⚙️ Options
|
|
57
|
+
|
|
58
|
+
|Name|Description|
|
|
59
|
+
|---|---|
|
|
60
|
+
|`-o`, `--org`, `--owner` `<org-id\|org-name>`|Organisation to target by its ID (or name, if unambiguous)|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { deleteEmailhook } from '@clevercloud/client/esm/api/v2/notification.js';
|
|
2
|
+
import { defineCommand } from '../../lib/define-command.js';
|
|
3
|
+
import { Logger } from '../../logger.js';
|
|
4
|
+
import { getOrgaIdOrUserId } from '../../models/notification.js';
|
|
5
|
+
import { sendToApi } from '../../models/send-to-api.js';
|
|
6
|
+
import { notificationIdArg } from '../global.args.js';
|
|
7
|
+
import { orgaIdOrNameOption } from '../global.options.js';
|
|
8
|
+
|
|
9
|
+
export const notifyEmailRemoveCommand = defineCommand({
|
|
10
|
+
description: 'Remove an existing email notification',
|
|
11
|
+
since: '0.6.1',
|
|
12
|
+
options: {
|
|
13
|
+
org: orgaIdOrNameOption,
|
|
14
|
+
},
|
|
15
|
+
args: [notificationIdArg],
|
|
16
|
+
async handler(options, notificationId) {
|
|
17
|
+
const { org } = options;
|
|
18
|
+
|
|
19
|
+
const ownerId = await getOrgaIdOrUserId(org);
|
|
20
|
+
await deleteEmailhook({ ownerId, id: notificationId }).then(sendToApi);
|
|
21
|
+
|
|
22
|
+
Logger.println('The notification has been successfully removed');
|
|
23
|
+
},
|
|
24
|
+
});
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { defineCommand } from '../../lib/define-command.js';
|
|
2
|
+
import * as Application from '../../models/application.js';
|
|
3
|
+
import * as Domain from '../../models/domain.js';
|
|
4
|
+
import { openBrowser } from '../../models/utils.js';
|
|
5
|
+
import { aliasOption, appIdOrNameOption } from '../global.options.js';
|
|
6
|
+
|
|
7
|
+
export const openCommand = defineCommand({
|
|
8
|
+
description: 'Open an application in the Console',
|
|
9
|
+
since: '0.5.0',
|
|
10
|
+
options: {
|
|
11
|
+
alias: aliasOption,
|
|
12
|
+
app: appIdOrNameOption,
|
|
13
|
+
},
|
|
14
|
+
args: [],
|
|
15
|
+
async handler(options) {
|
|
16
|
+
const { alias, app: appIdOrName } = options;
|
|
17
|
+
const { ownerId, appId } = await Application.resolveId(appIdOrName, alias);
|
|
18
|
+
|
|
19
|
+
const vhost = await Domain.getBest(appId, ownerId);
|
|
20
|
+
const url = 'https://' + vhost.fqdn;
|
|
21
|
+
|
|
22
|
+
await openBrowser(url, 'Opening the application in your browser');
|
|
23
|
+
},
|
|
24
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# 📖 `clever open` command reference
|
|
2
|
+
|
|
3
|
+
## ➡️ `clever open` <kbd>Since 0.5.0</kbd>
|
|
4
|
+
|
|
5
|
+
Open an application in the Console
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
clever open [options]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
### ⚙️ Options
|
|
12
|
+
|
|
13
|
+
|Name|Description|
|
|
14
|
+
|---|---|
|
|
15
|
+
|`-a`, `--alias` `<alias>`|Short name for the application|
|
|
16
|
+
|`--app` `<app-id\|app-name>`|Application to manage by its ID (or name, if unambiguous)|
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { defineCommand } from '../../lib/define-command.js';
|
|
2
|
+
import { operatorList } from '../../lib/operator-commands.js';
|
|
3
|
+
import { humanJsonOutputFormatOption } from '../global.options.js';
|
|
4
|
+
|
|
5
|
+
export const otoroshiCommand = defineCommand({
|
|
6
|
+
description: 'Manage Clever Cloud Otoroshi services',
|
|
7
|
+
since: '3.13.0',
|
|
8
|
+
isExperimental: true,
|
|
9
|
+
featureFlag: 'operators',
|
|
10
|
+
options: {
|
|
11
|
+
format: humanJsonOutputFormatOption,
|
|
12
|
+
},
|
|
13
|
+
args: [],
|
|
14
|
+
async handler(options) {
|
|
15
|
+
await operatorList('otoroshi', options.format);
|
|
16
|
+
},
|
|
17
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { defineCommand } from '../../lib/define-command.js';
|
|
2
|
+
import { operatorNgDisable } from '../../lib/operator-commands.js';
|
|
3
|
+
import { addonIdOrNameArg } from '../global.args.js';
|
|
4
|
+
|
|
5
|
+
export const otoroshiDisableNgCommand = defineCommand({
|
|
6
|
+
description: 'Unlink Otoroshi from its Network Group',
|
|
7
|
+
since: '3.13.0',
|
|
8
|
+
options: {},
|
|
9
|
+
args: [addonIdOrNameArg],
|
|
10
|
+
async handler(_options, addonIdOrName) {
|
|
11
|
+
await operatorNgDisable('otoroshi', addonIdOrName);
|
|
12
|
+
},
|
|
13
|
+
});
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
# 📖 `clever otoroshi` command reference
|
|
2
|
+
|
|
3
|
+
> [!NOTE]
|
|
4
|
+
> 🧪 **Experimental**: This command may change or be removed in future versions.
|
|
5
|
+
> Enable with: `clever features enable operators`
|
|
6
|
+
|
|
7
|
+
## ➡️ `clever otoroshi` <kbd>Since 3.13.0</kbd>
|
|
8
|
+
|
|
9
|
+
Manage Clever Cloud Otoroshi services
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
clever otoroshi [options]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### ⚙️ Options
|
|
16
|
+
|
|
17
|
+
|Name|Description|
|
|
18
|
+
|---|---|
|
|
19
|
+
|`-F`, `--format` `<format>`|Output format (human, json) (default: human)|
|
|
20
|
+
|
|
21
|
+
## ➡️ `clever otoroshi disable-ng` <kbd>Since 3.13.0</kbd>
|
|
22
|
+
|
|
23
|
+
Unlink Otoroshi from its Network Group
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
clever otoroshi disable-ng <addon-id|addon-name>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### 📥 Arguments
|
|
30
|
+
|
|
31
|
+
|Name|Description|
|
|
32
|
+
|---|---|
|
|
33
|
+
|`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
|
|
34
|
+
|
|
35
|
+
## ➡️ `clever otoroshi enable-ng` <kbd>Since 3.13.0</kbd>
|
|
36
|
+
|
|
37
|
+
Link Otoroshi to a Network Group
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
clever otoroshi enable-ng <addon-id|addon-name>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### 📥 Arguments
|
|
44
|
+
|
|
45
|
+
|Name|Description|
|
|
46
|
+
|---|---|
|
|
47
|
+
|`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
|
|
48
|
+
|
|
49
|
+
## ➡️ `clever otoroshi get` <kbd>Since 3.13.0</kbd>
|
|
50
|
+
|
|
51
|
+
Get information about a deployed Otoroshi
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
clever otoroshi get <addon-id|addon-name> [options]
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### 📥 Arguments
|
|
58
|
+
|
|
59
|
+
|Name|Description|
|
|
60
|
+
|---|---|
|
|
61
|
+
|`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
|
|
62
|
+
|
|
63
|
+
### ⚙️ Options
|
|
64
|
+
|
|
65
|
+
|Name|Description|
|
|
66
|
+
|---|---|
|
|
67
|
+
|`-F`, `--format` `<format>`|Output format (human, json) (default: human)|
|
|
68
|
+
|
|
69
|
+
## ➡️ `clever otoroshi get-config` <kbd>Since 4.4.0</kbd>
|
|
70
|
+
|
|
71
|
+
Get configuration of a deployed Otoroshi in otoroshictl format
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
clever otoroshi get-config <addon-id|addon-name>
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### 📥 Arguments
|
|
78
|
+
|
|
79
|
+
|Name|Description|
|
|
80
|
+
|---|---|
|
|
81
|
+
|`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
|
|
82
|
+
|
|
83
|
+
## ➡️ `clever otoroshi open` <kbd>Since 3.13.0</kbd>
|
|
84
|
+
|
|
85
|
+
Open the Otoroshi dashboard in Clever Cloud Console
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
clever otoroshi open <addon-id|addon-name>
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### 📥 Arguments
|
|
92
|
+
|
|
93
|
+
|Name|Description|
|
|
94
|
+
|---|---|
|
|
95
|
+
|`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
|
|
96
|
+
|
|
97
|
+
## ➡️ `clever otoroshi open logs` <kbd>Since 3.13.0</kbd>
|
|
98
|
+
|
|
99
|
+
Open the Otoroshi application logs in Clever Cloud Console
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
clever otoroshi open logs <addon-id|addon-name>
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### 📥 Arguments
|
|
106
|
+
|
|
107
|
+
|Name|Description|
|
|
108
|
+
|---|---|
|
|
109
|
+
|`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
|
|
110
|
+
|
|
111
|
+
## ➡️ `clever otoroshi open webui` <kbd>Since 3.13.0</kbd>
|
|
112
|
+
|
|
113
|
+
Open the Otoroshi admin console in your browser
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
clever otoroshi open webui <addon-id|addon-name>
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### 📥 Arguments
|
|
120
|
+
|
|
121
|
+
|Name|Description|
|
|
122
|
+
|---|---|
|
|
123
|
+
|`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
|
|
124
|
+
|
|
125
|
+
## ➡️ `clever otoroshi rebuild` <kbd>Since 3.13.0</kbd>
|
|
126
|
+
|
|
127
|
+
Rebuild Otoroshi
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
clever otoroshi rebuild <addon-id|addon-name>
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### 📥 Arguments
|
|
134
|
+
|
|
135
|
+
|Name|Description|
|
|
136
|
+
|---|---|
|
|
137
|
+
|`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
|
|
138
|
+
|
|
139
|
+
## ➡️ `clever otoroshi restart` <kbd>Since 3.13.0</kbd>
|
|
140
|
+
|
|
141
|
+
Restart Otoroshi
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
clever otoroshi restart <addon-id|addon-name>
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### 📥 Arguments
|
|
148
|
+
|
|
149
|
+
|Name|Description|
|
|
150
|
+
|---|---|
|
|
151
|
+
|`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
|
|
152
|
+
|
|
153
|
+
## ➡️ `clever otoroshi version` <kbd>Since 3.13.0</kbd>
|
|
154
|
+
|
|
155
|
+
Manage Otoroshi deployed version
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
clever otoroshi version <addon-id|addon-name> [options]
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### 📥 Arguments
|
|
162
|
+
|
|
163
|
+
|Name|Description|
|
|
164
|
+
|---|---|
|
|
165
|
+
|`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
|
|
166
|
+
|
|
167
|
+
### ⚙️ Options
|
|
168
|
+
|
|
169
|
+
|Name|Description|
|
|
170
|
+
|---|---|
|
|
171
|
+
|`-F`, `--format` `<format>`|Output format (human, json) (default: human)|
|
|
172
|
+
|
|
173
|
+
## ➡️ `clever otoroshi version check` <kbd>Since 3.13.0</kbd>
|
|
174
|
+
|
|
175
|
+
Check Otoroshi deployed version
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
clever otoroshi version check <addon-id|addon-name> [options]
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### 📥 Arguments
|
|
182
|
+
|
|
183
|
+
|Name|Description|
|
|
184
|
+
|---|---|
|
|
185
|
+
|`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
|
|
186
|
+
|
|
187
|
+
### ⚙️ Options
|
|
188
|
+
|
|
189
|
+
|Name|Description|
|
|
190
|
+
|---|---|
|
|
191
|
+
|`-F`, `--format` `<format>`|Output format (human, json) (default: human)|
|
|
192
|
+
|
|
193
|
+
## ➡️ `clever otoroshi version update` <kbd>Since 3.13.0</kbd>
|
|
194
|
+
|
|
195
|
+
Update Otoroshi deployed version
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
clever otoroshi version update <addon-id|addon-name> [options]
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### 📥 Arguments
|
|
202
|
+
|
|
203
|
+
|Name|Description|
|
|
204
|
+
|---|---|
|
|
205
|
+
|`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
|
|
206
|
+
|
|
207
|
+
### ⚙️ Options
|
|
208
|
+
|
|
209
|
+
|Name|Description|
|
|
210
|
+
|---|---|
|
|
211
|
+
|`--target` `<version>`|Target version to upgrade to (e.g.: 24, 2.4, 2.4.1)|
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { defineCommand } from '../../lib/define-command.js';
|
|
2
|
+
import { operatorNgEnable } from '../../lib/operator-commands.js';
|
|
3
|
+
import { addonIdOrNameArg } from '../global.args.js';
|
|
4
|
+
|
|
5
|
+
export const otoroshiEnableNgCommand = defineCommand({
|
|
6
|
+
description: 'Link Otoroshi to a Network Group',
|
|
7
|
+
since: '3.13.0',
|
|
8
|
+
options: {},
|
|
9
|
+
args: [addonIdOrNameArg],
|
|
10
|
+
async handler(_options, addonIdOrName) {
|
|
11
|
+
await operatorNgEnable('otoroshi', addonIdOrName);
|
|
12
|
+
},
|
|
13
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { defineCommand } from '../../lib/define-command.js';
|
|
2
|
+
import { operatorPrint } from '../../lib/operator-commands.js';
|
|
3
|
+
import { addonIdOrNameArg } from '../global.args.js';
|
|
4
|
+
|
|
5
|
+
export const otoroshiGetConfigCommand = defineCommand({
|
|
6
|
+
description: 'Get configuration of a deployed Otoroshi in otoroshictl format',
|
|
7
|
+
since: '4.4.0',
|
|
8
|
+
options: {},
|
|
9
|
+
args: [addonIdOrNameArg],
|
|
10
|
+
async handler(_options, addonIdOrName) {
|
|
11
|
+
await operatorPrint('otoroshi', addonIdOrName, 'otoroshictl');
|
|
12
|
+
},
|
|
13
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { defineCommand } from '../../lib/define-command.js';
|
|
2
|
+
import { operatorPrint } from '../../lib/operator-commands.js';
|
|
3
|
+
import { addonIdOrNameArg } from '../global.args.js';
|
|
4
|
+
import { humanJsonOutputFormatOption } from '../global.options.js';
|
|
5
|
+
|
|
6
|
+
export const otoroshiGetCommand = defineCommand({
|
|
7
|
+
description: 'Get information about a deployed Otoroshi',
|
|
8
|
+
since: '3.13.0',
|
|
9
|
+
options: {
|
|
10
|
+
format: humanJsonOutputFormatOption,
|
|
11
|
+
},
|
|
12
|
+
args: [addonIdOrNameArg],
|
|
13
|
+
async handler(options, addonIdOrName) {
|
|
14
|
+
const { format } = options;
|
|
15
|
+
await operatorPrint('otoroshi', addonIdOrName, format);
|
|
16
|
+
},
|
|
17
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { defineCommand } from '../../lib/define-command.js';
|
|
2
|
+
import { operatorOpen } from '../../lib/operator-commands.js';
|
|
3
|
+
import { addonIdOrNameArg } from '../global.args.js';
|
|
4
|
+
|
|
5
|
+
export const otoroshiOpenCommand = defineCommand({
|
|
6
|
+
description: 'Open the Otoroshi dashboard in Clever Cloud Console',
|
|
7
|
+
since: '3.13.0',
|
|
8
|
+
options: {},
|
|
9
|
+
args: [addonIdOrNameArg],
|
|
10
|
+
async handler(_options, addonIdOrName) {
|
|
11
|
+
await operatorOpen('otoroshi', addonIdOrName);
|
|
12
|
+
},
|
|
13
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { defineCommand } from '../../lib/define-command.js';
|
|
2
|
+
import { operatorOpenLogs } from '../../lib/operator-commands.js';
|
|
3
|
+
import { addonIdOrNameArg } from '../global.args.js';
|
|
4
|
+
|
|
5
|
+
export const otoroshiOpenLogsCommand = defineCommand({
|
|
6
|
+
description: 'Open the Otoroshi application logs in Clever Cloud Console',
|
|
7
|
+
since: '3.13.0',
|
|
8
|
+
options: {},
|
|
9
|
+
args: [addonIdOrNameArg],
|
|
10
|
+
async handler(_options, addonIdOrName) {
|
|
11
|
+
await operatorOpenLogs('otoroshi', addonIdOrName);
|
|
12
|
+
},
|
|
13
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { defineCommand } from '../../lib/define-command.js';
|
|
2
|
+
import { operatorOpenWebUi } from '../../lib/operator-commands.js';
|
|
3
|
+
import { addonIdOrNameArg } from '../global.args.js';
|
|
4
|
+
|
|
5
|
+
export const otoroshiOpenWebuiCommand = defineCommand({
|
|
6
|
+
description: 'Open the Otoroshi admin console in your browser',
|
|
7
|
+
since: '3.13.0',
|
|
8
|
+
options: {},
|
|
9
|
+
args: [addonIdOrNameArg],
|
|
10
|
+
async handler(_options, addonIdOrName) {
|
|
11
|
+
await operatorOpenWebUi('otoroshi', addonIdOrName);
|
|
12
|
+
},
|
|
13
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { defineCommand } from '../../lib/define-command.js';
|
|
2
|
+
import { operatorRebuild } from '../../lib/operator-commands.js';
|
|
3
|
+
import { addonIdOrNameArg } from '../global.args.js';
|
|
4
|
+
|
|
5
|
+
export const otoroshiRebuildCommand = defineCommand({
|
|
6
|
+
description: 'Rebuild Otoroshi',
|
|
7
|
+
since: '3.13.0',
|
|
8
|
+
options: {},
|
|
9
|
+
args: [addonIdOrNameArg],
|
|
10
|
+
async handler(_options, addonIdOrName) {
|
|
11
|
+
await operatorRebuild('otoroshi', addonIdOrName);
|
|
12
|
+
},
|
|
13
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { defineCommand } from '../../lib/define-command.js';
|
|
2
|
+
import { operatorReboot } from '../../lib/operator-commands.js';
|
|
3
|
+
import { addonIdOrNameArg } from '../global.args.js';
|
|
4
|
+
|
|
5
|
+
export const otoroshiRestartCommand = defineCommand({
|
|
6
|
+
description: 'Restart Otoroshi',
|
|
7
|
+
since: '3.13.0',
|
|
8
|
+
options: {},
|
|
9
|
+
args: [addonIdOrNameArg],
|
|
10
|
+
async handler(_options, addonIdOrName) {
|
|
11
|
+
await operatorReboot('otoroshi', addonIdOrName);
|
|
12
|
+
},
|
|
13
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { defineCommand } from '../../lib/define-command.js';
|
|
2
|
+
import { operatorCheckVersion } from '../../lib/operator-commands.js';
|
|
3
|
+
import { addonIdOrNameArg } from '../global.args.js';
|
|
4
|
+
import { humanJsonOutputFormatOption } from '../global.options.js';
|
|
5
|
+
|
|
6
|
+
export const otoroshiVersionCheckCommand = defineCommand({
|
|
7
|
+
description: 'Check Otoroshi deployed version',
|
|
8
|
+
since: '3.13.0',
|
|
9
|
+
options: {
|
|
10
|
+
format: humanJsonOutputFormatOption,
|
|
11
|
+
},
|
|
12
|
+
args: [addonIdOrNameArg],
|
|
13
|
+
async handler(options, addonIdOrName) {
|
|
14
|
+
const { format } = options;
|
|
15
|
+
await operatorCheckVersion('otoroshi', addonIdOrName, format);
|
|
16
|
+
},
|
|
17
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { defineCommand } from '../../lib/define-command.js';
|
|
2
|
+
import { operatorCheckVersion } from '../../lib/operator-commands.js';
|
|
3
|
+
import { addonIdOrNameArg } from '../global.args.js';
|
|
4
|
+
import { humanJsonOutputFormatOption } from '../global.options.js';
|
|
5
|
+
|
|
6
|
+
export const otoroshiVersionCommand = defineCommand({
|
|
7
|
+
description: 'Manage Otoroshi deployed version',
|
|
8
|
+
since: '3.13.0',
|
|
9
|
+
options: {
|
|
10
|
+
format: humanJsonOutputFormatOption,
|
|
11
|
+
},
|
|
12
|
+
args: [addonIdOrNameArg],
|
|
13
|
+
async handler(options, addonIdOrName) {
|
|
14
|
+
const { format } = options;
|
|
15
|
+
await operatorCheckVersion('otoroshi', addonIdOrName, format);
|
|
16
|
+
},
|
|
17
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { defineCommand } from '../../lib/define-command.js';
|
|
2
|
+
import { operatorUpdateVersion } from '../../lib/operator-commands.js';
|
|
3
|
+
import { addonIdOrNameArg } from '../global.args.js';
|
|
4
|
+
import { targetVersionOption } from '../global.options.js';
|
|
5
|
+
|
|
6
|
+
export const otoroshiVersionUpdateCommand = defineCommand({
|
|
7
|
+
description: 'Update Otoroshi deployed version',
|
|
8
|
+
since: '3.13.0',
|
|
9
|
+
options: {
|
|
10
|
+
target: targetVersionOption,
|
|
11
|
+
},
|
|
12
|
+
args: [addonIdOrNameArg],
|
|
13
|
+
async handler(options, addonIdOrName) {
|
|
14
|
+
const { target } = options;
|
|
15
|
+
await operatorUpdateVersion('otoroshi', target, addonIdOrName);
|
|
16
|
+
},
|
|
17
|
+
});
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import dedent from 'dedent';
|
|
2
|
+
import { defineCommand } from '../../lib/define-command.js';
|
|
3
|
+
import { styleText } from '../../lib/style-text.js';
|
|
4
|
+
import { Logger } from '../../logger.js';
|
|
5
|
+
import * as User from '../../models/user.js';
|
|
6
|
+
import { humanJsonOutputFormatOption } from '../global.options.js';
|
|
7
|
+
|
|
8
|
+
export const profileCommand = defineCommand({
|
|
9
|
+
description: 'Display the profile of the current user',
|
|
10
|
+
since: '0.10.1',
|
|
11
|
+
options: {
|
|
12
|
+
format: humanJsonOutputFormatOption,
|
|
13
|
+
},
|
|
14
|
+
args: [],
|
|
15
|
+
async handler(options) {
|
|
16
|
+
const { format } = options;
|
|
17
|
+
|
|
18
|
+
const user = await User.getCurrent();
|
|
19
|
+
const currentToken = await User.getCurrentToken();
|
|
20
|
+
const tokenExpiration = new Date(currentToken.expirationDate).toLocaleString('en-US', {
|
|
21
|
+
year: 'numeric',
|
|
22
|
+
month: 'short',
|
|
23
|
+
day: 'numeric',
|
|
24
|
+
hour: 'numeric',
|
|
25
|
+
minute: 'numeric',
|
|
26
|
+
hour12: false,
|
|
27
|
+
timeZone: 'UTC',
|
|
28
|
+
timeZoneName: 'short',
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
const formattedUser = {
|
|
32
|
+
id: user.id,
|
|
33
|
+
email: user.email,
|
|
34
|
+
name: user.name,
|
|
35
|
+
avatar: user.avatar,
|
|
36
|
+
creationDate: new Date(user.creationDate),
|
|
37
|
+
tokenExpiration: new Date(currentToken.expirationDate).toISOString(),
|
|
38
|
+
lang: user.lang,
|
|
39
|
+
has2FA: user.preferredMFA != null && user.preferredMFA !== 'NONE',
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
switch (format) {
|
|
43
|
+
case 'json': {
|
|
44
|
+
Logger.printJson(formattedUser);
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
case 'human':
|
|
48
|
+
default: {
|
|
49
|
+
Logger.println(dedent`
|
|
50
|
+
You're currently logged in as:
|
|
51
|
+
User id ${formattedUser.id}
|
|
52
|
+
Name ${formattedUser.name ?? styleText(['red', 'bold'], '[not specified]')}
|
|
53
|
+
Email ${formattedUser.email}
|
|
54
|
+
Token expiration ${tokenExpiration}
|
|
55
|
+
Two factor auth ${formattedUser.has2FA ? 'yes' : 'no'}
|
|
56
|
+
`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
});
|