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.
- {cmdbox-0.5.3.1/cmdbox.egg-info → cmdbox-0.6.0}/PKG-INFO +130 -35
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/README.md +129 -34
- cmdbox-0.6.0/cmdbox/app/auth/__init__.py +0 -0
- cmdbox-0.6.0/cmdbox/app/auth/azure_signin.py +38 -0
- cmdbox-0.6.0/cmdbox/app/auth/azure_signin_saml.py +12 -0
- cmdbox-0.6.0/cmdbox/app/auth/github_signin.py +38 -0
- cmdbox-0.6.0/cmdbox/app/auth/google_signin.py +32 -0
- cmdbox-0.6.0/cmdbox/app/auth/signin.py +837 -0
- cmdbox-0.6.0/cmdbox/app/auth/signin_saml.py +61 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/common.py +48 -3
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/edge.py +182 -213
- cmdbox-0.6.0/cmdbox/app/edge_tool.py +177 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/feature.py +10 -10
- cmdbox-0.6.0/cmdbox/app/features/cli/agent_base.py +477 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/audit_base.py +1 -1
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_audit_search.py +24 -1
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_client_file_download.py +1 -1
- cmdbox-0.6.0/cmdbox/app/features/cli/cmdbox_cmd_list.py +105 -0
- cmdbox-0.6.0/cmdbox/app/features/cli/cmdbox_cmd_load.py +104 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_edge_config.py +21 -7
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_edge_start.py +1 -1
- cmdbox-0.6.0/cmdbox/app/features/cli/cmdbox_gui_start.py +44 -0
- cmdbox-0.6.0/cmdbox/app/features/cli/cmdbox_gui_stop.py +34 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_server_start.py +1 -1
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_web_apikey_add.py +1 -1
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_web_apikey_del.py +1 -1
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_web_genpass.py +0 -3
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_web_group_add.py +1 -1
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_web_group_del.py +1 -1
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_web_group_edit.py +1 -1
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_web_group_list.py +1 -1
- cmdbox-0.6.0/cmdbox/app/features/cli/cmdbox_web_start.py +192 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_web_stop.py +1 -1
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_web_user_add.py +4 -4
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_web_user_del.py +1 -1
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_web_user_edit.py +4 -4
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_web_user_list.py +1 -1
- cmdbox-0.6.0/cmdbox/app/features/web/cmdbox_web_agent.py +250 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_do_signin.py +79 -103
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_exec_cmd.py +8 -3
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_signin.py +26 -4
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_users.py +2 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/options.py +55 -2
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/web.py +155 -27
- cmdbox-0.6.0/cmdbox/extensions/features.yml +80 -0
- cmdbox-0.6.0/cmdbox/extensions/sample_project/sample/app/features/cli/__init__.py +0 -0
- cmdbox-0.6.0/cmdbox/extensions/sample_project/sample/app/features/web/__init__.py +0 -0
- {cmdbox-0.5.3.1/cmdbox → cmdbox-0.6.0/cmdbox/extensions/sample_project/sample}/extensions/features.yml +15 -6
- {cmdbox-0.5.3.1/cmdbox → cmdbox-0.6.0/cmdbox/extensions/sample_project/sample}/extensions/user_list.yml +35 -5
- {cmdbox-0.5.3.1/cmdbox/extensions/sample_project/sample → cmdbox-0.6.0/cmdbox}/extensions/user_list.yml +42 -7
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.Authlib.1.5.2(BSD License).txt +29 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.Deprecated.1.2.18(MIT License).txt +21 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.SQLAlchemy.2.0.40(MIT License).txt +19 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.aiohttp.3.11.18(Apache Software License).txt +13 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.aiosignal.1.3.2(Apache Software License).txt +201 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.async-timeout.5.0.1(Apache Software License).txt +13 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.attrs.25.3.0(UNKNOWN).txt +21 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.cachetools.5.5.2(MIT License).txt +20 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.distro.1.9.0(Apache Software License).txt +202 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.docstring_parser.0.16(MIT License).txt +21 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.filelock.3.18.0(The Unlicense (Unlicense)).txt +24 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.frozenlist.1.6.0(Apache-2.0).txt +201 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.fsspec.2025.3.2(BSD License).txt +29 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-adk.0.5.0(Apache Software License).txt +202 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-api-python-client.2.169.0(Apache Software License).txt +201 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-auth-httplib2.0.2.0(Apache Software License).txt +201 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-auth.2.40.1(Apache Software License).txt +201 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-cloud-bigquery.3.31.0(Apache Software License).txt +202 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-cloud-core.2.4.3(Apache Software License).txt +202 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-cloud-resource-manager.1.14.2(Apache Software License).txt +202 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-cloud-secret-manager.2.23.3(Apache Software License).txt +202 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-cloud-speech.2.32.0(Apache Software License).txt +202 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-cloud-storage.2.19.0(Apache Software License).txt +202 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-cloud-trace.1.16.1(Apache Software License).txt +202 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-crc32c.1.7.1(Apache 2.0).txt +202 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-genai.1.14.0(Apache Software License).txt +202 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.google-resumable-media.2.7.2(Apache Software License).txt +202 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.googleapis-common-protos.1.70.0(Apache Software License).txt +202 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.graphviz.0.20.3(MIT License).txt +21 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.grpc-google-iam-v1.0.14.2(Apache Software License).txt +202 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.grpcio-status.1.71.0(Apache Software License).txt +610 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.grpcio.1.71.0(Apache Software License).txt +610 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.httpcore.1.0.9(BSD License).txt +27 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.httplib2.0.22.0(MIT License).txt +23 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.httpx-sse.0.4.0(MIT).txt +21 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.httpx.0.28.1(BSD License).txt +12 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.huggingface-hub.0.31.1(Apache Software License).txt +201 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.id.1.5.0(Apache Software License).txt +202 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.importlib_metadata.8.6.1(Apache Software License).txt +202 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.jsonschema-specifications.2025.4.1(UNKNOWN).txt +19 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.jsonschema.4.23.0(MIT License).txt +19 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.litellm.1.69.0(MIT License).txt +26 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.mcp.1.8.0(MIT License).txt +21 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.multidict.6.4.3(Apache Software License).txt +13 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.openai.1.75.0(Apache Software License).txt +201 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.opentelemetry-api.1.33.0(Apache Software License).txt +201 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.opentelemetry-exporter-gcp-trace.1.9.0(Apache Software License).txt +201 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.opentelemetry-resourcedetector-gcp.1.9.0a0(Apache Software License).txt +201 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.opentelemetry-sdk.1.33.0(Apache Software License).txt +201 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.opentelemetry-semantic-conventions.0.54b0(Apache Software License).txt +201 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.propcache.0.3.1(Apache Software License).txt +202 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.proto-plus.1.26.1(Apache Software License).txt +202 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.protobuf.5.29.4(3-Clause BSD License).txt +32 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.pyasn1.0.6.1(BSD License).txt +24 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.pyasn1_modules.0.4.2(BSD License).txt +24 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.pydantic-settings.2.9.1(MIT License).txt +21 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.pyparsing.3.2.3(MIT License).txt +18 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.python-dateutil.2.9.0.post0(Apache Software License; BSD License).txt +54 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.referencing.0.36.2(UNKNOWN).txt +19 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.regex.2024.11.6(Apache Software License).txt +208 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.rpds-py.0.24.0(MIT).txt +19 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.rsa.4.9.1(Apache Software License).txt +13 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.shapely.2.1.0(BSD License).txt +29 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.sphinxcontrib-serializinghtml.2.0.0(BSD License).txt +1 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.sse-starlette.2.3.4(BSD License).txt +27 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.tiktoken.0.9.0(MIT License).txt +21 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.tokenizers.0.21.1(Apache Software License).txt +1 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.tqdm.4.67.1(MIT License; Mozilla Public License 2.0 (MPL 2.0)).txt +49 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.typing_extensions.4.13.2(UNKNOWN).txt +279 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.tzlocal.5.3.1(MIT License).txt +19 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.uritemplate.4.1.1(Apache Software License; BSD License).txt +3 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.wrapt.1.17.2(BSD License).txt +24 -0
- cmdbox-0.6.0/cmdbox/licenses/LICENSE.yarl.1.20.0(Apache Software License).txt +202 -0
- cmdbox-0.6.0/cmdbox/licenses/files.txt +188 -0
- cmdbox-0.6.0/cmdbox/logconf_agent.yml +38 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/logconf_audit.yml +13 -5
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/logconf_client.yml +13 -5
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/logconf_cmdbox.yml +13 -5
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/logconf_edge.yml +13 -5
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/logconf_gui.yml +13 -5
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/logconf_server.yml +13 -5
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/logconf_web.yml +13 -5
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/version.py +3 -2
- cmdbox-0.6.0/cmdbox/web/agent.html +263 -0
- cmdbox-0.6.0/cmdbox/web/assets/cmdbox/agent.js +335 -0
- cmdbox-0.6.0/cmdbox/web/assets/cmdbox/common.js +1498 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/signin.js +16 -3
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/users.js +1 -1
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/filer/filer.js +4 -2
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/signin.html +10 -6
- {cmdbox-0.5.3.1 → cmdbox-0.6.0/cmdbox.egg-info}/PKG-INFO +130 -35
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox.egg-info/SOURCES.txt +106 -17
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox.egg-info/requires.txt +2 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/setup.py +6 -0
- cmdbox-0.5.3.1/cmdbox/app/auth/signin.py +0 -634
- cmdbox-0.5.3.1/cmdbox/app/features/cli/cmdbox_gui_start.py +0 -167
- cmdbox-0.5.3.1/cmdbox/app/features/cli/cmdbox_gui_stop.py +0 -51
- cmdbox-0.5.3.1/cmdbox/app/features/cli/cmdbox_web_start.py +0 -177
- cmdbox-0.5.3.1/cmdbox/extensions/sample_project/sample/extensions/features.yml +0 -48
- cmdbox-0.5.3.1/cmdbox/licenses/files.txt +0 -94
- cmdbox-0.5.3.1/cmdbox/web/assets/cmdbox/common.js +0 -1407
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/LICENSE +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/MANIFEST.in +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/__init__.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/__main__.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/__init__.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/app.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/client.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/commons/convert.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/commons/loghandler.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/commons/module.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/commons/redis_client.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_audit_createdb.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_audit_delete.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_audit_write.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_client_file_copy.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_client_file_list.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_client_file_mkdir.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_client_file_move.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_client_file_remove.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_client_file_rmdir.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_client_file_upload.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_client_server_info.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_server_list.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_server_stop.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/cli/cmdbox_web_gencert.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_assets.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_audit.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_audit_metrics.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_bbforce_cmd.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_copyright.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_del_cmd.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_del_pipe.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_do_signout.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_exec_pipe.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_filer download.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_filer.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_filer_upload.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_get_cmd_choices.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_get_cmds.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_get_modes.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_get_server_opt.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_gui.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_gui_callback.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_list_cmd.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_list_pipe.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_load_cmd.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_load_pipe.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_raw_cmd.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_raw_pipe.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_result.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_save_cmd.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_save_pipe.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_user_data.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_usesignout.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_versions_cmdbox.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/features/web/cmdbox_web_versions_used.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/filer.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/app/server.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/config.yml +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/extensions/sample_project/.vscode/launch.json +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/extensions/sample_project/requirements.txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/extensions/sample_project/sample/__init__.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/extensions/sample_project/sample/__main__.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/extensions/sample_project/sample/app/app.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/extensions/sample_project/sample/app/features/cli/sample_client_time.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/extensions/sample_project/sample/app/features/cli/sample_server_time.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/extensions/sample_project/sample/logconf_sample.yml +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/extensions/sample_project/sample/version.py +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/extensions/sample_project/sample/web/assets/sample/favicon.ico +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/extensions/sample_project/sample/web/assets/sample/icon.png +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.Jinja2.3.1.6(BSD License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.MarkupSafe.3.0.2(BSD License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.PyYAML.6.0.2(MIT License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.Pygments.2.19.1(BSD License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.Sphinx.8.2.3(UNKNOWN).txt +0 -0
- /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
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.alabaster.1.0.0(BSD License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.annotated-types.0.7.0(MIT License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.anyio.4.9.0(MIT License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.argcomplete.3.6.2(Apache Software License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.babel.2.17.0(BSD License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.backports.tarfile.1.2.0(MIT License).txt +0 -0
- /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
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.cffi.1.17.1(MIT License).txt +0 -0
- /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
- /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
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.colorama.0.4.6(BSD License).txt +0 -0
- /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
- {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
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.fastapi.0.115.12(MIT License).txt +0 -0
- /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
- /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
- /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
- /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
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.gunicorn.23.0.0(MIT License).txt +0 -0
- /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
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.httptools.0.6.4(MIT License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.idna.3.10(BSD License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.imagesize.1.4.1(MIT License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.itsdangerous.2.2.0(BSD License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.jaraco.classes.3.4.0(MIT License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.jaraco.context.6.0.1(MIT License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.jaraco.functools.4.1.0(MIT License).txt +0 -0
- /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
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.keyring.25.6.0(MIT License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.markdown-it-py.3.0.0(MIT License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.mdurl.0.1.2(MIT License).txt +0 -0
- /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
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.nh3.0.2.21(MIT).txt +0 -0
- /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
- /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
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.pillow.11.2.1(UNKNOWN).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.pip.24.0(MIT License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.plyer.2.1.0(MIT License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.prettytable.3.16.0(UNKNOWN).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.prompt_toolkit.3.0.51(BSD License).txt +0 -0
- /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
- /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
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.pycparser.2.22(BSD License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.pycryptodome.3.22.0(BSD License; Public Domain).txt +0 -0
- /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
- /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
- {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
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.python-dotenv.1.1.0(BSD License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.python-multipart.0.0.20(Apache Software License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.pywin32-ctypes.0.2.3(BSD-3-Clause).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.questionary.2.1.0(MIT License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.readme_renderer.44.0(Apache Software License).txt +0 -0
- /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
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.requests-toolbelt.1.0.0(Apache Software License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.requests.2.32.3(Apache Software License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.rfc3986.2.0.0(Apache Software License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.rich.14.0.0(MIT License).txt +0 -0
- {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
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.setuptools.65.5.0(MIT License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.six.1.17.0(MIT License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.sniffio.1.3.1(Apache Software License; MIT License).txt +0 -0
- /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
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.sphinx-intl.2.3.1(BSD License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.sphinx-rtd-theme.3.0.2(MIT License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.sphinx-sitemap.2.6.0(MIT License).txt +0 -0
- {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
- /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
- /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
- /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
- /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
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.sphinxcontrib-jsmath.1.0.1(BSD License).txt +0 -0
- /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
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.starlette.0.46.2(BSD License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.tabulate.0.9.0(MIT License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.tomli.2.2.1(MIT License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.twine.6.1.0(Apache Software License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.typing-inspection.0.4.0(MIT License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.tzdata.2025.2(Apache Software License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.urllib3.2.4.0(UNKNOWN).txt +0 -0
- /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
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.watchfiles.1.0.5(MIT License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.wcwidth.0.2.13(MIT License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.websockets.15.0.1(BSD License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.wheel.0.45.1(MIT License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.zipp.3.21.0(MIT License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.zope.event.5.0(Zope Public License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/licenses/LICENSE.zope.interface.7.2(Zope Public License).txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/apexcharts/apexcharts.css +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/apexcharts/apexcharts.min.js +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/bootstrap/bootstrap.bundle.min.5.3.0.js +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/bootstrap/bootstrap.min.5.3.0.css +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/audit.js +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/color_mode.css +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/favicon.ico +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/filer_modal.js +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/icon.png +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/list_cmd.js +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/list_pipe.js +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/main.js +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/open_capture.js +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/open_output_json.js +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/result.js +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/view_raw.js +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/cmdbox/view_result.js +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/encodingjs/LICENSE.txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/encodingjs/encoding.js +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/encodingjs/encoding.min.js +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/filer/main.css +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/filer/main.js +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/highlight/default.css +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/highlight/highlight.min.js +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/highlight/styles/tokyo-night-dark.min.css +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery/jquery.min.3.2.0.js +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-linedtextarea/README.md +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-linedtextarea/jquery-linedtextarea-license.txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-linedtextarea/jquery-linedtextarea.css +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-linedtextarea/jquery-linedtextarea.html +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-linedtextarea/jquery-linedtextarea.js +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-resizable/jquery-resizable.min.js +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-ui/AUTHORS.txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-ui/LICENSE.txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-ui/images/ui-icons_444444_256x240.png +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-ui/images/ui-icons_555555_256x240.png +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-ui/images/ui-icons_777620_256x240.png +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-ui/images/ui-icons_777777_256x240.png +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-ui/images/ui-icons_cc0000_256x240.png +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-ui/images/ui-icons_ffffff_256x240.png +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-ui/jquery-ui.min.css +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-ui/jquery-ui.min.js +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-ui/jquery-ui.structure.min.css +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-ui/jquery-ui.theme.min.css +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/jquery-ui/package.json +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/lightbox2/css/lightbox.min.css +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/lightbox2/images/close.png +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/lightbox2/images/loading.gif +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/lightbox2/images/next.png +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/lightbox2/images/prev.png +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/lightbox2/js/lightbox.min.js +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/split-pane/split-pane.css +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/split-pane/split-pane.js +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/tree-menu/css/tree-menu.css +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/tree-menu/image/file.png +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/tree-menu/image/folder-close.png +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/tree-menu/image/folder-open.png +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets/tree-menu/js/tree-menu.js +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/assets_license_list.txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/audit.html +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/filer.html +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/gui.html +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/result.html +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox/web/users.html +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox.egg-info/dependency_links.txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox.egg-info/entry_points.txt +0 -0
- {cmdbox-0.5.3.1 → cmdbox-0.6.0}/cmdbox.egg-info/top_level.txt +0 -0
- {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.
|
|
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
|
-
-
|
|
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
|
-
|
|
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
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
-
/
|
|
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.
|
|
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.
|
|
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
|
-
-
|
|
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
|
-
|
|
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
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
-
/
|
|
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.
|
|
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.
|
|
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']
|