cmdbox 0.5.3.1__tar.gz → 0.6.0__tar.gz

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.

Potentially problematic release.


This version of cmdbox might be problematic. Click here for more details.

Files changed (382) hide show
  1. {cmdbox-0.5.3.1/cmdbox.egg-info → cmdbox-0.6.0}/PKG-INFO +130 -35
  2. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/README.md +129 -34
  3. cmdbox-0.6.0/cmdbox/app/auth/__init__.py +0 -0
  4. cmdbox-0.6.0/cmdbox/app/auth/azure_signin.py +38 -0
  5. cmdbox-0.6.0/cmdbox/app/auth/azure_signin_saml.py +12 -0
  6. cmdbox-0.6.0/cmdbox/app/auth/github_signin.py +38 -0
  7. cmdbox-0.6.0/cmdbox/app/auth/google_signin.py +32 -0
  8. cmdbox-0.6.0/cmdbox/app/auth/signin.py +837 -0
  9. cmdbox-0.6.0/cmdbox/app/auth/signin_saml.py +61 -0
  10. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/common.py +48 -3
  11. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/edge.py +182 -213
  12. cmdbox-0.6.0/cmdbox/app/edge_tool.py +177 -0
  13. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/feature.py +10 -10
  14. cmdbox-0.6.0/cmdbox/app/features/cli/agent_base.py +477 -0
  15. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/audit_base.py +1 -1
  16. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_audit_search.py +24 -1
  17. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_client_file_download.py +1 -1
  18. cmdbox-0.6.0/cmdbox/app/features/cli/cmdbox_cmd_list.py +105 -0
  19. cmdbox-0.6.0/cmdbox/app/features/cli/cmdbox_cmd_load.py +104 -0
  20. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_edge_config.py +21 -7
  21. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_edge_start.py +1 -1
  22. cmdbox-0.6.0/cmdbox/app/features/cli/cmdbox_gui_start.py +44 -0
  23. cmdbox-0.6.0/cmdbox/app/features/cli/cmdbox_gui_stop.py +34 -0
  24. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_server_start.py +1 -1
  25. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_web_apikey_add.py +1 -1
  26. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_web_apikey_del.py +1 -1
  27. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_web_genpass.py +0 -3
  28. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_web_group_add.py +1 -1
  29. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_web_group_del.py +1 -1
  30. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_web_group_edit.py +1 -1
  31. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_web_group_list.py +1 -1
  32. cmdbox-0.6.0/cmdbox/app/features/cli/cmdbox_web_start.py +192 -0
  33. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_web_stop.py +1 -1
  34. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_web_user_add.py +4 -4
  35. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_web_user_del.py +1 -1
  36. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_web_user_edit.py +4 -4
  37. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_web_user_list.py +1 -1
  38. cmdbox-0.6.0/cmdbox/app/features/web/cmdbox_web_agent.py +250 -0
  39. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_do_signin.py +79 -103
  40. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_exec_cmd.py +8 -3
  41. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_signin.py +26 -4
  42. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_users.py +2 -0
  43. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/options.py +55 -2
  44. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/web.py +155 -27
  45. cmdbox-0.6.0/cmdbox/extensions/features.yml +80 -0
  46. cmdbox-0.6.0/cmdbox/extensions/sample_project/sample/app/features/cli/__init__.py +0 -0
  47. cmdbox-0.6.0/cmdbox/extensions/sample_project/sample/app/features/web/__init__.py +0 -0
  48. {cmdbox-0.5.3.1/cmdbox → cmdbox-0.6.0/cmdbox/extensions/sample_project/sample}/extensions/features.yml +15 -6
  49. {cmdbox-0.5.3.1/cmdbox → cmdbox-0.6.0/cmdbox/extensions/sample_project/sample}/extensions/user_list.yml +35 -5
  50. {cmdbox-0.5.3.1/cmdbox/extensions/sample_project/sample → cmdbox-0.6.0/cmdbox}/extensions/user_list.yml +42 -7
  51. cmdbox-0.6.0/cmdbox/licenses/LICENSE.Authlib.1.5.2(BSD License).txt +29 -0
  52. cmdbox-0.6.0/cmdbox/licenses/LICENSE.Deprecated.1.2.18(MIT License).txt +21 -0
  53. cmdbox-0.6.0/cmdbox/licenses/LICENSE.SQLAlchemy.2.0.40(MIT License).txt +19 -0
  54. cmdbox-0.6.0/cmdbox/licenses/LICENSE.aiohttp.3.11.18(Apache Software License).txt +13 -0
  55. cmdbox-0.6.0/cmdbox/licenses/LICENSE.aiosignal.1.3.2(Apache Software License).txt +201 -0
  56. cmdbox-0.6.0/cmdbox/licenses/LICENSE.async-timeout.5.0.1(Apache Software License).txt +13 -0
  57. cmdbox-0.6.0/cmdbox/licenses/LICENSE.attrs.25.3.0(UNKNOWN).txt +21 -0
  58. cmdbox-0.6.0/cmdbox/licenses/LICENSE.cachetools.5.5.2(MIT License).txt +20 -0
  59. cmdbox-0.6.0/cmdbox/licenses/LICENSE.distro.1.9.0(Apache Software License).txt +202 -0
  60. cmdbox-0.6.0/cmdbox/licenses/LICENSE.docstring_parser.0.16(MIT License).txt +21 -0
  61. cmdbox-0.6.0/cmdbox/licenses/LICENSE.filelock.3.18.0(The Unlicense (Unlicense)).txt +24 -0
  62. cmdbox-0.6.0/cmdbox/licenses/LICENSE.frozenlist.1.6.0(Apache-2.0).txt +201 -0
  63. cmdbox-0.6.0/cmdbox/licenses/LICENSE.fsspec.2025.3.2(BSD License).txt +29 -0
  64. cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-adk.0.5.0(Apache Software License).txt +202 -0
  65. cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-api-python-client.2.169.0(Apache Software License).txt +201 -0
  66. cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-auth-httplib2.0.2.0(Apache Software License).txt +201 -0
  67. cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-auth.2.40.1(Apache Software License).txt +201 -0
  68. cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-cloud-bigquery.3.31.0(Apache Software License).txt +202 -0
  69. cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-cloud-core.2.4.3(Apache Software License).txt +202 -0
  70. cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-cloud-resource-manager.1.14.2(Apache Software License).txt +202 -0
  71. cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-cloud-secret-manager.2.23.3(Apache Software License).txt +202 -0
  72. cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-cloud-speech.2.32.0(Apache Software License).txt +202 -0
  73. cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-cloud-storage.2.19.0(Apache Software License).txt +202 -0
  74. cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-cloud-trace.1.16.1(Apache Software License).txt +202 -0
  75. cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-crc32c.1.7.1(Apache 2.0).txt +202 -0
  76. cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-genai.1.14.0(Apache Software License).txt +202 -0
  77. cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-resumable-media.2.7.2(Apache Software License).txt +202 -0
  78. cmdbox-0.6.0/cmdbox/licenses/LICENSE.googleapis-common-protos.1.70.0(Apache Software License).txt +202 -0
  79. cmdbox-0.6.0/cmdbox/licenses/LICENSE.graphviz.0.20.3(MIT License).txt +21 -0
  80. cmdbox-0.6.0/cmdbox/licenses/LICENSE.grpc-google-iam-v1.0.14.2(Apache Software License).txt +202 -0
  81. cmdbox-0.6.0/cmdbox/licenses/LICENSE.grpcio-status.1.71.0(Apache Software License).txt +610 -0
  82. cmdbox-0.6.0/cmdbox/licenses/LICENSE.grpcio.1.71.0(Apache Software License).txt +610 -0
  83. cmdbox-0.6.0/cmdbox/licenses/LICENSE.httpcore.1.0.9(BSD License).txt +27 -0
  84. cmdbox-0.6.0/cmdbox/licenses/LICENSE.httplib2.0.22.0(MIT License).txt +23 -0
  85. cmdbox-0.6.0/cmdbox/licenses/LICENSE.httpx-sse.0.4.0(MIT).txt +21 -0
  86. cmdbox-0.6.0/cmdbox/licenses/LICENSE.httpx.0.28.1(BSD License).txt +12 -0
  87. cmdbox-0.6.0/cmdbox/licenses/LICENSE.huggingface-hub.0.31.1(Apache Software License).txt +201 -0
  88. cmdbox-0.6.0/cmdbox/licenses/LICENSE.id.1.5.0(Apache Software License).txt +202 -0
  89. cmdbox-0.6.0/cmdbox/licenses/LICENSE.importlib_metadata.8.6.1(Apache Software License).txt +202 -0
  90. cmdbox-0.6.0/cmdbox/licenses/LICENSE.jsonschema-specifications.2025.4.1(UNKNOWN).txt +19 -0
  91. cmdbox-0.6.0/cmdbox/licenses/LICENSE.jsonschema.4.23.0(MIT License).txt +19 -0
  92. cmdbox-0.6.0/cmdbox/licenses/LICENSE.litellm.1.69.0(MIT License).txt +26 -0
  93. cmdbox-0.6.0/cmdbox/licenses/LICENSE.mcp.1.8.0(MIT License).txt +21 -0
  94. cmdbox-0.6.0/cmdbox/licenses/LICENSE.multidict.6.4.3(Apache Software License).txt +13 -0
  95. cmdbox-0.6.0/cmdbox/licenses/LICENSE.openai.1.75.0(Apache Software License).txt +201 -0
  96. cmdbox-0.6.0/cmdbox/licenses/LICENSE.opentelemetry-api.1.33.0(Apache Software License).txt +201 -0
  97. cmdbox-0.6.0/cmdbox/licenses/LICENSE.opentelemetry-exporter-gcp-trace.1.9.0(Apache Software License).txt +201 -0
  98. cmdbox-0.6.0/cmdbox/licenses/LICENSE.opentelemetry-resourcedetector-gcp.1.9.0a0(Apache Software License).txt +201 -0
  99. cmdbox-0.6.0/cmdbox/licenses/LICENSE.opentelemetry-sdk.1.33.0(Apache Software License).txt +201 -0
  100. cmdbox-0.6.0/cmdbox/licenses/LICENSE.opentelemetry-semantic-conventions.0.54b0(Apache Software License).txt +201 -0
  101. cmdbox-0.6.0/cmdbox/licenses/LICENSE.propcache.0.3.1(Apache Software License).txt +202 -0
  102. cmdbox-0.6.0/cmdbox/licenses/LICENSE.proto-plus.1.26.1(Apache Software License).txt +202 -0
  103. cmdbox-0.6.0/cmdbox/licenses/LICENSE.protobuf.5.29.4(3-Clause BSD License).txt +32 -0
  104. cmdbox-0.6.0/cmdbox/licenses/LICENSE.pyasn1.0.6.1(BSD License).txt +24 -0
  105. cmdbox-0.6.0/cmdbox/licenses/LICENSE.pyasn1_modules.0.4.2(BSD License).txt +24 -0
  106. cmdbox-0.6.0/cmdbox/licenses/LICENSE.pydantic-settings.2.9.1(MIT License).txt +21 -0
  107. cmdbox-0.6.0/cmdbox/licenses/LICENSE.pyparsing.3.2.3(MIT License).txt +18 -0
  108. cmdbox-0.6.0/cmdbox/licenses/LICENSE.python-dateutil.2.9.0.post0(Apache Software License; BSD License).txt +54 -0
  109. cmdbox-0.6.0/cmdbox/licenses/LICENSE.referencing.0.36.2(UNKNOWN).txt +19 -0
  110. cmdbox-0.6.0/cmdbox/licenses/LICENSE.regex.2024.11.6(Apache Software License).txt +208 -0
  111. cmdbox-0.6.0/cmdbox/licenses/LICENSE.rpds-py.0.24.0(MIT).txt +19 -0
  112. cmdbox-0.6.0/cmdbox/licenses/LICENSE.rsa.4.9.1(Apache Software License).txt +13 -0
  113. cmdbox-0.6.0/cmdbox/licenses/LICENSE.shapely.2.1.0(BSD License).txt +29 -0
  114. cmdbox-0.6.0/cmdbox/licenses/LICENSE.sphinxcontrib-serializinghtml.2.0.0(BSD License).txt +1 -0
  115. cmdbox-0.6.0/cmdbox/licenses/LICENSE.sse-starlette.2.3.4(BSD License).txt +27 -0
  116. cmdbox-0.6.0/cmdbox/licenses/LICENSE.tiktoken.0.9.0(MIT License).txt +21 -0
  117. cmdbox-0.6.0/cmdbox/licenses/LICENSE.tokenizers.0.21.1(Apache Software License).txt +1 -0
  118. cmdbox-0.6.0/cmdbox/licenses/LICENSE.tqdm.4.67.1(MIT License; Mozilla Public License 2.0 (MPL 2.0)).txt +49 -0
  119. cmdbox-0.6.0/cmdbox/licenses/LICENSE.typing_extensions.4.13.2(UNKNOWN).txt +279 -0
  120. cmdbox-0.6.0/cmdbox/licenses/LICENSE.tzlocal.5.3.1(MIT License).txt +19 -0
  121. cmdbox-0.6.0/cmdbox/licenses/LICENSE.uritemplate.4.1.1(Apache Software License; BSD License).txt +3 -0
  122. cmdbox-0.6.0/cmdbox/licenses/LICENSE.wrapt.1.17.2(BSD License).txt +24 -0
  123. cmdbox-0.6.0/cmdbox/licenses/LICENSE.yarl.1.20.0(Apache Software License).txt +202 -0
  124. cmdbox-0.6.0/cmdbox/licenses/files.txt +188 -0
  125. cmdbox-0.6.0/cmdbox/logconf_agent.yml +38 -0
  126. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/logconf_audit.yml +13 -5
  127. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/logconf_client.yml +13 -5
  128. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/logconf_cmdbox.yml +13 -5
  129. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/logconf_edge.yml +13 -5
  130. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/logconf_gui.yml +13 -5
  131. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/logconf_server.yml +13 -5
  132. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/logconf_web.yml +13 -5
  133. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/version.py +3 -2
  134. cmdbox-0.6.0/cmdbox/web/agent.html +263 -0
  135. cmdbox-0.6.0/cmdbox/web/assets/cmdbox/agent.js +335 -0
  136. cmdbox-0.6.0/cmdbox/web/assets/cmdbox/common.js +1498 -0
  137. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/signin.js +16 -3
  138. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/users.js +1 -1
  139. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/filer/filer.js +4 -2
  140. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/signin.html +10 -6
  141. {cmdbox-0.5.3.1 → cmdbox-0.6.0/cmdbox.egg-info}/PKG-INFO +130 -35
  142. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox.egg-info/SOURCES.txt +106 -17
  143. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox.egg-info/requires.txt +2 -0
  144. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/setup.py +6 -0
  145. cmdbox-0.5.3.1/cmdbox/app/auth/signin.py +0 -634
  146. cmdbox-0.5.3.1/cmdbox/app/features/cli/cmdbox_gui_start.py +0 -167
  147. cmdbox-0.5.3.1/cmdbox/app/features/cli/cmdbox_gui_stop.py +0 -51
  148. cmdbox-0.5.3.1/cmdbox/app/features/cli/cmdbox_web_start.py +0 -177
  149. cmdbox-0.5.3.1/cmdbox/extensions/sample_project/sample/extensions/features.yml +0 -48
  150. cmdbox-0.5.3.1/cmdbox/licenses/files.txt +0 -94
  151. cmdbox-0.5.3.1/cmdbox/web/assets/cmdbox/common.js +0 -1407
  152. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/LICENSE +0 -0
  153. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/MANIFEST.in +0 -0
  154. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/__init__.py +0 -0
  155. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/__main__.py +0 -0
  156. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/__init__.py +0 -0
  157. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/app.py +0 -0
  158. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/client.py +0 -0
  159. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/commons/convert.py +0 -0
  160. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/commons/loghandler.py +0 -0
  161. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/commons/module.py +0 -0
  162. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/commons/redis_client.py +0 -0
  163. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_audit_createdb.py +0 -0
  164. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_audit_delete.py +0 -0
  165. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_audit_write.py +0 -0
  166. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_client_file_copy.py +0 -0
  167. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_client_file_list.py +0 -0
  168. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_client_file_mkdir.py +0 -0
  169. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_client_file_move.py +0 -0
  170. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_client_file_remove.py +0 -0
  171. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_client_file_rmdir.py +0 -0
  172. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_client_file_upload.py +0 -0
  173. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_client_server_info.py +0 -0
  174. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_server_list.py +0 -0
  175. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_server_stop.py +0 -0
  176. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_web_gencert.py +0 -0
  177. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_assets.py +0 -0
  178. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_audit.py +0 -0
  179. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_audit_metrics.py +0 -0
  180. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_bbforce_cmd.py +0 -0
  181. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_copyright.py +0 -0
  182. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_del_cmd.py +0 -0
  183. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_del_pipe.py +0 -0
  184. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_do_signout.py +0 -0
  185. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_exec_pipe.py +0 -0
  186. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_filer download.py +0 -0
  187. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_filer.py +0 -0
  188. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_filer_upload.py +0 -0
  189. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_get_cmd_choices.py +0 -0
  190. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_get_cmds.py +0 -0
  191. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_get_modes.py +0 -0
  192. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_get_server_opt.py +0 -0
  193. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_gui.py +0 -0
  194. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_gui_callback.py +0 -0
  195. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_list_cmd.py +0 -0
  196. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_list_pipe.py +0 -0
  197. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_load_cmd.py +0 -0
  198. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_load_pipe.py +0 -0
  199. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_raw_cmd.py +0 -0
  200. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_raw_pipe.py +0 -0
  201. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_result.py +0 -0
  202. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_save_cmd.py +0 -0
  203. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_save_pipe.py +0 -0
  204. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_user_data.py +0 -0
  205. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_usesignout.py +0 -0
  206. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_versions_cmdbox.py +0 -0
  207. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_versions_used.py +0 -0
  208. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/filer.py +0 -0
  209. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/server.py +0 -0
  210. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/config.yml +0 -0
  211. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/extensions/sample_project/.vscode/launch.json +0 -0
  212. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/extensions/sample_project/requirements.txt +0 -0
  213. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/extensions/sample_project/sample/__init__.py +0 -0
  214. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/extensions/sample_project/sample/__main__.py +0 -0
  215. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/extensions/sample_project/sample/app/app.py +0 -0
  216. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/extensions/sample_project/sample/app/features/cli/sample_client_time.py +0 -0
  217. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/extensions/sample_project/sample/app/features/cli/sample_server_time.py +0 -0
  218. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/extensions/sample_project/sample/logconf_sample.yml +0 -0
  219. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/extensions/sample_project/sample/version.py +0 -0
  220. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/extensions/sample_project/sample/web/assets/sample/favicon.ico +0 -0
  221. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/extensions/sample_project/sample/web/assets/sample/icon.png +0 -0
  222. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.Jinja2.3.1.6(BSD License).txt +0 -0
  223. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.MarkupSafe.3.0.2(BSD License).txt +0 -0
  224. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.PyYAML.6.0.2(MIT License).txt +0 -0
  225. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.Pygments.2.19.1(BSD License).txt +0 -0
  226. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.Sphinx.8.2.3(UNKNOWN).txt +0 -0
  227. /cmdbox-0.5.3.1/cmdbox/licenses/LICENSE.typing_extensions.4.13.2(UNKNOWN).txt → /cmdbox-0.6.0/cmdbox/licenses/LICENSE.aiohappyeyeballs.2.6.1(Python Software Foundation License).txt +0 -0
  228. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.alabaster.1.0.0(BSD License).txt +0 -0
  229. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.annotated-types.0.7.0(MIT License).txt +0 -0
  230. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.anyio.4.9.0(MIT License).txt +0 -0
  231. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.argcomplete.3.6.2(Apache Software License).txt +0 -0
  232. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.babel.2.17.0(BSD License).txt +0 -0
  233. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.backports.tarfile.1.2.0(MIT License).txt +0 -0
  234. /cmdbox-0.5.3.1/cmdbox/licenses/LICENSE.certifi.2025.1.31(Mozilla Public License 2.0 (MPL 2.0)).txt → /cmdbox-0.6.0/cmdbox/licenses/LICENSE.certifi.2025.4.26(Mozilla Public License 2.0 (MPL 2.0)).txt +0 -0
  235. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.cffi.1.17.1(MIT License).txt +0 -0
  236. /cmdbox-0.5.3.1/cmdbox/licenses/LICENSE.charset-normalizer.3.4.1(MIT License).txt → /cmdbox-0.6.0/cmdbox/licenses/LICENSE.charset-normalizer.3.4.2(MIT License).txt +0 -0
  237. /cmdbox-0.5.3.1/cmdbox/licenses/LICENSE.click.8.1.8(BSD License).txt → /cmdbox-0.6.0/cmdbox/licenses/LICENSE.click.8.2.0(UNKNOWN).txt +0 -0
  238. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.colorama.0.4.6(BSD License).txt +0 -0
  239. /cmdbox-0.5.3.1/cmdbox/licenses/LICENSE.cryptography.44.0.2(Apache Software License; BSD License).txt → /cmdbox-0.6.0/cmdbox/licenses/LICENSE.cryptography.44.0.3(Apache Software License; BSD License).txt +0 -0
  240. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.docutils.0.21.2(BSD License; GNU General Public License (GPL); Public Domain; Python Software Foundation License).txt +0 -0
  241. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.fastapi.0.115.12(MIT License).txt +0 -0
  242. /cmdbox-0.5.3.1/cmdbox/licenses/LICENSE.gevent.25.4.1(MIT).txt → /cmdbox-0.6.0/cmdbox/licenses/LICENSE.gevent.25.4.2(MIT).txt +0 -0
  243. /cmdbox-0.5.3.1/cmdbox/licenses/LICENSE.id.1.5.0(Apache Software License).txt → /cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-api-core.2.24.2(Apache Software License).txt +0 -0
  244. /cmdbox-0.5.3.1/cmdbox/licenses/LICENSE.importlib_metadata.8.6.1(Apache Software License).txt → /cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-cloud-aiplatform.1.92.0(Apache 2.0).txt +0 -0
  245. /cmdbox-0.5.3.1/cmdbox/licenses/LICENSE.greenlet.3.2.0(MIT AND Python-2.0).txt → /cmdbox-0.6.0/cmdbox/licenses/LICENSE.greenlet.3.2.2(MIT AND Python-2.0).txt +0 -0
  246. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.gunicorn.23.0.0(MIT License).txt +0 -0
  247. /cmdbox-0.5.3.1/cmdbox/licenses/LICENSE.h11.0.14.0(MIT License).txt → /cmdbox-0.6.0/cmdbox/licenses/LICENSE.h11.0.16.0(MIT License).txt +0 -0
  248. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.httptools.0.6.4(MIT License).txt +0 -0
  249. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.idna.3.10(BSD License).txt +0 -0
  250. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.imagesize.1.4.1(MIT License).txt +0 -0
  251. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.itsdangerous.2.2.0(BSD License).txt +0 -0
  252. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.jaraco.classes.3.4.0(MIT License).txt +0 -0
  253. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.jaraco.context.6.0.1(MIT License).txt +0 -0
  254. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.jaraco.functools.4.1.0(MIT License).txt +0 -0
  255. /cmdbox-0.5.3.1/cmdbox/licenses/LICENSE.sphinxcontrib-applehelp.2.0.0(BSD License).txt → /cmdbox-0.6.0/cmdbox/licenses/LICENSE.jiter.0.9.0(MIT License).txt +0 -0
  256. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.keyring.25.6.0(MIT License).txt +0 -0
  257. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.markdown-it-py.3.0.0(MIT License).txt +0 -0
  258. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.mdurl.0.1.2(MIT License).txt +0 -0
  259. /cmdbox-0.5.3.1/cmdbox/licenses/LICENSE.more-itertools.10.6.0(MIT License).txt → /cmdbox-0.6.0/cmdbox/licenses/LICENSE.more-itertools.10.7.0(MIT License).txt +0 -0
  260. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.nh3.0.2.21(MIT).txt +0 -0
  261. /cmdbox-0.5.3.1/cmdbox/licenses/LICENSE.numpy.2.2.4(BSD License).txt → /cmdbox-0.6.0/cmdbox/licenses/LICENSE.numpy.2.2.5(BSD License).txt +0 -0
  262. /cmdbox-0.5.3.1/cmdbox/licenses/LICENSE.packaging.24.2(Apache Software License; BSD License).txt → /cmdbox-0.6.0/cmdbox/licenses/LICENSE.packaging.25.0(Apache Software License; BSD License).txt +0 -0
  263. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.pillow.11.2.1(UNKNOWN).txt +0 -0
  264. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.pip.24.0(MIT License).txt +0 -0
  265. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.plyer.2.1.0(MIT License).txt +0 -0
  266. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.prettytable.3.16.0(UNKNOWN).txt +0 -0
  267. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.prompt_toolkit.3.0.51(BSD License).txt +0 -0
  268. /cmdbox-0.5.3.1/cmdbox/licenses/LICENSE.psycopg-binary.3.2.6(GNU Lesser General Public License v3 (LGPLv3)).txt → /cmdbox-0.6.0/cmdbox/licenses/LICENSE.psycopg-binary.3.2.7(GNU Lesser General Public License v3 (LGPLv3)).txt +0 -0
  269. /cmdbox-0.5.3.1/cmdbox/licenses/LICENSE.psycopg.3.2.6(GNU Lesser General Public License v3 (LGPLv3)).txt → /cmdbox-0.6.0/cmdbox/licenses/LICENSE.psycopg.3.2.7(GNU Lesser General Public License v3 (LGPLv3)).txt +0 -0
  270. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.pycparser.2.22(BSD License).txt +0 -0
  271. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.pycryptodome.3.22.0(BSD License; Public Domain).txt +0 -0
  272. /cmdbox-0.5.3.1/cmdbox/licenses/LICENSE.pydantic.2.11.3(MIT License).txt → /cmdbox-0.6.0/cmdbox/licenses/LICENSE.pydantic.2.11.4(MIT License).txt +0 -0
  273. /cmdbox-0.5.3.1/cmdbox/licenses/LICENSE.pydantic_core.2.33.1(MIT License).txt → /cmdbox-0.6.0/cmdbox/licenses/LICENSE.pydantic_core.2.33.2(MIT License).txt +0 -0
  274. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.pystray.0.19.5(GNU Lesser General Public License v3 (LGPLv3)).txt +0 -0
  275. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.python-dotenv.1.1.0(BSD License).txt +0 -0
  276. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.python-multipart.0.0.20(Apache Software License).txt +0 -0
  277. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.pywin32-ctypes.0.2.3(BSD-3-Clause).txt +0 -0
  278. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.questionary.2.1.0(MIT License).txt +0 -0
  279. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.readme_renderer.44.0(Apache Software License).txt +0 -0
  280. /cmdbox-0.5.3.1/cmdbox/licenses/LICENSE.redis.5.2.1(MIT License).txt → /cmdbox-0.6.0/cmdbox/licenses/LICENSE.redis.6.0.0(MIT License).txt +0 -0
  281. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.requests-toolbelt.1.0.0(Apache Software License).txt +0 -0
  282. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.requests.2.32.3(Apache Software License).txt +0 -0
  283. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.rfc3986.2.0.0(Apache Software License).txt +0 -0
  284. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.rich.14.0.0(MIT License).txt +0 -0
  285. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.roman-numerals-py.3.1.0(CC0 1.0 Universal (CC0 1.0) Public Domain Dedication; Zero-Clause BSD (0BSD)).txt +0 -0
  286. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.setuptools.65.5.0(MIT License).txt +0 -0
  287. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.six.1.17.0(MIT License).txt +0 -0
  288. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.sniffio.1.3.1(Apache Software License; MIT License).txt +0 -0
  289. /cmdbox-0.5.3.1/cmdbox/licenses/LICENSE.snowballstemmer.2.2.0(BSD License).txt → /cmdbox-0.6.0/cmdbox/licenses/LICENSE.snowballstemmer.3.0.1(BSD License).txt +0 -0
  290. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.sphinx-intl.2.3.1(BSD License).txt +0 -0
  291. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.sphinx-rtd-theme.3.0.2(MIT License).txt +0 -0
  292. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.sphinx-sitemap.2.6.0(MIT License).txt +0 -0
  293. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.sphinx_fontawesome.0.0.6(GNU General Public License v2 (GPLv2)).txt +0 -0
  294. /cmdbox-0.5.3.1/cmdbox/licenses/LICENSE.sphinxcontrib-devhelp.2.0.0(BSD License).txt → /cmdbox-0.6.0/cmdbox/licenses/LICENSE.sphinxcontrib-applehelp.2.0.0(BSD License).txt +0 -0
  295. /cmdbox-0.5.3.1/cmdbox/licenses/LICENSE.sphinxcontrib-htmlhelp.2.1.0(BSD License).txt → /cmdbox-0.6.0/cmdbox/licenses/LICENSE.sphinxcontrib-devhelp.2.0.0(BSD License).txt +0 -0
  296. /cmdbox-0.5.3.1/cmdbox/licenses/LICENSE.sphinxcontrib-jquery.4.1(BSD License).txt → /cmdbox-0.6.0/cmdbox/licenses/LICENSE.sphinxcontrib-htmlhelp.2.1.0(BSD License).txt +0 -0
  297. /cmdbox-0.5.3.1/cmdbox/licenses/LICENSE.sphinxcontrib-qthelp.2.0.0(BSD License).txt → /cmdbox-0.6.0/cmdbox/licenses/LICENSE.sphinxcontrib-jquery.4.1(BSD License).txt +0 -0
  298. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.sphinxcontrib-jsmath.1.0.1(BSD License).txt +0 -0
  299. /cmdbox-0.5.3.1/cmdbox/licenses/LICENSE.sphinxcontrib-serializinghtml.2.0.0(BSD License).txt → /cmdbox-0.6.0/cmdbox/licenses/LICENSE.sphinxcontrib-qthelp.2.0.0(BSD License).txt +0 -0
  300. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.starlette.0.46.2(BSD License).txt +0 -0
  301. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.tabulate.0.9.0(MIT License).txt +0 -0
  302. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.tomli.2.2.1(MIT License).txt +0 -0
  303. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.twine.6.1.0(Apache Software License).txt +0 -0
  304. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.typing-inspection.0.4.0(MIT License).txt +0 -0
  305. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.tzdata.2025.2(Apache Software License).txt +0 -0
  306. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.urllib3.2.4.0(UNKNOWN).txt +0 -0
  307. /cmdbox-0.5.3.1/cmdbox/licenses/LICENSE.uvicorn.0.34.1(BSD License).txt → /cmdbox-0.6.0/cmdbox/licenses/LICENSE.uvicorn.0.34.2(BSD License).txt +0 -0
  308. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.watchfiles.1.0.5(MIT License).txt +0 -0
  309. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.wcwidth.0.2.13(MIT License).txt +0 -0
  310. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.websockets.15.0.1(BSD License).txt +0 -0
  311. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.wheel.0.45.1(MIT License).txt +0 -0
  312. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.zipp.3.21.0(MIT License).txt +0 -0
  313. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.zope.event.5.0(Zope Public License).txt +0 -0
  314. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.zope.interface.7.2(Zope Public License).txt +0 -0
  315. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/apexcharts/apexcharts.css +0 -0
  316. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/apexcharts/apexcharts.min.js +0 -0
  317. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/bootstrap/bootstrap.bundle.min.5.3.0.js +0 -0
  318. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/bootstrap/bootstrap.min.5.3.0.css +0 -0
  319. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/audit.js +0 -0
  320. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/color_mode.css +0 -0
  321. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/favicon.ico +0 -0
  322. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/filer_modal.js +0 -0
  323. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/icon.png +0 -0
  324. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/list_cmd.js +0 -0
  325. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/list_pipe.js +0 -0
  326. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/main.js +0 -0
  327. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/open_capture.js +0 -0
  328. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/open_output_json.js +0 -0
  329. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/result.js +0 -0
  330. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/view_raw.js +0 -0
  331. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/view_result.js +0 -0
  332. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/encodingjs/LICENSE.txt +0 -0
  333. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/encodingjs/encoding.js +0 -0
  334. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/encodingjs/encoding.min.js +0 -0
  335. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/filer/main.css +0 -0
  336. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/filer/main.js +0 -0
  337. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/highlight/default.css +0 -0
  338. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/highlight/highlight.min.js +0 -0
  339. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/highlight/styles/tokyo-night-dark.min.css +0 -0
  340. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery/jquery.min.3.2.0.js +0 -0
  341. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-linedtextarea/README.md +0 -0
  342. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-linedtextarea/jquery-linedtextarea-license.txt +0 -0
  343. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-linedtextarea/jquery-linedtextarea.css +0 -0
  344. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-linedtextarea/jquery-linedtextarea.html +0 -0
  345. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-linedtextarea/jquery-linedtextarea.js +0 -0
  346. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-resizable/jquery-resizable.min.js +0 -0
  347. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-ui/AUTHORS.txt +0 -0
  348. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-ui/LICENSE.txt +0 -0
  349. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-ui/images/ui-icons_444444_256x240.png +0 -0
  350. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-ui/images/ui-icons_555555_256x240.png +0 -0
  351. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-ui/images/ui-icons_777620_256x240.png +0 -0
  352. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-ui/images/ui-icons_777777_256x240.png +0 -0
  353. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-ui/images/ui-icons_cc0000_256x240.png +0 -0
  354. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-ui/images/ui-icons_ffffff_256x240.png +0 -0
  355. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-ui/jquery-ui.min.css +0 -0
  356. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-ui/jquery-ui.min.js +0 -0
  357. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-ui/jquery-ui.structure.min.css +0 -0
  358. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-ui/jquery-ui.theme.min.css +0 -0
  359. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-ui/package.json +0 -0
  360. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/lightbox2/css/lightbox.min.css +0 -0
  361. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/lightbox2/images/close.png +0 -0
  362. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/lightbox2/images/loading.gif +0 -0
  363. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/lightbox2/images/next.png +0 -0
  364. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/lightbox2/images/prev.png +0 -0
  365. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/lightbox2/js/lightbox.min.js +0 -0
  366. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/split-pane/split-pane.css +0 -0
  367. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/split-pane/split-pane.js +0 -0
  368. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/tree-menu/css/tree-menu.css +0 -0
  369. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/tree-menu/image/file.png +0 -0
  370. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/tree-menu/image/folder-close.png +0 -0
  371. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/tree-menu/image/folder-open.png +0 -0
  372. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/tree-menu/js/tree-menu.js +0 -0
  373. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets_license_list.txt +0 -0
  374. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/audit.html +0 -0
  375. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/filer.html +0 -0
  376. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/gui.html +0 -0
  377. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/result.html +0 -0
  378. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/users.html +0 -0
  379. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox.egg-info/dependency_links.txt +0 -0
  380. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox.egg-info/entry_points.txt +0 -0
  381. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox.egg-info/top_level.txt +0 -0
  382. {cmdbox-0.5.3.1 → cmdbox-0.6.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cmdbox
3
- Version: 0.5.3.1
3
+ Version: 0.6.0
4
4
  Summary: cmdbox: It is a command line application with a plugin mechanism.
5
5
  Home-page: https://github.com/hamacom2004jp/cmdbox
6
6
  Download-URL: https://github.com/hamacom2004jp/cmdbox
@@ -35,18 +35,48 @@ License-File: LICENSE
35
35
  # Install
36
36
 
37
37
  - Install cmdbox with the following command.
38
+ - Also install the docker version of the redis server.
38
39
 
39
40
  ```bash
41
+ docker run -p 6379:6379 --name redis -e REDIS_PASSWORD=password -it ubuntu/redis:latest
40
42
  pip install cmdbox
41
43
  cmdbox -v
42
44
  ```
43
45
 
44
- - Also install the docker version of the redis server.
46
+ - When using SAML in web mode, install the modules with dependencies.
47
+ ```bash
48
+ pip install xmlsec==1.3.13 python3-saml
49
+ apt-get install -y pkg-config libxml2-dev libxmlsec1-dev libxmlsec1-openssl build-essential libopencv-dev
50
+ ```
51
+
52
+ - When using `--agent use` in web mode, install the modules with dependencies.
53
+ ```bash
54
+ pip install google-adk litellm
55
+ ```
56
+
57
+ # Run
58
+
59
+ - Run the cmdbox server.
60
+
61
+ ```bash
62
+ cmdbox -m server -c start &
63
+ ```
64
+
65
+ - Run the cmdbox web.
66
+
67
+ ```bash
68
+ cmdbox -m web -c start --signin_file .cmdbox/user_list.yml &
69
+ ```
70
+
71
+ - Run the cmdbox web with agent.
72
+ - Below is an example of using Google vertexai.
73
+ - Other available options include Azure OpenAI and Ollama.
45
74
 
46
75
  ```bash
47
- docker run -p 6379:6379 --name redis -it ubuntu/redis:latest
76
+ cmdbox -m web -c start --signin_file .cmdbox/user_list.yml --agent use --llmprov vertexai --llmmodel gemini-2.0-flash --llmlocation us-central1 --llmsvaccountfile <account json file>
48
77
  ```
49
78
 
79
+
50
80
  # Tutorial
51
81
 
52
82
  - Open the ```.sample/sample_project``` folder in the current directory with VSCode.
@@ -267,29 +297,47 @@ aliases: # Specify the alias for the specified co
267
297
  # e.g. /{1}_exec
268
298
  move: # Specify whether to move the regular expression group of the source to the target.
269
299
  # e.g. true
270
- audit:
271
- enabled: true # Specify whether to enable the audit function.
272
- write:
273
- mode: audit # Specify the mode of the feature to be writed.
274
- cmd: write # Specify the command to be writed.
275
- search:
276
- mode: audit # Specify the mode of the feature to be searched.
277
- cmd: search # Specify the command to be searched.
278
- options: # Specify the options for the audit function.
279
- host: localhost # Specify the service host of the audit Redis server.However, if it is specified as a command line argument, it is ignored.
280
- port: 6379 # Specify the service port of the audit Redis server.However, if it is specified as a command line argument, it is ignored.
281
- password: password # Specify the access password of the audit Redis server.However, if it is specified as a command line argument, it is ignored.
282
- svname: server # Specify the audit service name of the inference server.However, if it is specified as a command line argument, it is ignored.
283
- retry_count: 3 # Specifies the number of reconnections to the audit Redis server.If less than 0 is specified, reconnection is forever.
284
- retry_interval: 1 # Specifies the number of seconds before reconnecting to the audit Redis server.
285
- timeout: 15 # Specify the maximum waiting time until the server responds.
286
- pg_enabled: False # Specify True if using the postgresql database server.
287
- pg_host: localhost # Specify the postgresql host.
288
- pg_port: 5432 # Specify the postgresql port.
289
- pg_user: postgres # Specify the postgresql user name.
290
- pg_password: password # Specify the postgresql password.
291
- pg_dbname: audit # Specify the postgresql database name.
292
- retention_period_days: 365 # Specify the number of days to retain audit logs.
300
+ agentrule: # Specifies a list of rules that determine which commands the agent can execute.
301
+ policy: deny # Specify the default policy for the rule. The value can be allow or deny.
302
+ rules: # Specify the rules for the commands that the agent can execute according to the group to which the user belongs.
303
+ - mode: audit # Specify the "mode" as the condition for applying the rule.
304
+ cmds: [search, write] # Specify the "cmd" to which the rule applies. Multiple items can be specified in a list.
305
+ rule: allow # Specifies whether the specified command is allowed or not. Values are allow or deny.
306
+ - mode: client
307
+ cmds: [file_copy, file_download, file_list, file_mkdir, file_move, file_remove, file_rmdir, file_upload, server_info]
308
+ rule: allow
309
+ - mode: cmd
310
+ cmds: [list, load]
311
+ rule: allow
312
+ - mode: server
313
+ cmds: [list]
314
+ rule: allow
315
+ - mode: web
316
+ cmds: [gencert, genpass, group_list, user_list]
317
+ rule: allow
318
+ audit:
319
+ enabled: true # Specify whether to enable the audit function.
320
+ write:
321
+ mode: audit # Specify the mode of the feature to be writed.
322
+ cmd: write # Specify the command to be writed.
323
+ search:
324
+ mode: audit # Specify the mode of the feature to be searched.
325
+ cmd: search # Specify the command to be searched.
326
+ options: # Specify the options for the audit function.
327
+ host: localhost # Specify the service host of the audit Redis server.However, if it is specified as a command line argument, it is ignored.
328
+ port: 6379 # Specify the service port of the audit Redis server.However, if it is specified as a command line argument, it is ignored.
329
+ password: password # Specify the access password of the audit Redis server.However, if it is specified as a command line argument, it is ignored.
330
+ svname: cmdbox # Specify the audit service name of the inference server.However, if it is specified as a command line argument, it is ignored.
331
+ retry_count: 3 # Specifies the number of reconnections to the audit Redis server.If less than 0 is specified, reconnection is forever.
332
+ retry_interval: 1 # Specifies the number of seconds before reconnecting to the audit Redis server.
333
+ timeout: 15 # Specify the maximum waiting time until the server responds.
334
+ pg_enabled: False # Specify True if using the postgresql database server.
335
+ pg_host: localhost # Specify the postgresql host.
336
+ pg_port: 5432 # Specify the postgresql port.
337
+ pg_user: postgres # Specify the postgresql user name.
338
+ pg_password: password # Specify the postgresql password.
339
+ pg_dbname: audit # Specify the postgresql database name.
340
+ retention_period_days: 365 # Specify the number of days to retain audit logs.
293
341
 
294
342
  ```
295
343
 
@@ -303,25 +351,25 @@ aliases: # Specify the alias for the specified co
303
351
  users: # A list of users, each of which is a map that contains the following fields.
304
352
  - uid: 1 # An ID that identifies a user. No two users can have the same ID.
305
353
  name: admin # A name that identifies the user. No two users can have the same name.
306
- password: XXXXXXXXXXX # The user's password. The value is hashed with the hash function specified in the next hash field.
307
- hash: plain # The hash function used to hash the password, which can be plain, md5, sha1, or sha256, or oauth2.
354
+ password: XXXXXXXXXXXXXXXX # The user's password. The value is hashed with the hash function specified in the next hash field.
355
+ hash: plain # The hash function used to hash the password, which can be plain, md5, sha1, or sha256, or oauth2, or saml.
308
356
  groups: [admin] # A list of groups to which the user belongs, as specified in the groups field.
309
- email: admin@aaa.bbb.jp # The email address of the user, used when authenticating using the provider specified in the oauth2 field.
357
+ email: admin@aaa.bbb.jp # The email address of the user, used when authenticating using the provider specified in the oauth2 or saml field.
310
358
  - uid: 101
311
359
  name: user01
312
- password: XXXXXXXXXXX
360
+ password: XXXXXXXXXXXXXXXX
313
361
  hash: md5
314
362
  groups: [user]
315
363
  email: user01@aaa.bbb.jp
316
364
  - uid: 102
317
365
  name: user02
318
- password: XXXXXXXXXXX
366
+ password: XXXXXXXXXXXXXXXX
319
367
  hash: sha1
320
368
  groups: [readonly]
321
369
  email: user02@aaa.bbb.jp
322
370
  - uid: 103
323
371
  name: user03
324
- password: XXXXXXXXXXX
372
+ password: XXXXXXXXXXXXXXXX
325
373
  hash: sha256
326
374
  groups: [editor]
327
375
  email: user03@aaa.bbb.jp
@@ -351,6 +399,10 @@ cmdrule: # A list of command rules, Specify a rule that de
351
399
  mode: server
352
400
  cmds: [list]
353
401
  rule: allow
402
+ - groups: [user, guest]
403
+ mode: audit
404
+ cmds: [write]
405
+ rule: allow
354
406
  - groups: [user, guest]
355
407
  mode: web
356
408
  cmds: [genpass]
@@ -371,7 +423,8 @@ pathrule: # List of RESTAPI rules, rules that determine whe
371
423
  rule: allow
372
424
  - groups: [user]
373
425
  paths: [/signin, /assets, /bbforce_cmd, /copyright, /dosignin, /dosignout, /password/change,
374
- /exec_cmd, /exec_pipe, /filer, /gui, /get_server_opt, /usesignout, /versions_cmdbox, /versions_used]
426
+ /gui/user_data/load, /gui/user_data/save, /gui/user_data/delete,
427
+ /exec_cmd, /exec_pipe, /filer, /result, /gui, /get_server_opt, /usesignout, /versions_cmdbox, /versions_used]
375
428
  rule: allow
376
429
  - groups: [readonly]
377
430
  paths: [/gui/del_cmd, /gui/del_pipe, /gui/save_cmd, /gui/save_pipe]
@@ -406,7 +459,8 @@ oauth2: # OAuth2 settings.
406
459
  client_secret: XXXXXXXXXXX # Specify Google's OAuth2 client secret.
407
460
  redirect_uri: https://localhost:8443/oauth2/google/callback # Specify Google's OAuth2 redirect URI.
408
461
  scope: ['email'] # Specify the scope you want to retrieve with Google's OAuth2. Usually, just reading the email is sufficient.
409
- signin_module: # Specify the module name that implements the sign-in. see, cmdbox.app.signin.SignIn
462
+ signin_module: # Specify the module name that implements the sign-in.
463
+ cmdbox.app.auth.google_signin
410
464
  note: # Specify a description such as Google's OAuth2 reference site.
411
465
  - https://developers.google.com/identity/protocols/oauth2/web-server?hl=ja#httprest
412
466
  github: # OAuth2 settings for GitHub.
@@ -415,9 +469,50 @@ oauth2: # OAuth2 settings.
415
469
  client_secret: XXXXXXXXXXX # Specify the GitHub OAuth2 client secret.
416
470
  redirect_uri: https://localhost:8443/oauth2/github/callback # Specify the OAuth2 redirect URI for GitHub.
417
471
  scope: ['user:email'] # Specify the scope you want to get from GitHub's OAuth2. Usually, just reading the email is sufficient.
418
- signin_module: # Specify the module name that implements the sign-in. see, cmdbox.app.signin.SignIn
472
+ signin_module: # Specify the module name that implements the sign-in.
473
+ cmdbox.app.auth.github_signin
419
474
  note: # Specify a description, such as a reference site for OAuth2 on GitHub.
420
475
  - https://docs.github.com/ja/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps#scopes
476
+ azure: # OAuth2 settings for Azure AD.
477
+ enabled: false # Specify whether to enable OAuth2 for Azure AD.
478
+ tenant_id: XXXXXXXXXXX # Specify the tenant ID for Azure AD.
479
+ client_id: XXXXXXXXXXX # Specify the OAuth2 client ID for Azure AD.
480
+ client_secret: XXXXXXXXXXX # Specify the Azure AD OAuth2 client secret.
481
+ redirect_uri: https://localhost:8443/oauth2/azure/callback # Specify the OAuth2 redirect URI for Azure AD.
482
+ scope: ['openid', 'profile', 'email', 'https://graph.microsoft.com/mail.read']
483
+ signin_module: # Specify the module name that implements the sign-in.
484
+ cmdbox.app.auth.azure_signin
485
+ note: # Specify a description, such as a reference site for Azure AD's OAuth2.
486
+ - https://learn.microsoft.com/ja-jp/entra/identity-platform/v2-oauth2-auth-code-flow
487
+ saml: # SAML settings.
488
+ providers: # This is a per-provider setting for OAuth2.
489
+ azure: # SAML settings for Azure AD.
490
+ enabled: false # Specify whether to enable SAML authentication for Azure AD.
491
+ signin_module: # Specify the module name that implements the sign-in.
492
+ cmdbox.app.auth.azure_signin_saml # Specify the python3-saml configuration.
493
+ # see) https://github.com/SAML-Toolkits/python3-saml
494
+ sp:
495
+ entityId: https://localhost:8443/
496
+ assertionConsumerService:
497
+ url: https://localhost:8443/saml/azure/callback
498
+ binding: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST
499
+ attributeConsumingService: {}
500
+ singleLogoutService:
501
+ binding: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect
502
+ NameIDFormat: urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
503
+ x509cert: ''
504
+ privateKey: ''
505
+ idp:
506
+ entityId: https://sts.windows.net/{tenant-id}/
507
+ singleSignOnService:
508
+ url: https://login.microsoftonline.com/{tenant-id}/saml2
509
+ binding: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect
510
+ x509cert: XXXXXXXXXXX
511
+ singleLogoutService: {}
512
+ certFingerprint: ''
513
+ certFingerprintAlgorithm: sha1
514
+
515
+
421
516
  ```
422
517
 
423
518
  - See the documentation for references to each file.
@@ -11,18 +11,48 @@
11
11
  # Install
12
12
 
13
13
  - Install cmdbox with the following command.
14
+ - Also install the docker version of the redis server.
14
15
 
15
16
  ```bash
17
+ docker run -p 6379:6379 --name redis -e REDIS_PASSWORD=password -it ubuntu/redis:latest
16
18
  pip install cmdbox
17
19
  cmdbox -v
18
20
  ```
19
21
 
20
- - Also install the docker version of the redis server.
22
+ - When using SAML in web mode, install the modules with dependencies.
23
+ ```bash
24
+ pip install xmlsec==1.3.13 python3-saml
25
+ apt-get install -y pkg-config libxml2-dev libxmlsec1-dev libxmlsec1-openssl build-essential libopencv-dev
26
+ ```
27
+
28
+ - When using `--agent use` in web mode, install the modules with dependencies.
29
+ ```bash
30
+ pip install google-adk litellm
31
+ ```
32
+
33
+ # Run
34
+
35
+ - Run the cmdbox server.
36
+
37
+ ```bash
38
+ cmdbox -m server -c start &
39
+ ```
40
+
41
+ - Run the cmdbox web.
42
+
43
+ ```bash
44
+ cmdbox -m web -c start --signin_file .cmdbox/user_list.yml &
45
+ ```
46
+
47
+ - Run the cmdbox web with agent.
48
+ - Below is an example of using Google vertexai.
49
+ - Other available options include Azure OpenAI and Ollama.
21
50
 
22
51
  ```bash
23
- docker run -p 6379:6379 --name redis -it ubuntu/redis:latest
52
+ cmdbox -m web -c start --signin_file .cmdbox/user_list.yml --agent use --llmprov vertexai --llmmodel gemini-2.0-flash --llmlocation us-central1 --llmsvaccountfile <account json file>
24
53
  ```
25
54
 
55
+
26
56
  # Tutorial
27
57
 
28
58
  - Open the ```.sample/sample_project``` folder in the current directory with VSCode.
@@ -243,29 +273,47 @@ aliases: # Specify the alias for the specified co
243
273
  # e.g. /{1}_exec
244
274
  move: # Specify whether to move the regular expression group of the source to the target.
245
275
  # e.g. true
246
- audit:
247
- enabled: true # Specify whether to enable the audit function.
248
- write:
249
- mode: audit # Specify the mode of the feature to be writed.
250
- cmd: write # Specify the command to be writed.
251
- search:
252
- mode: audit # Specify the mode of the feature to be searched.
253
- cmd: search # Specify the command to be searched.
254
- options: # Specify the options for the audit function.
255
- host: localhost # Specify the service host of the audit Redis server.However, if it is specified as a command line argument, it is ignored.
256
- port: 6379 # Specify the service port of the audit Redis server.However, if it is specified as a command line argument, it is ignored.
257
- password: password # Specify the access password of the audit Redis server.However, if it is specified as a command line argument, it is ignored.
258
- svname: server # Specify the audit service name of the inference server.However, if it is specified as a command line argument, it is ignored.
259
- retry_count: 3 # Specifies the number of reconnections to the audit Redis server.If less than 0 is specified, reconnection is forever.
260
- retry_interval: 1 # Specifies the number of seconds before reconnecting to the audit Redis server.
261
- timeout: 15 # Specify the maximum waiting time until the server responds.
262
- pg_enabled: False # Specify True if using the postgresql database server.
263
- pg_host: localhost # Specify the postgresql host.
264
- pg_port: 5432 # Specify the postgresql port.
265
- pg_user: postgres # Specify the postgresql user name.
266
- pg_password: password # Specify the postgresql password.
267
- pg_dbname: audit # Specify the postgresql database name.
268
- retention_period_days: 365 # Specify the number of days to retain audit logs.
276
+ agentrule: # Specifies a list of rules that determine which commands the agent can execute.
277
+ policy: deny # Specify the default policy for the rule. The value can be allow or deny.
278
+ rules: # Specify the rules for the commands that the agent can execute according to the group to which the user belongs.
279
+ - mode: audit # Specify the "mode" as the condition for applying the rule.
280
+ cmds: [search, write] # Specify the "cmd" to which the rule applies. Multiple items can be specified in a list.
281
+ rule: allow # Specifies whether the specified command is allowed or not. Values are allow or deny.
282
+ - mode: client
283
+ cmds: [file_copy, file_download, file_list, file_mkdir, file_move, file_remove, file_rmdir, file_upload, server_info]
284
+ rule: allow
285
+ - mode: cmd
286
+ cmds: [list, load]
287
+ rule: allow
288
+ - mode: server
289
+ cmds: [list]
290
+ rule: allow
291
+ - mode: web
292
+ cmds: [gencert, genpass, group_list, user_list]
293
+ rule: allow
294
+ audit:
295
+ enabled: true # Specify whether to enable the audit function.
296
+ write:
297
+ mode: audit # Specify the mode of the feature to be writed.
298
+ cmd: write # Specify the command to be writed.
299
+ search:
300
+ mode: audit # Specify the mode of the feature to be searched.
301
+ cmd: search # Specify the command to be searched.
302
+ options: # Specify the options for the audit function.
303
+ host: localhost # Specify the service host of the audit Redis server.However, if it is specified as a command line argument, it is ignored.
304
+ port: 6379 # Specify the service port of the audit Redis server.However, if it is specified as a command line argument, it is ignored.
305
+ password: password # Specify the access password of the audit Redis server.However, if it is specified as a command line argument, it is ignored.
306
+ svname: cmdbox # Specify the audit service name of the inference server.However, if it is specified as a command line argument, it is ignored.
307
+ retry_count: 3 # Specifies the number of reconnections to the audit Redis server.If less than 0 is specified, reconnection is forever.
308
+ retry_interval: 1 # Specifies the number of seconds before reconnecting to the audit Redis server.
309
+ timeout: 15 # Specify the maximum waiting time until the server responds.
310
+ pg_enabled: False # Specify True if using the postgresql database server.
311
+ pg_host: localhost # Specify the postgresql host.
312
+ pg_port: 5432 # Specify the postgresql port.
313
+ pg_user: postgres # Specify the postgresql user name.
314
+ pg_password: password # Specify the postgresql password.
315
+ pg_dbname: audit # Specify the postgresql database name.
316
+ retention_period_days: 365 # Specify the number of days to retain audit logs.
269
317
 
270
318
  ```
271
319
 
@@ -279,25 +327,25 @@ aliases: # Specify the alias for the specified co
279
327
  users: # A list of users, each of which is a map that contains the following fields.
280
328
  - uid: 1 # An ID that identifies a user. No two users can have the same ID.
281
329
  name: admin # A name that identifies the user. No two users can have the same name.
282
- password: XXXXXXXXXXX # The user's password. The value is hashed with the hash function specified in the next hash field.
283
- hash: plain # The hash function used to hash the password, which can be plain, md5, sha1, or sha256, or oauth2.
330
+ password: XXXXXXXXXXXXXXXX # The user's password. The value is hashed with the hash function specified in the next hash field.
331
+ hash: plain # The hash function used to hash the password, which can be plain, md5, sha1, or sha256, or oauth2, or saml.
284
332
  groups: [admin] # A list of groups to which the user belongs, as specified in the groups field.
285
- email: admin@aaa.bbb.jp # The email address of the user, used when authenticating using the provider specified in the oauth2 field.
333
+ email: admin@aaa.bbb.jp # The email address of the user, used when authenticating using the provider specified in the oauth2 or saml field.
286
334
  - uid: 101
287
335
  name: user01
288
- password: XXXXXXXXXXX
336
+ password: XXXXXXXXXXXXXXXX
289
337
  hash: md5
290
338
  groups: [user]
291
339
  email: user01@aaa.bbb.jp
292
340
  - uid: 102
293
341
  name: user02
294
- password: XXXXXXXXXXX
342
+ password: XXXXXXXXXXXXXXXX
295
343
  hash: sha1
296
344
  groups: [readonly]
297
345
  email: user02@aaa.bbb.jp
298
346
  - uid: 103
299
347
  name: user03
300
- password: XXXXXXXXXXX
348
+ password: XXXXXXXXXXXXXXXX
301
349
  hash: sha256
302
350
  groups: [editor]
303
351
  email: user03@aaa.bbb.jp
@@ -327,6 +375,10 @@ cmdrule: # A list of command rules, Specify a rule that de
327
375
  mode: server
328
376
  cmds: [list]
329
377
  rule: allow
378
+ - groups: [user, guest]
379
+ mode: audit
380
+ cmds: [write]
381
+ rule: allow
330
382
  - groups: [user, guest]
331
383
  mode: web
332
384
  cmds: [genpass]
@@ -347,7 +399,8 @@ pathrule: # List of RESTAPI rules, rules that determine whe
347
399
  rule: allow
348
400
  - groups: [user]
349
401
  paths: [/signin, /assets, /bbforce_cmd, /copyright, /dosignin, /dosignout, /password/change,
350
- /exec_cmd, /exec_pipe, /filer, /gui, /get_server_opt, /usesignout, /versions_cmdbox, /versions_used]
402
+ /gui/user_data/load, /gui/user_data/save, /gui/user_data/delete,
403
+ /exec_cmd, /exec_pipe, /filer, /result, /gui, /get_server_opt, /usesignout, /versions_cmdbox, /versions_used]
351
404
  rule: allow
352
405
  - groups: [readonly]
353
406
  paths: [/gui/del_cmd, /gui/del_pipe, /gui/save_cmd, /gui/save_pipe]
@@ -382,7 +435,8 @@ oauth2: # OAuth2 settings.
382
435
  client_secret: XXXXXXXXXXX # Specify Google's OAuth2 client secret.
383
436
  redirect_uri: https://localhost:8443/oauth2/google/callback # Specify Google's OAuth2 redirect URI.
384
437
  scope: ['email'] # Specify the scope you want to retrieve with Google's OAuth2. Usually, just reading the email is sufficient.
385
- signin_module: # Specify the module name that implements the sign-in. see, cmdbox.app.signin.SignIn
438
+ signin_module: # Specify the module name that implements the sign-in.
439
+ cmdbox.app.auth.google_signin
386
440
  note: # Specify a description such as Google's OAuth2 reference site.
387
441
  - https://developers.google.com/identity/protocols/oauth2/web-server?hl=ja#httprest
388
442
  github: # OAuth2 settings for GitHub.
@@ -391,9 +445,50 @@ oauth2: # OAuth2 settings.
391
445
  client_secret: XXXXXXXXXXX # Specify the GitHub OAuth2 client secret.
392
446
  redirect_uri: https://localhost:8443/oauth2/github/callback # Specify the OAuth2 redirect URI for GitHub.
393
447
  scope: ['user:email'] # Specify the scope you want to get from GitHub's OAuth2. Usually, just reading the email is sufficient.
394
- signin_module: # Specify the module name that implements the sign-in. see, cmdbox.app.signin.SignIn
448
+ signin_module: # Specify the module name that implements the sign-in.
449
+ cmdbox.app.auth.github_signin
395
450
  note: # Specify a description, such as a reference site for OAuth2 on GitHub.
396
451
  - https://docs.github.com/ja/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps#scopes
452
+ azure: # OAuth2 settings for Azure AD.
453
+ enabled: false # Specify whether to enable OAuth2 for Azure AD.
454
+ tenant_id: XXXXXXXXXXX # Specify the tenant ID for Azure AD.
455
+ client_id: XXXXXXXXXXX # Specify the OAuth2 client ID for Azure AD.
456
+ client_secret: XXXXXXXXXXX # Specify the Azure AD OAuth2 client secret.
457
+ redirect_uri: https://localhost:8443/oauth2/azure/callback # Specify the OAuth2 redirect URI for Azure AD.
458
+ scope: ['openid', 'profile', 'email', 'https://graph.microsoft.com/mail.read']
459
+ signin_module: # Specify the module name that implements the sign-in.
460
+ cmdbox.app.auth.azure_signin
461
+ note: # Specify a description, such as a reference site for Azure AD's OAuth2.
462
+ - https://learn.microsoft.com/ja-jp/entra/identity-platform/v2-oauth2-auth-code-flow
463
+ saml: # SAML settings.
464
+ providers: # This is a per-provider setting for OAuth2.
465
+ azure: # SAML settings for Azure AD.
466
+ enabled: false # Specify whether to enable SAML authentication for Azure AD.
467
+ signin_module: # Specify the module name that implements the sign-in.
468
+ cmdbox.app.auth.azure_signin_saml # Specify the python3-saml configuration.
469
+ # see) https://github.com/SAML-Toolkits/python3-saml
470
+ sp:
471
+ entityId: https://localhost:8443/
472
+ assertionConsumerService:
473
+ url: https://localhost:8443/saml/azure/callback
474
+ binding: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST
475
+ attributeConsumingService: {}
476
+ singleLogoutService:
477
+ binding: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect
478
+ NameIDFormat: urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
479
+ x509cert: ''
480
+ privateKey: ''
481
+ idp:
482
+ entityId: https://sts.windows.net/{tenant-id}/
483
+ singleSignOnService:
484
+ url: https://login.microsoftonline.com/{tenant-id}/saml2
485
+ binding: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect
486
+ x509cert: XXXXXXXXXXX
487
+ singleLogoutService: {}
488
+ certFingerprint: ''
489
+ certFingerprintAlgorithm: sha1
490
+
491
+
397
492
  ```
398
493
 
399
494
  - See the documentation for references to each file.
File without changes
@@ -0,0 +1,38 @@
1
+ from cmdbox.app.auth.signin import Signin
2
+ from fastapi import Request, Response
3
+ from typing import Any, Dict
4
+ import requests
5
+ import urllib
6
+
7
+
8
+ class AzureSignin(Signin):
9
+ @classmethod
10
+ def get_email(cls, data:Any) -> str:
11
+ user_info_resp = requests.get(
12
+ url='https://graph.microsoft.com/v1.0/me',
13
+ #url='https://graph.microsoft.com/v1.0/me/transitiveMemberOf?$Top=999',
14
+ headers={'Authorization': f'Bearer {data}'}
15
+ )
16
+ user_info_resp.raise_for_status()
17
+ user_info_json = user_info_resp.json()
18
+ if isinstance(user_info_json, dict):
19
+ email = user_info_json.get('mail', 'notfound')
20
+ return email
21
+ return 'notfound'
22
+
23
+ def request_access_token(self, conf:Dict, req:Request, res:Response) -> str:
24
+ headers = {'Content-Type': 'application/x-www-form-urlencoded',
25
+ 'Accept': 'application/json'}
26
+ data = {'tenant': conf['tenant_id'],
27
+ 'code': req.query_params['code'],
28
+ 'scope': " ".join(conf['scope']),
29
+ 'client_id': conf['client_id'],
30
+ #'client_secret': conf['client_secret'],
31
+ 'redirect_uri': conf['redirect_uri'],
32
+ 'grant_type': 'authorization_code'}
33
+ query = '&'.join([f'{k}={urllib.parse.quote(v)}' for k, v in data.items()])
34
+ # アクセストークン取得
35
+ token_resp = requests.post(url=f'https://login.microsoftonline.com/{conf["tenant_id"]}/oauth2/v2.0/token', headers=headers, data=query)
36
+ token_resp.raise_for_status()
37
+ token_json = token_resp.json()
38
+ return token_json['access_token']
@@ -0,0 +1,12 @@
1
+ from cmdbox.app.auth.signin_saml import SigninSAML
2
+ from typing import Any
3
+
4
+
5
+ class AzyreSigninSAML(SigninSAML):
6
+ @classmethod
7
+ def get_email(cls, data:Any) -> str:
8
+ user_info_json = data.get_attributes()
9
+ if isinstance(user_info_json, dict):
10
+ email = user_info_json.get('http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress', ['notfound'])
11
+ return email[0] if len(email) > 0 else 'notfound'
12
+ return 'notfound'
@@ -0,0 +1,38 @@
1
+ from cmdbox.app.auth.signin import Signin
2
+ from fastapi import Request, Response
3
+ from typing import Any, Dict
4
+ import requests
5
+ import urllib.parse
6
+
7
+
8
+ class GithubSignin(Signin):
9
+ @classmethod
10
+ def get_email(cls, data:Any) -> str:
11
+ user_info_resp = requests.get(
12
+ url='https://api.github.com/user/emails',
13
+ headers={'Authorization': f'Bearer {data}'}
14
+ )
15
+ user_info_resp.raise_for_status()
16
+ user_info_json = user_info_resp.json()
17
+ if type(user_info_json) == list:
18
+ email = 'notfound'
19
+ for u in user_info_json:
20
+ if u['primary']:
21
+ email = u['email']
22
+ break
23
+ return email
24
+ return 'notfound'
25
+
26
+ def request_access_token(self, conf:Dict, req:Request, res:Response) -> str:
27
+ headers = {'Content-Type': 'application/x-www-form-urlencoded',
28
+ 'Accept': 'application/json'}
29
+ data = {'code': req.query_params['code'],
30
+ 'client_id': conf['client_id'],
31
+ 'client_secret': conf['client_secret'],
32
+ 'redirect_uri': conf['redirect_uri']}
33
+ query = '&'.join([f'{k}={urllib.parse.quote(v)}' for k, v in data.items()])
34
+ # アクセストークン取得
35
+ token_resp = requests.post(url='https://github.com/login/oauth/access_token', headers=headers, data=query)
36
+ token_resp.raise_for_status()
37
+ token_json = token_resp.json()
38
+ return token_json['access_token']
@@ -0,0 +1,32 @@
1
+ from cmdbox.app.auth.signin import Signin
2
+ from fastapi import Request, Response
3
+ from typing import Any, Dict
4
+ import requests
5
+ import urllib.parse
6
+
7
+
8
+ class GoogleSignin(Signin):
9
+ @classmethod
10
+ def get_email(cls, data:Any) -> str:
11
+ user_info_resp = requests.get(
12
+ url='https://www.googleapis.com/oauth2/v1/userinfo',
13
+ headers={'Authorization': f'Bearer {data}'}
14
+ )
15
+ user_info_resp.raise_for_status()
16
+ user_info_json = user_info_resp.json()
17
+ return user_info_json['email'] if 'email' in user_info_json else 'notfound'
18
+
19
+ def request_access_token(self, conf:Dict, req:Request, res:Response) -> str:
20
+ headers = {'Content-Type': 'application/x-www-form-urlencoded'}
21
+ next = req.query_params['state']
22
+ data = {'code': req.query_params['code'],
23
+ 'client_id': conf['client_id'],
24
+ 'client_secret': conf['client_secret'],
25
+ 'redirect_uri': conf['redirect_uri'],
26
+ 'grant_type': 'authorization_code'}
27
+ query = '&'.join([f'{k}={urllib.parse.quote(v)}' for k, v in data.items()])
28
+ # アクセストークン取得
29
+ token_resp = requests.post(url='https://oauth2.googleapis.com/token', headers=headers, data=query)
30
+ token_resp.raise_for_status()
31
+ token_json = token_resp.json()
32
+ return token_json['access_token']