praetorian-cli 2.4.7__tar.gz → 2.4.8__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.
- {praetorian_cli-2.4.7/praetorian_cli.egg-info → praetorian_cli-2.4.8}/PKG-INFO +1 -1
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/handlers/add.py +28 -6
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/chariot.py +9 -8
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/files.py +4 -2
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8/praetorian_cli.egg-info}/PKG-INFO +1 -1
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/setup.cfg +1 -1
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/LICENSE +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/MANIFEST.in +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/README.md +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/__init__.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/handlers/__init__.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/handlers/access.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/handlers/aegis.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/handlers/agent.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/handlers/chariot.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/handlers/cli_decorators.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/handlers/configure.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/handlers/critfinder.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/handlers/delete.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/handlers/engagement.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/handlers/enrich.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/handlers/export.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/handlers/find.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/handlers/get.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/handlers/imports.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/handlers/link.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/handlers/list.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/handlers/query.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/handlers/report.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/handlers/run.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/handlers/script.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/handlers/search.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/handlers/ssh_utils.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/handlers/test.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/handlers/unlink.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/handlers/update.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/handlers/utils.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/main.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/runners/__init__.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/runners/local.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/scripts/__init__.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/scripts/commands/__init__.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/scripts/commands/nmap-example.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/scripts/utils.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/__init__.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/__init__.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/account_discovery.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/accounts.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/ad.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/aegis.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/agents.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/assets.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/attributes.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/capabilities.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/configurations.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/conversations.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/credentials.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/definitions.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/integrations.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/jobs.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/keys.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/preseeds.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/reports.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/risks.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/scanners.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/schedules.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/schema.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/search.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/seeds.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/settings.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/statistics.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/webhook.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/webpage.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/guard.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/keychain.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/mcp_server.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/model/__init__.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/model/aegis.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/model/globals.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/model/query.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/model/utils.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/__init__.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/pytest.ini +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_access_aws.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_account.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_agent.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_asset.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_attribute.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_bulk.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_capabilities.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_configuration.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_conversation.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_credential_process.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_credentials.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_definition.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_export_cli.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_extend.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_file.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_job.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_key.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_local_runner.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_mcp.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_my_by_raw_query.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_preseed.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_report.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_risk.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_run_cli.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_search.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_seed.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_setting.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_webhook.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_webpage.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_z_cli.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/ui_mocks.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/utils.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/__init__.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/aegis/__init__.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/aegis/account_selector.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/aegis/commands/__init__.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/aegis/commands/cp.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/aegis/commands/help.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/aegis/commands/info.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/aegis/commands/job.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/aegis/commands/job_helpers.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/aegis/commands/list.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/aegis/commands/proxy.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/aegis/commands/schedule.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/aegis/commands/schedule_helpers.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/aegis/commands/set.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/aegis/commands/ssh.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/aegis/constants.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/aegis/menu.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/aegis/theme.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/aegis/utils.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/console/__init__.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/console/commands/__init__.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/console/commands/accounts.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/console/commands/context.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/console/commands/data.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/console/commands/marcus.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/console/commands/reporting.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/console/commands/search.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/console/commands/tools.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/console/console.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/console/context.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/console/renderer.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/conversation/__init__.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/conversation/textual_chat.py +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli.egg-info/SOURCES.txt +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli.egg-info/dependency_links.txt +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli.egg-info/entry_points.txt +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli.egg-info/requires.txt +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli.egg-info/top_level.txt +0 -0
- {praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/pyproject.toml +0 -0
|
@@ -61,16 +61,16 @@ def asset(sdk, identifier, group, asset_type, status, surface, resource_type):
|
|
|
61
61
|
@add.command()
|
|
62
62
|
@cli_handler
|
|
63
63
|
@click.argument('path')
|
|
64
|
-
@click.option('-n', '--name', help='
|
|
65
|
-
|
|
64
|
+
@click.option('-n', '--name', help='Destination path in Guard storage. Without this flag, the file is placed automatically')
|
|
65
|
+
@click.option('--public', 'is_public', is_flag=True, default=False, help='Share file with the customer (Praetorian users only)')
|
|
66
|
+
def file(sdk, path, name, is_public):
|
|
66
67
|
""" Upload a file
|
|
67
68
|
|
|
68
69
|
This commands takes the path to a local file and uploads it to the
|
|
69
70
|
Guard file system. The Guard file system is where the platform
|
|
70
71
|
stores proofs of exploit, risk definitions, and other supporting data.
|
|
71
72
|
|
|
72
|
-
User files
|
|
73
|
-
at https://guard.praetorian.com/app/files
|
|
73
|
+
User files appear in the app at https://guard.praetorian.com/app/files
|
|
74
74
|
|
|
75
75
|
\b
|
|
76
76
|
Arguments:
|
|
@@ -79,10 +79,32 @@ def file(sdk, path, name):
|
|
|
79
79
|
\b
|
|
80
80
|
Example usages:
|
|
81
81
|
- guard add file ./file.txt
|
|
82
|
-
- guard add file ./file.txt --
|
|
82
|
+
- guard add file ./file.txt --public
|
|
83
|
+
- guard add file ./file.txt --name "custom/path/file.txt"
|
|
83
84
|
"""
|
|
84
85
|
try:
|
|
85
|
-
|
|
86
|
+
expanded = os.path.expanduser(path)
|
|
87
|
+
filename = os.path.basename(expanded)
|
|
88
|
+
praetorian = False
|
|
89
|
+
|
|
90
|
+
if name:
|
|
91
|
+
# if name is provided, use it as the destination path regardless of whether
|
|
92
|
+
# the path follows the Guard file system filepath conventions. If it does not
|
|
93
|
+
# follow the conventions, it will still be uploaded but it will not be
|
|
94
|
+
# displayed in the Guard app UI.
|
|
95
|
+
dest_path = name
|
|
96
|
+
elif sdk.is_praetorian_user():
|
|
97
|
+
if is_public:
|
|
98
|
+
dest_path = f'home/shared-with/{filename}'
|
|
99
|
+
else:
|
|
100
|
+
dest_path = f'home/internal/{filename}'
|
|
101
|
+
praetorian = True
|
|
102
|
+
else:
|
|
103
|
+
dest_path = f'home/shared-by/{filename}'
|
|
104
|
+
|
|
105
|
+
sdk.files.add(expanded, dest_path, praetorian=praetorian)
|
|
106
|
+
size = os.path.getsize(expanded)
|
|
107
|
+
click.echo(f'Uploaded {expanded} -> {dest_path} ({size} bytes)')
|
|
86
108
|
except Exception as e:
|
|
87
109
|
error(f'Unable to upload file {path}. Error: {e}')
|
|
88
110
|
|
|
@@ -222,21 +222,22 @@ class Chariot:
|
|
|
222
222
|
process_failure(resp)
|
|
223
223
|
return resp.json()
|
|
224
224
|
|
|
225
|
-
def upload(self, local_filepath: str, chariot_filepath: str = None) -> dict:
|
|
225
|
+
def upload(self, local_filepath: str, chariot_filepath: str = None, praetorian: bool = False) -> dict:
|
|
226
226
|
if not chariot_filepath:
|
|
227
227
|
chariot_filepath = local_filepath
|
|
228
228
|
with open(local_filepath, 'rb') as content:
|
|
229
|
-
resp = self._upload(chariot_filepath, content)
|
|
229
|
+
resp = self._upload(chariot_filepath, content, praetorian=praetorian)
|
|
230
230
|
return resp
|
|
231
231
|
|
|
232
|
-
def _upload(self, chariot_filepath: str, content: str) -> dict:
|
|
233
|
-
# Encrypted files have _encrypted/ prefix in the path. Encrypted files do not use presigned URLs.
|
|
234
|
-
# Instead, they use the /encrypted-file endpoint that directly gets and puts content.
|
|
232
|
+
def _upload(self, chariot_filepath: str, content: str, praetorian: bool = False) -> dict:
|
|
235
233
|
if is_encrypted_partition(chariot_filepath):
|
|
236
234
|
return self.chariot_request('PUT', self.url('/encrypted-file'), params=dict(name=chariot_filepath), data=content)
|
|
237
235
|
|
|
238
|
-
|
|
239
|
-
|
|
236
|
+
params = dict(name=chariot_filepath)
|
|
237
|
+
if praetorian:
|
|
238
|
+
params['praetorian'] = 'true'
|
|
239
|
+
|
|
240
|
+
presigned_url = self.chariot_request('PUT', self.url('/file'), params=params)
|
|
240
241
|
process_failure(presigned_url)
|
|
241
242
|
resp = requests.put(presigned_url.json()['url'], data=content, timeout=DEFAULT_HTTP_TIMEOUT)
|
|
242
243
|
process_failure(resp)
|
|
@@ -288,7 +289,7 @@ class Chariot:
|
|
|
288
289
|
return self.keychain.base_url() + path
|
|
289
290
|
|
|
290
291
|
def is_praetorian_user(self) -> bool:
|
|
291
|
-
return self.keychain.username().endswith('@praetorian.com')
|
|
292
|
+
return (self.keychain.username() or '').endswith('@praetorian.com')
|
|
292
293
|
|
|
293
294
|
def start_mcp_server(self, allowable_tools=None):
|
|
294
295
|
""" Start MCP server exposing SDK methods as tools
|
|
@@ -8,7 +8,7 @@ class Files:
|
|
|
8
8
|
def __init__(self, api):
|
|
9
9
|
self.api = api
|
|
10
10
|
|
|
11
|
-
def add(self, local_filepath, chariot_filepath=None):
|
|
11
|
+
def add(self, local_filepath, chariot_filepath=None, praetorian=False):
|
|
12
12
|
"""
|
|
13
13
|
Upload a file to Chariot storage.
|
|
14
14
|
|
|
@@ -16,10 +16,12 @@ class Files:
|
|
|
16
16
|
:type local_filepath: str
|
|
17
17
|
:param chariot_filepath: Optional destination path in Chariot storage. If None, uses the local filename
|
|
18
18
|
:type chariot_filepath: str or None
|
|
19
|
+
:param praetorian: If True, upload to the scoped partition (requires praetorian user)
|
|
20
|
+
:type praetorian: bool
|
|
19
21
|
:return: The uploaded file entity
|
|
20
22
|
:rtype: dict
|
|
21
23
|
"""
|
|
22
|
-
return self.api.upload(local_filepath, chariot_filepath)
|
|
24
|
+
return self.api.upload(local_filepath, chariot_filepath, praetorian=praetorian)
|
|
23
25
|
|
|
24
26
|
def save(self, chariot_filepath, download_directory=os.getcwd()):
|
|
25
27
|
"""
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/scripts/commands/nmap-example.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/entities/account_discovery.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_credential_process.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/sdk/test/test_my_by_raw_query.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/aegis/commands/job_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/aegis/commands/schedule_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/console/commands/__init__.py
RENAMED
|
File without changes
|
{praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/console/commands/accounts.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/console/commands/reporting.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{praetorian_cli-2.4.7 → praetorian_cli-2.4.8}/praetorian_cli/ui/conversation/textual_chat.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|