@rockcarver/frodo-cli 2.0.0-6 → 2.0.0-7

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.
Files changed (340) hide show
  1. package/CHANGELOG.md +5 -1
  2. package/esm/app.js +4 -1
  3. package/esm/app.js.map +1 -1
  4. package/esm/cli/_template/something-delete.js +4 -1
  5. package/esm/cli/_template/something-delete.js.map +1 -1
  6. package/esm/cli/_template/something-describe.js +4 -1
  7. package/esm/cli/_template/something-describe.js.map +1 -1
  8. package/esm/cli/_template/something-else-delete.js +4 -1
  9. package/esm/cli/_template/something-else-delete.js.map +1 -1
  10. package/esm/cli/_template/something-else-describe.js +4 -1
  11. package/esm/cli/_template/something-else-describe.js.map +1 -1
  12. package/esm/cli/_template/something-else-export.js +4 -1
  13. package/esm/cli/_template/something-else-export.js.map +1 -1
  14. package/esm/cli/_template/something-else-import.js +4 -1
  15. package/esm/cli/_template/something-else-import.js.map +1 -1
  16. package/esm/cli/_template/something-else-list.js +4 -1
  17. package/esm/cli/_template/something-else-list.js.map +1 -1
  18. package/esm/cli/_template/something-export.js +4 -1
  19. package/esm/cli/_template/something-export.js.map +1 -1
  20. package/esm/cli/_template/something-import.js +4 -1
  21. package/esm/cli/_template/something-import.js.map +1 -1
  22. package/esm/cli/_template/something-list.js +4 -1
  23. package/esm/cli/_template/something-list.js.map +1 -1
  24. package/esm/cli/_template/something-other-delete.js +4 -1
  25. package/esm/cli/_template/something-other-delete.js.map +1 -1
  26. package/esm/cli/_template/something-other-describe.js +4 -1
  27. package/esm/cli/_template/something-other-describe.js.map +1 -1
  28. package/esm/cli/_template/something-other-export.js +4 -1
  29. package/esm/cli/_template/something-other-export.js.map +1 -1
  30. package/esm/cli/_template/something-other-import.js +4 -1
  31. package/esm/cli/_template/something-other-import.js.map +1 -1
  32. package/esm/cli/_template/something-other-list.js +4 -1
  33. package/esm/cli/_template/something-other-list.js.map +1 -1
  34. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +8 -2
  35. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js.map +1 -1
  36. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js +10 -3
  37. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
  38. package/esm/cli/admin/admin-federation-export.js +4 -1
  39. package/esm/cli/admin/admin-federation-export.js.map +1 -1
  40. package/esm/cli/admin/admin-federation-import.js +7 -4
  41. package/esm/cli/admin/admin-federation-import.js.map +1 -1
  42. package/esm/cli/admin/admin-federation-list.js +4 -1
  43. package/esm/cli/admin/admin-federation-list.js.map +1 -1
  44. package/esm/cli/admin/admin-get-access-token.js +8 -2
  45. package/esm/cli/admin/admin-get-access-token.js.map +1 -1
  46. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +8 -2
  47. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
  48. package/esm/cli/admin/admin-hide-generic-extension-attributes.js +8 -2
  49. package/esm/cli/admin/admin-hide-generic-extension-attributes.js.map +1 -1
  50. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +8 -2
  51. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js.map +1 -1
  52. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js +8 -2
  53. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js.map +1 -1
  54. package/esm/cli/admin/admin-list-static-user-mappings.js +8 -2
  55. package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
  56. package/esm/cli/admin/admin-remove-static-user-mapping.js +8 -2
  57. package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
  58. package/esm/cli/admin/admin-repair-org-model.js +8 -2
  59. package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
  60. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +8 -2
  61. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
  62. package/esm/cli/admin/admin-show-generic-extension-attributes.js +8 -2
  63. package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
  64. package/esm/cli/agent/agent-delete.js +10 -3
  65. package/esm/cli/agent/agent-delete.js.map +1 -1
  66. package/esm/cli/agent/agent-describe.js +4 -1
  67. package/esm/cli/agent/agent-describe.js.map +1 -1
  68. package/esm/cli/agent/agent-export.js +4 -1
  69. package/esm/cli/agent/agent-export.js.map +1 -1
  70. package/esm/cli/agent/agent-gateway-delete.js +10 -3
  71. package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
  72. package/esm/cli/agent/agent-gateway-describe.js +4 -1
  73. package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
  74. package/esm/cli/agent/agent-gateway-export.js +4 -1
  75. package/esm/cli/agent/agent-gateway-export.js.map +1 -1
  76. package/esm/cli/agent/agent-gateway-import.js +4 -1
  77. package/esm/cli/agent/agent-gateway-import.js.map +1 -1
  78. package/esm/cli/agent/agent-gateway-list.js +4 -1
  79. package/esm/cli/agent/agent-gateway-list.js.map +1 -1
  80. package/esm/cli/agent/agent-import.js +4 -1
  81. package/esm/cli/agent/agent-import.js.map +1 -1
  82. package/esm/cli/agent/agent-java-delete.js +10 -3
  83. package/esm/cli/agent/agent-java-delete.js.map +1 -1
  84. package/esm/cli/agent/agent-java-describe.js +4 -1
  85. package/esm/cli/agent/agent-java-describe.js.map +1 -1
  86. package/esm/cli/agent/agent-java-export.js +4 -1
  87. package/esm/cli/agent/agent-java-export.js.map +1 -1
  88. package/esm/cli/agent/agent-java-import.js +4 -1
  89. package/esm/cli/agent/agent-java-import.js.map +1 -1
  90. package/esm/cli/agent/agent-java-list.js +4 -1
  91. package/esm/cli/agent/agent-java-list.js.map +1 -1
  92. package/esm/cli/agent/agent-list.js +4 -1
  93. package/esm/cli/agent/agent-list.js.map +1 -1
  94. package/esm/cli/agent/agent-web-delete.js +10 -3
  95. package/esm/cli/agent/agent-web-delete.js.map +1 -1
  96. package/esm/cli/agent/agent-web-describe.js +4 -1
  97. package/esm/cli/agent/agent-web-describe.js.map +1 -1
  98. package/esm/cli/agent/agent-web-export.js +4 -1
  99. package/esm/cli/agent/agent-web-export.js.map +1 -1
  100. package/esm/cli/agent/agent-web-import.js +4 -1
  101. package/esm/cli/agent/agent-web-import.js.map +1 -1
  102. package/esm/cli/agent/agent-web-list.js +4 -1
  103. package/esm/cli/agent/agent-web-list.js.map +1 -1
  104. package/esm/cli/app/app-delete.js +4 -1
  105. package/esm/cli/app/app-delete.js.map +1 -1
  106. package/esm/cli/app/app-describe.js +4 -1
  107. package/esm/cli/app/app-describe.js.map +1 -1
  108. package/esm/cli/app/app-export.js +6 -3
  109. package/esm/cli/app/app-export.js.map +1 -1
  110. package/esm/cli/app/app-import.js +7 -4
  111. package/esm/cli/app/app-import.js.map +1 -1
  112. package/esm/cli/app/app-list.js +4 -1
  113. package/esm/cli/app/app-list.js.map +1 -1
  114. package/esm/cli/authz/authz-policy-delete.js +6 -3
  115. package/esm/cli/authz/authz-policy-delete.js.map +1 -1
  116. package/esm/cli/authz/authz-policy-describe.js +4 -1
  117. package/esm/cli/authz/authz-policy-describe.js.map +1 -1
  118. package/esm/cli/authz/authz-policy-export.js +8 -5
  119. package/esm/cli/authz/authz-policy-export.js.map +1 -1
  120. package/esm/cli/authz/authz-policy-import.js +7 -4
  121. package/esm/cli/authz/authz-policy-import.js.map +1 -1
  122. package/esm/cli/authz/authz-policy-list.js +5 -2
  123. package/esm/cli/authz/authz-policy-list.js.map +1 -1
  124. package/esm/cli/authz/authz-set-delete.js +5 -2
  125. package/esm/cli/authz/authz-set-delete.js.map +1 -1
  126. package/esm/cli/authz/authz-set-describe.js +4 -1
  127. package/esm/cli/authz/authz-set-describe.js.map +1 -1
  128. package/esm/cli/authz/authz-set-export.js +6 -3
  129. package/esm/cli/authz/authz-set-export.js.map +1 -1
  130. package/esm/cli/authz/authz-set-import.js +7 -4
  131. package/esm/cli/authz/authz-set-import.js.map +1 -1
  132. package/esm/cli/authz/authz-set-list.js +4 -1
  133. package/esm/cli/authz/authz-set-list.js.map +1 -1
  134. package/esm/cli/authz/authz-type-delete.js +6 -3
  135. package/esm/cli/authz/authz-type-delete.js.map +1 -1
  136. package/esm/cli/authz/authz-type-describe.js +5 -2
  137. package/esm/cli/authz/authz-type-describe.js.map +1 -1
  138. package/esm/cli/authz/authz-type-export.js +7 -4
  139. package/esm/cli/authz/authz-type-export.js.map +1 -1
  140. package/esm/cli/authz/authz-type-import.js +8 -5
  141. package/esm/cli/authz/authz-type-import.js.map +1 -1
  142. package/esm/cli/authz/authz-type-list.js +4 -1
  143. package/esm/cli/authz/authz-type-list.js.map +1 -1
  144. package/esm/cli/conn/conn-save.js +18 -5
  145. package/esm/cli/conn/conn-save.js.map +1 -1
  146. package/esm/cli/email/email-template-export.js +6 -3
  147. package/esm/cli/email/email-template-export.js.map +1 -1
  148. package/esm/cli/email/email-template-import.js +7 -4
  149. package/esm/cli/email/email-template-import.js.map +1 -1
  150. package/esm/cli/email/email-template-list.js +4 -1
  151. package/esm/cli/email/email-template-list.js.map +1 -1
  152. package/esm/cli/esv/esv-apply.js +15 -5
  153. package/esm/cli/esv/esv-apply.js.map +1 -1
  154. package/esm/cli/esv/esv-secret-create.js +4 -1
  155. package/esm/cli/esv/esv-secret-create.js.map +1 -1
  156. package/esm/cli/esv/esv-secret-delete.js +5 -2
  157. package/esm/cli/esv/esv-secret-delete.js.map +1 -1
  158. package/esm/cli/esv/esv-secret-describe.js +4 -1
  159. package/esm/cli/esv/esv-secret-describe.js.map +1 -1
  160. package/esm/cli/esv/esv-secret-export.js +4 -1
  161. package/esm/cli/esv/esv-secret-export.js.map +1 -1
  162. package/esm/cli/esv/esv-secret-import.js +4 -1
  163. package/esm/cli/esv/esv-secret-import.js.map +1 -1
  164. package/esm/cli/esv/esv-secret-list.js +4 -1
  165. package/esm/cli/esv/esv-secret-list.js.map +1 -1
  166. package/esm/cli/esv/esv-secret-set.js +4 -1
  167. package/esm/cli/esv/esv-secret-set.js.map +1 -1
  168. package/esm/cli/esv/esv-secret-version-activate.js +4 -1
  169. package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
  170. package/esm/cli/esv/esv-secret-version-create.js +4 -1
  171. package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
  172. package/esm/cli/esv/esv-secret-version-deactivate.js +4 -1
  173. package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
  174. package/esm/cli/esv/esv-secret-version-delete.js +5 -2
  175. package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
  176. package/esm/cli/esv/esv-secret-version-list.js +4 -1
  177. package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
  178. package/esm/cli/esv/esv-variable-create.js +4 -1
  179. package/esm/cli/esv/esv-variable-create.js.map +1 -1
  180. package/esm/cli/esv/esv-variable-delete.js +5 -2
  181. package/esm/cli/esv/esv-variable-delete.js.map +1 -1
  182. package/esm/cli/esv/esv-variable-describe.js +4 -1
  183. package/esm/cli/esv/esv-variable-describe.js.map +1 -1
  184. package/esm/cli/esv/esv-variable-export.js +4 -1
  185. package/esm/cli/esv/esv-variable-export.js.map +1 -1
  186. package/esm/cli/esv/esv-variable-import.js +4 -1
  187. package/esm/cli/esv/esv-variable-import.js.map +1 -1
  188. package/esm/cli/esv/esv-variable-list.js +4 -1
  189. package/esm/cli/esv/esv-variable-list.js.map +1 -1
  190. package/esm/cli/esv/esv-variable-set.js +5 -2
  191. package/esm/cli/esv/esv-variable-set.js.map +1 -1
  192. package/esm/cli/idm/idm-count.js +4 -1
  193. package/esm/cli/idm/idm-count.js.map +1 -1
  194. package/esm/cli/idm/idm-export.js +6 -3
  195. package/esm/cli/idm/idm-export.js.map +1 -1
  196. package/esm/cli/idm/idm-import.js +7 -4
  197. package/esm/cli/idm/idm-import.js.map +1 -1
  198. package/esm/cli/idm/idm-list.js +4 -1
  199. package/esm/cli/idm/idm-list.js.map +1 -1
  200. package/esm/cli/idp/idp-export.js +4 -1
  201. package/esm/cli/idp/idp-export.js.map +1 -1
  202. package/esm/cli/idp/idp-import.js +7 -4
  203. package/esm/cli/idp/idp-import.js.map +1 -1
  204. package/esm/cli/idp/idp-list.js +4 -1
  205. package/esm/cli/idp/idp-list.js.map +1 -1
  206. package/esm/cli/info/info.js +8 -2
  207. package/esm/cli/info/info.js.map +1 -1
  208. package/esm/cli/journey/journey-delete.js +5 -2
  209. package/esm/cli/journey/journey-delete.js.map +1 -1
  210. package/esm/cli/journey/journey-describe.js +14 -6
  211. package/esm/cli/journey/journey-describe.js.map +1 -1
  212. package/esm/cli/journey/journey-disable.js +8 -2
  213. package/esm/cli/journey/journey-disable.js.map +1 -1
  214. package/esm/cli/journey/journey-enable.js +8 -2
  215. package/esm/cli/journey/journey-enable.js.map +1 -1
  216. package/esm/cli/journey/journey-export.js +6 -3
  217. package/esm/cli/journey/journey-export.js.map +1 -1
  218. package/esm/cli/journey/journey-import.js +7 -4
  219. package/esm/cli/journey/journey-import.js.map +1 -1
  220. package/esm/cli/journey/journey-list.js +4 -1
  221. package/esm/cli/journey/journey-list.js.map +1 -1
  222. package/esm/cli/journey/journey-prune.js +10 -3
  223. package/esm/cli/journey/journey-prune.js.map +1 -1
  224. package/esm/cli/log/log-fetch.js +16 -6
  225. package/esm/cli/log/log-fetch.js.map +1 -1
  226. package/esm/cli/log/log-key-delete.js +5 -2
  227. package/esm/cli/log/log-key-delete.js.map +1 -1
  228. package/esm/cli/log/log-key-describe.js +4 -1
  229. package/esm/cli/log/log-key-describe.js.map +1 -1
  230. package/esm/cli/log/log-key-list.js +4 -1
  231. package/esm/cli/log/log-key-list.js.map +1 -1
  232. package/esm/cli/log/log-list.js +14 -4
  233. package/esm/cli/log/log-list.js.map +1 -1
  234. package/esm/cli/log/log-tail.js +16 -6
  235. package/esm/cli/log/log-tail.js.map +1 -1
  236. package/esm/cli/realm/realm-add-custom-domain.js +4 -1
  237. package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
  238. package/esm/cli/realm/realm-describe.js +4 -1
  239. package/esm/cli/realm/realm-describe.js.map +1 -1
  240. package/esm/cli/realm/realm-list.js +4 -1
  241. package/esm/cli/realm/realm-list.js.map +1 -1
  242. package/esm/cli/realm/realm-remove-custom-domain.js +8 -2
  243. package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
  244. package/esm/cli/saml/saml-cot-export.js +6 -3
  245. package/esm/cli/saml/saml-cot-export.js.map +1 -1
  246. package/esm/cli/saml/saml-cot-import.js +7 -4
  247. package/esm/cli/saml/saml-cot-import.js.map +1 -1
  248. package/esm/cli/saml/saml-cot-list.js +4 -1
  249. package/esm/cli/saml/saml-cot-list.js.map +1 -1
  250. package/esm/cli/saml/saml-delete.js +11 -4
  251. package/esm/cli/saml/saml-delete.js.map +1 -1
  252. package/esm/cli/saml/saml-describe.js +4 -1
  253. package/esm/cli/saml/saml-describe.js.map +1 -1
  254. package/esm/cli/saml/saml-export.js +6 -3
  255. package/esm/cli/saml/saml-export.js.map +1 -1
  256. package/esm/cli/saml/saml-import.js +7 -4
  257. package/esm/cli/saml/saml-import.js.map +1 -1
  258. package/esm/cli/saml/saml-list.js +4 -1
  259. package/esm/cli/saml/saml-list.js.map +1 -1
  260. package/esm/cli/saml/saml-metadata-export.js +5 -2
  261. package/esm/cli/saml/saml-metadata-export.js.map +1 -1
  262. package/esm/cli/script/script-delete.js +4 -1
  263. package/esm/cli/script/script-delete.js.map +1 -1
  264. package/esm/cli/script/script-describe.js +4 -1
  265. package/esm/cli/script/script-describe.js.map +1 -1
  266. package/esm/cli/script/script-export.js +4 -1
  267. package/esm/cli/script/script-export.js.map +1 -1
  268. package/esm/cli/script/script-import.js +4 -1
  269. package/esm/cli/script/script-import.js.map +1 -1
  270. package/esm/cli/script/script-list.js +4 -1
  271. package/esm/cli/script/script-list.js.map +1 -1
  272. package/esm/cli/service/service-delete.js +5 -2
  273. package/esm/cli/service/service-delete.js.map +1 -1
  274. package/esm/cli/service/service-export.js +6 -3
  275. package/esm/cli/service/service-export.js.map +1 -1
  276. package/esm/cli/service/service-import.js +7 -4
  277. package/esm/cli/service/service-import.js.map +1 -1
  278. package/esm/cli/service/service-list.js +4 -1
  279. package/esm/cli/service/service-list.js.map +1 -1
  280. package/esm/cli/theme/theme-delete.js +6 -3
  281. package/esm/cli/theme/theme-delete.js.map +1 -1
  282. package/esm/cli/theme/theme-export.js +7 -4
  283. package/esm/cli/theme/theme-export.js.map +1 -1
  284. package/esm/cli/theme/theme-import.js +8 -5
  285. package/esm/cli/theme/theme-import.js.map +1 -1
  286. package/esm/cli/theme/theme-list.js +4 -1
  287. package/esm/cli/theme/theme-list.js.map +1 -1
  288. package/esm/ops/AdminFederationOps.js +17 -9
  289. package/esm/ops/AdminFederationOps.js.map +1 -1
  290. package/esm/ops/AgentOps.js +62 -36
  291. package/esm/ops/AgentOps.js.map +1 -1
  292. package/esm/ops/CirclesOfTrustOps.js +22 -10
  293. package/esm/ops/CirclesOfTrustOps.js.map +1 -1
  294. package/esm/ops/ConnectionProfileOps.js +10 -3
  295. package/esm/ops/ConnectionProfileOps.js.map +1 -1
  296. package/esm/ops/EmailTemplateOps.js +23 -15
  297. package/esm/ops/EmailTemplateOps.js.map +1 -1
  298. package/esm/ops/IdmOps.js +34 -21
  299. package/esm/ops/IdmOps.js.map +1 -1
  300. package/esm/ops/IdpOps.js +17 -9
  301. package/esm/ops/IdpOps.js.map +1 -1
  302. package/esm/ops/JourneyOps.js +46 -30
  303. package/esm/ops/JourneyOps.js.map +1 -1
  304. package/esm/ops/LogOps.js +21 -11
  305. package/esm/ops/LogOps.js.map +1 -1
  306. package/esm/ops/NodeOps.js +5 -2
  307. package/esm/ops/NodeOps.js.map +1 -1
  308. package/esm/ops/OAuth2ClientOps.js +25 -12
  309. package/esm/ops/OAuth2ClientOps.js.map +1 -1
  310. package/esm/ops/OrganizationOps.js +8 -2
  311. package/esm/ops/OrganizationOps.js.map +1 -1
  312. package/esm/ops/PolicyOps.js +36 -21
  313. package/esm/ops/PolicyOps.js.map +1 -1
  314. package/esm/ops/PolicySetOps.js +35 -18
  315. package/esm/ops/PolicySetOps.js.map +1 -1
  316. package/esm/ops/RealmOps.js +11 -6
  317. package/esm/ops/RealmOps.js.map +1 -1
  318. package/esm/ops/ResourceTypeOps.js +34 -18
  319. package/esm/ops/ResourceTypeOps.js.map +1 -1
  320. package/esm/ops/Saml2Ops.js +43 -23
  321. package/esm/ops/Saml2Ops.js.map +1 -1
  322. package/esm/ops/ScriptOps.js +18 -10
  323. package/esm/ops/ScriptOps.js.map +1 -1
  324. package/esm/ops/SecretsOps.js +28 -14
  325. package/esm/ops/SecretsOps.js.map +1 -1
  326. package/esm/ops/ServiceOps.js +38 -17
  327. package/esm/ops/ServiceOps.js.map +1 -1
  328. package/esm/ops/ThemeOps.js +35 -19
  329. package/esm/ops/ThemeOps.js.map +1 -1
  330. package/esm/ops/VariablesOps.js +23 -12
  331. package/esm/ops/VariablesOps.js.map +1 -1
  332. package/esm/utils/Config.js +6 -3
  333. package/esm/utils/Config.js.map +1 -1
  334. package/esm/utils/Console.js +5 -2
  335. package/esm/utils/Console.js.map +1 -1
  336. package/esm/utils/ExportImportUtils.js +6 -3
  337. package/esm/utils/ExportImportUtils.js.map +1 -1
  338. package/esm/utils/Version.js +7 -3
  339. package/esm/utils/Version.js.map +1 -1
  340. package/package.json +2 -2
