@affinidi/cli 2.0.0-beta.1 → 2.0.0-beta.11
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 +806 -661
- package/dist/commands/generate/app.d.ts +17 -0
- package/dist/commands/generate/app.js +147 -0
- package/dist/commands/generate/app.js.map +1 -0
- package/dist/commands/iam/add-principal.d.ts +11 -0
- package/dist/commands/iam/add-principal.js +63 -0
- package/dist/commands/iam/add-principal.js.map +1 -0
- package/dist/commands/iam/get-policies.d.ts +12 -0
- package/dist/commands/iam/get-policies.js +64 -0
- package/dist/commands/iam/get-policies.js.map +1 -0
- package/dist/commands/iam/list-principals.d.ts +8 -0
- package/dist/commands/iam/list-principals.js +23 -0
- package/dist/commands/iam/list-principals.js.map +1 -0
- package/dist/commands/iam/remove-principal.d.ts +14 -0
- package/dist/commands/iam/remove-principal.js +63 -0
- package/dist/commands/iam/remove-principal.js.map +1 -0
- package/dist/commands/iam/update-policies.d.ts +13 -0
- package/dist/commands/iam/update-policies.js +127 -0
- package/dist/commands/iam/update-policies.js.map +1 -0
- package/dist/commands/login/add-user-to-group.d.ts +11 -0
- package/dist/commands/login/add-user-to-group.js +39 -0
- package/dist/commands/login/add-user-to-group.js.map +1 -0
- package/dist/commands/login/create-config.d.ts +17 -0
- package/dist/commands/login/create-config.js +142 -0
- package/dist/commands/login/create-config.js.map +1 -0
- package/dist/commands/login/create-group.d.ts +10 -0
- package/dist/commands/login/create-group.js +40 -0
- package/dist/commands/login/create-group.js.map +1 -0
- package/dist/commands/login/delete-config.d.ts +11 -0
- package/dist/commands/login/delete-config.js +39 -0
- package/dist/commands/login/delete-config.js.map +1 -0
- package/dist/commands/login/delete-group.d.ts +11 -0
- package/dist/commands/login/delete-group.js +39 -0
- package/dist/commands/login/delete-group.js.map +1 -0
- package/dist/commands/login/get-config.d.ts +10 -0
- package/dist/commands/login/get-config.js +39 -0
- package/dist/commands/login/get-config.js.map +1 -0
- package/dist/commands/login/get-group.d.ts +10 -0
- package/dist/commands/login/get-group.js +39 -0
- package/dist/commands/login/get-group.js.map +1 -0
- package/dist/commands/login/list-configs.d.ts +7 -0
- package/dist/commands/login/list-configs.js +20 -0
- package/dist/commands/login/list-configs.js.map +1 -0
- package/dist/commands/login/list-groups.d.ts +7 -0
- package/dist/commands/login/list-groups.js +20 -0
- package/dist/commands/login/list-groups.js.map +1 -0
- package/dist/commands/login/list-users-in-group.d.ts +10 -0
- package/dist/commands/login/list-users-in-group.js +35 -0
- package/dist/commands/login/list-users-in-group.js.map +1 -0
- package/dist/commands/login/remove-user-from-group.d.ts +13 -0
- package/dist/commands/login/remove-user-from-group.js +40 -0
- package/dist/commands/login/remove-user-from-group.js.map +1 -0
- package/dist/commands/login/update-config.d.ts +17 -0
- package/dist/commands/login/update-config.js +123 -0
- package/dist/commands/login/update-config.js.map +1 -0
- package/dist/commands/project/create-project.d.ts +11 -0
- package/dist/commands/project/create-project.js +47 -0
- package/dist/commands/project/create-project.js.map +1 -0
- package/dist/commands/project/get-active-project.d.ts +7 -0
- package/dist/commands/project/get-active-project.js +20 -0
- package/dist/commands/project/get-active-project.js.map +1 -0
- package/dist/commands/project/list-projects.d.ts +7 -0
- package/dist/commands/project/list-projects.js +20 -0
- package/dist/commands/project/list-projects.js.map +1 -0
- package/dist/commands/project/select-project.d.ts +10 -0
- package/dist/commands/project/select-project.js +69 -0
- package/dist/commands/project/select-project.js.map +1 -0
- package/dist/commands/start.d.ts +3 -36
- package/dist/commands/start.js +19 -412
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/stop.d.ts +6 -0
- package/dist/commands/stop.js +34 -0
- package/dist/commands/stop.js.map +1 -0
- package/dist/commands/token/create-token.d.ts +13 -0
- package/dist/commands/token/create-token.js +78 -0
- package/dist/commands/token/create-token.js.map +1 -0
- package/dist/commands/token/delete-token.d.ts +11 -0
- package/dist/commands/token/delete-token.js +36 -0
- package/dist/commands/token/delete-token.js.map +1 -0
- package/dist/commands/token/get-token.d.ts +10 -0
- package/dist/commands/token/get-token.js +36 -0
- package/dist/commands/token/get-token.js.map +1 -0
- package/dist/commands/token/list-tokens.d.ts +7 -0
- package/dist/commands/token/list-tokens.js +20 -0
- package/dist/commands/token/list-tokens.js.map +1 -0
- package/dist/commands/token/update-token.d.ts +14 -0
- package/dist/commands/token/update-token.js +83 -0
- package/dist/commands/token/update-token.js.map +1 -0
- package/dist/commands/whoami.d.ts +6 -0
- package/dist/commands/whoami.js +20 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/common/base-command.d.ts +29 -0
- package/dist/common/base-command.js +65 -0
- package/dist/common/base-command.js.map +1 -0
- package/dist/common/constants.d.ts +27 -0
- package/dist/common/constants.js +31 -0
- package/dist/common/constants.js.map +1 -0
- package/dist/common/error-messages.d.ts +1 -0
- package/dist/common/error-messages.js +8 -0
- package/dist/common/error-messages.js.map +1 -0
- package/dist/common/index.d.ts +2 -0
- package/dist/common/index.js +8 -0
- package/dist/common/index.js.map +1 -0
- package/dist/common/prompts.d.ts +1 -0
- package/dist/common/prompts.js +21 -0
- package/dist/common/prompts.js.map +1 -0
- package/dist/common/validators.d.ts +4 -0
- package/dist/common/validators.js +15 -0
- package/dist/common/validators.js.map +1 -0
- package/dist/helpers/app.d.ts +11 -0
- package/dist/helpers/app.js +92 -0
- package/dist/helpers/app.js.map +1 -0
- package/dist/helpers/degit.d.ts +1 -0
- package/dist/helpers/degit.js +26 -0
- package/dist/helpers/degit.js.map +1 -0
- package/dist/helpers/jwk.d.ts +4 -0
- package/dist/helpers/jwk.js +29 -0
- package/dist/helpers/jwk.js.map +1 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.js +1 -3
- package/dist/index.js.map +1 -1
- package/dist/services/affinidi/auth/auth-result-page.d.ts +1 -0
- package/dist/services/affinidi/auth/auth-result-page.js +110 -0
- package/dist/services/affinidi/auth/auth-result-page.js.map +1 -0
- package/dist/services/affinidi/auth/bff-auth-provider.d.ts +26 -0
- package/dist/services/affinidi/auth/bff-auth-provider.js +124 -0
- package/dist/services/affinidi/auth/bff-auth-provider.js.map +1 -0
- package/dist/services/affinidi/auth/types.d.ts +7 -0
- package/dist/services/affinidi/auth/types.js +3 -0
- package/dist/services/affinidi/auth/types.js.map +1 -0
- package/dist/services/affinidi/bff-service.d.ts +20 -0
- package/dist/services/affinidi/bff-service.js +88 -0
- package/dist/services/affinidi/bff-service.js.map +1 -0
- package/dist/services/affinidi/errors.d.ts +3 -0
- package/dist/services/affinidi/errors.js +75 -0
- package/dist/services/affinidi/errors.js.map +1 -0
- package/dist/services/affinidi/iam/iam.api.d.ts +470 -0
- package/dist/services/affinidi/iam/iam.api.js +342 -0
- package/dist/services/affinidi/iam/iam.api.js.map +1 -0
- package/dist/services/affinidi/iam/index.d.ts +21 -0
- package/dist/services/affinidi/iam/index.js +148 -0
- package/dist/services/affinidi/iam/index.js.map +1 -0
- package/dist/services/affinidi/logger/console-logger-adapter.d.ts +12 -0
- package/dist/services/affinidi/logger/console-logger-adapter.js +56 -0
- package/dist/services/affinidi/logger/console-logger-adapter.js.map +1 -0
- package/dist/services/affinidi/logger/index.d.ts +2 -0
- package/dist/services/affinidi/logger/index.js +6 -0
- package/dist/services/affinidi/logger/index.js.map +1 -0
- package/dist/services/affinidi/logger/logger-adapter.d.ts +10 -0
- package/dist/services/affinidi/logger/logger-adapter.js +3 -0
- package/dist/services/affinidi/logger/logger-adapter.js.map +1 -0
- package/dist/services/affinidi/vp-adapter/index.d.ts +20 -0
- package/dist/services/affinidi/vp-adapter/index.js +145 -0
- package/dist/services/affinidi/vp-adapter/index.js.map +1 -0
- package/dist/services/affinidi/vp-adapter/vp-adapter.api.d.ts +862 -0
- package/dist/services/affinidi/vp-adapter/vp-adapter.api.js +550 -0
- package/dist/services/affinidi/vp-adapter/vp-adapter.api.js.map +1 -0
- package/dist/services/credentials-vault.d.ts +19 -0
- package/dist/services/credentials-vault.js +33 -0
- package/dist/services/credentials-vault.js.map +1 -0
- package/dist/services/env-config.d.ts +35 -0
- package/dist/services/env-config.js +39 -0
- package/dist/services/env-config.js.map +1 -0
- package/dist/services/generator/auth0.d.ts +6 -0
- package/dist/services/generator/auth0.js +79 -0
- package/dist/services/generator/auth0.js.map +1 -0
- package/dist/services/generator/env-configurer.d.ts +1 -0
- package/dist/services/generator/env-configurer.js +22 -0
- package/dist/services/generator/env-configurer.js.map +1 -0
- package/package.json +64 -77
- package/bin/inject-secrets.js +0 -16
- package/bin/postinstall.js +0 -31
- package/dist/commands/analytics.d.ts +0 -21
- package/dist/commands/analytics.js +0 -74
- package/dist/commands/analytics.js.map +0 -1
- package/dist/commands/config/index.d.ts +0 -15
- package/dist/commands/config/index.js +0 -71
- package/dist/commands/config/index.js.map +0 -1
- package/dist/commands/config/username.d.ts +0 -17
- package/dist/commands/config/username.js +0 -87
- package/dist/commands/config/username.js.map +0 -1
- package/dist/commands/config/view.d.ts +0 -16
- package/dist/commands/config/view.js +0 -59
- package/dist/commands/config/view.js.map +0 -1
- package/dist/commands/create/project.d.ts +0 -16
- package/dist/commands/create/project.js +0 -82
- package/dist/commands/create/project.js.map +0 -1
- package/dist/commands/create/schema.d.ts +0 -18
- package/dist/commands/create/schema.js +0 -149
- package/dist/commands/create/schema.js.map +0 -1
- package/dist/commands/generate-application/index.d.ts +0 -28
- package/dist/commands/generate-application/index.js +0 -94
- package/dist/commands/generate-application/index.js.map +0 -1
- package/dist/commands/issue-vc.d.ts +0 -21
- package/dist/commands/issue-vc.js +0 -159
- package/dist/commands/issue-vc.js.map +0 -1
- package/dist/commands/list/projects.d.ts +0 -17
- package/dist/commands/list/projects.js +0 -110
- package/dist/commands/list/projects.js.map +0 -1
- package/dist/commands/list/schemas.d.ts +0 -26
- package/dist/commands/list/schemas.js +0 -164
- package/dist/commands/list/schemas.js.map +0 -1
- package/dist/commands/login/index.d.ts +0 -17
- package/dist/commands/login/index.js +0 -142
- package/dist/commands/login/index.js.map +0 -1
- package/dist/commands/logout/index.d.ts +0 -13
- package/dist/commands/logout/index.js +0 -72
- package/dist/commands/logout/index.js.map +0 -1
- package/dist/commands/rename/project.d.ts +0 -17
- package/dist/commands/rename/project.js +0 -100
- package/dist/commands/rename/project.js.map +0 -1
- package/dist/commands/show/project.d.ts +0 -16
- package/dist/commands/show/project.js +0 -121
- package/dist/commands/show/project.js.map +0 -1
- package/dist/commands/show/schema.d.ts +0 -17
- package/dist/commands/show/schema.js +0 -111
- package/dist/commands/show/schema.js.map +0 -1
- package/dist/commands/show/user.d.ts +0 -14
- package/dist/commands/show/user.js +0 -61
- package/dist/commands/show/user.js.map +0 -1
- package/dist/commands/sign-up/index.d.ts +0 -13
- package/dist/commands/sign-up/index.js +0 -83
- package/dist/commands/sign-up/index.js.map +0 -1
- package/dist/commands/use/project.d.ts +0 -15
- package/dist/commands/use/project.js +0 -103
- package/dist/commands/use/project.js.map +0 -1
- package/dist/commands/verify-vc.d.ts +0 -15
- package/dist/commands/verify-vc.js +0 -88
- package/dist/commands/verify-vc.js.map +0 -1
- package/dist/constants.d.ts +0 -44
- package/dist/constants.js +0 -78
- package/dist/constants.js.map +0 -1
- package/dist/customFlags/outputFlag.d.ts +0 -2
- package/dist/customFlags/outputFlag.js +0 -10
- package/dist/customFlags/outputFlag.js.map +0 -1
- package/dist/errors/index.d.ts +0 -37
- package/dist/errors/index.js +0 -118
- package/dist/errors/index.js.map +0 -1
- package/dist/exposedFunctions/genApp.d.ts +0 -27
- package/dist/exposedFunctions/genApp.js +0 -186
- package/dist/exposedFunctions/genApp.js.map +0 -1
- package/dist/fixtures/mock-projects.d.ts +0 -8
- package/dist/fixtures/mock-projects.js +0 -65
- package/dist/fixtures/mock-projects.js.map +0 -1
- package/dist/fixtures/mock-schemas.d.ts +0 -5
- package/dist/fixtures/mock-schemas.js +0 -47
- package/dist/fixtures/mock-schemas.js.map +0 -1
- package/dist/fixtures/mock-status.d.ts +0 -7
- package/dist/fixtures/mock-status.js +0 -88
- package/dist/fixtures/mock-status.js.map +0 -1
- package/dist/hooks/check/checkVersion.d.ts +0 -16
- package/dist/hooks/check/checkVersion.js +0 -23
- package/dist/hooks/check/checkVersion.js.map +0 -1
- package/dist/middleware/authentication.d.ts +0 -2
- package/dist/middleware/authentication.js +0 -24
- package/dist/middleware/authentication.js.map +0 -1
- package/dist/middleware/display.d.ts +0 -7
- package/dist/middleware/display.js +0 -72
- package/dist/middleware/display.js.map +0 -1
- package/dist/render/functions.d.ts +0 -30
- package/dist/render/functions.js +0 -138
- package/dist/render/functions.js.map +0 -1
- package/dist/render/texts.d.ts +0 -19
- package/dist/render/texts.js +0 -102
- package/dist/render/texts.js.map +0 -1
- package/dist/services/analytics/analytics.api.d.ts +0 -79
- package/dist/services/analytics/analytics.api.js +0 -134
- package/dist/services/analytics/analytics.api.js.map +0 -1
- package/dist/services/analytics/index.d.ts +0 -21
- package/dist/services/analytics/index.js +0 -80
- package/dist/services/analytics/index.js.map +0 -1
- package/dist/services/config/index.d.ts +0 -56
- package/dist/services/config/index.js +0 -294
- package/dist/services/config/index.js.map +0 -1
- package/dist/services/git/index.d.ts +0 -5
- package/dist/services/git/index.js +0 -32
- package/dist/services/git/index.js.map +0 -1
- package/dist/services/iam/iam.api.d.ts +0 -158
- package/dist/services/iam/iam.api.js +0 -219
- package/dist/services/iam/iam.api.js.map +0 -1
- package/dist/services/iam/index.d.ts +0 -12
- package/dist/services/iam/index.js +0 -77
- package/dist/services/iam/index.js.map +0 -1
- package/dist/services/index.d.ts +0 -7
- package/dist/services/index.js +0 -19
- package/dist/services/index.js.map +0 -1
- package/dist/services/issuance/bulkIssuance.api.d.ts +0 -23
- package/dist/services/issuance/bulkIssuance.api.js +0 -43
- package/dist/services/issuance/bulkIssuance.api.js.map +0 -1
- package/dist/services/issuance/index.d.ts +0 -14
- package/dist/services/issuance/index.js +0 -63
- package/dist/services/issuance/index.js.map +0 -1
- package/dist/services/issuance/issuance.api.d.ts +0 -226
- package/dist/services/issuance/issuance.api.js +0 -247
- package/dist/services/issuance/issuance.api.js.map +0 -1
- package/dist/services/issuance/parse.schema.url.d.ts +0 -5
- package/dist/services/issuance/parse.schema.url.js +0 -73
- package/dist/services/issuance/parse.schema.url.js.map +0 -1
- package/dist/services/schema-manager/generator/context-generator.d.ts +0 -2
- package/dist/services/schema-manager/generator/context-generator.js +0 -42
- package/dist/services/schema-manager/generator/context-generator.js.map +0 -1
- package/dist/services/schema-manager/generator/helpers.d.ts +0 -22
- package/dist/services/schema-manager/generator/helpers.js +0 -29
- package/dist/services/schema-manager/generator/helpers.js.map +0 -1
- package/dist/services/schema-manager/generator/mapping.d.ts +0 -6
- package/dist/services/schema-manager/generator/mapping.js +0 -22
- package/dist/services/schema-manager/generator/mapping.js.map +0 -1
- package/dist/services/schema-manager/generator/schema-generator.d.ts +0 -2
- package/dist/services/schema-manager/generator/schema-generator.js +0 -103
- package/dist/services/schema-manager/generator/schema-generator.js.map +0 -1
- package/dist/services/schema-manager/generator/types.d.ts +0 -87
- package/dist/services/schema-manager/generator/types.js +0 -15
- package/dist/services/schema-manager/generator/types.js.map +0 -1
- package/dist/services/schema-manager/index.d.ts +0 -29
- package/dist/services/schema-manager/index.js +0 -68
- package/dist/services/schema-manager/index.js.map +0 -1
- package/dist/services/schema-manager/schema-manager.api.d.ts +0 -279
- package/dist/services/schema-manager/schema-manager.api.js +0 -171
- package/dist/services/schema-manager/schema-manager.api.js.map +0 -1
- package/dist/services/schema-manager/schemaParser/schema-parser.d.ts +0 -5
- package/dist/services/schema-manager/schemaParser/schema-parser.js +0 -35
- package/dist/services/schema-manager/schemaParser/schema-parser.js.map +0 -1
- package/dist/services/user-management/index.d.ts +0 -38
- package/dist/services/user-management/index.js +0 -126
- package/dist/services/user-management/index.js.map +0 -1
- package/dist/services/user-management/user-management.api.d.ts +0 -110
- package/dist/services/user-management/user-management.api.js +0 -185
- package/dist/services/user-management/user-management.api.js.map +0 -1
- package/dist/services/vault/index.d.ts +0 -23
- package/dist/services/vault/index.js +0 -69
- package/dist/services/vault/index.js.map +0 -1
- package/dist/services/vault/typedVaultService.d.ts +0 -54
- package/dist/services/vault/typedVaultService.js +0 -136
- package/dist/services/vault/typedVaultService.js.map +0 -1
- package/dist/services/verification/index.d.ts +0 -9
- package/dist/services/verification/index.js +0 -32
- package/dist/services/verification/index.js.map +0 -1
- package/dist/services/verification/verifier.api.d.ts +0 -202
- package/dist/services/verification/verifier.api.js +0 -187
- package/dist/services/verification/verifier.api.js.map +0 -1
- package/dist/services/writer/index.d.ts +0 -3
- package/dist/services/writer/index.js +0 -17
- package/dist/services/writer/index.js.map +0 -1
- package/dist/user-actions/index.d.ts +0 -2
- package/dist/user-actions/index.js +0 -27
- package/dist/user-actions/index.js.map +0 -1
- package/dist/user-actions/inquirer.d.ts +0 -9
- package/dist/user-actions/inquirer.js +0 -131
- package/dist/user-actions/inquirer.js.map +0 -1
- package/dist/user-actions/prompts.d.ts +0 -20
- package/dist/user-actions/prompts.js +0 -94
- package/dist/user-actions/prompts.js.map +0 -1
- package/dist/wizard/helpers.d.ts +0 -8
- package/dist/wizard/helpers.js +0 -59
- package/dist/wizard/helpers.js.map +0 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BaseCommand } from '../../common';
|
|
2
|
+
export default class GenerateApp extends BaseCommand<typeof GenerateApp> {
|
|
3
|
+
static apps: any;
|
|
4
|
+
static providers: string[];
|
|
5
|
+
static frameworks: string[];
|
|
6
|
+
static libraries: Map<string, string[]>;
|
|
7
|
+
static summary: string;
|
|
8
|
+
static examples: string[];
|
|
9
|
+
static flags: {
|
|
10
|
+
framework: import("@oclif/core/lib/interfaces/parser").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
11
|
+
provider: import("@oclif/core/lib/interfaces/parser").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
12
|
+
path: import("@oclif/core/lib/interfaces/parser").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
13
|
+
force: import("@oclif/core/lib/interfaces/parser").BooleanFlag<boolean>;
|
|
14
|
+
};
|
|
15
|
+
init(): Promise<void>;
|
|
16
|
+
run(): Promise<void>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const password_1 = tslib_1.__importDefault(require("@inquirer/password"));
|
|
5
|
+
const prompts_1 = require("@inquirer/prompts");
|
|
6
|
+
const core_1 = require("@oclif/core");
|
|
7
|
+
const errors_1 = require("@oclif/core/lib/errors");
|
|
8
|
+
const zod_1 = tslib_1.__importDefault(require("zod"));
|
|
9
|
+
const common_1 = require("../../common");
|
|
10
|
+
const error_messages_1 = require("../../common/error-messages");
|
|
11
|
+
const prompts_2 = require("../../common/prompts");
|
|
12
|
+
const validators_1 = require("../../common/validators");
|
|
13
|
+
const app_1 = require("../../helpers/app");
|
|
14
|
+
const degit_1 = require("../../helpers/degit");
|
|
15
|
+
const vp_adapter_1 = require("../../services/affinidi/vp-adapter");
|
|
16
|
+
const auth0_1 = require("../../services/generator/auth0");
|
|
17
|
+
const env_configurer_1 = require("../../services/generator/env-configurer");
|
|
18
|
+
const APPS_INFORMATION_GITHUB_LOCATION = 'samples/apps.json';
|
|
19
|
+
const APPS_GITHUB_LOCATION = 'affinidi/reference-app-affinidi-vault/samples';
|
|
20
|
+
class GenerateApp extends common_1.BaseCommand {
|
|
21
|
+
async init() {
|
|
22
|
+
GenerateApp.apps = await (0, app_1.getApps)(APPS_INFORMATION_GITHUB_LOCATION);
|
|
23
|
+
const { providers, frameworks, libraries } = (0, app_1.getSupportedAppsInformation)(GenerateApp.apps);
|
|
24
|
+
GenerateApp.providers = providers;
|
|
25
|
+
GenerateApp.frameworks = frameworks;
|
|
26
|
+
GenerateApp.libraries = libraries;
|
|
27
|
+
GenerateApp.flags.framework = core_1.Flags.string({
|
|
28
|
+
char: 'f',
|
|
29
|
+
summary: 'Framework for the reference app',
|
|
30
|
+
options: frameworks,
|
|
31
|
+
});
|
|
32
|
+
GenerateApp.flags.provider = core_1.Flags.string({
|
|
33
|
+
char: 'a',
|
|
34
|
+
summary: 'Authentication provider for the reference app',
|
|
35
|
+
options: providers,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
async run() {
|
|
39
|
+
const { flags } = await this.parse(GenerateApp);
|
|
40
|
+
if (flags['no-input']) {
|
|
41
|
+
if (!flags.provider)
|
|
42
|
+
throw new errors_1.CLIError((0, error_messages_1.giveFlagInputErrorMessage)('provider'));
|
|
43
|
+
if (!flags.framework)
|
|
44
|
+
throw new errors_1.CLIError((0, error_messages_1.giveFlagInputErrorMessage)('framework'));
|
|
45
|
+
}
|
|
46
|
+
const provider = flags.provider ??
|
|
47
|
+
(await (0, prompts_1.select)({
|
|
48
|
+
message: 'Select the provider for the reference app.',
|
|
49
|
+
choices: GenerateApp.providers.map((value) => ({
|
|
50
|
+
name: value,
|
|
51
|
+
value,
|
|
52
|
+
})),
|
|
53
|
+
}));
|
|
54
|
+
const framework = flags.framework ??
|
|
55
|
+
(await (0, prompts_1.select)({
|
|
56
|
+
message: 'Select the framework for the reference app.',
|
|
57
|
+
choices: GenerateApp.frameworks.map((value) => ({
|
|
58
|
+
name: value,
|
|
59
|
+
value,
|
|
60
|
+
})),
|
|
61
|
+
}));
|
|
62
|
+
const promptFlags = await (0, prompts_2.promptRequiredParameters)(['path'], flags);
|
|
63
|
+
promptFlags.framework = framework;
|
|
64
|
+
promptFlags.provider = provider;
|
|
65
|
+
const schema = zod_1.default.object({
|
|
66
|
+
path: zod_1.default.string().max(validators_1.INPUT_LIMIT),
|
|
67
|
+
framework: zod_1.default.string().max(validators_1.INPUT_LIMIT),
|
|
68
|
+
provider: zod_1.default.string().max(validators_1.INPUT_LIMIT),
|
|
69
|
+
});
|
|
70
|
+
const validatedFlags = schema.parse(promptFlags);
|
|
71
|
+
const appName = (0, app_1.getAppName)(framework, provider, GenerateApp.libraries);
|
|
72
|
+
core_1.ux.action.start('Generating reference application');
|
|
73
|
+
await (0, degit_1.cloneWithDegit)(`${APPS_GITHUB_LOCATION}/${appName}`, validatedFlags.path, flags.force);
|
|
74
|
+
core_1.ux.action.stop('Generated successfully!');
|
|
75
|
+
if (!flags['no-input']) {
|
|
76
|
+
const configure = await (0, prompts_1.confirm)({
|
|
77
|
+
message: 'Automatically configure reference app environment?',
|
|
78
|
+
});
|
|
79
|
+
if (configure) {
|
|
80
|
+
core_1.ux.action.start('Fetching available login configurations');
|
|
81
|
+
const configs = await vp_adapter_1.vpAdapterService.listLoginConfigurations();
|
|
82
|
+
core_1.ux.action.stop('Fetched successfully!');
|
|
83
|
+
const choices = configs.configurations.map((config) => ({
|
|
84
|
+
value: {
|
|
85
|
+
id: config.configurationId,
|
|
86
|
+
auth: config.auth,
|
|
87
|
+
},
|
|
88
|
+
name: `${config.name} [id: ${config.configurationId}]`,
|
|
89
|
+
}));
|
|
90
|
+
const selectedConfig = await (0, prompts_1.select)({
|
|
91
|
+
message: 'Select a login configuration to use in your reference application',
|
|
92
|
+
choices,
|
|
93
|
+
});
|
|
94
|
+
const clientSecret = (0, validators_1.validateInputLength)(await (0, password_1.default)({
|
|
95
|
+
message: "What is the login configuration's client secret?",
|
|
96
|
+
mask: true,
|
|
97
|
+
}), validators_1.INPUT_LIMIT);
|
|
98
|
+
if (provider === common_1.RefAppProvider.AFFINIDI) {
|
|
99
|
+
core_1.ux.action.start('Configuring reference application');
|
|
100
|
+
await (0, env_configurer_1.configureAppEnvironment)(validatedFlags.path, selectedConfig.auth.clientId, clientSecret, selectedConfig.auth.issuer);
|
|
101
|
+
core_1.ux.action.stop('Configured successfully!');
|
|
102
|
+
}
|
|
103
|
+
else if (provider === common_1.RefAppProvider.AUTH0) {
|
|
104
|
+
const domain = (0, validators_1.validateInputLength)(await (0, prompts_1.input)({ message: 'What is your Auth0 tenant URL?' }), validators_1.INPUT_LIMIT);
|
|
105
|
+
const accessToken = (0, validators_1.validateInputLength)(await (0, password_1.default)({ message: 'What is your Auth0 access token?' }), validators_1.TOKEN_LIMIT);
|
|
106
|
+
core_1.ux.action.start('Creating Auth0 resources and configuring reference application');
|
|
107
|
+
const socialConnectionName = `Affinidi-${framework}`;
|
|
108
|
+
const { auth0ClientId, auth0ClientSecret, connectionName } = await (0, auth0_1.createAuth0Resources)(accessToken, domain, selectedConfig.auth.clientId, clientSecret, selectedConfig.auth.issuer, socialConnectionName, {
|
|
109
|
+
callbackUrl: GenerateApp.apps.appName.redirectUris.callbackUrl,
|
|
110
|
+
logOutUrl: GenerateApp.apps.appName.redirectUris.logOutUrl,
|
|
111
|
+
webOriginUrl: GenerateApp.apps.appName.redirectUris.webOriginUrl,
|
|
112
|
+
});
|
|
113
|
+
await (0, env_configurer_1.configureAppEnvironment)(validatedFlags.path, auth0ClientId, auth0ClientSecret, domain, connectionName);
|
|
114
|
+
core_1.ux.action.stop('Configured successfully!');
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
this.log('Please read the generated README for instructions on how to run your reference application');
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
exports.default = GenerateApp;
|
|
122
|
+
GenerateApp.providers = [];
|
|
123
|
+
GenerateApp.frameworks = [];
|
|
124
|
+
GenerateApp.summary = 'Generates a reference application that integrates Affinidi Login. Requires git';
|
|
125
|
+
GenerateApp.examples = [
|
|
126
|
+
'<%= config.bin %> <%= command.id %>',
|
|
127
|
+
'<%= config.bin %> <%= command.id %> -p "../my-app" -f django -a affinidi',
|
|
128
|
+
'<%= config.bin %> <%= command.id %> --path "../my-app" --framework django --provider affinidi --force',
|
|
129
|
+
];
|
|
130
|
+
GenerateApp.flags = {
|
|
131
|
+
framework: core_1.Flags.string({
|
|
132
|
+
char: 'f',
|
|
133
|
+
summary: 'Framework for the reference app',
|
|
134
|
+
}),
|
|
135
|
+
provider: core_1.Flags.string({
|
|
136
|
+
char: 'a',
|
|
137
|
+
summary: 'Authentication provider for the reference app',
|
|
138
|
+
}),
|
|
139
|
+
path: core_1.Flags.string({
|
|
140
|
+
char: 'p',
|
|
141
|
+
summary: 'Relative or absolute path where reference application should be cloned into',
|
|
142
|
+
}),
|
|
143
|
+
force: core_1.Flags.boolean({
|
|
144
|
+
summary: 'Override destination directory if exists',
|
|
145
|
+
}),
|
|
146
|
+
};
|
|
147
|
+
//# sourceMappingURL=app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/commands/generate/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BaseCommand } from '../../common';
|
|
2
|
+
export declare class AddPrincipal extends BaseCommand<typeof AddPrincipal> {
|
|
3
|
+
static summary: string;
|
|
4
|
+
static description: string;
|
|
5
|
+
static examples: string[];
|
|
6
|
+
static flags: {
|
|
7
|
+
'principal-id': import("@oclif/core/lib/interfaces/parser").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
8
|
+
'principal-type': import("@oclif/core/lib/interfaces/parser").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
9
|
+
};
|
|
10
|
+
run(): Promise<void>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AddPrincipal = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const prompts_1 = require("@inquirer/prompts");
|
|
6
|
+
const core_1 = require("@oclif/core");
|
|
7
|
+
const errors_1 = require("@oclif/core/lib/errors");
|
|
8
|
+
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
9
|
+
const zod_1 = require("zod");
|
|
10
|
+
const common_1 = require("../../common");
|
|
11
|
+
const error_messages_1 = require("../../common/error-messages");
|
|
12
|
+
const prompts_2 = require("../../common/prompts");
|
|
13
|
+
const validators_1 = require("../../common/validators");
|
|
14
|
+
const iam_1 = require("../../services/affinidi/iam");
|
|
15
|
+
class AddPrincipal extends common_1.BaseCommand {
|
|
16
|
+
async run() {
|
|
17
|
+
const { flags } = await this.parse(AddPrincipal);
|
|
18
|
+
const promptFlags = await (0, prompts_2.promptRequiredParameters)(['principal-id'], flags);
|
|
19
|
+
if (flags['no-input']) {
|
|
20
|
+
if (!promptFlags['principal-type']) {
|
|
21
|
+
throw new errors_1.CLIError((0, error_messages_1.giveFlagInputErrorMessage)('principal-type'));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
promptFlags['principal-type'] ?? (promptFlags['principal-type'] = await (0, prompts_1.select)({
|
|
25
|
+
message: 'Select the principal-type',
|
|
26
|
+
choices: Object.values(common_1.PrincipalTypes).map((value) => ({
|
|
27
|
+
name: value,
|
|
28
|
+
value,
|
|
29
|
+
})),
|
|
30
|
+
}));
|
|
31
|
+
const schema = zod_1.z.object({
|
|
32
|
+
'principal-id': zod_1.z.string().max(validators_1.INPUT_LIMIT).uuid(),
|
|
33
|
+
'principal-type': zod_1.z.nativeEnum(common_1.PrincipalTypes),
|
|
34
|
+
});
|
|
35
|
+
const validatedFlags = schema.parse(promptFlags);
|
|
36
|
+
core_1.ux.action.start('Adding principal to project');
|
|
37
|
+
await iam_1.iamService.addPrincipalToProject({
|
|
38
|
+
principalId: validatedFlags['principal-id'],
|
|
39
|
+
principalType: validatedFlags['principal-type'],
|
|
40
|
+
});
|
|
41
|
+
core_1.ux.action.stop('Added successfully!');
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.AddPrincipal = AddPrincipal;
|
|
45
|
+
AddPrincipal.summary = 'Adds a principal (user or token) to the active project';
|
|
46
|
+
AddPrincipal.description = `To change your active project, use command ${chalk_1.default.inverse('affinidi project select-project')}`;
|
|
47
|
+
AddPrincipal.examples = [
|
|
48
|
+
'<%= config.bin %> <%= command.id %> -i <uuid>',
|
|
49
|
+
'<%= config.bin %> <%= command.id %> --principal-id <uuid> --principal-type token',
|
|
50
|
+
];
|
|
51
|
+
AddPrincipal.flags = {
|
|
52
|
+
'principal-id': core_1.Flags.string({
|
|
53
|
+
char: 'i',
|
|
54
|
+
summary: 'ID of the principal',
|
|
55
|
+
description: `Get a list of possible IDs with command ${chalk_1.default.inverse('affinidi token list-tokens')}`,
|
|
56
|
+
}),
|
|
57
|
+
'principal-type': core_1.Flags.string({
|
|
58
|
+
char: 't',
|
|
59
|
+
summary: 'Type of the principal',
|
|
60
|
+
options: Object.values(common_1.PrincipalTypes),
|
|
61
|
+
}),
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=add-principal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-principal.js","sourceRoot":"","sources":["../../../src/commands/iam/add-principal.ts"],"names":[],"mappings":";;;;AAAA,+CAA0C;AAC1C,sCAAuC;AACvC,mDAAiD;AACjD,0DAAyB;AACzB,6BAAuB;AACvB,yCAA0D;AAC1D,gEAAuE;AACvE,kDAA+D;AAC/D,wDAAqD;AACrD,qDAAwD;AAExD,MAAa,YAAa,SAAQ,oBAAgC;IAoBzD,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QAChD,MAAM,WAAW,GAAG,MAAM,IAAA,kCAAwB,EAAC,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,CAAA;QAE3E,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE;YACrB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE;gBAClC,MAAM,IAAI,iBAAQ,CAAC,IAAA,0CAAyB,EAAC,gBAAgB,CAAC,CAAC,CAAA;aAChE;SACF;QACD,WAAW,CAAC,gBAAgB,MAA5B,WAAW,CAAC,gBAAgB,IAAM,MAAM,IAAA,gBAAM,EAAC;YAC7C,OAAO,EAAE,2BAA2B;YACpC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,uBAAc,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACrD,IAAI,EAAE,KAAK;gBACX,KAAK;aACN,CAAC,CAAC;SACJ,CAAC,EAAA;QACF,MAAM,MAAM,GAAG,OAAC,CAAC,MAAM,CAAC;YACtB,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,wBAAW,CAAC,CAAC,IAAI,EAAE;YAClD,gBAAgB,EAAE,OAAC,CAAC,UAAU,CAAC,uBAAc,CAAC;SAC/C,CAAC,CAAA;QACF,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAEhD,SAAE,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAC9C,MAAM,gBAAU,CAAC,qBAAqB,CAAC;YACrC,WAAW,EAAE,cAAc,CAAC,cAAc,CAAC;YAC3C,aAAa,EAAE,cAAc,CAAC,gBAAgB,CAAC;SAChD,CAAC,CAAA;QACF,SAAE,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;IACvC,CAAC;;AAhDH,oCAiDC;AAhDQ,oBAAO,GAAG,wDAAwD,CAAA;AAClE,wBAAW,GAAG,8CAA8C,eAAK,CAAC,OAAO,CAAC,iCAAiC,CAAC,EAAE,CAAA;AAC9G,qBAAQ,GAAG;IAChB,+CAA+C;IAC/C,kFAAkF;CACnF,CAAA;AACM,kBAAK,GAAG;IACb,cAAc,EAAE,YAAK,CAAC,MAAM,CAAC;QAC3B,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,qBAAqB;QAC9B,WAAW,EAAE,2CAA2C,eAAK,CAAC,OAAO,CAAC,4BAA4B,CAAC,EAAE;KACtG,CAAC;IACF,gBAAgB,EAAE,YAAK,CAAC,MAAM,CAAC;QAC7B,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,uBAAuB;QAChC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,uBAAc,CAAC;KACvC,CAAC;CACH,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseCommand } from '../../common';
|
|
2
|
+
import { PolicyDto } from '../../services/affinidi/iam/iam.api';
|
|
3
|
+
export declare class GetPolicies extends BaseCommand<typeof GetPolicies> {
|
|
4
|
+
static summary: string;
|
|
5
|
+
static description: string;
|
|
6
|
+
static examples: string[];
|
|
7
|
+
static flags: {
|
|
8
|
+
'principal-id': import("@oclif/core/lib/interfaces/parser").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
9
|
+
'principal-type': import("@oclif/core/lib/interfaces/parser").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
10
|
+
};
|
|
11
|
+
run(): Promise<PolicyDto>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GetPolicies = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const prompts_1 = require("@inquirer/prompts");
|
|
6
|
+
const core_1 = require("@oclif/core");
|
|
7
|
+
const errors_1 = require("@oclif/core/lib/errors");
|
|
8
|
+
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
9
|
+
const zod_1 = require("zod");
|
|
10
|
+
const common_1 = require("../../common");
|
|
11
|
+
const error_messages_1 = require("../../common/error-messages");
|
|
12
|
+
const prompts_2 = require("../../common/prompts");
|
|
13
|
+
const validators_1 = require("../../common/validators");
|
|
14
|
+
const iam_1 = require("../../services/affinidi/iam");
|
|
15
|
+
class GetPolicies extends common_1.BaseCommand {
|
|
16
|
+
async run() {
|
|
17
|
+
const { flags } = await this.parse(GetPolicies);
|
|
18
|
+
const promptFlags = await (0, prompts_2.promptRequiredParameters)(['principal-id'], flags);
|
|
19
|
+
if (flags['no-input']) {
|
|
20
|
+
if (!promptFlags['principal-type']) {
|
|
21
|
+
throw new errors_1.CLIError((0, error_messages_1.giveFlagInputErrorMessage)('principal-type'));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
promptFlags['principal-type'] ?? (promptFlags['principal-type'] = await (0, prompts_1.select)({
|
|
25
|
+
message: 'Select the principal-type',
|
|
26
|
+
choices: Object.values(common_1.PrincipalTypes).map((value) => ({
|
|
27
|
+
name: value,
|
|
28
|
+
value,
|
|
29
|
+
})),
|
|
30
|
+
}));
|
|
31
|
+
const schema = zod_1.z.object({
|
|
32
|
+
'principal-id': zod_1.z.string().max(validators_1.INPUT_LIMIT).uuid(),
|
|
33
|
+
'principal-type': zod_1.z.nativeEnum(common_1.PrincipalTypes),
|
|
34
|
+
});
|
|
35
|
+
const validatedFlags = schema.parse(promptFlags);
|
|
36
|
+
core_1.ux.action.start('Fetching principal policies');
|
|
37
|
+
const out = await iam_1.iamService.getPolicies(validatedFlags['principal-id'], validatedFlags['principal-type']);
|
|
38
|
+
core_1.ux.action.stop('Fetched successfully!');
|
|
39
|
+
if (!this.jsonEnabled())
|
|
40
|
+
this.logJson(out);
|
|
41
|
+
return out;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.GetPolicies = GetPolicies;
|
|
45
|
+
GetPolicies.summary = 'Gets the policies of a principal (user or token)';
|
|
46
|
+
GetPolicies.description = `Make sure the principal you are working with is part of the active project\n\
|
|
47
|
+
Use command ${chalk_1.default.inverse('affinidi project select-project')} to change your active project`;
|
|
48
|
+
GetPolicies.examples = [
|
|
49
|
+
'<%= config.bin %> <%= command.id %> -i <uuid>',
|
|
50
|
+
'<%= config.bin %> <%= command.id %> --principal-id <uuid> --principal-type token',
|
|
51
|
+
];
|
|
52
|
+
GetPolicies.flags = {
|
|
53
|
+
'principal-id': core_1.Flags.string({
|
|
54
|
+
char: 'i',
|
|
55
|
+
summary: 'ID of the principal',
|
|
56
|
+
description: `Get a list of possible IDs with command ${chalk_1.default.inverse('affinidi token list-tokens')}`,
|
|
57
|
+
}),
|
|
58
|
+
'principal-type': core_1.Flags.string({
|
|
59
|
+
char: 't',
|
|
60
|
+
summary: 'Type of the principal',
|
|
61
|
+
options: Object.values(common_1.PrincipalTypes),
|
|
62
|
+
}),
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=get-policies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-policies.js","sourceRoot":"","sources":["../../../src/commands/iam/get-policies.ts"],"names":[],"mappings":";;;;AAAA,+CAA0C;AAC1C,sCAAuC;AACvC,mDAAiD;AACjD,0DAAyB;AACzB,6BAAuB;AACvB,yCAA0D;AAC1D,gEAAuE;AACvE,kDAA+D;AAC/D,wDAAqD;AACrD,qDAAwD;AAGxD,MAAa,WAAY,SAAQ,oBAA+B;IAqBvD,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAC/C,MAAM,WAAW,GAAG,MAAM,IAAA,kCAAwB,EAAC,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,CAAA;QAC3E,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE;YACrB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE;gBAClC,MAAM,IAAI,iBAAQ,CAAC,IAAA,0CAAyB,EAAC,gBAAgB,CAAC,CAAC,CAAA;aAChE;SACF;QACD,WAAW,CAAC,gBAAgB,MAA5B,WAAW,CAAC,gBAAgB,IAAM,MAAM,IAAA,gBAAM,EAAC;YAC7C,OAAO,EAAE,2BAA2B;YACpC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,uBAAc,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACrD,IAAI,EAAE,KAAK;gBACX,KAAK;aACN,CAAC,CAAC;SACJ,CAAC,EAAA;QACF,MAAM,MAAM,GAAG,OAAC,CAAC,MAAM,CAAC;YACtB,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,wBAAW,CAAC,CAAC,IAAI,EAAE;YAClD,gBAAgB,EAAE,OAAC,CAAC,UAAU,CAAC,uBAAc,CAAC;SAC/C,CAAC,CAAA;QACF,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAEhD,SAAE,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAC9C,MAAM,GAAG,GAAG,MAAM,gBAAU,CAAC,WAAW,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAA;QAC1G,SAAE,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;QAEvC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC1C,OAAO,GAAG,CAAA;IACZ,CAAC;;AAhDH,kCAiDC;AAhDQ,mBAAO,GAAG,kDAAkD,CAAA;AAC5D,uBAAW,GAAG;kBACL,eAAK,CAAC,OAAO,CAAC,iCAAiC,CAAC,gCAAgC,CAAA;AACzF,oBAAQ,GAAG;IAChB,+CAA+C;IAC/C,kFAAkF;CACnF,CAAA;AACM,iBAAK,GAAG;IACb,cAAc,EAAE,YAAK,CAAC,MAAM,CAAC;QAC3B,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,qBAAqB;QAC9B,WAAW,EAAE,2CAA2C,eAAK,CAAC,OAAO,CAAC,4BAA4B,CAAC,EAAE;KACtG,CAAC;IACF,gBAAgB,EAAE,YAAK,CAAC,MAAM,CAAC;QAC7B,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,uBAAuB;QAChC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,uBAAc,CAAC;KACvC,CAAC;CACH,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BaseCommand } from '../../common';
|
|
2
|
+
import { UserList } from '../../services/affinidi/iam/iam.api';
|
|
3
|
+
export declare class ListPrincipals extends BaseCommand<typeof ListPrincipals> {
|
|
4
|
+
static summary: string;
|
|
5
|
+
static description: string;
|
|
6
|
+
static examples: string[];
|
|
7
|
+
run(): Promise<UserList>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ListPrincipals = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const core_1 = require("@oclif/core");
|
|
6
|
+
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
7
|
+
const common_1 = require("../../common");
|
|
8
|
+
const iam_1 = require("../../services/affinidi/iam");
|
|
9
|
+
class ListPrincipals extends common_1.BaseCommand {
|
|
10
|
+
async run() {
|
|
11
|
+
core_1.ux.action.start('Fetching project principals');
|
|
12
|
+
const out = await iam_1.iamService.listPrincipalsOfProject();
|
|
13
|
+
core_1.ux.action.stop('Fetched successfully!');
|
|
14
|
+
if (!this.jsonEnabled())
|
|
15
|
+
this.logJson(out);
|
|
16
|
+
return out;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.ListPrincipals = ListPrincipals;
|
|
20
|
+
ListPrincipals.summary = 'Lists the principals (users and tokens) in the active project';
|
|
21
|
+
ListPrincipals.description = `To change your active project, use command ${chalk_1.default.inverse('affinidi project select-project')}`;
|
|
22
|
+
ListPrincipals.examples = ['<%= config.bin %> <%= command.id %>'];
|
|
23
|
+
//# sourceMappingURL=list-principals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-principals.js","sourceRoot":"","sources":["../../../src/commands/iam/list-principals.ts"],"names":[],"mappings":";;;;AAAA,sCAAgC;AAChC,0DAAyB;AACzB,yCAA0C;AAC1C,qDAAwD;AAGxD,MAAa,cAAe,SAAQ,oBAAkC;IAK7D,KAAK,CAAC,GAAG;QACd,SAAE,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAC9C,MAAM,GAAG,GAAG,MAAM,gBAAU,CAAC,uBAAuB,EAAE,CAAA;QACtD,SAAE,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;QAEvC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC1C,OAAO,GAAG,CAAA;IACZ,CAAC;;AAZH,wCAaC;AAZQ,sBAAO,GAAG,+DAA+D,CAAA;AACzE,0BAAW,GAAG,8CAA8C,eAAK,CAAC,OAAO,CAAC,iCAAiC,CAAC,EAAE,CAAA;AAC9G,uBAAQ,GAAG,CAAC,qCAAqC,CAAC,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BaseCommand, PrincipalTypes } from '../../common';
|
|
2
|
+
export declare class RemovePrincipal extends BaseCommand<typeof RemovePrincipal> {
|
|
3
|
+
static summary: string;
|
|
4
|
+
static description: string;
|
|
5
|
+
static examples: string[];
|
|
6
|
+
static flags: {
|
|
7
|
+
'principal-id': import("@oclif/core/lib/interfaces/parser").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
8
|
+
'principal-type': import("@oclif/core/lib/interfaces/parser").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
9
|
+
};
|
|
10
|
+
run(): Promise<{
|
|
11
|
+
'principal-id': string;
|
|
12
|
+
'principal-type': PrincipalTypes;
|
|
13
|
+
}>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RemovePrincipal = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const prompts_1 = require("@inquirer/prompts");
|
|
6
|
+
const core_1 = require("@oclif/core");
|
|
7
|
+
const errors_1 = require("@oclif/core/lib/errors");
|
|
8
|
+
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
9
|
+
const zod_1 = require("zod");
|
|
10
|
+
const common_1 = require("../../common");
|
|
11
|
+
const error_messages_1 = require("../../common/error-messages");
|
|
12
|
+
const prompts_2 = require("../../common/prompts");
|
|
13
|
+
const validators_1 = require("../../common/validators");
|
|
14
|
+
const iam_1 = require("../../services/affinidi/iam");
|
|
15
|
+
class RemovePrincipal extends common_1.BaseCommand {
|
|
16
|
+
async run() {
|
|
17
|
+
const { flags } = await this.parse(RemovePrincipal);
|
|
18
|
+
const promptFlags = await (0, prompts_2.promptRequiredParameters)(['principal-id'], flags);
|
|
19
|
+
if (flags['no-input']) {
|
|
20
|
+
if (!promptFlags['principal-type']) {
|
|
21
|
+
throw new errors_1.CLIError((0, error_messages_1.giveFlagInputErrorMessage)('principal-type'));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
promptFlags['principal-type'] ?? (promptFlags['principal-type'] = await (0, prompts_1.select)({
|
|
25
|
+
message: 'Select the principal-type',
|
|
26
|
+
choices: Object.values(common_1.PrincipalTypes).map((value) => ({
|
|
27
|
+
name: value,
|
|
28
|
+
value,
|
|
29
|
+
})),
|
|
30
|
+
}));
|
|
31
|
+
const schema = zod_1.z.object({
|
|
32
|
+
'principal-id': zod_1.z.string().max(validators_1.INPUT_LIMIT).uuid(),
|
|
33
|
+
'principal-type': zod_1.z.nativeEnum(common_1.PrincipalTypes),
|
|
34
|
+
});
|
|
35
|
+
const validatedFlags = schema.parse(promptFlags);
|
|
36
|
+
core_1.ux.action.start('Removing principal from project');
|
|
37
|
+
await iam_1.iamService.deletePrincipalFromProject(validatedFlags['principal-id'], validatedFlags['principal-type']);
|
|
38
|
+
core_1.ux.action.stop('Removed successfully!');
|
|
39
|
+
if (!this.jsonEnabled())
|
|
40
|
+
this.logJson(validatedFlags);
|
|
41
|
+
return validatedFlags;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.RemovePrincipal = RemovePrincipal;
|
|
45
|
+
RemovePrincipal.summary = 'Removes a principal (user or token) from the active project';
|
|
46
|
+
RemovePrincipal.description = `To change your active project, use command ${chalk_1.default.inverse('affinidi project select-project')}`;
|
|
47
|
+
RemovePrincipal.examples = [
|
|
48
|
+
'<%= config.bin %> <%= command.id %> -i <uuid>',
|
|
49
|
+
'<%= config.bin %> <%= command.id %> --principal-id <uuid> --principal-type token',
|
|
50
|
+
];
|
|
51
|
+
RemovePrincipal.flags = {
|
|
52
|
+
'principal-id': core_1.Flags.string({
|
|
53
|
+
char: 'i',
|
|
54
|
+
summary: 'ID of the principal',
|
|
55
|
+
description: `Get a list of possible IDs with command ${chalk_1.default.inverse('affinidi token list-tokens')}`,
|
|
56
|
+
}),
|
|
57
|
+
'principal-type': core_1.Flags.string({
|
|
58
|
+
char: 't',
|
|
59
|
+
summary: 'Type of the principal',
|
|
60
|
+
options: Object.values(common_1.PrincipalTypes),
|
|
61
|
+
}),
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=remove-principal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove-principal.js","sourceRoot":"","sources":["../../../src/commands/iam/remove-principal.ts"],"names":[],"mappings":";;;;AAAA,+CAA0C;AAC1C,sCAAuC;AACvC,mDAAiD;AACjD,0DAAyB;AACzB,6BAAuB;AACvB,yCAA0D;AAC1D,gEAAuE;AACvE,kDAA+D;AAC/D,wDAAqD;AACrD,qDAAwD;AAExD,MAAa,eAAgB,SAAQ,oBAAmC;IAoB/D,KAAK,CAAC,GAAG;QAId,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;QACnD,MAAM,WAAW,GAAG,MAAM,IAAA,kCAAwB,EAAC,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,CAAA;QAC3E,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE;YACrB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE;gBAClC,MAAM,IAAI,iBAAQ,CAAC,IAAA,0CAAyB,EAAC,gBAAgB,CAAC,CAAC,CAAA;aAChE;SACF;QACD,WAAW,CAAC,gBAAgB,MAA5B,WAAW,CAAC,gBAAgB,IAAM,MAAM,IAAA,gBAAM,EAAC;YAC7C,OAAO,EAAE,2BAA2B;YACpC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,uBAAc,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACrD,IAAI,EAAE,KAAK;gBACX,KAAK;aACN,CAAC,CAAC;SACJ,CAAC,EAAA;QACF,MAAM,MAAM,GAAG,OAAC,CAAC,MAAM,CAAC;YACtB,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,wBAAW,CAAC,CAAC,IAAI,EAAE;YAClD,gBAAgB,EAAE,OAAC,CAAC,UAAU,CAAC,uBAAc,CAAC;SAC/C,CAAC,CAAA;QACF,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAEhD,SAAE,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAA;QAClD,MAAM,gBAAU,CAAC,0BAA0B,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAA;QAC7G,SAAE,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;QAEvC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QACrD,OAAO,cAAc,CAAA;IACvB,CAAC;;AAlDH,0CAmDC;AAlDQ,uBAAO,GAAG,6DAA6D,CAAA;AACvE,2BAAW,GAAG,8CAA8C,eAAK,CAAC,OAAO,CAAC,iCAAiC,CAAC,EAAE,CAAA;AAC9G,wBAAQ,GAAG;IAChB,+CAA+C;IAC/C,kFAAkF;CACnF,CAAA;AACM,qBAAK,GAAG;IACb,cAAc,EAAE,YAAK,CAAC,MAAM,CAAC;QAC3B,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,qBAAqB;QAC9B,WAAW,EAAE,2CAA2C,eAAK,CAAC,OAAO,CAAC,4BAA4B,CAAC,EAAE;KACtG,CAAC;IACF,gBAAgB,EAAE,YAAK,CAAC,MAAM,CAAC;QAC7B,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,uBAAuB;QAChC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,uBAAc,CAAC;KACvC,CAAC;CACH,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BaseCommand } from '../../common';
|
|
2
|
+
import { PolicyDto } from '../../services/affinidi/iam/iam.api';
|
|
3
|
+
export declare class UpdatePolicies extends BaseCommand<typeof UpdatePolicies> {
|
|
4
|
+
static summary: string;
|
|
5
|
+
static description: string;
|
|
6
|
+
static examples: string[];
|
|
7
|
+
static flags: {
|
|
8
|
+
'principal-id': import("@oclif/core/lib/interfaces/parser").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
9
|
+
'principal-type': import("@oclif/core/lib/interfaces/parser").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
10
|
+
file: import("@oclif/core/lib/interfaces/parser").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
11
|
+
};
|
|
12
|
+
run(): Promise<PolicyDto>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UpdatePolicies = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const promises_1 = require("fs/promises");
|
|
6
|
+
const prompts_1 = require("@inquirer/prompts");
|
|
7
|
+
const core_1 = require("@oclif/core");
|
|
8
|
+
const errors_1 = require("@oclif/core/lib/errors");
|
|
9
|
+
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
10
|
+
const zod_1 = require("zod");
|
|
11
|
+
const common_1 = require("../../common");
|
|
12
|
+
const error_messages_1 = require("../../common/error-messages");
|
|
13
|
+
const prompts_2 = require("../../common/prompts");
|
|
14
|
+
const validators_1 = require("../../common/validators");
|
|
15
|
+
const bff_service_1 = require("../../services/affinidi/bff-service");
|
|
16
|
+
const iam_1 = require("../../services/affinidi/iam");
|
|
17
|
+
class UpdatePolicies extends common_1.BaseCommand {
|
|
18
|
+
async run() {
|
|
19
|
+
const { flags } = await this.parse(UpdatePolicies);
|
|
20
|
+
const promptFlags = await (0, prompts_2.promptRequiredParameters)(['principal-id'], flags);
|
|
21
|
+
if (flags['no-input']) {
|
|
22
|
+
if (!promptFlags['principal-type']) {
|
|
23
|
+
throw new errors_1.CLIError((0, error_messages_1.giveFlagInputErrorMessage)('principal-type'));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
promptFlags['principal-type'] ?? (promptFlags['principal-type'] = await (0, prompts_1.select)({
|
|
27
|
+
message: 'Select the principal-type',
|
|
28
|
+
choices: Object.values(common_1.PrincipalTypes).map((value) => ({
|
|
29
|
+
name: value,
|
|
30
|
+
value,
|
|
31
|
+
})),
|
|
32
|
+
}));
|
|
33
|
+
const flagsSchema = zod_1.z.object({
|
|
34
|
+
'principal-id': zod_1.z.string().max(validators_1.INPUT_LIMIT).uuid(),
|
|
35
|
+
'principal-type': zod_1.z.nativeEnum(common_1.PrincipalTypes),
|
|
36
|
+
file: zod_1.z.string().optional(),
|
|
37
|
+
});
|
|
38
|
+
const validatedFlags = flagsSchema.parse(promptFlags);
|
|
39
|
+
const policiesDataSchema = zod_1.z.object({
|
|
40
|
+
version: zod_1.z.string().max(validators_1.INPUT_LIMIT),
|
|
41
|
+
statement: zod_1.z
|
|
42
|
+
.object({
|
|
43
|
+
principal: zod_1.z.string().max(validators_1.INPUT_LIMIT).array().length(1),
|
|
44
|
+
action: zod_1.z.string().max(validators_1.INPUT_LIMIT).array().nonempty(),
|
|
45
|
+
resource: zod_1.z.string().max(validators_1.INPUT_LIMIT).array().nonempty(),
|
|
46
|
+
effect: zod_1.z.literal('Allow'),
|
|
47
|
+
})
|
|
48
|
+
.array()
|
|
49
|
+
.nonempty(),
|
|
50
|
+
});
|
|
51
|
+
let policiesData = null;
|
|
52
|
+
if (validatedFlags.file) {
|
|
53
|
+
const rawData = await (0, promises_1.readFile)(validatedFlags.file, 'utf8');
|
|
54
|
+
try {
|
|
55
|
+
policiesData = JSON.parse(rawData);
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
throw new errors_1.CLIError(`Provided file is not a valid JSON\n${error.message}`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
if (flags['no-input']) {
|
|
63
|
+
throw new errors_1.CLIError((0, error_messages_1.giveFlagInputErrorMessage)('file'));
|
|
64
|
+
}
|
|
65
|
+
this.log(`Assigning a single policy statement to a principal. To assign multiple statements please use the ${chalk_1.default.inverse('--file')} flag instead.`);
|
|
66
|
+
this.warn('\nThis will override the existing principal statements');
|
|
67
|
+
const resourceFilters = (0, validators_1.validateInputLength)(await (0, prompts_1.input)({ message: 'Enter the resource filters, separated by space' }), validators_1.INPUT_LIMIT);
|
|
68
|
+
const actions = (0, validators_1.validateInputLength)(await (0, prompts_1.input)({ message: 'Enter the allowed actions, separated by space' }), validators_1.INPUT_LIMIT);
|
|
69
|
+
const activeProject = await bff_service_1.bffService.getActiveProject();
|
|
70
|
+
policiesData = {
|
|
71
|
+
version: '2022-12-15',
|
|
72
|
+
statement: [
|
|
73
|
+
{
|
|
74
|
+
principal: [
|
|
75
|
+
`ari:iam::${activeProject.id}:${validatedFlags['principal-type']}/${validatedFlags['principal-id']}`,
|
|
76
|
+
],
|
|
77
|
+
action: actions.split(' '),
|
|
78
|
+
resource: resourceFilters.split(' '),
|
|
79
|
+
effect: 'Allow',
|
|
80
|
+
},
|
|
81
|
+
],
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
const validatedPolicies = policiesDataSchema.parse(policiesData);
|
|
85
|
+
this.log(`The following policies will be updated for principal ${chalk_1.default.inverse(validatedFlags['principal-id'])}:`);
|
|
86
|
+
this.logJson(validatedPolicies);
|
|
87
|
+
if (!flags['no-input']) {
|
|
88
|
+
const confirmPolicies = await (0, prompts_1.confirm)({
|
|
89
|
+
message: 'Update policies?',
|
|
90
|
+
});
|
|
91
|
+
if (!confirmPolicies) {
|
|
92
|
+
throw new errors_1.CLIError('Action canceled');
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
core_1.ux.action.start('Updating principal policies');
|
|
96
|
+
const out = await iam_1.iamService.updatePolicies(validatedFlags['principal-id'], validatedFlags['principal-type'], validatedPolicies);
|
|
97
|
+
core_1.ux.action.stop('Updated successfully!');
|
|
98
|
+
if (!this.jsonEnabled())
|
|
99
|
+
this.logJson(out);
|
|
100
|
+
return out;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
exports.UpdatePolicies = UpdatePolicies;
|
|
104
|
+
UpdatePolicies.summary = 'Updates the policies of a principal (user or token) in the active project';
|
|
105
|
+
UpdatePolicies.description = `Make sure the principal you are working with is part of the active project\n\
|
|
106
|
+
Use command ${chalk_1.default.inverse('affinidi project select-project')} to change your active project`;
|
|
107
|
+
UpdatePolicies.examples = [
|
|
108
|
+
'<%= config.bin %> <%= command.id %> -i <uuid>',
|
|
109
|
+
'<%= config.bin %> <%= command.id %> --principal-id <uuid> --principal-type token --file policies.json',
|
|
110
|
+
];
|
|
111
|
+
UpdatePolicies.flags = {
|
|
112
|
+
'principal-id': core_1.Flags.string({
|
|
113
|
+
char: 'i',
|
|
114
|
+
summary: 'ID of the principal',
|
|
115
|
+
description: `Get a list of possible IDs with command ${chalk_1.default.inverse('affinidi token list-tokens')}`,
|
|
116
|
+
}),
|
|
117
|
+
'principal-type': core_1.Flags.string({
|
|
118
|
+
char: 't',
|
|
119
|
+
summary: 'Type of the principal',
|
|
120
|
+
options: Object.values(common_1.PrincipalTypes),
|
|
121
|
+
}),
|
|
122
|
+
file: core_1.Flags.string({
|
|
123
|
+
char: 'f',
|
|
124
|
+
summary: 'Location of a json file containing principal policies',
|
|
125
|
+
}),
|
|
126
|
+
};
|
|
127
|
+
//# sourceMappingURL=update-policies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-policies.js","sourceRoot":"","sources":["../../../src/commands/iam/update-policies.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BaseCommand } from '../../common';
|
|
2
|
+
import { GroupUserMappingDto } from '../../services/affinidi/vp-adapter/vp-adapter.api';
|
|
3
|
+
export declare class AddUserToGroup extends BaseCommand<typeof AddUserToGroup> {
|
|
4
|
+
static summary: string;
|
|
5
|
+
static examples: string[];
|
|
6
|
+
static flags: {
|
|
7
|
+
'group-name': import("@oclif/core/lib/interfaces/parser").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
8
|
+
'user-id': import("@oclif/core/lib/interfaces/parser").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
9
|
+
};
|
|
10
|
+
run(): Promise<GroupUserMappingDto>;
|
|
11
|
+
}
|