@rockcarver/frodo-cli 0.23.1-3 → 0.23.1-5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -1
- package/esm/app.js +2 -0
- package/esm/app.js.map +1 -1
- package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js +13 -6
- package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
- package/esm/cli/authz/authz-policy-delete.js +43 -0
- package/esm/cli/authz/authz-policy-delete.js.map +1 -0
- package/esm/cli/authz/authz-policy-describe.js +30 -0
- package/esm/cli/authz/authz-policy-describe.js.map +1 -0
- package/esm/cli/authz/authz-policy-export.js +70 -0
- package/esm/cli/authz/authz-policy-export.js.map +1 -0
- package/esm/cli/authz/authz-policy-import.js +26 -0
- package/esm/cli/authz/authz-policy-import.js.map +1 -0
- package/esm/cli/authz/authz-policy-list.js +37 -0
- package/esm/cli/authz/authz-policy-list.js.map +1 -0
- package/esm/cli/authz/authz-policy.js +10 -0
- package/esm/cli/authz/authz-policy.js.map +1 -0
- package/esm/cli/authz/authz-set-delete.js +37 -0
- package/esm/cli/authz/authz-set-delete.js.map +1 -0
- package/esm/cli/authz/authz-set-describe.js +30 -0
- package/esm/cli/authz/authz-set-describe.js.map +1 -0
- package/esm/cli/authz/authz-set-export.js +52 -0
- package/esm/cli/authz/authz-set-export.js.map +1 -0
- package/esm/cli/authz/authz-set-import.js +57 -0
- package/esm/cli/authz/authz-set-import.js.map +1 -0
- package/esm/cli/authz/authz-set-list.js +25 -0
- package/esm/cli/authz/authz-set-list.js.map +1 -0
- package/esm/cli/authz/authz-set.js +10 -0
- package/esm/cli/authz/authz-set.js.map +1 -0
- package/esm/cli/authz/authz-type-delete.js +38 -0
- package/esm/cli/authz/authz-type-delete.js.map +1 -0
- package/esm/cli/authz/authz-type-describe.js +30 -0
- package/esm/cli/authz/authz-type-describe.js.map +1 -0
- package/esm/cli/authz/authz-type-export.js +22 -0
- package/esm/cli/authz/authz-type-export.js.map +1 -0
- package/esm/cli/authz/authz-type-import.js +22 -0
- package/esm/cli/authz/authz-type-import.js.map +1 -0
- package/esm/cli/authz/authz-type-list.js +32 -0
- package/esm/cli/authz/authz-type-list.js.map +1 -0
- package/esm/cli/authz/authz-type.js +10 -0
- package/esm/cli/authz/authz-type.js.map +1 -0
- package/esm/cli/authz/authz.js +12 -0
- package/esm/cli/authz/authz.js.map +1 -0
- package/esm/cli/idm/idm-import.js +8 -3
- package/esm/cli/idm/idm-import.js.map +1 -1
- package/esm/ops/IdmOps.js +25 -2
- package/esm/ops/IdmOps.js.map +1 -1
- package/esm/ops/PolicyOps.js +392 -0
- package/esm/ops/PolicyOps.js.map +1 -0
- package/esm/ops/PolicySetOps.js +373 -0
- package/esm/ops/PolicySetOps.js.map +1 -0
- package/esm/ops/ResourceTypeOps.js +323 -0
- package/esm/ops/ResourceTypeOps.js.map +1 -0
- package/esm/utils/Console.js +2 -0
- package/esm/utils/Console.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.23.1-5] - 2023-05-17
|
|
11
|
+
|
|
12
|
+
## [0.23.1-4] - 2023-04-20
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- Update to frodo-lib 0.18.9-4
|
|
17
|
+
|
|
10
18
|
## [0.23.1-3] - 2023-04-18
|
|
11
19
|
|
|
12
20
|
### Changed
|
|
@@ -1094,7 +1102,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
1094
1102
|
- Fixed problem with adding connection profiles
|
|
1095
1103
|
- Miscellaneous bug fixes
|
|
1096
1104
|
|
|
1097
|
-
[Unreleased]: https://github.com/rockcarver/frodo-cli/compare/v0.23.1-
|
|
1105
|
+
[Unreleased]: https://github.com/rockcarver/frodo-cli/compare/v0.23.1-5...HEAD
|
|
1106
|
+
|
|
1107
|
+
[0.23.1-5]: https://github.com/rockcarver/frodo-cli/compare/v0.23.1-4...v0.23.1-5
|
|
1108
|
+
|
|
1109
|
+
[0.23.1-4]: https://github.com/rockcarver/frodo-cli/compare/v0.23.1-3...v0.23.1-4
|
|
1098
1110
|
|
|
1099
1111
|
[0.23.1-3]: https://github.com/rockcarver/frodo-cli/compare/v0.23.1-2...v0.23.1-3
|
|
1100
1112
|
|
package/esm/app.js
CHANGED
|
@@ -4,6 +4,7 @@ import { Command } from 'commander';
|
|
|
4
4
|
// commands
|
|
5
5
|
import admin from './cli/admin/admin';
|
|
6
6
|
import agent from './cli/agent/agent';
|
|
7
|
+
import authz from './cli/authz/authz';
|
|
7
8
|
import app from './cli/app/app';
|
|
8
9
|
import conn from './cli/conn/conn';
|
|
9
10
|
import email from './cli/email/email';
|
|
@@ -32,6 +33,7 @@ const {
|
|
|
32
33
|
await initConnectionProfiles();
|
|
33
34
|
program.addCommand(admin());
|
|
34
35
|
program.addCommand(agent());
|
|
36
|
+
program.addCommand(authz());
|
|
35
37
|
program.addCommand(app());
|
|
36
38
|
program.addCommand(conn());
|
|
37
39
|
program.addCommand(email());
|
package/esm/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","names":["ConnectionProfile","Command","admin","agent","app","conn","email","esv","idm","idp","info","journey","logging","realm","saml","script","service","theme","printMessage","getVersions","initConnectionProfiles","program","version","addCommand","showHelpAfterError","enablePositionalOptions","parse","e"],"sources":["app.ts"],"sourcesContent":["import { ConnectionProfile } from '@rockcarver/frodo-lib';\nimport { Command } from 'commander';\n\n// commands\nimport admin from './cli/admin/admin';\nimport agent from './cli/agent/agent';\nimport app from './cli/app/app';\nimport conn from './cli/conn/conn';\nimport email from './cli/email/email';\nimport esv from './cli/esv/esv';\nimport idm from './cli/idm/idm';\nimport idp from './cli/idp/idp';\nimport info from './cli/info/info';\nimport journey from './cli/journey/journey';\nimport logging from './cli/logging/logs';\nimport realm from './cli/realm/realm';\nimport saml from './cli/saml/saml';\nimport script from './cli/script/script';\nimport service from './cli/service/service';\n// enable sample command template.\n// import something from './cli/_template/something';\nimport theme from './cli/theme/theme';\nimport { printMessage } from './utils/Console';\nimport { getVersions } from './utils/Version';\n\nconst { initConnectionProfiles } = ConnectionProfile;\n\n(async () => {\n try {\n const program = new Command('frodo').version(\n await getVersions(false),\n '-v, --version'\n );\n\n printMessage(await getVersions(true), 'text', false);\n\n await initConnectionProfiles();\n\n program.addCommand(admin());\n program.addCommand(agent());\n program.addCommand(app());\n program.addCommand(conn());\n program.addCommand(email());\n program.addCommand(esv());\n program.addCommand(idm());\n program.addCommand(idp());\n program.addCommand(info());\n program.addCommand(journey());\n program.addCommand(logging());\n program.addCommand(realm());\n program.addCommand(saml());\n program.addCommand(script());\n program.addCommand(service());\n program.addCommand(theme());\n // enable sample command template.\n // program.addCommand(something());\n\n program.showHelpAfterError();\n program.enablePositionalOptions();\n program.parse();\n } catch (e) {\n printMessage(`ERROR: exception running frodo - ${e}`, 'error');\n }\n})();\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,uBAAuB;AACzD,SAASC,OAAO,QAAQ,WAAW;;AAEnC;AACA,OAAOC,KAAK,MAAM,mBAAmB;AACrC,OAAOC,KAAK,MAAM,mBAAmB;AACrC,OAAOC,GAAG,MAAM,eAAe;AAC/B,OAAOC,IAAI,MAAM,iBAAiB;AAClC,OAAOC,KAAK,MAAM,mBAAmB;AACrC,OAAOC,GAAG,MAAM,eAAe;AAC/B,OAAOC,GAAG,MAAM,eAAe;AAC/B,OAAOC,GAAG,MAAM,eAAe;AAC/B,OAAOC,IAAI,MAAM,iBAAiB;AAClC,OAAOC,OAAO,MAAM,uBAAuB;AAC3C,OAAOC,OAAO,MAAM,oBAAoB;AACxC,OAAOC,KAAK,MAAM,mBAAmB;AACrC,OAAOC,IAAI,MAAM,iBAAiB;AAClC,OAAOC,MAAM,MAAM,qBAAqB;AACxC,OAAOC,OAAO,MAAM,uBAAuB;AAC3C;AACA;AACA,OAAOC,KAAK,MAAM,mBAAmB;AACrC,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,WAAW,QAAQ,iBAAiB;AAE7C,MAAM;EAAEC;AAAuB,CAAC,
|
|
1
|
+
{"version":3,"file":"app.js","names":["ConnectionProfile","Command","admin","agent","authz","app","conn","email","esv","idm","idp","info","journey","logging","realm","saml","script","service","theme","printMessage","getVersions","initConnectionProfiles","program","version","addCommand","showHelpAfterError","enablePositionalOptions","parse","e"],"sources":["app.ts"],"sourcesContent":["import { ConnectionProfile } from '@rockcarver/frodo-lib';\nimport { Command } from 'commander';\n\n// commands\nimport admin from './cli/admin/admin';\nimport agent from './cli/agent/agent';\nimport authz from './cli/authz/authz';\nimport app from './cli/app/app';\nimport conn from './cli/conn/conn';\nimport email from './cli/email/email';\nimport esv from './cli/esv/esv';\nimport idm from './cli/idm/idm';\nimport idp from './cli/idp/idp';\nimport info from './cli/info/info';\nimport journey from './cli/journey/journey';\nimport logging from './cli/logging/logs';\nimport realm from './cli/realm/realm';\nimport saml from './cli/saml/saml';\nimport script from './cli/script/script';\nimport service from './cli/service/service';\n// enable sample command template.\n// import something from './cli/_template/something';\nimport theme from './cli/theme/theme';\nimport { printMessage } from './utils/Console';\nimport { getVersions } from './utils/Version';\n\nconst { initConnectionProfiles } = ConnectionProfile;\n\n(async () => {\n try {\n const program = new Command('frodo').version(\n await getVersions(false),\n '-v, --version'\n );\n\n printMessage(await getVersions(true), 'text', false);\n\n await initConnectionProfiles();\n\n program.addCommand(admin());\n program.addCommand(agent());\n program.addCommand(authz());\n program.addCommand(app());\n program.addCommand(conn());\n program.addCommand(email());\n program.addCommand(esv());\n program.addCommand(idm());\n program.addCommand(idp());\n program.addCommand(info());\n program.addCommand(journey());\n program.addCommand(logging());\n program.addCommand(realm());\n program.addCommand(saml());\n program.addCommand(script());\n program.addCommand(service());\n program.addCommand(theme());\n // enable sample command template.\n // program.addCommand(something());\n\n program.showHelpAfterError();\n program.enablePositionalOptions();\n program.parse();\n } catch (e) {\n printMessage(`ERROR: exception running frodo - ${e}`, 'error');\n }\n})();\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,uBAAuB;AACzD,SAASC,OAAO,QAAQ,WAAW;;AAEnC;AACA,OAAOC,KAAK,MAAM,mBAAmB;AACrC,OAAOC,KAAK,MAAM,mBAAmB;AACrC,OAAOC,KAAK,MAAM,mBAAmB;AACrC,OAAOC,GAAG,MAAM,eAAe;AAC/B,OAAOC,IAAI,MAAM,iBAAiB;AAClC,OAAOC,KAAK,MAAM,mBAAmB;AACrC,OAAOC,GAAG,MAAM,eAAe;AAC/B,OAAOC,GAAG,MAAM,eAAe;AAC/B,OAAOC,GAAG,MAAM,eAAe;AAC/B,OAAOC,IAAI,MAAM,iBAAiB;AAClC,OAAOC,OAAO,MAAM,uBAAuB;AAC3C,OAAOC,OAAO,MAAM,oBAAoB;AACxC,OAAOC,KAAK,MAAM,mBAAmB;AACrC,OAAOC,IAAI,MAAM,iBAAiB;AAClC,OAAOC,MAAM,MAAM,qBAAqB;AACxC,OAAOC,OAAO,MAAM,uBAAuB;AAC3C;AACA;AACA,OAAOC,KAAK,MAAM,mBAAmB;AACrC,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,WAAW,QAAQ,iBAAiB;AAE7C,MAAM;EAAEC;AAAuB,CAAC,GAAGrB,iBAAiB;AAEpD,CAAC,YAAY;EACX,IAAI;IACF,MAAMsB,OAAO,GAAG,IAAIrB,OAAO,CAAC,OAAO,CAAC,CAACsB,OAAO,CAC1C,MAAMH,WAAW,CAAC,KAAK,CAAC,EACxB,eAAe,CAChB;IAEDD,YAAY,CAAC,MAAMC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC;IAEpD,MAAMC,sBAAsB,EAAE;IAE9BC,OAAO,CAACE,UAAU,CAACtB,KAAK,EAAE,CAAC;IAC3BoB,OAAO,CAACE,UAAU,CAACrB,KAAK,EAAE,CAAC;IAC3BmB,OAAO,CAACE,UAAU,CAACpB,KAAK,EAAE,CAAC;IAC3BkB,OAAO,CAACE,UAAU,CAACnB,GAAG,EAAE,CAAC;IACzBiB,OAAO,CAACE,UAAU,CAAClB,IAAI,EAAE,CAAC;IAC1BgB,OAAO,CAACE,UAAU,CAACjB,KAAK,EAAE,CAAC;IAC3Be,OAAO,CAACE,UAAU,CAAChB,GAAG,EAAE,CAAC;IACzBc,OAAO,CAACE,UAAU,CAACf,GAAG,EAAE,CAAC;IACzBa,OAAO,CAACE,UAAU,CAACd,GAAG,EAAE,CAAC;IACzBY,OAAO,CAACE,UAAU,CAACb,IAAI,EAAE,CAAC;IAC1BW,OAAO,CAACE,UAAU,CAACZ,OAAO,EAAE,CAAC;IAC7BU,OAAO,CAACE,UAAU,CAACX,OAAO,EAAE,CAAC;IAC7BS,OAAO,CAACE,UAAU,CAACV,KAAK,EAAE,CAAC;IAC3BQ,OAAO,CAACE,UAAU,CAACT,IAAI,EAAE,CAAC;IAC1BO,OAAO,CAACE,UAAU,CAACR,MAAM,EAAE,CAAC;IAC5BM,OAAO,CAACE,UAAU,CAACP,OAAO,EAAE,CAAC;IAC7BK,OAAO,CAACE,UAAU,CAACN,KAAK,EAAE,CAAC;IAC3B;IACA;;IAEAI,OAAO,CAACG,kBAAkB,EAAE;IAC5BH,OAAO,CAACI,uBAAuB,EAAE;IACjCJ,OAAO,CAACK,KAAK,EAAE;EACjB,CAAC,CAAC,OAAOC,CAAC,EAAE;IACVT,YAAY,CAAE,oCAAmCS,CAAE,EAAC,EAAE,OAAO,CAAC;EAChE;AACF,CAAC,GAAG"}
|
|
@@ -12,7 +12,7 @@ const {
|
|
|
12
12
|
createOAuth2ClientWithAdminPrivileges
|
|
13
13
|
} = Admin;
|
|
14
14
|
const program = new FrodoCommand('frodo admin create-oauth2-client-with-admin-privileges');
|
|
15
|
-
program.description('Create an oauth2 client with admin privileges.').addOption(new Option('--client-id [id]', 'Client id.')).addOption(new Option('--client-secret [secret]', 'Client secret.')).addOption(new Option('--llt', 'Create a long-lived token and store it in a secret. The default secret name is esv-admin-token and the default token lifetime is 315,360,000 seconds (10 years). Both can be overwritten with the --llt-esv and --llt-ttl options.')).addOption(new Option('--llt-scope [scope]', 'Request the following scope(s). This option only applies if used with the --llt option.').default('fr:idm:*', 'fr:idm:*')).addOption(new Option('--llt-esv [esv]', 'Name of the secret to store the token in. This option only applies if used with the --llt option.').default('esv-admin-token', 'esv-admin-token')).addOption(new Option('--llt-ttl [ttl]', 'Token lifetime (seconds). This option only applies if used with the --llt option.').default(315360000, '315,360,000 seconds (10 years)')).action(
|
|
15
|
+
program.description('Create an oauth2 client with admin privileges.').addOption(new Option('--client-id [id]', 'Client id.')).addOption(new Option('--client-secret [secret]', 'Client secret.')).addOption(new Option('--llt', 'Create a long-lived token and store it in a secret. The default secret name is esv-admin-token and the default token lifetime is 315,360,000 seconds (10 years). Both can be overwritten with the --llt-esv and --llt-ttl options.')).addOption(new Option('--llt-scope [scope]', 'Request the following scope(s). This option only applies if used with the --llt option.').default('fr:idm:*', 'fr:idm:*')).addOption(new Option('--llt-esv [esv]', 'Name of the secret to store the token in. This option only applies if used with the --llt option.').default('esv-admin-token', 'esv-admin-token')).addOption(new Option('--no-llt-esv', "Don't store the token in a secret and output to console instead. This option only applies if used with the --llt option.")).addOption(new Option('--llt-ttl [ttl]', 'Token lifetime (seconds). This option only applies if used with the --llt option.').default(315360000, '315,360,000 seconds (10 years)')).action(
|
|
16
16
|
// implement command logic inside action handler
|
|
17
17
|
async (host, realm, user, password, options, command) => {
|
|
18
18
|
command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
|
|
@@ -30,6 +30,7 @@ async (host, realm, user, password, options, command) => {
|
|
|
30
30
|
await createOAuth2ClientWithAdminPrivileges(clientId, clientSecret);
|
|
31
31
|
} catch (error) {
|
|
32
32
|
printMessage(error, 'error');
|
|
33
|
+
process.exitCode = 1;
|
|
33
34
|
}
|
|
34
35
|
const table = new Table({
|
|
35
36
|
chars: {
|
|
@@ -54,20 +55,26 @@ async (host, realm, user, password, options, command) => {
|
|
|
54
55
|
},
|
|
55
56
|
wordWrap: true
|
|
56
57
|
});
|
|
58
|
+
table.push(['Client ID'['brightCyan'], clientId]);
|
|
59
|
+
table.push(['Client Secret'['brightCyan'], clientSecret]);
|
|
57
60
|
if (options.llt) {
|
|
58
61
|
try {
|
|
59
62
|
const response = await createLongLivedToken(clientId, clientSecret, options.scope, options.lltEsv, options.lltTtl);
|
|
60
|
-
table.push(['Secret Name'['brightCyan'], response.secret]);
|
|
63
|
+
if (options.lltEsv) table.push(['Secret Name'['brightCyan'], response.secret]);
|
|
61
64
|
table.push(['Scope'['brightCyan'], response.scope]);
|
|
62
|
-
// table.push(['Token Lifetime'.brightCyan, response.expires_in]);
|
|
63
65
|
table.push(['Expires'['brightCyan'], response.expires_on]);
|
|
66
|
+
printMessage(table.toString());
|
|
67
|
+
if (options.lltEsv === false) {
|
|
68
|
+
printMessage(`\nBearer token:`, 'info');
|
|
69
|
+
printMessage(`${response.access_token}`, 'data');
|
|
70
|
+
}
|
|
64
71
|
} catch (error) {
|
|
65
72
|
printMessage(error, 'error');
|
|
73
|
+
process.exitCode = 1;
|
|
66
74
|
}
|
|
75
|
+
} else {
|
|
76
|
+
printMessage(table.toString());
|
|
67
77
|
}
|
|
68
|
-
table.push(['Client ID'['brightCyan'], clientId]);
|
|
69
|
-
table.push(['Client Secret'['brightCyan'], clientSecret]);
|
|
70
|
-
printMessage(table.toString());
|
|
71
78
|
} else {
|
|
72
79
|
process.exitCode = 1;
|
|
73
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-create-oauth2-client-with-admin-privileges.js","names":["FrodoCommand","Option","v4","uuidv4","Table","Authenticate","Admin","state","printMessage","getTokens","createLongLivedToken","createOAuth2ClientWithAdminPrivileges","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","getRealm","clientId","clientSecret","error","table","chars","top","bottom","left","mid","right","style","wordWrap","llt","response","scope","lltEsv","lltTtl","
|
|
1
|
+
{"version":3,"file":"admin-create-oauth2-client-with-admin-privileges.js","names":["FrodoCommand","Option","v4","uuidv4","Table","Authenticate","Admin","state","printMessage","getTokens","createLongLivedToken","createOAuth2ClientWithAdminPrivileges","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","getRealm","clientId","clientSecret","error","process","exitCode","table","chars","top","bottom","left","mid","right","style","wordWrap","push","llt","response","scope","lltEsv","lltTtl","secret","expires_on","toString","access_token","parse"],"sources":["cli/admin/admin-create-oauth2-client-with-admin-privileges.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { v4 as uuidv4 } from 'uuid';\nimport Table from 'cli-table3';\nimport { Authenticate, Admin, state } from '@rockcarver/frodo-lib';\nimport { printMessage } from '../../utils/Console.js';\n\nconst { getTokens } = Authenticate;\nconst { createLongLivedToken, createOAuth2ClientWithAdminPrivileges } = Admin;\n\nconst program = new FrodoCommand(\n 'frodo admin create-oauth2-client-with-admin-privileges'\n);\n\nprogram\n .description('Create an oauth2 client with admin privileges.')\n .addOption(new Option('--client-id [id]', 'Client id.'))\n .addOption(new Option('--client-secret [secret]', 'Client secret.'))\n .addOption(\n new Option(\n '--llt',\n 'Create a long-lived token and store it in a secret. The default secret name is esv-admin-token and the default token lifetime is 315,360,000 seconds (10 years). Both can be overwritten with the --llt-esv and --llt-ttl options.'\n )\n )\n .addOption(\n new Option(\n '--llt-scope [scope]',\n 'Request the following scope(s). This option only applies if used with the --llt option.'\n ).default('fr:idm:*', 'fr:idm:*')\n )\n .addOption(\n new Option(\n '--llt-esv [esv]',\n 'Name of the secret to store the token in. This option only applies if used with the --llt option.'\n ).default('esv-admin-token', 'esv-admin-token')\n )\n .addOption(\n new Option(\n '--no-llt-esv',\n \"Don't store the token in a secret and output to console instead. This option only applies if used with the --llt option.\"\n )\n )\n .addOption(\n new Option(\n '--llt-ttl [ttl]',\n 'Token lifetime (seconds). This option only applies if used with the --llt option.'\n ).default(315360000, '315,360,000 seconds (10 years)')\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n printMessage(\n `Creating oauth2 client with admin privileges in realm \"${state.getRealm()}\"...`\n );\n let clientId = uuidv4();\n let clientSecret = uuidv4();\n if (options.clientId) {\n clientId = options.clientId;\n }\n if (options.clientSecret) {\n clientSecret = options.clientSecret;\n }\n try {\n await createOAuth2ClientWithAdminPrivileges(clientId, clientSecret);\n } catch (error) {\n printMessage(error, 'error');\n process.exitCode = 1;\n }\n const table = new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0 },\n wordWrap: true,\n });\n table.push(['Client ID'['brightCyan'], clientId]);\n table.push(['Client Secret'['brightCyan'], clientSecret]);\n if (options.llt) {\n try {\n const response = await createLongLivedToken(\n clientId,\n clientSecret,\n options.scope,\n options.lltEsv,\n options.lltTtl\n );\n if (options.lltEsv)\n table.push(['Secret Name'['brightCyan'], response.secret]);\n table.push(['Scope'['brightCyan'], response.scope]);\n table.push(['Expires'['brightCyan'], response.expires_on]);\n printMessage(table.toString());\n if (options.lltEsv === false) {\n printMessage(`\\nBearer token:`, 'info');\n printMessage(`${response.access_token}`, 'data');\n }\n } catch (error) {\n printMessage(error, 'error');\n process.exitCode = 1;\n }\n } else {\n printMessage(table.toString());\n }\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { FrodoCommand } from '../FrodoCommand';
|
|
2
|
+
import { Option } from 'commander';
|
|
3
|
+
import { Authenticate } from '@rockcarver/frodo-lib';
|
|
4
|
+
import { printMessage, verboseMessage } from '../../utils/Console.js';
|
|
5
|
+
import { deletePolicy, deletePolicies, deletePoliciesByPolicySet } from '../../ops/PolicyOps';
|
|
6
|
+
const {
|
|
7
|
+
getTokens
|
|
8
|
+
} = Authenticate;
|
|
9
|
+
const program = new FrodoCommand('frodo authz policy delete');
|
|
10
|
+
program.description('Delete authorization policies.').addOption(new Option('-i, --policy-id <policy-id>', 'Policy id/name. If specified, -a is ignored.')).addOption(new Option('-a, --all', 'Delete all policies in a realm. Ignored with -i.')).addOption(new Option('--set-id <set-id>', 'Policy set id/name. Ignored with -i.')).action(
|
|
11
|
+
// implement command logic inside action handler
|
|
12
|
+
async (host, realm, user, password, options, command) => {
|
|
13
|
+
command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
|
|
14
|
+
// delete by id
|
|
15
|
+
if (options.policyId && (await getTokens())) {
|
|
16
|
+
verboseMessage('Deleting authorization policy...');
|
|
17
|
+
const outcome = await deletePolicy(options.policyId);
|
|
18
|
+
if (!outcome) process.exitCode = 1;
|
|
19
|
+
}
|
|
20
|
+
// --all -a by policy set
|
|
21
|
+
else if (options.setId && options.all && (await getTokens())) {
|
|
22
|
+
verboseMessage(`Deleting all authorization policies in policy set ${options.setId}...`);
|
|
23
|
+
const outcome = await deletePoliciesByPolicySet(options.setId);
|
|
24
|
+
if (!outcome) process.exitCode = 1;
|
|
25
|
+
}
|
|
26
|
+
// --all -a
|
|
27
|
+
else if (options.all && (await getTokens())) {
|
|
28
|
+
verboseMessage('Deleting all authorization policies...');
|
|
29
|
+
const outcome = await deletePolicies();
|
|
30
|
+
if (!outcome) process.exitCode = 1;
|
|
31
|
+
}
|
|
32
|
+
// unrecognized combination of options or no options
|
|
33
|
+
else {
|
|
34
|
+
printMessage('Unrecognized combination of options or no options...');
|
|
35
|
+
program.help();
|
|
36
|
+
process.exitCode = 1;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
// end command logic inside action handler
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
program.parse();
|
|
43
|
+
//# sourceMappingURL=authz-policy-delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authz-policy-delete.js","names":["FrodoCommand","Option","Authenticate","printMessage","verboseMessage","deletePolicy","deletePolicies","deletePoliciesByPolicySet","getTokens","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","policyId","outcome","process","exitCode","setId","all","help","parse"],"sources":["cli/authz/authz-policy-delete.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { Authenticate } from '@rockcarver/frodo-lib';\nimport { printMessage, verboseMessage } from '../../utils/Console.js';\nimport {\n deletePolicy,\n deletePolicies,\n deletePoliciesByPolicySet,\n} from '../../ops/PolicyOps';\n\nconst { getTokens } = Authenticate;\n\nconst program = new FrodoCommand('frodo authz policy delete');\n\nprogram\n .description('Delete authorization policies.')\n .addOption(\n new Option(\n '-i, --policy-id <policy-id>',\n 'Policy id/name. If specified, -a is ignored.'\n )\n )\n .addOption(\n new Option('-a, --all', 'Delete all policies in a realm. Ignored with -i.')\n )\n .addOption(\n new Option('--set-id <set-id>', 'Policy set id/name. Ignored with -i.')\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // delete by id\n if (options.policyId && (await getTokens())) {\n verboseMessage('Deleting authorization policy...');\n const outcome = await deletePolicy(options.policyId);\n if (!outcome) process.exitCode = 1;\n }\n // --all -a by policy set\n else if (options.setId && options.all && (await getTokens())) {\n verboseMessage(\n `Deleting all authorization policies in policy set ${options.setId}...`\n );\n const outcome = await deletePoliciesByPolicySet(options.setId);\n if (!outcome) process.exitCode = 1;\n }\n // --all -a\n else if (options.all && (await getTokens())) {\n verboseMessage('Deleting all authorization policies...');\n const outcome = await deletePolicies();\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n printMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,YAAY,EAAEC,cAAc,QAAQ,wBAAwB;AACrE,SACEC,YAAY,EACZC,cAAc,EACdC,yBAAyB,QACpB,qBAAqB;AAE5B,MAAM;EAAEC;AAAU,CAAC,GAAGN,YAAY;AAElC,MAAMO,OAAO,GAAG,IAAIT,YAAY,CAAC,2BAA2B,CAAC;AAE7DS,OAAO,CACJC,WAAW,CAAC,gCAAgC,CAAC,CAC7CC,SAAS,CACR,IAAIV,MAAM,CACR,6BAA6B,EAC7B,8CAA8C,CAC/C,CACF,CACAU,SAAS,CACR,IAAIV,MAAM,CAAC,WAAW,EAAE,kDAAkD,CAAC,CAC5E,CACAU,SAAS,CACR,IAAIV,MAAM,CAAC,mBAAmB,EAAE,sCAAsC,CAAC,CACxE,CACAW,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OAAO,CACR;EACD;EACA,IAAID,OAAO,CAACG,QAAQ,KAAK,MAAMZ,SAAS,EAAE,CAAC,EAAE;IAC3CJ,cAAc,CAAC,kCAAkC,CAAC;IAClD,MAAMiB,OAAO,GAAG,MAAMhB,YAAY,CAACY,OAAO,CAACG,QAAQ,CAAC;IACpD,IAAI,CAACC,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK,IAAIN,OAAO,CAACO,KAAK,IAAIP,OAAO,CAACQ,GAAG,KAAK,MAAMjB,SAAS,EAAE,CAAC,EAAE;IAC5DJ,cAAc,CACX,qDAAoDa,OAAO,CAACO,KAAM,KAAI,CACxE;IACD,MAAMH,OAAO,GAAG,MAAMd,yBAAyB,CAACU,OAAO,CAACO,KAAK,CAAC;IAC9D,IAAI,CAACH,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK,IAAIN,OAAO,CAACQ,GAAG,KAAK,MAAMjB,SAAS,EAAE,CAAC,EAAE;IAC3CJ,cAAc,CAAC,wCAAwC,CAAC;IACxD,MAAMiB,OAAO,GAAG,MAAMf,cAAc,EAAE;IACtC,IAAI,CAACe,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK;IACHpB,YAAY,CAAC,sDAAsD,CAAC;IACpEM,OAAO,CAACiB,IAAI,EAAE;IACdJ,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AAAA,CACD;;AAEHd,OAAO,CAACkB,KAAK,EAAE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { FrodoCommand } from '../FrodoCommand';
|
|
2
|
+
import { Option } from 'commander';
|
|
3
|
+
import { Authenticate } from '@rockcarver/frodo-lib';
|
|
4
|
+
import { verboseMessage } from '../../utils/Console.js';
|
|
5
|
+
import { describePolicy } from '../../ops/PolicyOps';
|
|
6
|
+
const {
|
|
7
|
+
getTokens
|
|
8
|
+
} = Authenticate;
|
|
9
|
+
const program = new FrodoCommand('frodo authz policy describe');
|
|
10
|
+
program.description('Describe authorization policies.').addOption(new Option('-i, --policy-id <policy-id>', 'Policy id/name.').makeOptionMandatory()).addOption(new Option('--json', 'Output in JSON format.')).action(
|
|
11
|
+
// implement command logic inside action handler
|
|
12
|
+
async (host, realm, user, password, options, command) => {
|
|
13
|
+
command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
|
|
14
|
+
if (options.policyId && (await getTokens())) {
|
|
15
|
+
verboseMessage(`Describing authorization policy ${options.policyId}...`);
|
|
16
|
+
const outcome = await describePolicy(options.policyId, options.json);
|
|
17
|
+
if (!outcome) process.exitCode = 1;
|
|
18
|
+
}
|
|
19
|
+
// unrecognized combination of options or no options
|
|
20
|
+
else {
|
|
21
|
+
verboseMessage('Unrecognized combination of options or no options...');
|
|
22
|
+
program.help();
|
|
23
|
+
process.exitCode = 1;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
// end command logic inside action handler
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
program.parse();
|
|
30
|
+
//# sourceMappingURL=authz-policy-describe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authz-policy-describe.js","names":["FrodoCommand","Option","Authenticate","verboseMessage","describePolicy","getTokens","program","description","addOption","makeOptionMandatory","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","policyId","outcome","json","process","exitCode","help","parse"],"sources":["cli/authz/authz-policy-describe.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { Authenticate } from '@rockcarver/frodo-lib';\nimport { verboseMessage } from '../../utils/Console.js';\nimport { describePolicy } from '../../ops/PolicyOps';\n\nconst { getTokens } = Authenticate;\n\nconst program = new FrodoCommand('frodo authz policy describe');\n\nprogram\n .description('Describe authorization policies.')\n .addOption(\n new Option(\n '-i, --policy-id <policy-id>',\n 'Policy id/name.'\n ).makeOptionMandatory()\n )\n .addOption(new Option('--json', 'Output in JSON format.'))\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (options.policyId && (await getTokens())) {\n verboseMessage(\n `Describing authorization policy ${options.policyId}...`\n );\n const outcome = await describePolicy(options.policyId, options.json);\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n verboseMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,cAAc,QAAQ,qBAAqB;AAEpD,MAAM;EAAEC;AAAU,CAAC,GAAGH,YAAY;AAElC,MAAMI,OAAO,GAAG,IAAIN,YAAY,CAAC,6BAA6B,CAAC;AAE/DM,OAAO,CACJC,WAAW,CAAC,kCAAkC,CAAC,CAC/CC,SAAS,CACR,IAAIP,MAAM,CACR,6BAA6B,EAC7B,iBAAiB,CAClB,CAACQ,mBAAmB,EAAE,CACxB,CACAD,SAAS,CAAC,IAAIP,MAAM,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC,CACzDS,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OAAO,CACR;EACD,IAAID,OAAO,CAACG,QAAQ,KAAK,MAAMb,SAAS,EAAE,CAAC,EAAE;IAC3CF,cAAc,CACX,mCAAkCY,OAAO,CAACG,QAAS,KAAI,CACzD;IACD,MAAMC,OAAO,GAAG,MAAMf,cAAc,CAACW,OAAO,CAACG,QAAQ,EAAEH,OAAO,CAACK,IAAI,CAAC;IACpE,IAAI,CAACD,OAAO,EAAEE,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK;IACHnB,cAAc,CAAC,sDAAsD,CAAC;IACtEG,OAAO,CAACiB,IAAI,EAAE;IACdF,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AAAA,CACD;;AAEHhB,OAAO,CAACkB,KAAK,EAAE"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { FrodoCommand } from '../FrodoCommand';
|
|
2
|
+
import { Option } from 'commander';
|
|
3
|
+
import { Authenticate } from '@rockcarver/frodo-lib';
|
|
4
|
+
import { exportPolicyToFile, exportPoliciesToFile, exportPoliciesByPolicySetToFile, exportPoliciesToFiles, exportPoliciesByPolicySetToFiles } from '../../ops/PolicyOps';
|
|
5
|
+
import { verboseMessage } from '../../utils/Console';
|
|
6
|
+
const {
|
|
7
|
+
getTokens
|
|
8
|
+
} = Authenticate;
|
|
9
|
+
const program = new FrodoCommand('frodo authz policy export');
|
|
10
|
+
program.description('Export authorization policies.').addOption(new Option('-i, --policy-id <policy-id>', 'Policy id. If specified, -a and -A are ignored.')).addOption(new Option('--set-id <set-id>', 'Policy set id/name. Ignored with -i.')).addOption(new Option('-f, --file <file>', 'Name of the export file.')).addOption(new Option('-a, --all', 'Export policies to a single file. Ignored with -i.')).addOption(new Option('-A, --all-separate', 'Export policies to separate files (*.policy.authz.json) in the current directory. Ignored with -i or -a.')).addOption(new Option('--no-deps', 'Do not include any dependencies (policy sets, scripts, resource types).')).action(
|
|
11
|
+
// implement command logic inside action handler
|
|
12
|
+
async (host, realm, user, password, options, command) => {
|
|
13
|
+
command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
|
|
14
|
+
// export
|
|
15
|
+
if (options.policyId && (await getTokens())) {
|
|
16
|
+
verboseMessage('Exporting authorization policy to file...');
|
|
17
|
+
const outcome = exportPolicyToFile(options.policyId, options.file, {
|
|
18
|
+
useStringArrays: true,
|
|
19
|
+
deps: options.deps
|
|
20
|
+
});
|
|
21
|
+
if (!outcome) process.exitCode = 1;
|
|
22
|
+
}
|
|
23
|
+
// -a/--all by policy set
|
|
24
|
+
else if (options.setId && options.all && (await getTokens())) {
|
|
25
|
+
verboseMessage(`Exporting all authorization policies in policy set ${options.setId} to file...`);
|
|
26
|
+
const outcome = await exportPoliciesByPolicySetToFile(options.setId, options.file, {
|
|
27
|
+
useStringArrays: true,
|
|
28
|
+
deps: options.deps
|
|
29
|
+
});
|
|
30
|
+
if (!outcome) process.exitCode = 1;
|
|
31
|
+
}
|
|
32
|
+
// -a/--all
|
|
33
|
+
else if (options.all && (await getTokens())) {
|
|
34
|
+
verboseMessage('Exporting all authorization policies to file...');
|
|
35
|
+
const outcome = await exportPoliciesToFile(options.file, {
|
|
36
|
+
useStringArrays: true,
|
|
37
|
+
deps: options.deps
|
|
38
|
+
});
|
|
39
|
+
if (!outcome) process.exitCode = 1;
|
|
40
|
+
}
|
|
41
|
+
// -A/--all-separate by policy set
|
|
42
|
+
else if (options.setId && options.allSeparate && (await getTokens())) {
|
|
43
|
+
verboseMessage(`Exporting all authorization policies in policy set ${options.setId} to separate files...`);
|
|
44
|
+
const outcome = await exportPoliciesByPolicySetToFiles(options.setId, {
|
|
45
|
+
useStringArrays: true,
|
|
46
|
+
deps: options.deps
|
|
47
|
+
});
|
|
48
|
+
if (!outcome) process.exitCode = 1;
|
|
49
|
+
}
|
|
50
|
+
// -A/--all-separate
|
|
51
|
+
else if (options.allSeparate && (await getTokens())) {
|
|
52
|
+
verboseMessage('Exporting all authorization policies to separate files...');
|
|
53
|
+
const outcome = await exportPoliciesToFiles({
|
|
54
|
+
useStringArrays: true,
|
|
55
|
+
deps: options.deps
|
|
56
|
+
});
|
|
57
|
+
if (!outcome) process.exitCode = 1;
|
|
58
|
+
}
|
|
59
|
+
// unrecognized combination of options or no options
|
|
60
|
+
else {
|
|
61
|
+
verboseMessage('Unrecognized combination of options or no options...');
|
|
62
|
+
program.help();
|
|
63
|
+
process.exitCode = 1;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// end command logic inside action handler
|
|
67
|
+
);
|
|
68
|
+
|
|
69
|
+
program.parse();
|
|
70
|
+
//# sourceMappingURL=authz-policy-export.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authz-policy-export.js","names":["FrodoCommand","Option","Authenticate","exportPolicyToFile","exportPoliciesToFile","exportPoliciesByPolicySetToFile","exportPoliciesToFiles","exportPoliciesByPolicySetToFiles","verboseMessage","getTokens","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","policyId","outcome","file","useStringArrays","deps","process","exitCode","setId","all","allSeparate","help","parse"],"sources":["cli/authz/authz-policy-export.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { Authenticate } from '@rockcarver/frodo-lib';\nimport {\n exportPolicyToFile,\n exportPoliciesToFile,\n exportPoliciesByPolicySetToFile,\n exportPoliciesToFiles,\n exportPoliciesByPolicySetToFiles,\n} from '../../ops/PolicyOps';\nimport { verboseMessage } from '../../utils/Console';\n\nconst { getTokens } = Authenticate;\n\nconst program = new FrodoCommand('frodo authz policy export');\n\nprogram\n .description('Export authorization policies.')\n .addOption(\n new Option(\n '-i, --policy-id <policy-id>',\n 'Policy id. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option('--set-id <set-id>', 'Policy set id/name. Ignored with -i.')\n )\n .addOption(new Option('-f, --file <file>', 'Name of the export file.'))\n .addOption(\n new Option(\n '-a, --all',\n 'Export policies to a single file. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Export policies to separate files (*.policy.authz.json) in the current directory. Ignored with -i or -a.'\n )\n )\n .addOption(\n new Option(\n '--no-deps',\n 'Do not include any dependencies (policy sets, scripts, resource types).'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // export\n if (options.policyId && (await getTokens())) {\n verboseMessage('Exporting authorization policy to file...');\n const outcome = exportPolicyToFile(options.policyId, options.file, {\n useStringArrays: true,\n deps: options.deps,\n });\n if (!outcome) process.exitCode = 1;\n }\n // -a/--all by policy set\n else if (options.setId && options.all && (await getTokens())) {\n verboseMessage(\n `Exporting all authorization policies in policy set ${options.setId} to file...`\n );\n const outcome = await exportPoliciesByPolicySetToFile(\n options.setId,\n options.file,\n {\n useStringArrays: true,\n deps: options.deps,\n }\n );\n if (!outcome) process.exitCode = 1;\n }\n // -a/--all\n else if (options.all && (await getTokens())) {\n verboseMessage('Exporting all authorization policies to file...');\n const outcome = await exportPoliciesToFile(options.file, {\n useStringArrays: true,\n deps: options.deps,\n });\n if (!outcome) process.exitCode = 1;\n }\n // -A/--all-separate by policy set\n else if (options.setId && options.allSeparate && (await getTokens())) {\n verboseMessage(\n `Exporting all authorization policies in policy set ${options.setId} to separate files...`\n );\n const outcome = await exportPoliciesByPolicySetToFiles(options.setId, {\n useStringArrays: true,\n deps: options.deps,\n });\n if (!outcome) process.exitCode = 1;\n }\n // -A/--all-separate\n else if (options.allSeparate && (await getTokens())) {\n verboseMessage(\n 'Exporting all authorization policies to separate files...'\n );\n const outcome = await exportPoliciesToFiles({\n useStringArrays: true,\n deps: options.deps,\n });\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n verboseMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SACEC,kBAAkB,EAClBC,oBAAoB,EACpBC,+BAA+B,EAC/BC,qBAAqB,EACrBC,gCAAgC,QAC3B,qBAAqB;AAC5B,SAASC,cAAc,QAAQ,qBAAqB;AAEpD,MAAM;EAAEC;AAAU,CAAC,GAAGP,YAAY;AAElC,MAAMQ,OAAO,GAAG,IAAIV,YAAY,CAAC,2BAA2B,CAAC;AAE7DU,OAAO,CACJC,WAAW,CAAC,gCAAgC,CAAC,CAC7CC,SAAS,CACR,IAAIX,MAAM,CACR,6BAA6B,EAC7B,iDAAiD,CAClD,CACF,CACAW,SAAS,CACR,IAAIX,MAAM,CAAC,mBAAmB,EAAE,sCAAsC,CAAC,CACxE,CACAW,SAAS,CAAC,IAAIX,MAAM,CAAC,mBAAmB,EAAE,0BAA0B,CAAC,CAAC,CACtEW,SAAS,CACR,IAAIX,MAAM,CACR,WAAW,EACX,oDAAoD,CACrD,CACF,CACAW,SAAS,CACR,IAAIX,MAAM,CACR,oBAAoB,EACpB,0GAA0G,CAC3G,CACF,CACAW,SAAS,CACR,IAAIX,MAAM,CACR,WAAW,EACX,yEAAyE,CAC1E,CACF,CACAY,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OAAO,CACR;EACD;EACA,IAAID,OAAO,CAACG,QAAQ,KAAK,MAAMZ,SAAS,EAAE,CAAC,EAAE;IAC3CD,cAAc,CAAC,2CAA2C,CAAC;IAC3D,MAAMc,OAAO,GAAGnB,kBAAkB,CAACe,OAAO,CAACG,QAAQ,EAAEH,OAAO,CAACK,IAAI,EAAE;MACjEC,eAAe,EAAE,IAAI;MACrBC,IAAI,EAAEP,OAAO,CAACO;IAChB,CAAC,CAAC;IACF,IAAI,CAACH,OAAO,EAAEI,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK,IAAIT,OAAO,CAACU,KAAK,IAAIV,OAAO,CAACW,GAAG,KAAK,MAAMpB,SAAS,EAAE,CAAC,EAAE;IAC5DD,cAAc,CACX,sDAAqDU,OAAO,CAACU,KAAM,aAAY,CACjF;IACD,MAAMN,OAAO,GAAG,MAAMjB,+BAA+B,CACnDa,OAAO,CAACU,KAAK,EACbV,OAAO,CAACK,IAAI,EACZ;MACEC,eAAe,EAAE,IAAI;MACrBC,IAAI,EAAEP,OAAO,CAACO;IAChB,CAAC,CACF;IACD,IAAI,CAACH,OAAO,EAAEI,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK,IAAIT,OAAO,CAACW,GAAG,KAAK,MAAMpB,SAAS,EAAE,CAAC,EAAE;IAC3CD,cAAc,CAAC,iDAAiD,CAAC;IACjE,MAAMc,OAAO,GAAG,MAAMlB,oBAAoB,CAACc,OAAO,CAACK,IAAI,EAAE;MACvDC,eAAe,EAAE,IAAI;MACrBC,IAAI,EAAEP,OAAO,CAACO;IAChB,CAAC,CAAC;IACF,IAAI,CAACH,OAAO,EAAEI,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK,IAAIT,OAAO,CAACU,KAAK,IAAIV,OAAO,CAACY,WAAW,KAAK,MAAMrB,SAAS,EAAE,CAAC,EAAE;IACpED,cAAc,CACX,sDAAqDU,OAAO,CAACU,KAAM,uBAAsB,CAC3F;IACD,MAAMN,OAAO,GAAG,MAAMf,gCAAgC,CAACW,OAAO,CAACU,KAAK,EAAE;MACpEJ,eAAe,EAAE,IAAI;MACrBC,IAAI,EAAEP,OAAO,CAACO;IAChB,CAAC,CAAC;IACF,IAAI,CAACH,OAAO,EAAEI,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK,IAAIT,OAAO,CAACY,WAAW,KAAK,MAAMrB,SAAS,EAAE,CAAC,EAAE;IACnDD,cAAc,CACZ,2DAA2D,CAC5D;IACD,MAAMc,OAAO,GAAG,MAAMhB,qBAAqB,CAAC;MAC1CkB,eAAe,EAAE,IAAI;MACrBC,IAAI,EAAEP,OAAO,CAACO;IAChB,CAAC,CAAC;IACF,IAAI,CAACH,OAAO,EAAEI,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK;IACHnB,cAAc,CAAC,sDAAsD,CAAC;IACtEE,OAAO,CAACqB,IAAI,EAAE;IACdL,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AAAA,CACD;;AAEHjB,OAAO,CAACsB,KAAK,EAAE"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { FrodoCommand } from '../FrodoCommand';
|
|
2
|
+
import { Option } from 'commander';
|
|
3
|
+
import { Authenticate } from '@rockcarver/frodo-lib';
|
|
4
|
+
import { importPolicyFromFile } from '../../ops/PolicyOps';
|
|
5
|
+
const {
|
|
6
|
+
getTokens
|
|
7
|
+
} = Authenticate;
|
|
8
|
+
const program = new FrodoCommand('frodo authz policy import');
|
|
9
|
+
program.description('Import authorization policies.').addOption(new Option('-i, --policy-id <policy-id>', 'Policy id. If specified, only one policy is imported and the options -a and -A are ignored.')).addOption(new Option('-f, --file <file>', 'Name of the file to import.')).addOption(new Option('-a, --all', 'Import all policies from single file. Ignored with -i.')).addOption(new Option('-A, --all-separate', 'Import all policies from separate files (*.policy.authz.json) in the current directory. Ignored with -i or -a.')).action(
|
|
10
|
+
// implement command logic inside action handler
|
|
11
|
+
async (host, realm, user, password, options, command) => {
|
|
12
|
+
command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
|
|
13
|
+
if (await getTokens()) {
|
|
14
|
+
const outcome = importPolicyFromFile(options.policyId, options.file, {
|
|
15
|
+
deps: options.deps
|
|
16
|
+
});
|
|
17
|
+
if (!outcome) process.exitCode = 1;
|
|
18
|
+
} else {
|
|
19
|
+
process.exitCode = 1;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
// end command logic inside action handler
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
program.parse();
|
|
26
|
+
//# sourceMappingURL=authz-policy-import.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authz-policy-import.js","names":["FrodoCommand","Option","Authenticate","importPolicyFromFile","getTokens","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","outcome","policyId","file","deps","process","exitCode","parse"],"sources":["cli/authz/authz-policy-import.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { Authenticate } from '@rockcarver/frodo-lib';\nimport { importPolicyFromFile } from '../../ops/PolicyOps';\n\nconst { getTokens } = Authenticate;\n\nconst program = new FrodoCommand('frodo authz policy import');\n\nprogram\n .description('Import authorization policies.')\n .addOption(\n new Option(\n '-i, --policy-id <policy-id>',\n 'Policy id. If specified, only one policy is imported and the options -a and -A are ignored.'\n )\n )\n .addOption(new Option('-f, --file <file>', 'Name of the file to import.'))\n .addOption(\n new Option(\n '-a, --all',\n 'Import all policies from single file. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all policies from separate files (*.policy.authz.json) in the current directory. Ignored with -i or -a.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n const outcome = importPolicyFromFile(options.policyId, options.file, {\n deps: options.deps,\n });\n if (!outcome) process.exitCode = 1;\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,oBAAoB,QAAQ,qBAAqB;AAE1D,MAAM;EAAEC;AAAU,CAAC,GAAGF,YAAY;AAElC,MAAMG,OAAO,GAAG,IAAIL,YAAY,CAAC,2BAA2B,CAAC;AAE7DK,OAAO,CACJC,WAAW,CAAC,gCAAgC,CAAC,CAC7CC,SAAS,CACR,IAAIN,MAAM,CACR,6BAA6B,EAC7B,6FAA6F,CAC9F,CACF,CACAM,SAAS,CAAC,IAAIN,MAAM,CAAC,mBAAmB,EAAE,6BAA6B,CAAC,CAAC,CACzEM,SAAS,CACR,IAAIN,MAAM,CACR,WAAW,EACX,wDAAwD,CACzD,CACF,CACAM,SAAS,CACR,IAAIN,MAAM,CACR,oBAAoB,EACpB,gHAAgH,CACjH,CACF,CACAO,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OAAO,CACR;EACD,IAAI,MAAMV,SAAS,EAAE,EAAE;IACrB,MAAMY,OAAO,GAAGb,oBAAoB,CAACU,OAAO,CAACI,QAAQ,EAAEJ,OAAO,CAACK,IAAI,EAAE;MACnEC,IAAI,EAAEN,OAAO,CAACM;IAChB,CAAC,CAAC;IACF,IAAI,CAACH,OAAO,EAAEI,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC,CAAC,MAAM;IACLD,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AAAA,CACD;;AAEHhB,OAAO,CAACiB,KAAK,EAAE"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { FrodoCommand } from '../FrodoCommand';
|
|
2
|
+
import { Option } from 'commander';
|
|
3
|
+
import { Authenticate } from '@rockcarver/frodo-lib';
|
|
4
|
+
import { verboseMessage } from '../../utils/Console.js';
|
|
5
|
+
import { listPolicies, listPoliciesByPolicySet } from '../../ops/PolicyOps';
|
|
6
|
+
const {
|
|
7
|
+
getTokens
|
|
8
|
+
} = Authenticate;
|
|
9
|
+
const program = new FrodoCommand('frodo authz policy list');
|
|
10
|
+
program.description('List authorization policies.').addOption(new Option('--set-id <set-id>', 'Policy set id/name.')).addOption(new Option('-l, --long', 'Long with all fields.').default(false, 'false')).action(
|
|
11
|
+
// implement command logic inside action handler
|
|
12
|
+
async (host, realm, user, password, options, command) => {
|
|
13
|
+
command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
|
|
14
|
+
// by policy set
|
|
15
|
+
if (options.setId && (await getTokens())) {
|
|
16
|
+
verboseMessage(`Listing authorization policies in policy set ${options.setId}...`);
|
|
17
|
+
const outcome = listPoliciesByPolicySet(options.setId, options.long);
|
|
18
|
+
if (!outcome) process.exitCode = 1;
|
|
19
|
+
}
|
|
20
|
+
// all policies
|
|
21
|
+
else if (await getTokens()) {
|
|
22
|
+
verboseMessage(`Listing authorization policies...`);
|
|
23
|
+
const outcome = listPolicies(options.long);
|
|
24
|
+
if (!outcome) process.exitCode = 1;
|
|
25
|
+
}
|
|
26
|
+
// unrecognized combination of options or no options
|
|
27
|
+
else {
|
|
28
|
+
verboseMessage('Unrecognized combination of options or no options...');
|
|
29
|
+
program.help();
|
|
30
|
+
process.exitCode = 1;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// end command logic inside action handler
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
program.parse();
|
|
37
|
+
//# sourceMappingURL=authz-policy-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authz-policy-list.js","names":["FrodoCommand","Option","Authenticate","verboseMessage","listPolicies","listPoliciesByPolicySet","getTokens","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","setId","outcome","long","process","exitCode","help","parse"],"sources":["cli/authz/authz-policy-list.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { Authenticate } from '@rockcarver/frodo-lib';\nimport { verboseMessage } from '../../utils/Console.js';\nimport { listPolicies, listPoliciesByPolicySet } from '../../ops/PolicyOps';\n\nconst { getTokens } = Authenticate;\n\nconst program = new FrodoCommand('frodo authz policy list');\n\nprogram\n .description('List authorization policies.')\n .addOption(new Option('--set-id <set-id>', 'Policy set id/name.'))\n .addOption(\n new Option('-l, --long', 'Long with all fields.').default(false, 'false')\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // by policy set\n if (options.setId && (await getTokens())) {\n verboseMessage(\n `Listing authorization policies in policy set ${options.setId}...`\n );\n const outcome = listPoliciesByPolicySet(options.setId, options.long);\n if (!outcome) process.exitCode = 1;\n }\n // all policies\n else if (await getTokens()) {\n verboseMessage(`Listing authorization policies...`);\n const outcome = listPolicies(options.long);\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n verboseMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,YAAY,EAAEC,uBAAuB,QAAQ,qBAAqB;AAE3E,MAAM;EAAEC;AAAU,CAAC,GAAGJ,YAAY;AAElC,MAAMK,OAAO,GAAG,IAAIP,YAAY,CAAC,yBAAyB,CAAC;AAE3DO,OAAO,CACJC,WAAW,CAAC,8BAA8B,CAAC,CAC3CC,SAAS,CAAC,IAAIR,MAAM,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,CAAC,CACjEQ,SAAS,CACR,IAAIR,MAAM,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAACS,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAC1E,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OAAO,CACR;EACD;EACA,IAAID,OAAO,CAACG,KAAK,KAAK,MAAMb,SAAS,EAAE,CAAC,EAAE;IACxCH,cAAc,CACX,gDAA+Ca,OAAO,CAACG,KAAM,KAAI,CACnE;IACD,MAAMC,OAAO,GAAGf,uBAAuB,CAACW,OAAO,CAACG,KAAK,EAAEH,OAAO,CAACK,IAAI,CAAC;IACpE,IAAI,CAACD,OAAO,EAAEE,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK,IAAI,MAAMjB,SAAS,EAAE,EAAE;IAC1BH,cAAc,CAAE,mCAAkC,CAAC;IACnD,MAAMiB,OAAO,GAAGhB,YAAY,CAACY,OAAO,CAACK,IAAI,CAAC;IAC1C,IAAI,CAACD,OAAO,EAAEE,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK;IACHpB,cAAc,CAAC,sDAAsD,CAAC;IACtEI,OAAO,CAACiB,IAAI,EAAE;IACdF,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AAAA,CACD;;AAEHhB,OAAO,CAACkB,KAAK,EAAE"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FrodoStubCommand } from '../FrodoCommand';
|
|
2
|
+
const program = new FrodoStubCommand('frodo authz policy');
|
|
3
|
+
program.description('Manages authorization policies.');
|
|
4
|
+
program.command('delete', 'Delete authorization policies.');
|
|
5
|
+
program.command('describe', 'Describe authorization policies.');
|
|
6
|
+
program.command('export', 'Export authorization policies.');
|
|
7
|
+
program.command('import', 'Import authorization policies.');
|
|
8
|
+
program.command('list', 'List authorization policies.');
|
|
9
|
+
program.parse();
|
|
10
|
+
//# sourceMappingURL=authz-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authz-policy.js","names":["FrodoStubCommand","program","description","command","parse"],"sources":["cli/authz/authz-policy.ts"],"sourcesContent":["import { FrodoStubCommand } from '../FrodoCommand';\n\nconst program = new FrodoStubCommand('frodo authz policy');\n\nprogram.description('Manages authorization policies.');\n\nprogram.command('delete', 'Delete authorization policies.');\n\nprogram.command('describe', 'Describe authorization policies.');\n\nprogram.command('export', 'Export authorization policies.');\n\nprogram.command('import', 'Import authorization policies.');\n\nprogram.command('list', 'List authorization policies.');\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,iBAAiB;AAElD,MAAMC,OAAO,GAAG,IAAID,gBAAgB,CAAC,oBAAoB,CAAC;AAE1DC,OAAO,CAACC,WAAW,CAAC,iCAAiC,CAAC;AAEtDD,OAAO,CAACE,OAAO,CAAC,QAAQ,EAAE,gCAAgC,CAAC;AAE3DF,OAAO,CAACE,OAAO,CAAC,UAAU,EAAE,kCAAkC,CAAC;AAE/DF,OAAO,CAACE,OAAO,CAAC,QAAQ,EAAE,gCAAgC,CAAC;AAE3DF,OAAO,CAACE,OAAO,CAAC,QAAQ,EAAE,gCAAgC,CAAC;AAE3DF,OAAO,CAACE,OAAO,CAAC,MAAM,EAAE,8BAA8B,CAAC;AAEvDF,OAAO,CAACG,KAAK,EAAE"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { FrodoCommand } from '../FrodoCommand';
|
|
2
|
+
import { Option } from 'commander';
|
|
3
|
+
import { Authenticate } from '@rockcarver/frodo-lib';
|
|
4
|
+
import { printMessage, verboseMessage } from '../../utils/Console.js';
|
|
5
|
+
import { deletePolicySet, deletePolicySets } from '../../ops/PolicySetOps';
|
|
6
|
+
const {
|
|
7
|
+
getTokens
|
|
8
|
+
} = Authenticate;
|
|
9
|
+
const program = new FrodoCommand('frodo authz set delete');
|
|
10
|
+
program.description('Delete authorization policy sets.').addOption(new Option('-i, --set-id <set-id>', 'Policy set id/name.')).addOption(new Option('-a, --all', 'Delete all policy sets in a realm. Ignored with -i.')).action(
|
|
11
|
+
// implement command logic inside action handler
|
|
12
|
+
async (host, realm, user, password, options, command) => {
|
|
13
|
+
command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
|
|
14
|
+
// delete by id
|
|
15
|
+
if (options.setId && (await getTokens())) {
|
|
16
|
+
verboseMessage('Deleting authorization policy set...');
|
|
17
|
+
const outcome = deletePolicySet(options.setId);
|
|
18
|
+
if (!outcome) process.exitCode = 1;
|
|
19
|
+
}
|
|
20
|
+
// --all -a
|
|
21
|
+
else if (options.all && (await getTokens())) {
|
|
22
|
+
verboseMessage('Deleting all authorization policy sets...');
|
|
23
|
+
const outcome = deletePolicySets();
|
|
24
|
+
if (!outcome) process.exitCode = 1;
|
|
25
|
+
}
|
|
26
|
+
// unrecognized combination of options or no options
|
|
27
|
+
else {
|
|
28
|
+
printMessage('Unrecognized combination of options or no options...');
|
|
29
|
+
program.help();
|
|
30
|
+
process.exitCode = 1;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// end command logic inside action handler
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
program.parse();
|
|
37
|
+
//# sourceMappingURL=authz-set-delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authz-set-delete.js","names":["FrodoCommand","Option","Authenticate","printMessage","verboseMessage","deletePolicySet","deletePolicySets","getTokens","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","setId","outcome","process","exitCode","all","help","parse"],"sources":["cli/authz/authz-set-delete.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { Authenticate } from '@rockcarver/frodo-lib';\nimport { printMessage, verboseMessage } from '../../utils/Console.js';\nimport { deletePolicySet, deletePolicySets } from '../../ops/PolicySetOps';\n\nconst { getTokens } = Authenticate;\n\nconst program = new FrodoCommand('frodo authz set delete');\n\nprogram\n .description('Delete authorization policy sets.')\n .addOption(new Option('-i, --set-id <set-id>', 'Policy set id/name.'))\n .addOption(\n new Option(\n '-a, --all',\n 'Delete all policy sets in a realm. Ignored with -i.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // delete by id\n if (options.setId && (await getTokens())) {\n verboseMessage('Deleting authorization policy set...');\n const outcome = deletePolicySet(options.setId);\n if (!outcome) process.exitCode = 1;\n }\n // --all -a\n else if (options.all && (await getTokens())) {\n verboseMessage('Deleting all authorization policy sets...');\n const outcome = deletePolicySets();\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n printMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,YAAY,EAAEC,cAAc,QAAQ,wBAAwB;AACrE,SAASC,eAAe,EAAEC,gBAAgB,QAAQ,wBAAwB;AAE1E,MAAM;EAAEC;AAAU,CAAC,GAAGL,YAAY;AAElC,MAAMM,OAAO,GAAG,IAAIR,YAAY,CAAC,wBAAwB,CAAC;AAE1DQ,OAAO,CACJC,WAAW,CAAC,mCAAmC,CAAC,CAChDC,SAAS,CAAC,IAAIT,MAAM,CAAC,uBAAuB,EAAE,qBAAqB,CAAC,CAAC,CACrES,SAAS,CACR,IAAIT,MAAM,CACR,WAAW,EACX,qDAAqD,CACtD,CACF,CACAU,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OAAO,CACR;EACD;EACA,IAAID,OAAO,CAACG,KAAK,KAAK,MAAMZ,SAAS,EAAE,CAAC,EAAE;IACxCH,cAAc,CAAC,sCAAsC,CAAC;IACtD,MAAMgB,OAAO,GAAGf,eAAe,CAACW,OAAO,CAACG,KAAK,CAAC;IAC9C,IAAI,CAACC,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK,IAAIN,OAAO,CAACO,GAAG,KAAK,MAAMhB,SAAS,EAAE,CAAC,EAAE;IAC3CH,cAAc,CAAC,2CAA2C,CAAC;IAC3D,MAAMgB,OAAO,GAAGd,gBAAgB,EAAE;IAClC,IAAI,CAACc,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK;IACHnB,YAAY,CAAC,sDAAsD,CAAC;IACpEK,OAAO,CAACgB,IAAI,EAAE;IACdH,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AAAA,CACD;;AAEHd,OAAO,CAACiB,KAAK,EAAE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { FrodoCommand } from '../FrodoCommand';
|
|
2
|
+
import { Option } from 'commander';
|
|
3
|
+
import { Authenticate } from '@rockcarver/frodo-lib';
|
|
4
|
+
import { verboseMessage } from '../../utils/Console.js';
|
|
5
|
+
import { describePolicySet } from '../../ops/PolicySetOps';
|
|
6
|
+
const {
|
|
7
|
+
getTokens
|
|
8
|
+
} = Authenticate;
|
|
9
|
+
const program = new FrodoCommand('frodo authz set describe');
|
|
10
|
+
program.description('Describe authorization policy sets.').addOption(new Option('-i, --set-id <set-id>', 'Policy set id/name.').makeOptionMandatory()).addOption(new Option('--json', 'Output in JSON format.')).action(
|
|
11
|
+
// implement command logic inside action handler
|
|
12
|
+
async (host, realm, user, password, options, command) => {
|
|
13
|
+
command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
|
|
14
|
+
if (options.setId && (await getTokens())) {
|
|
15
|
+
verboseMessage(`Describing authorization policy set ${options.setId}...`);
|
|
16
|
+
const outcome = await describePolicySet(options.setId, options.json);
|
|
17
|
+
if (!outcome) process.exitCode = 1;
|
|
18
|
+
}
|
|
19
|
+
// unrecognized combination of options or no options
|
|
20
|
+
else {
|
|
21
|
+
verboseMessage('Unrecognized combination of options or no options...');
|
|
22
|
+
program.help();
|
|
23
|
+
process.exitCode = 1;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
// end command logic inside action handler
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
program.parse();
|
|
30
|
+
//# sourceMappingURL=authz-set-describe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authz-set-describe.js","names":["FrodoCommand","Option","Authenticate","verboseMessage","describePolicySet","getTokens","program","description","addOption","makeOptionMandatory","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","setId","outcome","json","process","exitCode","help","parse"],"sources":["cli/authz/authz-set-describe.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { Authenticate } from '@rockcarver/frodo-lib';\nimport { verboseMessage } from '../../utils/Console.js';\nimport { describePolicySet } from '../../ops/PolicySetOps';\n\nconst { getTokens } = Authenticate;\n\nconst program = new FrodoCommand('frodo authz set describe');\n\nprogram\n .description('Describe authorization policy sets.')\n .addOption(\n new Option(\n '-i, --set-id <set-id>',\n 'Policy set id/name.'\n ).makeOptionMandatory()\n )\n .addOption(new Option('--json', 'Output in JSON format.'))\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (options.setId && (await getTokens())) {\n verboseMessage(\n `Describing authorization policy set ${options.setId}...`\n );\n const outcome = await describePolicySet(options.setId, options.json);\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n verboseMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,iBAAiB,QAAQ,wBAAwB;AAE1D,MAAM;EAAEC;AAAU,CAAC,GAAGH,YAAY;AAElC,MAAMI,OAAO,GAAG,IAAIN,YAAY,CAAC,0BAA0B,CAAC;AAE5DM,OAAO,CACJC,WAAW,CAAC,qCAAqC,CAAC,CAClDC,SAAS,CACR,IAAIP,MAAM,CACR,uBAAuB,EACvB,qBAAqB,CACtB,CAACQ,mBAAmB,EAAE,CACxB,CACAD,SAAS,CAAC,IAAIP,MAAM,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC,CACzDS,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OAAO,CACR;EACD,IAAID,OAAO,CAACG,KAAK,KAAK,MAAMb,SAAS,EAAE,CAAC,EAAE;IACxCF,cAAc,CACX,uCAAsCY,OAAO,CAACG,KAAM,KAAI,CAC1D;IACD,MAAMC,OAAO,GAAG,MAAMf,iBAAiB,CAACW,OAAO,CAACG,KAAK,EAAEH,OAAO,CAACK,IAAI,CAAC;IACpE,IAAI,CAACD,OAAO,EAAEE,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK;IACHnB,cAAc,CAAC,sDAAsD,CAAC;IACtEG,OAAO,CAACiB,IAAI,EAAE;IACdF,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AAAA,CACD;;AAEHhB,OAAO,CAACkB,KAAK,EAAE"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { FrodoCommand } from '../FrodoCommand';
|
|
2
|
+
import { Option } from 'commander';
|
|
3
|
+
import { Authenticate } from '@rockcarver/frodo-lib';
|
|
4
|
+
import { exportPolicySetToFile, exportPolicySetsToFile, exportPolicySetsToFiles } from '../../ops/PolicySetOps';
|
|
5
|
+
import { verboseMessage } from '../../utils/Console';
|
|
6
|
+
const {
|
|
7
|
+
getTokens
|
|
8
|
+
} = Authenticate;
|
|
9
|
+
const program = new FrodoCommand('frodo authz set export');
|
|
10
|
+
program.description('Export authorization policy sets.').addOption(new Option('-i, --set-id <set-id>', 'Policy set id/name. If specified, -a and -A are ignored.')).addOption(new Option('-f, --file <file>', 'Name of the export file.')).addOption(new Option('-a, --all', 'Export all applications/policy sets to a single file. Ignored with -i.')).addOption(new Option('-A, --all-separate', 'Export all applications/policy sets to separate files (*.authz.json) in the current directory. Ignored with -i or -a.')).addOption(new Option('--no-deps', 'Do not include any dependencies (policies, scripts, resource types).')).action(
|
|
11
|
+
// implement command logic inside action handler
|
|
12
|
+
async (host, realm, user, password, options, command) => {
|
|
13
|
+
command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
|
|
14
|
+
// export
|
|
15
|
+
if (options.setId && (await getTokens())) {
|
|
16
|
+
verboseMessage('Exporting authorization policy set to file...');
|
|
17
|
+
const outcome = exportPolicySetToFile(options.setId, options.file, {
|
|
18
|
+
useStringArrays: true,
|
|
19
|
+
deps: options.deps
|
|
20
|
+
});
|
|
21
|
+
if (!outcome) process.exitCode = 1;
|
|
22
|
+
}
|
|
23
|
+
// -a/--all
|
|
24
|
+
else if (options.all && (await getTokens())) {
|
|
25
|
+
verboseMessage('Exporting all authorization policy sets to file...');
|
|
26
|
+
const outcome = await exportPolicySetsToFile(options.file, {
|
|
27
|
+
useStringArrays: true,
|
|
28
|
+
deps: options.deps
|
|
29
|
+
});
|
|
30
|
+
if (!outcome) process.exitCode = 1;
|
|
31
|
+
}
|
|
32
|
+
// -A/--all-separate
|
|
33
|
+
else if (options.allSeparate && (await getTokens())) {
|
|
34
|
+
verboseMessage('Exporting all authorization policy sets to separate files...');
|
|
35
|
+
const outcome = await exportPolicySetsToFiles({
|
|
36
|
+
useStringArrays: true,
|
|
37
|
+
deps: options.deps
|
|
38
|
+
});
|
|
39
|
+
if (!outcome) process.exitCode = 1;
|
|
40
|
+
}
|
|
41
|
+
// unrecognized combination of options or no options
|
|
42
|
+
else {
|
|
43
|
+
verboseMessage('Unrecognized combination of options or no options...');
|
|
44
|
+
program.help();
|
|
45
|
+
process.exitCode = 1;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// end command logic inside action handler
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
program.parse();
|
|
52
|
+
//# sourceMappingURL=authz-set-export.js.map
|