@@ -2,6 +2,23 @@ import { frodo, state } from '@rockcarver/frodo-lib';
2
2
  import fs from 'fs';
3
3
  import { createObjectTable, createProgressBar, debugMessage, failSpinner, printMessage, showSpinner, stopProgressBar, succeedSpinner, updateProgressBar } from '../utils/Console';
4
4
  import { getTypedFilename, saveJsonToFile, titleCase } from '../utils/ExportImportUtils';
5
+ const {
6
+ getRealmName
7
+ } = frodo.helper.utils;
8
+ const {
9
+ getPoliciesByPolicySet,
10
+ deletePolicy
11
+ } = frodo.authz.policy;
12
+ const {
13
+ getPolicySets,
14
+ getPolicySet,
15
+ exportPolicySet,
16
+ exportPolicySets,
17
+ importPolicySet,
18
+ importFirstPolicySet,
19
+ importPolicySets
20
+ } = frodo.authz.policySet;
21
+
5
22
  /**
6
23
  * List policy sets
7
24
  * @returns {Promise<boolean>} true if successful, false otherwise
@@ -9,7 +26,7 @@ import { getTypedFilename, saveJsonToFile, titleCase } from '../utils/ExportImpo
9
26
  export async function listPolicySets() {
10
27
  let outcome = false;
11
28
  try {
12
- const policySets = await frodo.authz.policySet.getPolicySets();
29
+ const policySets = await getPolicySets();
13
30
  policySets.sort((a, b) => a.name.localeCompare(b.name));
14
31
  for (const policySet of policySets) {
15
32
  printMessage(`${policySet.name}`, 'data');
@@ -30,7 +47,7 @@ export async function listPolicySets() {
30
47
  */
