@affinidi/cli 2.7.0 → 2.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/bin/dev.cmd +1 -1
- package/bin/dev.js +5 -0
- package/bin/run.js +5 -0
- package/dist/commands/generate/app.d.ts +7 -7
- package/dist/commands/generate/app.js +72 -75
- package/dist/commands/generate/app.js.map +1 -1
- package/dist/commands/iam/add-principal.d.ts +3 -3
- package/dist/commands/iam/add-principal.js +27 -31
- package/dist/commands/iam/add-principal.js.map +1 -1
- package/dist/commands/iam/get-policies.d.ts +4 -4
- package/dist/commands/iam/get-policies.js +27 -31
- package/dist/commands/iam/get-policies.js.map +1 -1
- package/dist/commands/iam/list-principals.d.ts +2 -2
- package/dist/commands/iam/list-principals.js +9 -14
- package/dist/commands/iam/list-principals.js.map +1 -1
- package/dist/commands/iam/remove-principal.d.ts +4 -3
- package/dist/commands/iam/remove-principal.js +27 -31
- package/dist/commands/iam/remove-principal.js.map +1 -1
- package/dist/commands/iam/update-policies.d.ts +5 -5
- package/dist/commands/iam/update-policies.js +44 -48
- package/dist/commands/iam/update-policies.js.map +1 -1
- package/dist/commands/login/add-user-to-group.d.ts +4 -4
- package/dist/commands/login/add-user-to-group.js +16 -21
- package/dist/commands/login/add-user-to-group.js.map +1 -1
- package/dist/commands/login/create-config.d.ts +11 -10
- package/dist/commands/login/create-config.js +46 -50
- package/dist/commands/login/create-config.js.map +1 -1
- package/dist/commands/login/create-group.d.ts +3 -3
- package/dist/commands/login/create-group.js +15 -20
- package/dist/commands/login/create-group.js.map +1 -1
- package/dist/commands/login/delete-config.d.ts +2 -2
- package/dist/commands/login/delete-config.js +14 -19
- package/dist/commands/login/delete-config.js.map +1 -1
- package/dist/commands/login/delete-group.d.ts +2 -2
- package/dist/commands/login/delete-group.js +14 -19
- package/dist/commands/login/delete-group.js.map +1 -1
- package/dist/commands/login/export-configs.d.ts +3 -3
- package/dist/commands/login/export-configs.js +21 -27
- package/dist/commands/login/export-configs.js.map +1 -1
- package/dist/commands/login/export-groups.d.ts +3 -3
- package/dist/commands/login/export-groups.js +21 -27
- package/dist/commands/login/export-groups.js.map +1 -1
- package/dist/commands/login/get-config.d.ts +3 -3
- package/dist/commands/login/get-config.js +14 -19
- package/dist/commands/login/get-config.js.map +1 -1
- package/dist/commands/login/get-group.d.ts +3 -3
- package/dist/commands/login/get-group.js +14 -19
- package/dist/commands/login/get-group.js.map +1 -1
- package/dist/commands/login/import-configs.d.ts +3 -3
- package/dist/commands/login/import-configs.js +33 -37
- package/dist/commands/login/import-configs.js.map +1 -1
- package/dist/commands/login/import-groups.d.ts +3 -3
- package/dist/commands/login/import-groups.js +21 -26
- package/dist/commands/login/import-groups.js.map +1 -1
- package/dist/commands/login/list-configs.d.ts +2 -2
- package/dist/commands/login/list-configs.js +7 -11
- package/dist/commands/login/list-configs.js.map +1 -1
- package/dist/commands/login/list-groups.d.ts +2 -2
- package/dist/commands/login/list-groups.js +7 -11
- package/dist/commands/login/list-groups.js.map +1 -1
- package/dist/commands/login/list-users-in-group.d.ts +5 -5
- package/dist/commands/login/list-users-in-group.js +24 -29
- package/dist/commands/login/list-users-in-group.js.map +1 -1
- package/dist/commands/login/remove-user-from-group.d.ts +3 -3
- package/dist/commands/login/remove-user-from-group.js +16 -21
- package/dist/commands/login/remove-user-from-group.js.map +1 -1
- package/dist/commands/login/update-config.d.ts +10 -10
- package/dist/commands/login/update-config.js +40 -45
- package/dist/commands/login/update-config.js.map +1 -1
- package/dist/commands/project/create-project.d.ts +4 -4
- package/dist/commands/project/create-project.js +16 -21
- package/dist/commands/project/create-project.js.map +1 -1
- package/dist/commands/project/get-active-project.d.ts +2 -2
- package/dist/commands/project/get-active-project.js +7 -11
- package/dist/commands/project/get-active-project.js.map +1 -1
- package/dist/commands/project/list-projects.d.ts +2 -2
- package/dist/commands/project/list-projects.js +7 -11
- package/dist/commands/project/list-projects.js.map +1 -1
- package/dist/commands/project/select-project.d.ts +3 -3
- package/dist/commands/project/select-project.js +20 -25
- package/dist/commands/project/select-project.js.map +1 -1
- package/dist/commands/project/update-project.d.ts +5 -5
- package/dist/commands/project/update-project.js +18 -23
- package/dist/commands/project/update-project.js.map +1 -1
- package/dist/commands/start.d.ts +1 -1
- package/dist/commands/start.js +13 -18
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/stop.d.ts +1 -1
- package/dist/commands/stop.js +13 -18
- package/dist/commands/stop.js.map +1 -1
- package/dist/commands/token/create-token.d.ts +10 -9
- package/dist/commands/token/create-token.js +58 -60
- package/dist/commands/token/create-token.js.map +1 -1
- package/dist/commands/token/delete-token.d.ts +2 -2
- package/dist/commands/token/delete-token.js +13 -17
- package/dist/commands/token/delete-token.js.map +1 -1
- package/dist/commands/token/get-token.d.ts +3 -3
- package/dist/commands/token/get-token.js +13 -17
- package/dist/commands/token/get-token.js.map +1 -1
- package/dist/commands/token/list-tokens.d.ts +2 -2
- package/dist/commands/token/list-tokens.js +7 -11
- package/dist/commands/token/list-tokens.js.map +1 -1
- package/dist/commands/token/update-token.d.ts +8 -7
- package/dist/commands/token/update-token.js +30 -33
- package/dist/commands/token/update-token.js.map +1 -1
- package/dist/commands/whoami.d.ts +1 -1
- package/dist/commands/whoami.js +7 -11
- package/dist/commands/whoami.js.map +1 -1
- package/dist/common/base-command.d.ts +1 -12
- package/dist/common/base-command.js +13 -17
- package/dist/common/base-command.js.map +1 -1
- package/dist/common/constants.js +12 -15
- package/dist/common/constants.js.map +1 -1
- package/dist/common/error-messages.js +1 -5
- package/dist/common/error-messages.js.map +1 -1
- package/dist/common/prompts.js +7 -11
- package/dist/common/prompts.js.map +1 -1
- package/dist/common/validators.js +15 -21
- package/dist/common/validators.js.map +1 -1
- package/dist/helpers/app.js +17 -30
- package/dist/helpers/app.js.map +1 -1
- package/dist/helpers/degit.js +6 -11
- package/dist/helpers/degit.js.map +1 -1
- package/dist/helpers/jwk.d.ts +1 -1
- package/dist/helpers/jwk.js +16 -24
- package/dist/helpers/jwk.js.map +1 -1
- package/dist/helpers/token.d.ts +4 -5
- package/dist/helpers/token.js +13 -20
- package/dist/helpers/token.js.map +1 -1
- package/dist/index.js +1 -5
- package/dist/index.js.map +1 -1
- package/dist/services/affinidi/auth/auth-result-page.js +1 -5
- package/dist/services/affinidi/auth/auth-result-page.js.map +1 -1
- package/dist/services/affinidi/auth/bff-auth-provider.d.ts +1 -1
- package/dist/services/affinidi/auth/bff-auth-provider.js +25 -30
- package/dist/services/affinidi/auth/bff-auth-provider.js.map +1 -1
- package/dist/services/affinidi/auth/types.d.ts +1 -1
- package/dist/services/affinidi/auth/types.js +1 -2
- package/dist/services/affinidi/bff-service.d.ts +5 -5
- package/dist/services/affinidi/bff-service.js +56 -61
- package/dist/services/affinidi/bff-service.js.map +1 -1
- package/dist/services/affinidi/bff-service.types.js +1 -2
- package/dist/services/affinidi/errors.js +21 -26
- package/dist/services/affinidi/errors.js.map +1 -1
- package/dist/services/affinidi/iam/iam.api.d.ts +21 -21
- package/dist/services/affinidi/iam/iam.api.js +6 -12
- package/dist/services/affinidi/iam/iam.api.js.map +1 -1
- package/dist/services/affinidi/iam/{index.d.ts → service.d.ts} +4 -4
- package/dist/services/affinidi/iam/{index.js → service.js} +36 -40
- package/dist/services/affinidi/iam/service.js.map +1 -0
- package/dist/services/affinidi/logger/console-logger-adapter.d.ts +1 -1
- package/dist/services/affinidi/logger/console-logger-adapter.js +1 -5
- package/dist/services/affinidi/logger/console-logger-adapter.js.map +1 -1
- package/dist/services/affinidi/logger/logger-adapter.js +1 -2
- package/dist/services/affinidi/vp-adapter/{index.d.ts → service.d.ts} +2 -2
- package/dist/services/affinidi/vp-adapter/{index.js → service.js} +38 -41
- package/dist/services/affinidi/vp-adapter/service.js.map +1 -0
- package/dist/services/affinidi/vp-adapter/vp-adapter.api.d.ts +43 -43
- package/dist/services/affinidi/vp-adapter/vp-adapter.api.js +8 -14
- package/dist/services/affinidi/vp-adapter/vp-adapter.api.js.map +1 -1
- package/dist/services/credentials-vault.d.ts +0 -1
- package/dist/services/credentials-vault.js +15 -21
- package/dist/services/credentials-vault.js.map +1 -1
- package/dist/services/env-config.d.ts +1 -1
- package/dist/services/env-config.js +6 -10
- package/dist/services/env-config.js.map +1 -1
- package/dist/services/generator/auth0.d.ts +1 -1
- package/dist/services/generator/auth0.js +3 -8
- package/dist/services/generator/auth0.js.map +1 -1
- package/dist/services/generator/env-configurer.js +5 -9
- package/dist/services/generator/env-configurer.js.map +1 -1
- package/package.json +39 -42
- package/theme.json +26 -0
- package/bin/dev +0 -17
- package/bin/run +0 -5
- package/dist/common/index.d.ts +0 -2
- package/dist/common/index.js +0 -8
- package/dist/common/index.js.map +0 -1
- package/dist/services/affinidi/iam/index.js.map +0 -1
- package/dist/services/affinidi/logger/index.d.ts +0 -2
- package/dist/services/affinidi/logger/index.js +0 -6
- package/dist/services/affinidi/logger/index.js.map +0 -1
- package/dist/services/affinidi/vp-adapter/index.js.map +0 -1
package/README.md
CHANGED
|
@@ -251,8 +251,8 @@ When you run `affinidi stop` your session information is deleted.
|
|
|
251
251
|
<!-- commands -->
|
|
252
252
|
# Command Topics
|
|
253
253
|
|
|
254
|
-
* [`affinidi autocomplete`](docs/autocomplete.md) -
|
|
255
|
-
* [`affinidi commands`](docs/commands.md) -
|
|
254
|
+
* [`affinidi autocomplete`](docs/autocomplete.md) - Display autocomplete installation instructions.
|
|
255
|
+
* [`affinidi commands`](docs/commands.md) - List all affinidi commands.
|
|
256
256
|
* [`affinidi generate`](docs/generate.md) - Use these commands to generate code to get started or to scaffold your solution
|
|
257
257
|
* [`affinidi help`](docs/help.md) - Display help for affinidi.
|
|
258
258
|
* [`affinidi iam`](docs/iam.md) - Use these commands to manage policies for access configuration
|
package/bin/dev.cmd
CHANGED
package/bin/dev.js
ADDED
package/bin/run.js
ADDED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BaseCommand } from '../../common';
|
|
2
|
-
import { AppsInformation } from '../../helpers/app';
|
|
1
|
+
import { BaseCommand } from '../../common/base-command.js';
|
|
2
|
+
import { AppsInformation } from '../../helpers/app.js';
|
|
3
3
|
export default class GenerateApp extends BaseCommand<typeof GenerateApp> {
|
|
4
4
|
static apps: AppsInformation;
|
|
5
5
|
static providers: string[];
|
|
@@ -8,11 +8,11 @@ export default class GenerateApp extends BaseCommand<typeof GenerateApp> {
|
|
|
8
8
|
static summary: string;
|
|
9
9
|
static examples: string[];
|
|
10
10
|
static flags: {
|
|
11
|
-
provider: import("@oclif/core/
|
|
12
|
-
framework: import("@oclif/core/
|
|
13
|
-
library: import("@oclif/core/
|
|
14
|
-
path: import("@oclif/core/
|
|
15
|
-
force: import("@oclif/core/
|
|
11
|
+
provider: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
framework: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
library: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
+
path: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
+
force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
16
16
|
};
|
|
17
17
|
init(): Promise<void>;
|
|
18
18
|
run(): Promise<void>;
|
|
@@ -1,33 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const env_configurer_1 = require("../../services/generator/env-configurer");
|
|
19
|
-
const uuid_1 = require("uuid");
|
|
20
|
-
const bff_service_1 = require("../../services/affinidi/bff-service");
|
|
1
|
+
import { confirm, input, password, select } from '@inquirer/prompts';
|
|
2
|
+
import { ux, Flags } from '@oclif/core';
|
|
3
|
+
import { CLIError } from '@oclif/core/errors';
|
|
4
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
5
|
+
import z from 'zod';
|
|
6
|
+
import { BaseCommand } from '../../common/base-command.js';
|
|
7
|
+
import { RefAppProvider, SupportedAlgorithms } from '../../common/constants.js';
|
|
8
|
+
import { giveFlagInputErrorMessage } from '../../common/error-messages.js';
|
|
9
|
+
import { promptRequiredParameters } from '../../common/prompts.js';
|
|
10
|
+
import { INPUT_LIMIT, TOKEN_LIMIT, validateInputLength } from '../../common/validators.js';
|
|
11
|
+
import { getAppMetadataToken, getAppName, getApps, getRedirectUri, getSupportedAppsInformation, } from '../../helpers/app.js';
|
|
12
|
+
import { cloneWithDegit } from '../../helpers/degit.js';
|
|
13
|
+
import { addPrincipal, createToken, generateKeyPair, updatePolicies } from '../../helpers/token.js';
|
|
14
|
+
import { bffService } from '../../services/affinidi/bff-service.js';
|
|
15
|
+
import { vpAdapterService } from '../../services/affinidi/vp-adapter/service.js';
|
|
16
|
+
import { createAuth0Resources } from '../../services/generator/auth0.js';
|
|
17
|
+
import { configureAppEnvironment } from '../../services/generator/env-configurer.js';
|
|
21
18
|
const APPS_INFORMATION_GITHUB_LOCATION = 'samples/apps.json';
|
|
22
19
|
const APPS_GITHUB_LOCATION = 'affinidi/reference-app-affinidi-vault/samples';
|
|
23
|
-
class GenerateApp extends
|
|
20
|
+
class GenerateApp extends BaseCommand {
|
|
24
21
|
async init() {
|
|
25
|
-
GenerateApp.apps = await
|
|
26
|
-
const { providers, frameworks, libraries } =
|
|
22
|
+
GenerateApp.apps = await getApps(APPS_INFORMATION_GITHUB_LOCATION);
|
|
23
|
+
const { providers, frameworks, libraries } = getSupportedAppsInformation(GenerateApp.apps);
|
|
27
24
|
GenerateApp.providers = providers;
|
|
28
25
|
GenerateApp.frameworks = frameworks;
|
|
29
26
|
GenerateApp.libraries = libraries;
|
|
30
|
-
GenerateApp.flags.provider =
|
|
27
|
+
GenerateApp.flags.provider = Flags.string({
|
|
31
28
|
char: 'a',
|
|
32
29
|
summary: 'Authentication provider for the sample app',
|
|
33
30
|
options: providers,
|
|
@@ -38,12 +35,12 @@ class GenerateApp extends common_1.BaseCommand {
|
|
|
38
35
|
const { flags } = await this.parse(GenerateApp);
|
|
39
36
|
if (flags['no-input']) {
|
|
40
37
|
if (!flags.provider)
|
|
41
|
-
throw new
|
|
38
|
+
throw new CLIError(giveFlagInputErrorMessage('provider'));
|
|
42
39
|
if (!flags.framework)
|
|
43
|
-
throw new
|
|
40
|
+
throw new CLIError(giveFlagInputErrorMessage('framework'));
|
|
44
41
|
}
|
|
45
42
|
const provider = flags.provider ??
|
|
46
|
-
(await
|
|
43
|
+
(await select({
|
|
47
44
|
message: 'Select the provider for the sample app',
|
|
48
45
|
choices: GenerateApp.providers.map((value) => ({
|
|
49
46
|
name: value,
|
|
@@ -57,7 +54,7 @@ class GenerateApp extends common_1.BaseCommand {
|
|
|
57
54
|
frameworks.unshift(frameworks.splice(nextJsIndex, 1)[0]);
|
|
58
55
|
}
|
|
59
56
|
const framework = flags.framework ??
|
|
60
|
-
(await
|
|
57
|
+
(await select({
|
|
61
58
|
message: 'Select the framework for the sample app',
|
|
62
59
|
choices: frameworks.map((value) => ({
|
|
63
60
|
name: value,
|
|
@@ -65,37 +62,37 @@ class GenerateApp extends common_1.BaseCommand {
|
|
|
65
62
|
})),
|
|
66
63
|
}));
|
|
67
64
|
const library = flags.library ??
|
|
68
|
-
(await
|
|
65
|
+
(await select({
|
|
69
66
|
message: 'Select the library for the sample app',
|
|
70
67
|
choices: GenerateApp.libraries.get(`${provider}-${framework}`).map((value) => ({
|
|
71
68
|
name: value,
|
|
72
69
|
value,
|
|
73
70
|
})),
|
|
74
71
|
}));
|
|
75
|
-
const promptFlags = await
|
|
72
|
+
const promptFlags = await promptRequiredParameters(['path'], flags);
|
|
76
73
|
promptFlags.framework = framework;
|
|
77
74
|
promptFlags.provider = provider;
|
|
78
75
|
promptFlags.library = library;
|
|
79
|
-
const schema =
|
|
80
|
-
path:
|
|
81
|
-
framework:
|
|
82
|
-
provider:
|
|
83
|
-
library:
|
|
76
|
+
const schema = z.object({
|
|
77
|
+
path: z.string().max(INPUT_LIMIT),
|
|
78
|
+
framework: z.string().max(INPUT_LIMIT),
|
|
79
|
+
provider: z.string().max(INPUT_LIMIT),
|
|
80
|
+
library: z.string().max(INPUT_LIMIT),
|
|
84
81
|
});
|
|
85
82
|
const validatedFlags = schema.parse(promptFlags);
|
|
86
|
-
const appName =
|
|
87
|
-
|
|
88
|
-
await
|
|
83
|
+
const appName = getAppName(framework, provider, library);
|
|
84
|
+
ux.action.start('Generating sample app');
|
|
85
|
+
await cloneWithDegit(`${APPS_GITHUB_LOCATION}/${appName}`, validatedFlags.path, flags.force);
|
|
89
86
|
// await cloneWithDegit(`${APPS_GITHUB_LOCATION}/${appName}#token-metadata`, validatedFlags.path, flags.force)
|
|
90
|
-
|
|
87
|
+
ux.action.stop('Generated successfully!');
|
|
91
88
|
if (!flags['no-input']) {
|
|
92
|
-
const configureLogin = await
|
|
89
|
+
const configureLogin = await confirm({
|
|
93
90
|
message: 'Automatically configure Affinidi Login?',
|
|
94
91
|
});
|
|
95
92
|
if (configureLogin) {
|
|
96
|
-
|
|
97
|
-
const configs = await
|
|
98
|
-
|
|
93
|
+
ux.action.start('Fetching available login configurations');
|
|
94
|
+
const configs = await vpAdapterService.listLoginConfigurations();
|
|
95
|
+
ux.action.stop('Fetched successfully!');
|
|
99
96
|
const choices = configs.configurations.map((config) => ({
|
|
100
97
|
value: {
|
|
101
98
|
id: config.configurationId,
|
|
@@ -110,24 +107,24 @@ class GenerateApp extends common_1.BaseCommand {
|
|
|
110
107
|
},
|
|
111
108
|
name: 'Create new login config',
|
|
112
109
|
});
|
|
113
|
-
const selectedConfig = await
|
|
110
|
+
const selectedConfig = await select({
|
|
114
111
|
message: 'Select a login configuration to use in your sample app',
|
|
115
112
|
choices,
|
|
116
113
|
});
|
|
117
114
|
// Create a new login config
|
|
118
115
|
if (selectedConfig.id === 'new-config') {
|
|
119
|
-
const newConfigName =
|
|
116
|
+
const newConfigName = validateInputLength(await input({
|
|
120
117
|
message: `Enter a name for the login config`,
|
|
121
118
|
default: `sample-login-config-${Math.random().toString(36).slice(2, 7)}`,
|
|
122
|
-
}),
|
|
123
|
-
|
|
124
|
-
const redirectUri =
|
|
119
|
+
}), INPUT_LIMIT);
|
|
120
|
+
ux.action.start('Creating login configuration');
|
|
121
|
+
const redirectUri = getRedirectUri(GenerateApp.apps, appName);
|
|
125
122
|
const createLoginConfigInput = {
|
|
126
123
|
name: newConfigName,
|
|
127
124
|
redirectUris: [redirectUri],
|
|
128
125
|
};
|
|
129
|
-
const createConfigOutput = await
|
|
130
|
-
|
|
126
|
+
const createConfigOutput = await vpAdapterService.createLoginConfig(createLoginConfigInput);
|
|
127
|
+
ux.action.stop('Created successfully!');
|
|
131
128
|
this.logJson({ loginConfig: createConfigOutput.auth });
|
|
132
129
|
this.warn(this.chalk.yellowBright.bold("\nPlease save the clientSecret somewhere safe. It will be added to the app env's file. You will not be able to view it again.\n"));
|
|
133
130
|
selectedConfig.id = createConfigOutput.configurationId;
|
|
@@ -137,16 +134,16 @@ class GenerateApp extends common_1.BaseCommand {
|
|
|
137
134
|
let clientSecret = selectedConfig.auth.clientSecret;
|
|
138
135
|
let issuer = selectedConfig.auth.issuer;
|
|
139
136
|
let connectionName;
|
|
140
|
-
clientSecret ?? (clientSecret =
|
|
137
|
+
clientSecret ?? (clientSecret = validateInputLength(await password({
|
|
141
138
|
message: "What is the login configuration's client secret?",
|
|
142
139
|
mask: true,
|
|
143
|
-
}),
|
|
144
|
-
if (provider ===
|
|
145
|
-
const domain =
|
|
146
|
-
const accessToken =
|
|
147
|
-
|
|
140
|
+
}), INPUT_LIMIT));
|
|
141
|
+
if (provider === RefAppProvider.AUTH0) {
|
|
142
|
+
const domain = validateInputLength(await input({ message: 'What is your Auth0 tenant URL?' }), INPUT_LIMIT);
|
|
143
|
+
const accessToken = validateInputLength(await password({ message: 'What is your Auth0 access token?' }), TOKEN_LIMIT);
|
|
144
|
+
ux.action.start('Creating Auth0 resources');
|
|
148
145
|
connectionName = `Affinidi-${framework}`;
|
|
149
|
-
const { auth0ClientId, auth0ClientSecret } = await
|
|
146
|
+
const { auth0ClientId, auth0ClientSecret } = await createAuth0Resources(accessToken, domain, selectedConfig.auth.clientId, clientSecret, selectedConfig.auth.issuer, connectionName, {
|
|
150
147
|
callbackUrl: GenerateApp.apps.appName.redirectUris.callbackUrl,
|
|
151
148
|
logOutUrl: GenerateApp.apps.appName.redirectUris.logOutUrl,
|
|
152
149
|
webOriginUrl: GenerateApp.apps.appName.redirectUris.webOriginUrl,
|
|
@@ -154,35 +151,35 @@ class GenerateApp extends common_1.BaseCommand {
|
|
|
154
151
|
clientId = auth0ClientId;
|
|
155
152
|
clientSecret = auth0ClientSecret;
|
|
156
153
|
issuer = domain;
|
|
157
|
-
|
|
154
|
+
ux.action.stop('Created successfully!');
|
|
158
155
|
}
|
|
159
|
-
const tokenMetadata =
|
|
156
|
+
const tokenMetadata = getAppMetadataToken(GenerateApp.apps, appName);
|
|
160
157
|
let tokenParams;
|
|
161
158
|
if (tokenMetadata) {
|
|
162
|
-
const configureToken = await
|
|
159
|
+
const configureToken = await confirm({
|
|
163
160
|
message: 'Configure Personal Access Token to enable features like credential issuance and Affinidi Iota Framework?',
|
|
164
161
|
});
|
|
165
162
|
if (configureToken) {
|
|
166
|
-
|
|
167
|
-
const keypair =
|
|
163
|
+
ux.action.start('Creating Personal Access Token and assigning app permissions on active project');
|
|
164
|
+
const keypair = generateKeyPair(uuidv4(), SupportedAlgorithms.RS256);
|
|
168
165
|
const jwks = keypair.jwks;
|
|
169
166
|
const tokenName = `sample-app-token-${Math.random().toString(36).slice(2, 7)}`;
|
|
170
|
-
const token = await
|
|
171
|
-
const promises = [
|
|
167
|
+
const token = await createToken(tokenName, SupportedAlgorithms.RS256, jwks);
|
|
168
|
+
const promises = [addPrincipal(token.id), bffService.getActiveProject()];
|
|
172
169
|
const [, activeProject] = await Promise.all(promises);
|
|
173
170
|
const projectId = activeProject.id;
|
|
174
|
-
await
|
|
171
|
+
await updatePolicies(token.id, projectId, tokenMetadata.policy.actions, [`*:${projectId}:*`]);
|
|
175
172
|
tokenParams = {
|
|
176
173
|
projectId,
|
|
177
174
|
tokenId: token.id,
|
|
178
175
|
privateKey: keypair.privateKey,
|
|
179
176
|
};
|
|
180
|
-
|
|
177
|
+
ux.action.stop('Created successfully!');
|
|
181
178
|
this.logJson(tokenParams);
|
|
182
179
|
this.warn(this.chalk.yellowBright.bold("\nPlease save the privateKey somewhere safe. It will be added to the app env's file. You will not be able to view it again.\n"));
|
|
183
180
|
}
|
|
184
181
|
}
|
|
185
|
-
await
|
|
182
|
+
await configureAppEnvironment(validatedFlags.path, {
|
|
186
183
|
clientId,
|
|
187
184
|
clientSecret,
|
|
188
185
|
issuer,
|
|
@@ -194,13 +191,12 @@ class GenerateApp extends common_1.BaseCommand {
|
|
|
194
191
|
}
|
|
195
192
|
catch (err) {
|
|
196
193
|
if (!err?.oclif)
|
|
197
|
-
throw new
|
|
194
|
+
throw new CLIError('Unexpected error while generating sample app');
|
|
198
195
|
else
|
|
199
|
-
throw new
|
|
196
|
+
throw new CLIError(err);
|
|
200
197
|
}
|
|
201
198
|
}
|
|
202
199
|
}
|
|
203
|
-
exports.default = GenerateApp;
|
|
204
200
|
GenerateApp.providers = [];
|
|
205
201
|
GenerateApp.summary = 'Generates code samples that integrates Affinidi Login. Requires git';
|
|
206
202
|
GenerateApp.examples = [
|
|
@@ -209,24 +205,25 @@ GenerateApp.examples = [
|
|
|
209
205
|
'<%= config.bin %> <%= command.id %> --path "../my-app" --framework django --provider affinidi --force',
|
|
210
206
|
];
|
|
211
207
|
GenerateApp.flags = {
|
|
212
|
-
provider:
|
|
208
|
+
provider: Flags.string({
|
|
213
209
|
char: 'a',
|
|
214
210
|
summary: 'Authentication provider for the sample app',
|
|
215
211
|
}),
|
|
216
|
-
framework:
|
|
212
|
+
framework: Flags.string({
|
|
217
213
|
char: 'f',
|
|
218
214
|
summary: 'Framework for the sample app',
|
|
219
215
|
}),
|
|
220
|
-
library:
|
|
216
|
+
library: Flags.string({
|
|
221
217
|
char: 'l',
|
|
222
218
|
summary: 'Library for the sample app',
|
|
223
219
|
}),
|
|
224
|
-
path:
|
|
220
|
+
path: Flags.string({
|
|
225
221
|
char: 'p',
|
|
226
222
|
summary: 'Relative or absolute path where sample app should be cloned into',
|
|
227
223
|
}),
|
|
228
|
-
force:
|
|
224
|
+
force: Flags.boolean({
|
|
229
225
|
summary: 'Override destination directory if exists',
|
|
230
226
|
}),
|
|
231
227
|
};
|
|
228
|
+
export default GenerateApp;
|
|
232
229
|
//# sourceMappingURL=app.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/commands/generate/app.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/commands/generate/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAC1F,OAAO,EAEL,mBAAmB,EACnB,UAAU,EACV,OAAO,EACP,cAAc,EACd,2BAA2B,GAC5B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACnG,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAA;AAEnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAA;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAA;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAA;AAEpF,MAAM,gCAAgC,GAAG,mBAAmB,CAAA;AAC5D,MAAM,oBAAoB,GAAG,+CAA+C,CAAA;AAE5E,MAAqB,WAAY,SAAQ,WAA+B;IAkCtE,KAAK,CAAC,IAAI;QACR,WAAW,CAAC,IAAI,GAAG,MAAM,OAAO,CAAC,gCAAgC,CAAC,CAAA;QAClE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,2BAA2B,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAC1F,WAAW,CAAC,SAAS,GAAG,SAAS,CAAA;QACjC,WAAW,CAAC,UAAU,GAAG,UAAU,CAAA;QACnC,WAAW,CAAC,SAAS,GAAG,SAAS,CAAA;QAEjC,WAAW,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;YACxC,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,4CAA4C;YACrD,OAAO,EAAE,SAAS;SACnB,CAAC,CAAA;IACJ,CAAC;IAEM,KAAK,CAAC,GAAG;QACd,IAAI,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;YAC/C,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,KAAK,CAAC,QAAQ;oBAAE,MAAM,IAAI,QAAQ,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC,CAAA;gBAC9E,IAAI,CAAC,KAAK,CAAC,SAAS;oBAAE,MAAM,IAAI,QAAQ,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC,CAAA;YAClF,CAAC;YACD,MAAM,QAAQ,GACZ,KAAK,CAAC,QAAQ;gBACd,CAAC,MAAM,MAAM,CAAC;oBACZ,OAAO,EAAE,wCAAwC;oBACjD,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBAC7C,IAAI,EAAE,KAAK;wBACX,KAAK;qBACN,CAAC,CAAC;iBACJ,CAAC,CAAC,CAAA;YAEL,2BAA2B;YAC3B,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAA;YACxD,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;YAChD,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;gBACpB,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1D,CAAC;YACD,MAAM,SAAS,GACb,KAAK,CAAC,SAAS;gBACf,CAAC,MAAM,MAAM,CAAC;oBACZ,OAAO,EAAE,yCAAyC;oBAClD,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBAClC,IAAI,EAAE,KAAK;wBACX,KAAK;qBACN,CAAC,CAAC;iBACJ,CAAC,CAAC,CAAA;YACL,MAAM,OAAO,GACX,KAAK,CAAC,OAAO;gBACb,CAAC,MAAM,MAAM,CAAC;oBACZ,OAAO,EAAE,uCAAuC;oBAChD,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,QAAQ,IAAI,SAAS,EAAE,CAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBAC9E,IAAI,EAAE,KAAK;wBACX,KAAK;qBACN,CAAC,CAAC;iBACJ,CAAC,CAAC,CAAA;YAEL,MAAM,WAAW,GAAG,MAAM,wBAAwB,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAA;YACnE,WAAW,CAAC,SAAS,GAAG,SAAS,CAAA;YACjC,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAA;YAC/B,WAAW,CAAC,OAAO,GAAG,OAAO,CAAA;YAE7B,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;gBACtB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC;gBACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC;gBACtC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC;gBACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC;aACrC,CAAC,CAAA;YACF,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;YAChD,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;YAExD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;YAExC,MAAM,cAAc,CAAC,GAAG,oBAAoB,IAAI,OAAO,EAAE,EAAE,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;YAC5F,8GAA8G;YAE9G,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;YAEzC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;gBACvB,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC;oBACnC,OAAO,EAAE,yCAAyC;iBACnD,CAAC,CAAA;gBACF,IAAI,cAAc,EAAE,CAAC;oBACnB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAA;oBAC1D,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,uBAAuB,EAAE,CAAA;oBAChE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;oBACvC,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;wBACtD,KAAK,EAAE;4BACL,EAAE,EAAE,MAAM,CAAC,eAAe;4BAC1B,IAAI,EAAE,MAAM,CAAC,IAAI;yBAClB;wBACD,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,SAAS,MAAM,CAAC,eAAe,GAAG;qBACvD,CAAC,CAAC,CAAA;oBACH,OAAO,CAAC,OAAO,CAAC;wBACd,KAAK,EAAE;4BACL,EAAE,EAAE,YAAY;4BAChB,IAAI,EAAE,SAAS;yBAChB;wBACD,IAAI,EAAE,yBAAyB;qBAChC,CAAC,CAAA;oBACF,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC;wBAClC,OAAO,EAAE,wDAAwD;wBACjE,OAAO;qBACR,CAAC,CAAA;oBACF,4BAA4B;oBAC5B,IAAI,cAAc,CAAC,EAAE,KAAK,YAAY,EAAE,CAAC;wBACvC,MAAM,aAAa,GAAG,mBAAmB,CACvC,MAAM,KAAK,CAAC;4BACV,OAAO,EAAE,mCAAmC;4BAC5C,OAAO,EAAE,uBAAuB,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;yBACzE,CAAC,EACF,WAAW,CACZ,CAAA;wBACD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;wBAC/C,MAAM,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;wBAC7D,MAAM,sBAAsB,GAAG;4BAC7B,IAAI,EAAE,aAAa;4BACnB,YAAY,EAAE,CAAC,WAAW,CAAC;yBAC5B,CAAA;wBACD,MAAM,kBAAkB,GAAG,MAAM,gBAAgB,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,CAAA;wBAC3F,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;wBACvC,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAA;wBACtD,IAAI,CAAC,IAAI,CACP,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAC1B,iIAAiI,CAClI,CACF,CAAA;wBACD,cAAc,CAAC,EAAE,GAAG,kBAAkB,CAAC,eAAe,CAAA;wBACtD,cAAc,CAAC,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAA;oBAC/C,CAAC;oBAED,IAAI,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAA;oBAC3C,IAAI,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,YAAY,CAAA;oBACnD,IAAI,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAA;oBACvC,IAAI,cAAc,CAAA;oBAElB,YAAY,KAAZ,YAAY,GAAK,mBAAmB,CAClC,MAAM,QAAQ,CAAC;wBACb,OAAO,EAAE,kDAAkD;wBAC3D,IAAI,EAAE,IAAI;qBACX,CAAC,EACF,WAAW,CACZ,EAAA;oBAED,IAAI,QAAQ,KAAK,cAAc,CAAC,KAAK,EAAE,CAAC;wBACtC,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAA;wBAC3G,MAAM,WAAW,GAAG,mBAAmB,CACrC,MAAM,QAAQ,CAAC,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC,EAC/D,WAAW,CACZ,CAAA;wBACD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;wBAC3C,cAAc,GAAG,YAAY,SAAS,EAAE,CAAA;wBACxC,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,GAAG,MAAM,oBAAoB,CACrE,WAAW,EACX,MAAM,EACN,cAAc,CAAC,IAAI,CAAC,QAAQ,EAC5B,YAAY,EACZ,cAAc,CAAC,IAAI,CAAC,MAAM,EAC1B,cAAc,EACd;4BACE,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW;4BAC9D,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAU;4BAC3D,YAAY,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,YAAa;yBAClE,CACF,CAAA;wBACD,QAAQ,GAAG,aAAa,CAAA;wBACxB,YAAY,GAAG,iBAAiB,CAAA;wBAChC,MAAM,GAAG,MAAM,CAAA;wBACf,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;oBACzC,CAAC;oBAED,MAAM,aAAa,GAAG,mBAAmB,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;oBACpE,IAAI,WAAW,CAAA;oBACf,IAAI,aAAa,EAAE,CAAC;wBAClB,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC;4BACnC,OAAO,EACL,0GAA0G;yBAC7G,CAAC,CAAA;wBACF,IAAI,cAAc,EAAE,CAAC;4BACnB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,gFAAgF,CAAC,CAAA;4BACjG,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAA;4BACpE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAwB,CAAA;4BAC7C,MAAM,SAAS,GAAG,oBAAoB,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAA;4BAC9E,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,SAAS,EAAE,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;4BAC3E,MAAM,QAAQ,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAA;4BACxE,MAAM,CAAC,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;4BACrD,MAAM,SAAS,GAAG,aAAc,CAAC,EAAE,CAAA;4BACnC,MAAM,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,CAAA;4BAC7F,WAAW,GAAG;gCACZ,SAAS;gCACT,OAAO,EAAE,KAAK,CAAC,EAAE;gCACjB,UAAU,EAAE,OAAO,CAAC,UAAoB;6BACzC,CAAA;4BACD,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;4BACvC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;4BACzB,IAAI,CAAC,IAAI,CACP,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAC1B,+HAA+H,CAChI,CACF,CAAA;wBACH,CAAC;oBACH,CAAC;oBACD,MAAM,uBAAuB,CAC3B,cAAc,CAAC,IAAI,EACnB;wBACE,QAAQ;wBACR,YAAY;wBACZ,MAAM;wBACN,cAAc;qBACf,EACD,WAAW,CACZ,CAAA;gBACH,CAAC;YACH,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,qFAAqF,CAAC,CAAA;QACjG,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,GAAG,EAAE,KAAK;gBAAE,MAAM,IAAI,QAAQ,CAAC,8CAA8C,CAAC,CAAA;;gBAC9E,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC;;AA1PM,qBAAS,GAAa,EAAE,CAAA;AAGxB,mBAAO,GAAG,qEAAqE,CAAA;AAC/E,oBAAQ,GAAG;IAChB,qCAAqC;IACrC,0EAA0E;IAC1E,uGAAuG;CACxG,CAAA;AAEM,iBAAK,GAAG;IACb,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;QACrB,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,4CAA4C;KACtD,CAAC;IACF,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC;QACtB,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,8BAA8B;KACxC,CAAC;IACF,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;QACpB,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,4BAA4B;KACtC,CAAC;IACF,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,kEAAkE;KAC5E,CAAC;IACF,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;QACnB,OAAO,EAAE,0CAA0C;KACpD,CAAC;CACH,CAAA;eAhCkB,WAAW"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { BaseCommand } from '../../common';
|
|
1
|
+
import { BaseCommand } from '../../common/base-command.js';
|
|
2
2
|
export declare class AddPrincipal extends BaseCommand<typeof AddPrincipal> {
|
|
3
3
|
static summary: string;
|
|
4
4
|
static description: string;
|
|
5
5
|
static examples: string[];
|
|
6
6
|
static flags: {
|
|
7
|
-
'principal-id': import("@oclif/core/
|
|
8
|
-
'principal-type': import("@oclif/core/
|
|
7
|
+
'principal-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
+
'principal-type': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
9
|
};
|
|
10
10
|
run(): Promise<void>;
|
|
11
11
|
}
|
|
@@ -1,63 +1,59 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const validators_1 = require("../../common/validators");
|
|
14
|
-
const iam_1 = require("../../services/affinidi/iam");
|
|
15
|
-
class AddPrincipal extends common_1.BaseCommand {
|
|
1
|
+
import { select } from '@inquirer/prompts';
|
|
2
|
+
import { ux, Flags } from '@oclif/core';
|
|
3
|
+
import { CLIError } from '@oclif/core/errors';
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
import { BaseCommand } from '../../common/base-command.js';
|
|
7
|
+
import { giveFlagInputErrorMessage } from '../../common/error-messages.js';
|
|
8
|
+
import { promptRequiredParameters } from '../../common/prompts.js';
|
|
9
|
+
import { INPUT_LIMIT } from '../../common/validators.js';
|
|
10
|
+
import { iamService } from '../../services/affinidi/iam/service.js';
|
|
11
|
+
import { PrincipalTypes } from '../../common/constants.js';
|
|
12
|
+
export class AddPrincipal extends BaseCommand {
|
|
16
13
|
async run() {
|
|
17
14
|
const { flags } = await this.parse(AddPrincipal);
|
|
18
|
-
const promptFlags = await
|
|
15
|
+
const promptFlags = await promptRequiredParameters(['principal-id'], flags);
|
|
19
16
|
if (flags['no-input']) {
|
|
20
17
|
if (!promptFlags['principal-type']) {
|
|
21
|
-
throw new
|
|
18
|
+
throw new CLIError(giveFlagInputErrorMessage('principal-type'));
|
|
22
19
|
}
|
|
23
20
|
}
|
|
24
|
-
promptFlags['principal-type'] ?? (promptFlags['principal-type'] = await
|
|
21
|
+
promptFlags['principal-type'] ?? (promptFlags['principal-type'] = await select({
|
|
25
22
|
message: 'Select the principal-type',
|
|
26
|
-
choices: Object.values(
|
|
23
|
+
choices: Object.values(PrincipalTypes).map((value) => ({
|
|
27
24
|
name: value,
|
|
28
25
|
value,
|
|
29
26
|
})),
|
|
30
27
|
}));
|
|
31
|
-
const schema =
|
|
32
|
-
'principal-id':
|
|
33
|
-
'principal-type':
|
|
28
|
+
const schema = z.object({
|
|
29
|
+
'principal-id': z.string().max(INPUT_LIMIT).uuid(),
|
|
30
|
+
'principal-type': z.nativeEnum(PrincipalTypes),
|
|
34
31
|
});
|
|
35
32
|
const validatedFlags = schema.parse(promptFlags);
|
|
36
|
-
|
|
37
|
-
await
|
|
33
|
+
ux.action.start('Adding principal to project');
|
|
34
|
+
await iamService.addPrincipalToProject({
|
|
38
35
|
principalId: validatedFlags['principal-id'],
|
|
39
36
|
principalType: validatedFlags['principal-type'],
|
|
40
37
|
});
|
|
41
|
-
|
|
38
|
+
ux.action.stop('Added successfully!');
|
|
42
39
|
}
|
|
43
40
|
}
|
|
44
|
-
exports.AddPrincipal = AddPrincipal;
|
|
45
41
|
AddPrincipal.summary = 'Adds a principal (user or token) to the active project';
|
|
46
|
-
AddPrincipal.description = `To change your active project, use command ${
|
|
42
|
+
AddPrincipal.description = `To change your active project, use command ${chalk.inverse('affinidi project select-project')}`;
|
|
47
43
|
AddPrincipal.examples = [
|
|
48
44
|
'<%= config.bin %> <%= command.id %> -i <uuid>',
|
|
49
45
|
'<%= config.bin %> <%= command.id %> --principal-id <uuid> --principal-type token',
|
|
50
46
|
];
|
|
51
47
|
AddPrincipal.flags = {
|
|
52
|
-
'principal-id':
|
|
48
|
+
'principal-id': Flags.string({
|
|
53
49
|
char: 'i',
|
|
54
50
|
summary: 'ID of the principal',
|
|
55
|
-
description: `Get a list of possible IDs with command ${
|
|
51
|
+
description: `Get a list of possible IDs with command ${chalk.inverse('affinidi token list-tokens')}`,
|
|
56
52
|
}),
|
|
57
|
-
'principal-type':
|
|
53
|
+
'principal-type': Flags.string({
|
|
58
54
|
char: 't',
|
|
59
55
|
summary: 'Type of the principal',
|
|
60
|
-
options: Object.values(
|
|
56
|
+
options: Object.values(PrincipalTypes),
|
|
61
57
|
}),
|
|
62
58
|
};
|
|
63
59
|
//# sourceMappingURL=add-principal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-principal.js","sourceRoot":"","sources":["../../../src/commands/iam/add-principal.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"add-principal.js","sourceRoot":"","sources":["../../../src/commands/iam/add-principal.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { BaseCommand } from '../../common';
|
|
2
|
-
import { PolicyDto } from '../../services/affinidi/iam/iam.api';
|
|
1
|
+
import { BaseCommand } from '../../common/base-command.js';
|
|
2
|
+
import { PolicyDto } from '../../services/affinidi/iam/iam.api.js';
|
|
3
3
|
export declare class GetPolicies extends BaseCommand<typeof GetPolicies> {
|
|
4
4
|
static summary: string;
|
|
5
5
|
static description: string;
|
|
6
6
|
static examples: string[];
|
|
7
7
|
static flags: {
|
|
8
|
-
'principal-id': import("@oclif/core/
|
|
9
|
-
'principal-type': import("@oclif/core/
|
|
8
|
+
'principal-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
'principal-type': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
10
|
};
|
|
11
11
|
run(): Promise<PolicyDto>;
|
|
12
12
|
}
|