31
48
  export async function describePolicySet(policySetId, json = false) {
32
49
  let outcome = false;
33
- const policySet = await frodo.authz.policySet.getPolicySet(policySetId);
50
+ const policySet = await getPolicySet(policySetId);
34
51
  outcome = true;
35
52
  if (json) {
36
53
  printMessage(policySet, 'data');
@@ -51,11 +68,11 @@ export async function deletePolicySet(policySetId) {
51
68
  showSpinner(`Deleting ${policySetId}...`);
52
69
  let outcome = false;
53
70
  const errors = [];
54
- const policies = await frodo.authz.policy.getPoliciesByPolicySet(policySetId);
71
+ const policies = await getPoliciesByPolicySet(policySetId);
55
72
  for (const policy of policies) {
56
73
  try {
57
74
  debugMessage(`Deleting policy ${policy._id}`);
58
- await frodo.authz.policy.deletePolicy(policy._id);
75
+ await deletePolicy(policy._id);
59
76
  } catch (error) {
60
77
  error.message = `Error deleting policy ${policy._id} in policy set ${policySetId}: ${error}`;
61
78
  printMessage(error.message, 'error');
@@ -64,7 +81,7 @@ export async function deletePolicySet(policySetId) {
64
81
  }
65
82
  try {
66
83
  debugMessage(`Deleting policy set ${policySetId}`);
67
- await frodo.authz.policySet.deletePolicySet(policySetId);
84
+ await deletePolicySet(policySetId);
68
85
  } catch (error) {
69
86
  printMessage(`Error deleting policy set ${policySetId}: ${error}`, 'error');
70
87
  }
@@ -91,7 +108,7 @@ export async function deletePolicySets() {
91
108
  try {
92
109
  showSpinner(`Retrieving all policy sets...`);
93
110
  try {
94
- policySets = await frodo.authz.policySet.getPolicySets();
111
+ policySets = await getPolicySets();
95
112
  succeedSpinner(`Found ${policySets.length} policy sets.`);
96
113
  } catch (error) {
97
114
  error.message = `Error retrieving all policy sets: ${error.message}`;
@@ -102,11 +119,11 @@ export async function deletePolicySets() {
102
119
  for (const policySet of policySets) {
103
120
  const policySetId = policySet.name;
104
121
  try {
105
- const policies = await frodo.authz.policy.getPoliciesByPolicySet(policySetId);
122
+ const policies = await getPoliciesByPolicySet(policySetId);
106
123
  for (const policy of policies) {
107
124
  try {
108
125
  debugMessage(`Deleting policy ${policy._id}`);
109
- await frodo.authz.policy.deletePolicy(policy._id);
126
+ await deletePolicy(policy._id);
110
127
  } catch (error) {
111
128
  error.message = `Error deleting policy ${policy._id} in policy set ${policySetId}: ${error}`;
112
129
  printMessage(error.message, 'error');
@@ -118,7 +135,7 @@ export async function deletePolicySets() {
118
135
  }
119
136
  try {
120
137
  debugMessage(`Deleting policy set ${policySetId}`);
121
- await frodo.authz.policySet.deletePolicySet(policySetId);
138
+ await deletePolicySet(policySetId);
122
139
  updateProgressBar(`Deleted ${policySetId}`);
123
140
  } catch (error) {
124
141
  error.message = `Error deleting policy set ${policySetId}: ${error}`;
@@ -162,7 +179,7 @@ export async function exportPolicySetToFile(policySetId, file, options = {
162
179
  if (file) {
163
180
  fileName = file;
164
181
  }
165
- const exportData = await frodo.authz.policySet.exportPolicySet(policySetId, options);
182
+ const exportData = await exportPolicySet(policySetId, options);
166
183
  saveJsonToFile(exportData, fileName);
167
184
  succeedSpinner(`Exported ${policySetId} to ${fileName}.`);
168
185
  outcome = true;
@@ -188,11 +205,11 @@ export async function exportPolicySetsToFile(file, options = {
188
205
  debugMessage(`cli.PolicySetOps.exportPolicySetsToFile: begin`);
189
206
  showSpinner(`Exporting all policy sets...`);
190
207
  try {
191
- let fileName = getTypedFilename(`all${titleCase(frodo.helper.utils.getRealmName(state.getRealm()))}PolicySets`, 'policyset.authz');
208
+ let fileName = getTypedFilename(`all${titleCase(getRealmName(state.getRealm()))}PolicySets`, 'policyset.authz');
192
209
  if (file) {
193
210
  fileName = file;
194
211
  }
195
- const exportData = await frodo.authz.policySet.exportPolicySets(options);
212
+ const exportData = await exportPolicySets(options);
196
213
  saveJsonToFile(exportData, fileName);
197
214
  succeedSpinner(`Exported all policy sets to ${fileName}.`);
198
215
  outcome = true;
@@ -216,12 +233,12 @@ export async function exportPolicySetsToFiles(options = {
216
233
  debugMessage(`cli.PolicySetOps.exportPolicySetsToFiles: begin`);
217
234
  const errors = [];
218
235
  try {
219
- const policySets = await frodo.authz.policySet.getPolicySets();
236
+ const policySets = await getPolicySets();
220
237
  createProgressBar(policySets.length, 'Exporting policy sets...');
221
238
  for (const policySet of policySets) {
222
239
  const file = getTypedFilename(policySet.name, 'policyset.authz');
223
240
  try {
224
- const exportData = await frodo.authz.policySet.exportPolicySet(policySet.name, options);
241
+ const exportData = await exportPolicySet(policySet.name, options);
225
242
  saveJsonToFile(exportData, file);
226
243
  updateProgressBar(`Exported ${policySet.name}.`);
227
244
  } catch (error) {
@@ -255,7 +272,7 @@ export async function importPolicySetFromFile(policySetId, file, options = {
255
272
  try {
256
273
  const data = fs.readFileSync(file, 'utf8');
257
274
  const fileData = JSON.parse(data);
258
- await frodo.authz.policySet.importPolicySet(policySetId, fileData, options);
275
+ await importPolicySet(policySetId, fileData, options);
259
276
  outcome = true;
260
277
  succeedSpinner(`Imported ${policySetId}.`);
261
278
  } catch (error) {
@@ -282,7 +299,7 @@ export async function importFirstPolicySetFromFile(file, options = {
282
299
  try {
283
300
  const data = fs.readFileSync(file, 'utf8');
284
301
  const fileData = JSON.parse(data);
285
- await frodo.authz.policySet.importFirstPolicySet(fileData, options);
302
+ await importFirstPolicySet(fileData, options);
286
303
  outcome = true;
287
304
  succeedSpinner(`Imported ${file}.`);
288
305
  } catch (error) {
@@ -309,7 +326,7 @@ export async function importPolicySetsFromFile(file, options = {
309
326
  try {
310
327
  const data = fs.readFileSync(file, 'utf8');
311
328
  const fileData = JSON.parse(data);
312
- await frodo.authz.policySet.importPolicySets(fileData, options);
329
+ await importPolicySets(fileData, options);
313
330
  outcome = true;
314
331
  succeedSpinner(`Imported ${file}.`);
315
332
  } catch (error) {
@@ -342,7 +359,7 @@ export async function importPolicySetsFromFiles(options = {
342
359
  const fileData = JSON.parse(data);
343
360
  const count = Object.keys(fileData.policyset).length;
344
361
  total += count;
345
- await frodo.authz.policySet.importPolicySets(fileData, options);
362
+ await importPolicySets(fileData, options);
346
363
  updateProgressBar(`Imported ${count} policy sets from ${file}`);
347
364
  } catch (error) {
348
365
  errors.push(error);
@@ -1 +1 @@
1
- {"version":3,"file":"PolicySetOps.js","names":["frodo","state","fs","createObjectTable","createProgressBar","debugMessage","failSpinner","printMessage","showSpinner","stopProgressBar","succeedSpinner","updateProgressBar","getTypedFilename","saveJsonToFile","titleCase","listPolicySets","outcome","policySets","authz","policySet","getPolicySets","sort","a","b","name","localeCompare","err","message","describePolicySet","policySetId","json","getPolicySet","table","toString","deletePolicySet","errors","policies","policy","getPoliciesByPolicySet","_id","deletePolicy","error","push","length","errorMessages","map","join","deletePolicySets","exportPolicySetToFile","file","options","deps","prereqs","useStringArrays","fileName","exportData","exportPolicySet","exportPolicySetsToFile","helper","utils","getRealmName","getRealm","exportPolicySets","exportPolicySetsToFiles","importPolicySetFromFile","data","readFileSync","fileData","JSON","parse","importPolicySet","importFirstPolicySetFromFile","importFirstPolicySet","importPolicySetsFromFile","importPolicySets","importPolicySetsFromFiles","names","readdirSync","files","filter","toLowerCase","endsWith","total","count","Object","keys","policyset"],"sources":["ops/PolicySetOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport fs from 'fs';\nimport type {\n PolicySetSkeleton,\n PolicySkeleton,\n} from '@rockcarver/frodo-lib/types/api/ApiTypes';\nimport {\n createObjectTable,\n createProgressBar,\n debugMessage,\n failSpinner,\n printMessage,\n showSpinner,\n stopProgressBar,\n succeedSpinner,\n updateProgressBar,\n} from '../utils/Console';\nimport {\n getTypedFilename,\n saveJsonToFile,\n titleCase,\n} from '../utils/ExportImportUtils';\nimport {\n PolicySetExportInterface,\n PolicySetExportOptions,\n PolicySetImportOptions,\n} from '@rockcarver/frodo-lib/types/ops/PolicySetOps';\n\n/**\n * List policy sets\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function listPolicySets(): Promise<boolean> {\n let outcome = false;\n try {\n const policySets = await frodo.authz.policySet.getPolicySets();\n policySets.sort((a, b) => a.name.localeCompare(b.name));\n for (const policySet of policySets) {\n printMessage(`${policySet.name}`, 'data');\n }\n outcome = true;\n } catch (err) {\n printMessage(`listPolicySets ERROR: ${err.message}`, 'error');\n printMessage(err, 'error');\n }\n return outcome;\n}\n\n/**\n * Describe policy set\n * @param {string} policySetId policy set id/name\n * @param {Object} json JSON output\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function describePolicySet(\n policySetId: string,\n json = false\n): Promise<boolean> {\n let outcome = false;\n const policySet = await frodo.authz.policySet.getPolicySet(policySetId);\n outcome = true;\n if (json) {\n printMessage(policySet, 'data');\n } else {\n const table = createObjectTable(policySet);\n printMessage(table.toString(), 'data');\n }\n return outcome;\n}\n\n/**\n * Delete policy set\n * @param {string} policySetId policy set id/name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deletePolicySet(policySetId: string): Promise<boolean> {\n debugMessage(`cli.PolicySetOps.deletePolicySet: begin`);\n showSpinner(`Deleting ${policySetId}...`);\n let outcome = false;\n const errors = [];\n const policies: PolicySkeleton[] =\n await frodo.authz.policy.getPoliciesByPolicySet(policySetId);\n for (const policy of policies) {\n try {\n debugMessage(`Deleting policy ${policy._id}`);\n await frodo.authz.policy.deletePolicy(policy._id);\n } catch (error) {\n error.message = `Error deleting policy ${policy._id} in policy set ${policySetId}: ${error}`;\n printMessage(error.message, 'error');\n errors.push(error);\n }\n }\n try {\n debugMessage(`Deleting policy set ${policySetId}`);\n await frodo.authz.policySet.deletePolicySet(policySetId);\n } catch (error) {\n printMessage(`Error deleting policy set ${policySetId}: ${error}`, 'error');\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n failSpinner(`Error deleting ${policySetId}: ${errorMessages}`);\n } else {\n succeedSpinner(`Deleted ${policySetId}.`);\n outcome = true;\n }\n debugMessage(`cli.PolicySetOps.deletePolicySet: end [outcome=${outcome}]`);\n return outcome;\n}\n\n/**\n * Delete all policy sets\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deletePolicySets(): Promise<boolean> {\n debugMessage(`cli.PolicySetOps.deletePolicySets: begin`);\n let outcome = false;\n const errors = [];\n let policySets: PolicySetSkeleton[] = [];\n try {\n showSpinner(`Retrieving all policy sets...`);\n try {\n policySets = await frodo.authz.policySet.getPolicySets();\n succeedSpinner(`Found ${policySets.length} policy sets.`);\n } catch (error) {\n error.message = `Error retrieving all policy sets: ${error.message}`;\n failSpinner(error.message);\n throw error;\n }\n if (policySets.length)\n createProgressBar(\n policySets.length,\n `Deleting ${policySets.length} policy sets...`\n );\n for (const policySet of policySets) {\n const policySetId = policySet.name;\n try {\n const policies: PolicySkeleton[] =\n await frodo.authz.policy.getPoliciesByPolicySet(policySetId);\n for (const policy of policies) {\n try {\n debugMessage(`Deleting policy ${policy._id}`);\n await frodo.authz.policy.deletePolicy(policy._id);\n } catch (error) {\n error.message = `Error deleting policy ${policy._id} in policy set ${policySetId}: ${error}`;\n printMessage(error.message, 'error');\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n try {\n debugMessage(`Deleting policy set ${policySetId}`);\n await frodo.authz.policySet.deletePolicySet(policySetId);\n updateProgressBar(`Deleted ${policySetId}`);\n } catch (error) {\n error.message = `Error deleting policy set ${policySetId}: ${error}`;\n updateProgressBar(error.message);\n errors.push(error);\n }\n }\n } catch (error) {\n error.message = `Error deleting policy sets: ${error}`;\n errors.push(error);\n } finally {\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n if (policySets.length)\n stopProgressBar(`Error deleting all policy sets: ${errorMessages}`);\n } else {\n if (policySets.length)\n stopProgressBar(`Deleted ${policySets.length} policy sets.`);\n outcome = true;\n }\n }\n debugMessage(`cli.PolicySetOps.deletePolicySets: end [outcome=${outcome}]`);\n return outcome;\n}\n\n/**\n * Export policy set to file\n * @param {string} policySetId policy set id/name\n * @param {string} file file name\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPolicySetToFile(\n policySetId: string,\n file: string,\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.exportPolicySetToFile: begin`);\n showSpinner(`Exporting ${policySetId}...`);\n try {\n let fileName = getTypedFilename(policySetId, 'policyset.authz');\n if (file) {\n fileName = file;\n }\n const exportData = await frodo.authz.policySet.exportPolicySet(\n policySetId,\n options\n );\n saveJsonToFile(exportData, fileName);\n succeedSpinner(`Exported ${policySetId} to ${fileName}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting ${policySetId}: ${error.message}`);\n }\n debugMessage(`cli.PolicySetOps.exportPolicySetToFile: end`);\n return outcome;\n}\n\n/**\n * Export policy sets to file\n * @param {string} file file name\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPolicySetsToFile(\n file: string,\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFile: begin`);\n showSpinner(`Exporting all policy sets...`);\n try {\n let fileName = getTypedFilename(\n `all${titleCase(\n frodo.helper.utils.getRealmName(state.getRealm())\n )}PolicySets`,\n 'policyset.authz'\n );\n if (file) {\n fileName = file;\n }\n const exportData = await frodo.authz.policySet.exportPolicySets(options);\n saveJsonToFile(exportData, fileName);\n succeedSpinner(`Exported all policy sets to ${fileName}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting policy sets: ${error.message}`);\n }\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFile: end`);\n return outcome;\n}\n\n/**\n * Export all policy sets to separate files\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPolicySetsToFiles(\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<boolean> {\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFiles: begin`);\n const errors = [];\n try {\n const policySets: PolicySetSkeleton[] =\n await frodo.authz.policySet.getPolicySets();\n createProgressBar(policySets.length, 'Exporting policy sets...');\n for (const policySet of policySets) {\n const file = getTypedFilename(policySet.name, 'policyset.authz');\n try {\n const exportData: PolicySetExportInterface =\n await frodo.authz.policySet.exportPolicySet(policySet.name, options);\n saveJsonToFile(exportData, file);\n updateProgressBar(`Exported ${policySet.name}.`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error exporting ${policySet.name}.`);\n }\n }\n stopProgressBar(`Export complete.`);\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error exporting policy sets to files`);\n }\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFiles: end`);\n return 0 === errors.length;\n}\n\n/**\n * Import policy set from file\n * @param {string} policySetId policy set id/name\n * @param {string} file file name\n * @param {PolicySetImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPolicySetFromFile(\n policySetId: string,\n file: string,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.importPolicySetFromFile: begin`);\n showSpinner(`Importing ${policySetId}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n await frodo.authz.policySet.importPolicySet(policySetId, fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${policySetId}.`);\n } catch (error) {\n failSpinner(`Error importing ${policySetId}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importPolicySetFromFile: end`);\n return outcome;\n}\n\n/**\n * Import first policy set from file\n * @param {string} file file name\n * @param {PolicySetImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importFirstPolicySetFromFile(\n file: string,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.importFirstPolicySetFromFile: begin`);\n showSpinner(`Importing ${file}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n await frodo.authz.policySet.importFirstPolicySet(fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${file}.`);\n } catch (error) {\n failSpinner(`Error importing ${file}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importFirstPolicySetFromFile: end`);\n return outcome;\n}\n\n/**\n * Import policy sets from file\n * @param {string} file file name\n * @param {PolicySetImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPolicySetsFromFile(\n file: string,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFile: begin`);\n showSpinner(`Importing ${file}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n await frodo.authz.policySet.importPolicySets(fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${file}.`);\n } catch (error) {\n failSpinner(`Error importing ${file}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFile: end`);\n return outcome;\n}\n\n/**\n * Import policy sets from files\n * @param {OAuth2ClientImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPolicySetsFromFiles(\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n const errors = [];\n try {\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFiles: begin`);\n const names = fs.readdirSync('.');\n const files = names.filter((name) =>\n name.toLowerCase().endsWith('.policyset.authz.json')\n );\n createProgressBar(files.length, 'Importing policy sets...');\n let total = 0;\n for (const file of files) {\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData: PolicySetExportInterface = JSON.parse(data);\n const count = Object.keys(fileData.policyset).length;\n total += count;\n await frodo.authz.policySet.importPolicySets(fileData, options);\n updateProgressBar(`Imported ${count} policy sets from ${file}`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error importing policy sets from ${file}`);\n printMessage(error, 'error');\n }\n }\n stopProgressBar(\n `Finished importing ${total} policy sets from ${files.length} files.`\n );\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error importing policy sets from files.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFiles: end`);\n return 0 === errors.length;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"PolicySetOps.js","names":["frodo","state","fs","createObjectTable","createProgressBar","debugMessage","failSpinner","printMessage","showSpinner","stopProgressBar","succeedSpinner","updateProgressBar","getTypedFilename","saveJsonToFile","titleCase","getRealmName","helper","utils","getPoliciesByPolicySet","deletePolicy","authz","policy","getPolicySets","getPolicySet","exportPolicySet","exportPolicySets","importPolicySet","importFirstPolicySet","importPolicySets","policySet","listPolicySets","outcome","policySets","sort","a","b","name","localeCompare","err","message","describePolicySet","policySetId","json","table","toString","deletePolicySet","errors","policies","_id","error","push","length","errorMessages","map","join","deletePolicySets","exportPolicySetToFile","file","options","deps","prereqs","useStringArrays","fileName","exportData","exportPolicySetsToFile","getRealm","exportPolicySetsToFiles","importPolicySetFromFile","data","readFileSync","fileData","JSON","parse","importFirstPolicySetFromFile","importPolicySetsFromFile","importPolicySetsFromFiles","names","readdirSync","files","filter","toLowerCase","endsWith","total","count","Object","keys","policyset"],"sources":["ops/PolicySetOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport fs from 'fs';\nimport type {\n PolicySetSkeleton,\n PolicySkeleton,\n} from '@rockcarver/frodo-lib/types/api/ApiTypes';\nimport {\n createObjectTable,\n createProgressBar,\n debugMessage,\n failSpinner,\n printMessage,\n showSpinner,\n stopProgressBar,\n succeedSpinner,\n updateProgressBar,\n} from '../utils/Console';\nimport {\n getTypedFilename,\n saveJsonToFile,\n titleCase,\n} from '../utils/ExportImportUtils';\nimport {\n PolicySetExportInterface,\n PolicySetExportOptions,\n PolicySetImportOptions,\n} from '@rockcarver/frodo-lib/types/ops/PolicySetOps';\n\nconst { getRealmName } = frodo.helper.utils;\nconst { getPoliciesByPolicySet, deletePolicy } = frodo.authz.policy;\nconst {\n getPolicySets,\n getPolicySet,\n exportPolicySet,\n exportPolicySets,\n importPolicySet,\n importFirstPolicySet,\n importPolicySets,\n} = frodo.authz.policySet;\n\n/**\n * List policy sets\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function listPolicySets(): Promise<boolean> {\n let outcome = false;\n try {\n const policySets = await getPolicySets();\n policySets.sort((a, b) => a.name.localeCompare(b.name));\n for (const policySet of policySets) {\n printMessage(`${policySet.name}`, 'data');\n }\n outcome = true;\n } catch (err) {\n printMessage(`listPolicySets ERROR: ${err.message}`, 'error');\n printMessage(err, 'error');\n }\n return outcome;\n}\n\n/**\n * Describe policy set\n * @param {string} policySetId policy set id/name\n * @param {Object} json JSON output\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function describePolicySet(\n policySetId: string,\n json = false\n): Promise<boolean> {\n let outcome = false;\n const policySet = await getPolicySet(policySetId);\n outcome = true;\n if (json) {\n printMessage(policySet, 'data');\n } else {\n const table = createObjectTable(policySet);\n printMessage(table.toString(), 'data');\n }\n return outcome;\n}\n\n/**\n * Delete policy set\n * @param {string} policySetId policy set id/name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deletePolicySet(policySetId: string): Promise<boolean> {\n debugMessage(`cli.PolicySetOps.deletePolicySet: begin`);\n showSpinner(`Deleting ${policySetId}...`);\n let outcome = false;\n const errors = [];\n const policies: PolicySkeleton[] = await getPoliciesByPolicySet(policySetId);\n for (const policy of policies) {\n try {\n debugMessage(`Deleting policy ${policy._id}`);\n await deletePolicy(policy._id);\n } catch (error) {\n error.message = `Error deleting policy ${policy._id} in policy set ${policySetId}: ${error}`;\n printMessage(error.message, 'error');\n errors.push(error);\n }\n }\n try {\n debugMessage(`Deleting policy set ${policySetId}`);\n await deletePolicySet(policySetId);\n } catch (error) {\n printMessage(`Error deleting policy set ${policySetId}: ${error}`, 'error');\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n failSpinner(`Error deleting ${policySetId}: ${errorMessages}`);\n } else {\n succeedSpinner(`Deleted ${policySetId}.`);\n outcome = true;\n }\n debugMessage(`cli.PolicySetOps.deletePolicySet: end [outcome=${outcome}]`);\n return outcome;\n}\n\n/**\n * Delete all policy sets\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deletePolicySets(): Promise<boolean> {\n debugMessage(`cli.PolicySetOps.deletePolicySets: begin`);\n let outcome = false;\n const errors = [];\n let policySets: PolicySetSkeleton[] = [];\n try {\n showSpinner(`Retrieving all policy sets...`);\n try {\n policySets = await getPolicySets();\n succeedSpinner(`Found ${policySets.length} policy sets.`);\n } catch (error) {\n error.message = `Error retrieving all policy sets: ${error.message}`;\n failSpinner(error.message);\n throw error;\n }\n if (policySets.length)\n createProgressBar(\n policySets.length,\n `Deleting ${policySets.length} policy sets...`\n );\n for (const policySet of policySets) {\n const policySetId = policySet.name;\n try {\n const policies: PolicySkeleton[] = await getPoliciesByPolicySet(\n policySetId\n );\n for (const policy of policies) {\n try {\n debugMessage(`Deleting policy ${policy._id}`);\n await deletePolicy(policy._id);\n } catch (error) {\n error.message = `Error deleting policy ${policy._id} in policy set ${policySetId}: ${error}`;\n printMessage(error.message, 'error');\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n try {\n debugMessage(`Deleting policy set ${policySetId}`);\n await deletePolicySet(policySetId);\n updateProgressBar(`Deleted ${policySetId}`);\n } catch (error) {\n error.message = `Error deleting policy set ${policySetId}: ${error}`;\n updateProgressBar(error.message);\n errors.push(error);\n }\n }\n } catch (error) {\n error.message = `Error deleting policy sets: ${error}`;\n errors.push(error);\n } finally {\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n if (policySets.length)\n stopProgressBar(`Error deleting all policy sets: ${errorMessages}`);\n } else {\n if (policySets.length)\n stopProgressBar(`Deleted ${policySets.length} policy sets.`);\n outcome = true;\n }\n }\n debugMessage(`cli.PolicySetOps.deletePolicySets: end [outcome=${outcome}]`);\n return outcome;\n}\n\n/**\n * Export policy set to file\n * @param {string} policySetId policy set id/name\n * @param {string} file file name\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPolicySetToFile(\n policySetId: string,\n file: string,\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.exportPolicySetToFile: begin`);\n showSpinner(`Exporting ${policySetId}...`);\n try {\n let fileName = getTypedFilename(policySetId, 'policyset.authz');\n if (file) {\n fileName = file;\n }\n const exportData = await exportPolicySet(policySetId, options);\n saveJsonToFile(exportData, fileName);\n succeedSpinner(`Exported ${policySetId} to ${fileName}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting ${policySetId}: ${error.message}`);\n }\n debugMessage(`cli.PolicySetOps.exportPolicySetToFile: end`);\n return outcome;\n}\n\n/**\n * Export policy sets to file\n * @param {string} file file name\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPolicySetsToFile(\n file: string,\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFile: begin`);\n showSpinner(`Exporting all policy sets...`);\n try {\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}PolicySets`,\n 'policyset.authz'\n );\n if (file) {\n fileName = file;\n }\n const exportData = await exportPolicySets(options);\n saveJsonToFile(exportData, fileName);\n succeedSpinner(`Exported all policy sets to ${fileName}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting policy sets: ${error.message}`);\n }\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFile: end`);\n return outcome;\n}\n\n/**\n * Export all policy sets to separate files\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPolicySetsToFiles(\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<boolean> {\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFiles: begin`);\n const errors = [];\n try {\n const policySets: PolicySetSkeleton[] = await getPolicySets();\n createProgressBar(policySets.length, 'Exporting policy sets...');\n for (const policySet of policySets) {\n const file = getTypedFilename(policySet.name, 'policyset.authz');\n try {\n const exportData: PolicySetExportInterface = await exportPolicySet(\n policySet.name,\n options\n );\n saveJsonToFile(exportData, file);\n updateProgressBar(`Exported ${policySet.name}.`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error exporting ${policySet.name}.`);\n }\n }\n stopProgressBar(`Export complete.`);\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error exporting policy sets to files`);\n }\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFiles: end`);\n return 0 === errors.length;\n}\n\n/**\n * Import policy set from file\n * @param {string} policySetId policy set id/name\n * @param {string} file file name\n * @param {PolicySetImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPolicySetFromFile(\n policySetId: string,\n file: string,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.importPolicySetFromFile: begin`);\n showSpinner(`Importing ${policySetId}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n await importPolicySet(policySetId, fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${policySetId}.`);\n } catch (error) {\n failSpinner(`Error importing ${policySetId}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importPolicySetFromFile: end`);\n return outcome;\n}\n\n/**\n * Import first policy set from file\n * @param {string} file file name\n * @param {PolicySetImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importFirstPolicySetFromFile(\n file: string,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.importFirstPolicySetFromFile: begin`);\n showSpinner(`Importing ${file}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n await importFirstPolicySet(fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${file}.`);\n } catch (error) {\n failSpinner(`Error importing ${file}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importFirstPolicySetFromFile: end`);\n return outcome;\n}\n\n/**\n * Import policy sets from file\n * @param {string} file file name\n * @param {PolicySetImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPolicySetsFromFile(\n file: string,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFile: begin`);\n showSpinner(`Importing ${file}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n await importPolicySets(fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${file}.`);\n } catch (error) {\n failSpinner(`Error importing ${file}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFile: end`);\n return outcome;\n}\n\n/**\n * Import policy sets from files\n * @param {OAuth2ClientImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPolicySetsFromFiles(\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n const errors = [];\n try {\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFiles: begin`);\n const names = fs.readdirSync('.');\n const files = names.filter((name) =>\n name.toLowerCase().endsWith('.policyset.authz.json')\n );\n createProgressBar(files.length, 'Importing policy sets...');\n let total = 0;\n for (const file of files) {\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData: PolicySetExportInterface = JSON.parse(data);\n const count = Object.keys(fileData.policyset).length;\n total += count;\n await importPolicySets(fileData, options);\n updateProgressBar(`Imported ${count} policy sets from ${file}`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error importing policy sets from ${file}`);\n printMessage(error, 'error');\n }\n }\n stopProgressBar(\n `Finished importing ${total} policy sets from ${files.length} files.`\n );\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error importing policy sets from files.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFiles: end`);\n return 0 === errors.length;\n}\n"],"mappings":"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"}
@@ -1,5 +1,10 @@
1
1
  import { frodo } from '@rockcarver/frodo-lib';
2
2
  import { createKeyValueTable, createTable, printMessage } from '../utils/Console';
3
+ const {
4
+ getRealms,
5
+ getRealmByName,
6
+ putRealm
7
+ } = frodo.realm;
3
8
 
4
9
  /**
5
10
  * List realms
@@ -7,7 +12,7 @@ import { createKeyValueTable, createTable, printMessage } from '../utils/Console
7
12
  */
8
13
  export async function listRealms(long = false) {
9
14
  try {
10
- const realms = (await frodo.realm.getRealms()).result;
15
+ const realms = (await getRealms()).result;
11
16
  if (long) {
12
17
  const table = createTable(['Name'['brightCyan'], 'Status'['brightCyan'], 'Custom Domains'['brightCyan'], 'Parent'['brightCyan']]);
13
18
  realms.forEach(realmConfig => {
@@ -33,7 +38,7 @@ export async function listRealms(long = false) {
33
38
  */
34
39
  export async function describeRealm(realm) {
35
40
  try {
36
- const realmConfig = await frodo.realm.getRealmByName(realm);
41
+ const realmConfig = await getRealmByName(realm);
37
42
  const table = createKeyValueTable();
38
43
  table.push(['Name'['brightCyan'], realmConfig.name]);
39
44
  table.push(['Status'['brightCyan'], realmConfig.active ? 'active'['brightGreen'] : 'inactive'['brightRed']]);
@@ -53,7 +58,7 @@ export async function describeRealm(realm) {
53
58
  */
54
59
  export async function addCustomDomain(realm, domain) {
55
60
  try {
56
- let realmConfig = await frodo.realm.getRealmByName(realm);
61
+ let realmConfig = await getRealmByName(realm);
57
62
  let exists = false;
58
63
  realmConfig.aliases.forEach(alias => {
59
64
  if (domain.toLowerCase() === alias.toLowerCase()) {
@@ -63,7 +68,7 @@ export async function addCustomDomain(realm, domain) {
63
68
  if (!exists) {
64
69
  try {
65
70
  realmConfig.aliases.push(domain.toLowerCase());
66
- realmConfig = await frodo.realm.putRealm(realmConfig._id, realmConfig);
71
+ realmConfig = await putRealm(realmConfig._id, realmConfig);
67
72
  const table = createKeyValueTable();
68
73
  table.push(['Name'['brightCyan'], realmConfig.name]);
69
74
  table.push(['Status'['brightCyan'], realmConfig.active ? 'active'['brightGreen'] : 'inactive'['brightRed']]);
@@ -87,12 +92,12 @@ export async function addCustomDomain(realm, domain) {
87
92
  */
88
93
  export async function removeCustomDomain(realm, domain) {
89
94
  try {
90
- let realmConfig = await frodo.realm.getRealmByName(realm);
95
+ let realmConfig = await getRealmByName(realm);
91
96
  const aliases = realmConfig.aliases.filter(alias => domain.toLowerCase() !== alias.toLowerCase());
92
97
  if (aliases.length < realmConfig.aliases.length) {
93
98
  try {
94
99
  realmConfig.aliases = aliases;
95
- realmConfig = await frodo.realm.putRealm(realmConfig._id, realmConfig);
100
+ realmConfig = await putRealm(realmConfig._id, realmConfig);
96
101
  const table = createKeyValueTable();
97
102
  table.push(['Name'['brightCyan'], realmConfig.name]);
98
103
  table.push(['Status'['brightCyan'], realmConfig.active ? 'active'['brightGreen'] : 'inactive'['brightRed']]);
@@ -1 +1 @@
1
- {"version":3,"file":"RealmOps.js","names":["frodo","createKeyValueTable","createTable","printMessage","listRealms","long","realms","realm","getRealms","result","table","forEach","realmConfig","push","name","active","aliases","join","parentPath","toString","error","_error$response","rmessage","response","data","describeRealm","getRealmByName","_id","addCustomDomain","domain","exists","alias","toLowerCase","putRealm","message","removeCustomDomain","filter","length"],"sources":["ops/RealmOps.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport {\n createKeyValueTable,\n createTable,\n printMessage,\n} from '../utils/Console';\n\n/**\n * List realms\n * @param {boolean} long Long list format with details\n */\nexport async function listRealms(long = false) {\n try {\n const realms = (await frodo.realm.getRealms()).result;\n if (long) {\n const table = createTable([\n 'Name'['brightCyan'],\n 'Status'['brightCyan'],\n 'Custom Domains'['brightCyan'],\n 'Parent'['brightCyan'],\n ]);\n realms.forEach((realmConfig) => {\n table.push([\n realmConfig.name,\n realmConfig.active\n ? 'active'['brightGreen']\n : 'inactive'['brightRed'],\n realmConfig.aliases.join('\\n'),\n realmConfig.parentPath,\n ]);\n });\n printMessage(table.toString());\n } else {\n realms.forEach((realmConfig) => {\n printMessage(realmConfig.name, 'info');\n });\n }\n } catch (error) {\n printMessage(error, 'error');\n printMessage(`Error listing realms: ${error.rmessage}`, 'error');\n printMessage(error.response?.data, 'error');\n }\n}\n\n/**\n * Describe realm\n * @param {String} realm realm name\n */\nexport async function describeRealm(realm: string) {\n try {\n const realmConfig = await frodo.realm.getRealmByName(realm);\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], realmConfig.name]);\n table.push([\n 'Status'['brightCyan'],\n realmConfig.active ? 'active'['brightGreen'] : 'inactive'['brightRed'],\n ]);\n table.push([\n 'Custom Domains'['brightCyan'],\n realmConfig.aliases.join('\\n'),\n ]);\n table.push(['Parent'['brightCyan'], realmConfig.parentPath]);\n table.push(['Id'['brightCyan'], realmConfig._id]);\n printMessage(table.toString());\n } catch (error) {\n printMessage(`Realm ${realm} not found!`, 'error');\n }\n}\n\n/**\n * Add custom DNS domain name (realm DNS alias)\n * @param {String} realm realm name\n * @param {String} domain domain name\n */\nexport async function addCustomDomain(realm: string, domain: string) {\n try {\n let realmConfig = await frodo.realm.getRealmByName(realm);\n let exists = false;\n realmConfig.aliases.forEach((alias) => {\n if (domain.toLowerCase() === alias.toLowerCase()) {\n exists = true;\n }\n });\n if (!exists) {\n try {\n realmConfig.aliases.push(domain.toLowerCase());\n realmConfig = await frodo.realm.putRealm(realmConfig._id, realmConfig);\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], realmConfig.name]);\n table.push([\n 'Status'['brightCyan'],\n realmConfig.active\n ? 'active'['brightGreen']\n : 'inactive'['brightRed'],\n ]);\n table.push([\n 'Custom Domains'['brightCyan'],\n realmConfig.aliases.join('\\n'),\n ]);\n table.push(['Parent'['brightCyan'], realmConfig.parentPath]);\n table.push(['Id'['brightCyan'], realmConfig._id]);\n printMessage(table.toString());\n } catch (error) {\n printMessage(`Error adding custom domain: ${error.message}`, 'error');\n }\n }\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n }\n}\n\n/**\n * Remove custom DNS domain name (realm DNS alias)\n * @param {String} realm realm name\n * @param {String} domain domain name\n */\nexport async function removeCustomDomain(realm: string, domain: string) {\n try {\n let realmConfig = await frodo.realm.getRealmByName(realm);\n const aliases = realmConfig.aliases.filter(\n (alias) => domain.toLowerCase() !== alias.toLowerCase()\n );\n if (aliases.length < realmConfig.aliases.length) {\n try {\n realmConfig.aliases = aliases;\n realmConfig = await frodo.realm.putRealm(realmConfig._id, realmConfig);\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], realmConfig.name]);\n table.push([\n 'Status'['brightCyan'],\n realmConfig.active\n ? 'active'['brightGreen']\n : 'inactive'['brightRed'],\n ]);\n table.push([\n 'Custom Domains'['brightCyan'],\n realmConfig.aliases.join('\\n'),\n ]);\n table.push(['Parent'['brightCyan'], realmConfig.parentPath]);\n table.push(['Id'['brightCyan'], realmConfig._id]);\n printMessage(table.toString());\n } catch (error) {\n printMessage(`Error removing custom domain: ${error.message}`, 'error');\n }\n }\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"RealmOps.js","names":["frodo","createKeyValueTable","createTable","printMessage","getRealms","getRealmByName","putRealm","realm","listRealms","long","realms","result","table","forEach","realmConfig","push","name","active","aliases","join","parentPath","toString","error","_error$response","rmessage","response","data","describeRealm","_id","addCustomDomain","domain","exists","alias","toLowerCase","message","removeCustomDomain","filter","length"],"sources":["ops/RealmOps.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport {\n createKeyValueTable,\n createTable,\n printMessage,\n} from '../utils/Console';\n\nconst { getRealms, getRealmByName, putRealm } = frodo.realm;\n\n/**\n * List realms\n * @param {boolean} long Long list format with details\n */\nexport async function listRealms(long = false) {\n try {\n const realms = (await getRealms()).result;\n if (long) {\n const table = createTable([\n 'Name'['brightCyan'],\n 'Status'['brightCyan'],\n 'Custom Domains'['brightCyan'],\n 'Parent'['brightCyan'],\n ]);\n realms.forEach((realmConfig) => {\n table.push([\n realmConfig.name,\n realmConfig.active\n ? 'active'['brightGreen']\n : 'inactive'['brightRed'],\n realmConfig.aliases.join('\\n'),\n realmConfig.parentPath,\n ]);\n });\n printMessage(table.toString());\n } else {\n realms.forEach((realmConfig) => {\n printMessage(realmConfig.name, 'info');\n });\n }\n } catch (error) {\n printMessage(error, 'error');\n printMessage(`Error listing realms: ${error.rmessage}`, 'error');\n printMessage(error.response?.data, 'error');\n }\n}\n\n/**\n * Describe realm\n * @param {String} realm realm name\n */\nexport async function describeRealm(realm: string) {\n try {\n const realmConfig = await getRealmByName(realm);\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], realmConfig.name]);\n table.push([\n 'Status'['brightCyan'],\n realmConfig.active ? 'active'['brightGreen'] : 'inactive'['brightRed'],\n ]);\n table.push([\n 'Custom Domains'['brightCyan'],\n realmConfig.aliases.join('\\n'),\n ]);\n table.push(['Parent'['brightCyan'], realmConfig.parentPath]);\n table.push(['Id'['brightCyan'], realmConfig._id]);\n printMessage(table.toString());\n } catch (error) {\n printMessage(`Realm ${realm} not found!`, 'error');\n }\n}\n\n/**\n * Add custom DNS domain name (realm DNS alias)\n * @param {String} realm realm name\n * @param {String} domain domain name\n */\nexport async function addCustomDomain(realm: string, domain: string) {\n try {\n let realmConfig = await getRealmByName(realm);\n let exists = false;\n realmConfig.aliases.forEach((alias) => {\n if (domain.toLowerCase() === alias.toLowerCase()) {\n exists = true;\n }\n });\n if (!exists) {\n try {\n realmConfig.aliases.push(domain.toLowerCase());\n realmConfig = await putRealm(realmConfig._id, realmConfig);\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], realmConfig.name]);\n table.push([\n 'Status'['brightCyan'],\n realmConfig.active\n ? 'active'['brightGreen']\n : 'inactive'['brightRed'],\n ]);\n table.push([\n 'Custom Domains'['brightCyan'],\n realmConfig.aliases.join('\\n'),\n ]);\n table.push(['Parent'['brightCyan'], realmConfig.parentPath]);\n table.push(['Id'['brightCyan'], realmConfig._id]);\n printMessage(table.toString());\n } catch (error) {\n printMessage(`Error adding custom domain: ${error.message}`, 'error');\n }\n }\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n }\n}\n\n/**\n * Remove custom DNS domain name (realm DNS alias)\n * @param {String} realm realm name\n * @param {String} domain domain name\n */\nexport async function removeCustomDomain(realm: string, domain: string) {\n try {\n let realmConfig = await getRealmByName(realm);\n const aliases = realmConfig.aliases.filter(\n (alias) => domain.toLowerCase() !== alias.toLowerCase()\n );\n if (aliases.length < realmConfig.aliases.length) {\n try {\n realmConfig.aliases = aliases;\n realmConfig = await putRealm(realmConfig._id, realmConfig);\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], realmConfig.name]);\n table.push([\n 'Status'['brightCyan'],\n realmConfig.active\n ? 'active'['brightGreen']\n : 'inactive'['brightRed'],\n ]);\n table.push([\n 'Custom Domains'['brightCyan'],\n realmConfig.aliases.join('\\n'),\n ]);\n table.push(['Parent'['brightCyan'], realmConfig.parentPath]);\n table.push(['Id'['brightCyan'], realmConfig._id]);\n printMessage(table.toString());\n } catch (error) {\n printMessage(`Error removing custom domain: ${error.message}`, 'error');\n }\n }\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n }\n}\n"],"mappings":"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"}
@@ -2,6 +2,22 @@ import { frodo, state } from '@rockcarver/frodo-lib';
2
2
  import fs from 'fs';
3
3
  import { createObjectTable, createProgressBar, createTable, debugMessage, failSpinner, printMessage, showSpinner, stopProgressBar, succeedSpinner, updateProgressBar } from '../utils/Console';
4
4
  import { getTypedFilename, saveJsonToFile, titleCase } from '../utils/ExportImportUtils';
5
+ const {
6
+ getRealmName
7
+ } = frodo.helper.utils;
8
+ const {
9
+ getResourceTypes,
10
+ getResourceType,
11
+ getResourceTypeByName,
12
+ exportResourceType,
13
+ exportResourceTypeByName,
14
+ exportResourceTypes,
15
+ importResourceType,
16
+ importResourceTypeByName,
17
+ importFirstResourceType,
18
+ importResourceTypes
19
+ } = frodo.authz.resourceType;
20
+
5
21
  /**
6
22
  * List resource types
7
23
  * @param {boolean} long more fields
@@ -10,7 +26,7 @@ import { getTypedFilename, saveJsonToFile, titleCase } from '../utils/ExportImpo
10
26
  export async function listResourceTypes(long = false) {
11
27
  let outcome = false;
12
28
  try {
13
- const resourceTypes = await frodo.authz.resourceType.getResourceTypes();
29
+ const resourceTypes = await getResourceTypes();
14
30
  resourceTypes.sort((a, b) => a.name.localeCompare(b.name));
15
31
  if (long) {
16
32
  const table = createTable(['Name', 'Description', 'Uuid']);
@@ -40,7 +56,7 @@ export async function listResourceTypes(long = false) {
40
56
  export async function describeResourceType(resourceTypeUuid, json = false) {
41
57
  let outcome = false;
42
58
  try {
43
- const resourceType = await frodo.authz.resourceType.getResourceType(resourceTypeUuid);
59
+ const resourceType = await getResourceType(resourceTypeUuid);
44
60
  if (json) {
45
61
  printMessage(resourceType, 'data');
46
62
  } else {
@@ -69,7 +85,7 @@ export async function describeResourceType(resourceTypeUuid, json = false) {
69
85
  export async function describeResourceTypeByName(resourceTypeName, json = false) {
70
86
  let outcome = false;
71
87
  try {
72
- const resourceType = await frodo.authz.resourceType.getResourceTypeByName(resourceTypeName);
88
+ const resourceType = await getResourceTypeByName(resourceTypeName);
73
89
  if (json) {
74
90
  printMessage(resourceType, 'data');
75
91
  } else {
@@ -101,7 +117,7 @@ export async function deleteResourceType(resourceTypeUuid) {
101
117
  const errors = [];
102
118
  try {
103
119
  debugMessage(`Deleting resource type ${resourceTypeUuid}`);
104
- await frodo.authz.resourceType.deleteResourceType(resourceTypeUuid);
120
+ await deleteResourceType(resourceTypeUuid);
105
121
  } catch (error) {
106
122
  errors.push(error);
107
123
  }
@@ -131,7 +147,7 @@ export async function deleteResourceTypeByName(resourceTypeName) {
131
147
  const errors = [];
132
148
  try {
133
149
  debugMessage(`Deleting resource type ${resourceTypeName}`);
134
- await frodo.authz.resourceType.deleteResourceTypeByName(resourceTypeName);
150
+ await deleteResourceTypeByName(resourceTypeName);
135
151
  } catch (error) {
136
152
  errors.push(error);
137
153
  }
@@ -161,7 +177,7 @@ export async function deleteResourceTypes() {
161
177
  try {
162
178
  showSpinner(`Retrieving all resource types...`);
163
179
  try {
164
- resourceTypes = await frodo.authz.resourceType.getResourceTypes();
180
+ resourceTypes = await getResourceTypes();
165
181
  succeedSpinner(`Found ${resourceTypes.length} resource types.`);
166
182
  } catch (error) {
167
183
  error.message = `Error retrieving all resource types: ${error.message}`;
@@ -173,7 +189,7 @@ export async function deleteResourceTypes() {
173
189
  const resourceTypeId = resourceType.uuid;
174
190
  try {
175
191
  debugMessage(`Deleting resource type ${resourceTypeId}`);
176
- await frodo.authz.resourceType.deleteResourceType(resourceTypeId);
192
+ await deleteResourceType(resourceTypeId);
177
193
  updateProgressBar(`Deleted ${resourceTypeId}`);
178
194
  } catch (error) {
179
195
  error.message = `Error deleting resource type ${resourceTypeId}: ${error}`;
@@ -212,7 +228,7 @@ export async function exportResourceTypeToFile(resourceTypeUuid, file) {
212
228
  if (file) {
213
229
  fileName = file;
214
230
  }
215
- const exportData = await frodo.authz.resourceType.exportResourceType(resourceTypeUuid);
231
+ const exportData = await exportResourceType(resourceTypeUuid);
216
232
  saveJsonToFile(exportData, fileName);
217
233
  succeedSpinner(`Exported ${resourceTypeUuid} to ${fileName}.`);
218
234
  outcome = true;
@@ -238,7 +254,7 @@ export async function exportResourceTypeByNameToFile(resourceTypeName, file) {
238
254
  if (file) {
239
255
  fileName = file;
240
256
  }
241
- const exportData = await frodo.authz.resourceType.exportResourceTypeByName(resourceTypeName);
257
+ const exportData = await exportResourceTypeByName(resourceTypeName);
242
258
  saveJsonToFile(exportData, fileName);
243
259
  succeedSpinner(`Exported ${resourceTypeName} to ${fileName}.`);
244
260
  outcome = true;
@@ -259,11 +275,11 @@ export async function exportResourceTypesToFile(file) {
259
275
  debugMessage(`cli.ResourceTypeOps.exportResourceTypesToFile: begin`);
260
276
  showSpinner(`Exporting all resource types...`);
261
277
  try {
262
- let fileName = getTypedFilename(`all${titleCase(frodo.helper.utils.getRealmName(state.getRealm()))}ResourceTypes`, 'resourcetype.authz');
278
+ let fileName = getTypedFilename(`all${titleCase(getRealmName(state.getRealm()))}ResourceTypes`, 'resourcetype.authz');
263
279
  if (file) {
264
280
  fileName = file;
265
281
  }
266
- const exportData = await frodo.authz.resourceType.exportResourceTypes();
282
+ const exportData = await exportResourceTypes();
267
283
  saveJsonToFile(exportData, fileName);
268
284
  succeedSpinner(`Exported all resource types to ${fileName}.`);
269
285
  outcome = true;
@@ -282,12 +298,12 @@ export async function exportResourceTypesToFiles() {
282
298
  debugMessage(`cli.ResourceTypeOps.exportResourceTypesToFiles: begin`);
283
299
  const errors = [];
284
300
  try {
285
- const resourceTypes = await frodo.authz.resourceType.getResourceTypes();
301
+ const resourceTypes = await getResourceTypes();
286
302
  createProgressBar(resourceTypes.length, 'Exporting resource types...');
287
303
  for (const resourceType of resourceTypes) {
288
304
  const file = getTypedFilename(resourceType.name, 'resourcetype.authz');
289
305
  try {
290
- const exportData = await frodo.authz.resourceType.exportResourceType(resourceType.uuid);
306
+ const exportData = await exportResourceType(resourceType.uuid);
291
307
  saveJsonToFile(exportData, file);
292
308
  updateProgressBar(`Exported ${resourceType.name}.`);
293
309
  } catch (error) {
@@ -317,7 +333,7 @@ export async function importResourceTypeFromFile(resourceTypeId, file) {
317
333
  try {
318
334
  const data = fs.readFileSync(file, 'utf8');
319
335
  const fileData = JSON.parse(data);
320
- await frodo.authz.resourceType.importResourceType(resourceTypeId, fileData);
336
+ await importResourceType(resourceTypeId, fileData);
321
337
  outcome = true;
322
338
  succeedSpinner(`Imported ${resourceTypeId}.`);
323
339
  } catch (error) {
@@ -341,7 +357,7 @@ export async function importResourceTypeByNameFromFile(resourceTypeName, file) {
341
357
  try {
342
358
  const data = fs.readFileSync(file, 'utf8');
343
359
  const fileData = JSON.parse(data);
344
- await frodo.authz.resourceType.importResourceTypeByName(resourceTypeName, fileData);
360
+ await importResourceTypeByName(resourceTypeName, fileData);
345
361
  outcome = true;
346
362
  succeedSpinner(`Imported ${resourceTypeName}.`);
347
363
  } catch (error) {
@@ -364,7 +380,7 @@ export async function importFirstResourceTypeFromFile(file) {
364
380
  try {
365
381
  const data = fs.readFileSync(file, 'utf8');
366
382
  const fileData = JSON.parse(data);
367
- await frodo.authz.resourceType.importFirstResourceType(fileData);
383
+ await importFirstResourceType(fileData);
368
384
  outcome = true;
369
385
  succeedSpinner(`Imported ${file}.`);
370
386
  } catch (error) {
@@ -387,7 +403,7 @@ export async function importResourceTypesFromFile(file) {
387
403
  try {
388
404
  const data = fs.readFileSync(file, 'utf8');
389
405
  const fileData = JSON.parse(data);
390
- await frodo.authz.resourceType.importResourceTypes(fileData);
406
+ await importResourceTypes(fileData);
391
407
  outcome = true;
392
408
  succeedSpinner(`Imported ${file}.`);
393
409
  } catch (error) {
@@ -416,7 +432,7 @@ export async function importResourceTypesFromFiles() {
416
432
  const fileData = JSON.parse(data);
417
433
  const count = Object.keys(fileData.resourcetype).length;
418
434
  total += count;
419
- await frodo.authz.resourceType.importResourceTypes(fileData);
435
+ await importResourceTypes(fileData);
420
436
  updateProgressBar(`Imported ${count} resource types from ${file}`);
421
437
  } catch (error) {
422
438
  errors.push(error);