praetorian-cli 2.6.1__tar.gz → 2.6.2__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.
Files changed (225) hide show
  1. {praetorian_cli-2.6.1/praetorian_cli.egg-info → praetorian_cli-2.6.2}/PKG-INFO +1 -1
  2. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/delete.py +4 -2
  3. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/get.py +5 -4
  4. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/list.py +4 -2
  5. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/chariot.py +3 -1
  6. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/files.py +29 -14
  7. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/search.py +10 -6
  8. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/model/globals.py +1 -0
  9. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2/praetorian_cli.egg-info}/PKG-INFO +1 -1
  10. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/setup.cfg +1 -1
  11. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/LICENSE +0 -0
  12. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/MANIFEST.in +0 -0
  13. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/README.md +0 -0
  14. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/__init__.py +0 -0
  15. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/__init__.py +0 -0
  16. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/access.py +0 -0
  17. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/add.py +0 -0
  18. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/aegis.py +0 -0
  19. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/agent.py +0 -0
  20. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/chariot.py +0 -0
  21. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/cli_decorators.py +0 -0
  22. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/configure.py +0 -0
  23. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/critfinder.py +0 -0
  24. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/engagement.py +0 -0
  25. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/enrich.py +0 -0
  26. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/export.py +0 -0
  27. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/find.py +0 -0
  28. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/hunt.py +0 -0
  29. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/imports.py +0 -0
  30. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/link.py +0 -0
  31. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/query.py +0 -0
  32. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/report.py +0 -0
  33. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/run.py +0 -0
  34. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/script.py +0 -0
  35. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/search.py +0 -0
  36. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/ssh_utils.py +0 -0
  37. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/test.py +0 -0
  38. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/unlink.py +0 -0
  39. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/update.py +0 -0
  40. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/utils.py +0 -0
  41. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/vm.py +0 -0
  42. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/handlers/vm_proxy.py +0 -0
  43. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/main.py +0 -0
  44. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/runners/__init__.py +0 -0
  45. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/runners/local.py +0 -0
  46. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/scripts/__init__.py +0 -0
  47. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/scripts/commands/__init__.py +0 -0
  48. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/scripts/commands/nmap-example.py +0 -0
  49. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/scripts/utils.py +0 -0
  50. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/__init__.py +0 -0
  51. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/__init__.py +0 -0
  52. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/account_discovery.py +0 -0
  53. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/accounts.py +0 -0
  54. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/ad.py +0 -0
  55. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/aegis.py +0 -0
  56. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/agents.py +0 -0
  57. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/assets.py +0 -0
  58. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/attributes.py +0 -0
  59. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/capabilities.py +0 -0
  60. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/configurations.py +0 -0
  61. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/conversations.py +0 -0
  62. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/credentials.py +0 -0
  63. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/definitions.py +0 -0
  64. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/endpoint_executions.py +0 -0
  65. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/engineer_vm.py +0 -0
  66. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/hunts.py +0 -0
  67. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/integrations.py +0 -0
  68. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/jobs.py +0 -0
  69. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/keys.py +0 -0
  70. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/preseeds.py +0 -0
  71. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/reports.py +0 -0
  72. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/risks.py +0 -0
  73. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/scanners.py +0 -0
  74. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/schedules.py +0 -0
  75. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/schema.py +0 -0
  76. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/seeds.py +0 -0
  77. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/settings.py +0 -0
  78. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/statistics.py +0 -0
  79. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/webhook.py +0 -0
  80. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/entities/webpage.py +0 -0
  81. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/exceptions.py +0 -0
  82. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/guard.py +0 -0
  83. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/keychain.py +0 -0
  84. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/mcp_server.py +0 -0
  85. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/model/__init__.py +0 -0
  86. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/model/aegis.py +0 -0
  87. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/model/query.py +0 -0
  88. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/model/utils.py +0 -0
  89. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/model/vm.py +0 -0
  90. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/__init__.py +0 -0
  91. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/pytest.ini +0 -0
  92. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_access_aws.py +0 -0
  93. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_access_github.py +0 -0
  94. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_account.py +0 -0
  95. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_add_file_cli.py +0 -0
  96. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_aegis_endpoint_live.py +0 -0
  97. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_aegis_management_users.py +0 -0
  98. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_aegis_network_policy.py +0 -0
  99. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_aegis_tunnel.py +0 -0
  100. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_aegis_v2_enrollment.py +0 -0
  101. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_agent.py +0 -0
  102. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_agent_interactions.py +0 -0
  103. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_asset.py +0 -0
  104. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_async_http.py +0 -0
  105. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_attribute.py +0 -0
  106. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_bulk.py +0 -0
  107. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_capabilities.py +0 -0
  108. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_cli_errors.py +0 -0
  109. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_configuration.py +0 -0
  110. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_conversation.py +0 -0
  111. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_conversation_approval_surfaces.py +0 -0
  112. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_conversation_interactions.py +0 -0
  113. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_credential_process.py +0 -0
  114. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_credentials.py +0 -0
  115. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_definition.py +0 -0
  116. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_endpoint_approvals.py +0 -0
  117. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_endpoint_execution_cli.py +0 -0
  118. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_endpoint_executions.py +0 -0
  119. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_endpoint_network_policy.py +0 -0
  120. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_endpoint_status.py +0 -0
  121. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_engineer_vm.py +0 -0
  122. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_entity_resolution_cli.py +0 -0
  123. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_entity_resolver.py +0 -0
  124. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_export_cli.py +0 -0
  125. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_extend.py +0 -0
  126. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_file.py +0 -0
  127. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_file_verified_download.py +0 -0
  128. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_hunt_all_surface_cli.py +0 -0
  129. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_hunt_chat.py +0 -0
  130. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_hunt_chat_live.py +0 -0
  131. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_hunt_data.py +0 -0
  132. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_hunt_internal_cli.py +0 -0
  133. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_hunt_launch.py +0 -0
  134. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_hunt_memory_browser.py +0 -0
  135. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_hunt_open.py +0 -0
  136. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_hunt_overview.py +0 -0
  137. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_hunt_scope_selector.py +0 -0
  138. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_hunt_workflows.py +0 -0
  139. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_hunts_internal.py +0 -0
  140. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_job.py +0 -0
  141. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_key.py +0 -0
  142. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_keychain.py +0 -0
  143. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_keychain_cache.py +0 -0
  144. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_local_runner.py +0 -0
  145. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_mcp.py +0 -0
  146. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_my_by_raw_query.py +0 -0
  147. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_preseed.py +0 -0
  148. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_report.py +0 -0
  149. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_risk.py +0 -0
  150. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_run_cli.py +0 -0
  151. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_sdk_exceptions.py +0 -0
  152. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_search.py +0 -0
  153. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_seed.py +0 -0
  154. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_setting.py +0 -0
  155. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_terminal.py +0 -0
  156. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_test_handler.py +0 -0
  157. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_test_target.py +0 -0
  158. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_update_check.py +0 -0
  159. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_webhook.py +0 -0
  160. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_webpage.py +0 -0
  161. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/test_z_cli.py +0 -0
  162. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/ui_mocks.py +0 -0
  163. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/sdk/test/utils.py +0 -0
  164. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/__init__.py +0 -0
  165. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/aegis/__init__.py +0 -0
  166. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/aegis/account_selector.py +0 -0
  167. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/aegis/commands/__init__.py +0 -0
  168. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/aegis/commands/cp.py +0 -0
  169. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/aegis/commands/enrollment.py +0 -0
  170. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/aegis/commands/help.py +0 -0
  171. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/aegis/commands/hunt.py +0 -0
  172. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/aegis/commands/info.py +0 -0
  173. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/aegis/commands/job.py +0 -0
  174. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/aegis/commands/job_helpers.py +0 -0
  175. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/aegis/commands/job_v2.py +0 -0
  176. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/aegis/commands/list.py +0 -0
  177. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/aegis/commands/network_policy.py +0 -0
  178. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/aegis/commands/proxy.py +0 -0
  179. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/aegis/commands/schedule.py +0 -0
  180. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/aegis/commands/schedule_helpers.py +0 -0
  181. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/aegis/commands/set.py +0 -0
  182. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/aegis/commands/ssh.py +0 -0
  183. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/aegis/commands/tunnel.py +0 -0
  184. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/aegis/commands/user.py +0 -0
  185. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/aegis/constants.py +0 -0
  186. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/aegis/menu.py +0 -0
  187. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/aegis/theme.py +0 -0
  188. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/aegis/utils.py +0 -0
  189. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/async_http.py +0 -0
  190. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/console/__init__.py +0 -0
  191. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/console/commands/__init__.py +0 -0
  192. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/console/commands/accounts.py +0 -0
  193. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/console/commands/context.py +0 -0
  194. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/console/commands/data.py +0 -0
  195. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/console/commands/marcus.py +0 -0
  196. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/console/commands/reporting.py +0 -0
  197. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/console/commands/search.py +0 -0
  198. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/console/commands/tools.py +0 -0
  199. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/console/console.py +0 -0
  200. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/console/context.py +0 -0
  201. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/console/renderer.py +0 -0
  202. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/conversation/__init__.py +0 -0
  203. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/conversation/approvals.py +0 -0
  204. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/conversation/endpoint_status.py +0 -0
  205. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/conversation/textual_chat.py +0 -0
  206. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/entity_resolver.py +0 -0
  207. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/entity_selector.py +0 -0
  208. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/hunt_chat.py +0 -0
  209. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/hunt_chat_live.py +0 -0
  210. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/hunt_data.py +0 -0
  211. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/hunt_defaults.py +0 -0
  212. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/hunt_format.py +0 -0
  213. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/hunt_launch.py +0 -0
  214. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/hunt_memory.py +0 -0
  215. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/hunt_open.py +0 -0
  216. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/hunt_overview.py +0 -0
  217. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/hunt_workflows.py +0 -0
  218. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/terminal.py +0 -0
  219. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli/ui/textual_refresh.py +0 -0
  220. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli.egg-info/SOURCES.txt +0 -0
  221. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli.egg-info/dependency_links.txt +0 -0
  222. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli.egg-info/entry_points.txt +0 -0
  223. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli.egg-info/requires.txt +0 -0
  224. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/praetorian_cli.egg-info/top_level.txt +0 -0
  225. {praetorian_cli-2.6.1 → praetorian_cli-2.6.2}/pyproject.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: praetorian-cli
3
- Version: 2.6.1
3
+ Version: 2.6.2
4
4
  Summary: For interacting with the Guard API
5
5
  Home-page: https://github.com/praetorian-inc/praetorian-cli
6
6
  Author: Praetorian
@@ -103,8 +103,9 @@ def seed(chariot, key):
103
103
 
104
104
  @delete.command()
105
105
  @click.argument('filepath', required=True)
106
+ @click.option('--praetorian', is_flag=True, default=False, help='Delete from the praetorian partition')
106
107
  @cli_handler
107
- def file(chariot, filepath):
108
+ def file(chariot, filepath, praetorian):
108
109
  """ Delete a file
109
110
 
110
111
  \b
@@ -114,8 +115,9 @@ def file(chariot, filepath):
114
115
  \b
115
116
  Example usage:
116
117
  - guard delete file "home/report-dec-2024.pdf"
118
+ - guard delete file "home/internal/repo.zip" --praetorian
117
119
  """
118
- chariot.files.delete(filepath)
120
+ chariot.files.delete(filepath, praetorian=praetorian)
119
121
 
120
122
 
121
123
  @delete.command()
@@ -131,7 +131,8 @@ def job(chariot, key):
131
131
  @cli_handler
132
132
  @click.argument('name')
133
133
  @click.option('-p', '--path', default=os.getcwd(), help='Download path. Default: save to current directory')
134
- def file(chariot, name, path):
134
+ @click.option('--praetorian', is_flag=True, default=False, help='Download from the praetorian partition')
135
+ def file(chariot, name, path, praetorian):
135
136
  """ Download a file using key or name
136
137
 
137
138
  \b
@@ -143,11 +144,11 @@ def file(chariot, name, path):
143
144
  - guard get file "#file#proofs/example.azurewebsites.net/jira-unauthenticated-user-picker"
144
145
  - guard get file "proofs/example.azurewebsites.net/jira-unauthenticated-user-picker"
145
146
  - guard get file "proofs/example.azurewebsites.net/jira-unauthenticated-user-picker" --path ~/Downloads
147
+ - guard get file "home/internal/repo.zip" --praetorian
146
148
  """
147
149
  if name.startswith('#'):
148
- downloaded_filepath = chariot.files.save(name.split('#')[-1], path)
149
- else:
150
- downloaded_filepath = chariot.files.save(name, path)
150
+ name = name.split('#')[-1]
151
+ downloaded_filepath = chariot.files.save(name, path, praetorian=praetorian)
151
152
  click.echo(f'Saved file at {downloaded_filepath}')
152
153
 
153
154
 
@@ -141,7 +141,8 @@ def jobs(chariot, capability, status, target, summary, filter, details, offset,
141
141
 
142
142
  @list.command()
143
143
  @list_params('file path')
144
- def files(chariot, filter, details, offset, page):
144
+ @click.option('--praetorian', is_flag=True, default=False, help='List the praetorian partition')
145
+ def files(chariot, praetorian, filter, details, offset, page):
145
146
  """ List files
146
147
 
147
148
  Retrieve and display a list of files in the Guard file system.
@@ -152,8 +153,9 @@ def files(chariot, filter, details, offset, page):
152
153
  - guard list files --filter "home/reports/cloud-assessment-2024-"
153
154
  - guard list files --details
154
155
  - guard list files --page all
156
+ - guard list files --praetorian --filter "home/internal/"
155
157
  """
156
- render_list_results(chariot.files.list(filter, offset, pagination_size(page)), details)
158
+ render_list_results(chariot.files.list(filter, offset, pagination_size(page), praetorian=praetorian), details)
157
159
 
158
160
 
159
161
  @list.command()
@@ -250,7 +250,7 @@ class Chariot:
250
250
  process_failure(resp)
251
251
  return resp
252
252
 
253
- def download(self, name: str, global_=False) -> bytes:
253
+ def download(self, name: str, global_=False, praetorian=False) -> bytes:
254
254
  params = dict(name=name)
255
255
  # Encrypted files have _encrypted/ prefix in the path. Encrypted files do not use presigned URLs.
256
256
  # Instead, they use the /encrypted-file endpoint that directly gets and puts content.
@@ -263,6 +263,8 @@ class Chariot:
263
263
  # Regular files, use presigned URLs
264
264
  if global_:
265
265
  params |= GLOBAL_FLAG
266
+ if praetorian:
267
+ params['praetorian'] = 'true'
266
268
 
267
269
  resp = self.chariot_request('GET', self.url('/file'), params=params)
268
270
  process_failure(resp)
@@ -29,7 +29,7 @@ class Files:
29
29
  """
30
30
  return self.api.upload(local_filepath, chariot_filepath, praetorian=praetorian)
31
31
 
32
- def save(self, chariot_filepath, download_directory=os.getcwd()):
32
+ def save(self, chariot_filepath, download_directory=os.getcwd(), praetorian=False):
33
33
  """
34
34
  Download a file from Chariot storage to the local filesystem.
35
35
 
@@ -37,11 +37,13 @@ class Files:
37
37
  :type chariot_filepath: str
38
38
  :param download_directory: Local directory to save the file (defaults to current working directory)
39
39
  :type download_directory: str
40
+ :param praetorian: If True, download from the praetorian partition
41
+ :type praetorian: bool
40
42
  :return: The local path where the file was saved
41
43
  :rtype: str
42
44
  :raises Exception: If the file does not exist in Chariot storage
43
45
  """
44
- content = self.get(chariot_filepath)
46
+ content = self.get(chariot_filepath, praetorian=praetorian)
45
47
 
46
48
  local_filename = self.sanitize_filename(chariot_filepath)
47
49
  directory = os.path.expanduser(download_directory)
@@ -125,7 +127,7 @@ class Files:
125
127
  raise
126
128
  return destination
127
129
 
128
- def get(self, chariot_filepath, _global=False) -> bytes:
130
+ def get(self, chariot_filepath, _global=False, praetorian=False) -> bytes:
129
131
  """
130
132
  Download a file from Chariot storage into memory as bytes.
131
133
 
@@ -133,15 +135,17 @@ class Files:
133
135
  :type chariot_filepath: str
134
136
  :param _global: If True, fetch from global storage instead of user-specific
135
137
  :type _global: bool
138
+ :param praetorian: If True, fetch from the praetorian partition
139
+ :type praetorian: bool
136
140
  :return: The file content as bytes
137
141
  :rtype: bytes
138
142
  :raises Exception: If the file does not exist in Chariot storage
139
143
  """
140
144
  if not _global:
141
- self.raise_if_missing(chariot_filepath)
142
- return self.api.download(chariot_filepath, global_=_global)
145
+ self.raise_if_missing(chariot_filepath, praetorian=praetorian)
146
+ return self.api.download(chariot_filepath, global_=_global, praetorian=praetorian)
143
147
 
144
- def get_utf8(self, chariot_filepath, _global=False) -> str:
148
+ def get_utf8(self, chariot_filepath, _global=False, praetorian=False) -> str:
145
149
  """
146
150
  Download a file from Chariot storage into memory as a UTF-8 string.
147
151
 
@@ -149,13 +153,15 @@ class Files:
149
153
  :type chariot_filepath: str
150
154
  :param _global: If True, fetch from global storage instead of user-specific
151
155
  :type _global: bool
156
+ :param praetorian: If True, fetch from the praetorian partition
157
+ :type praetorian: bool
152
158
  :return: The file content as a UTF-8 decoded string
153
159
  :rtype: str
154
160
  :raises Exception: If the file does not exist in Chariot storage
155
161
  """
156
- return self.get(chariot_filepath, _global=_global).decode('utf-8')
162
+ return self.get(chariot_filepath, _global=_global, praetorian=praetorian).decode('utf-8')
157
163
 
158
- def list(self, prefix_filter='', offset=None, pages=100000) -> tuple:
164
+ def list(self, prefix_filter='', offset=None, pages=100000, praetorian=False) -> tuple:
159
165
  """
160
166
  List files in Chariot storage, optionally filtered by filepath prefix.
161
167
 
@@ -168,23 +174,30 @@ class Files:
168
174
  :type offset: str or None
169
175
  :param pages: The number of pages of results to retrieve. <mcp>Start with one page of results unless specifically requested.</mcp>
170
176
  :type pages: int
177
+ :param praetorian: If True, list the praetorian partition
178
+ :type praetorian: bool
171
179
  :return: A tuple containing (list of matching file entities, next page offset)
172
180
  :rtype: tuple
173
181
  """
174
- return self.api.search.by_key_prefix(f'#file#{prefix_filter}', offset, pages)
182
+ return self.api.search.by_key_prefix(f'#file#{prefix_filter}', offset, pages, praetorian=praetorian)
175
183
 
176
- def delete(self, chariot_filepath):
184
+ def delete(self, chariot_filepath, praetorian=False):
177
185
  """
178
186
  Delete a file from Chariot storage.
179
187
 
180
188
  :param chariot_filepath: Path of the file in Chariot storage to delete
181
189
  :type chariot_filepath: str
190
+ :param praetorian: If True, delete from the praetorian partition
191
+ :type praetorian: bool
182
192
  :return: The deleted file entity
183
193
  :rtype: dict
184
194
  :raises Exception: If the file does not exist in Chariot storage
185
195
  """
186
- self.raise_if_missing(chariot_filepath)
187
- return self.api.delete('file', params=dict(name=chariot_filepath), body={})
196
+ self.raise_if_missing(chariot_filepath, praetorian=praetorian)
197
+ params = dict(name=chariot_filepath)
198
+ if praetorian:
199
+ params['praetorian'] = 'true'
200
+ return self.api.delete('file', params=params, body={})
188
201
 
189
202
  def sanitize_filename(self, filename: str) -> str:
190
203
  """
@@ -203,7 +216,7 @@ class Files:
203
216
  filename = filename.replace(char, '_')
204
217
  return filename
205
218
 
206
- def raise_if_missing(self, chariot_filepath):
219
+ def raise_if_missing(self, chariot_filepath, praetorian=False):
207
220
  """
208
221
  Check if a file exists in Chariot storage and raise an exception if not found.
209
222
 
@@ -212,10 +225,12 @@ class Files:
212
225
 
213
226
  :param chariot_filepath: Path of the file in Chariot storage to check
214
227
  :type chariot_filepath: str
228
+ :param praetorian: If True, look in the praetorian partition
229
+ :type praetorian: bool
215
230
  :return: None
216
231
  :rtype: None
217
232
  :raises Exception: If the file does not exist in Chariot storage with message 'File {chariot_filepath} not found.'
218
233
  """
219
- file = self.api.search.by_exact_key(f'#file#{chariot_filepath}')
234
+ file = self.api.search.by_exact_key(f'#file#{chariot_filepath}', praetorian=praetorian)
220
235
  if not file:
221
236
  raise Exception(f'File {chariot_filepath} not found.')
@@ -3,7 +3,7 @@ import time
3
3
 
4
4
  from praetorian_cli.sdk.model.query import (Filter, Query, Node, Relationship, KIND_TO_LABEL, node_of_key,
5
5
  ttl_blockers_query)
6
- from praetorian_cli.sdk.model.globals import ALL_TENANTS_FLAG, EXACT_FLAG, DESCENDING_FLAG, GLOBAL_FLAG, USER_FLAG, Kind
6
+ from praetorian_cli.sdk.model.globals import ALL_TENANTS_FLAG, EXACT_FLAG, DESCENDING_FLAG, GLOBAL_FLAG, PRAETORIAN_FLAG, USER_FLAG, Kind
7
7
 
8
8
  # Common asset/risk/web edges followed when the caller doesn't name any. The
9
9
  # backend has no wildcard, so we OR a small core set instead of every label
@@ -35,7 +35,7 @@ class Search:
35
35
  """
36
36
  return self.api.count(dict(key=search_term))
37
37
 
38
- def by_key_prefix(self, key_prefix, offset=None, pages=100000, user=False) -> tuple:
38
+ def by_key_prefix(self, key_prefix, offset=None, pages=100000, user=False, praetorian=False) -> tuple:
39
39
  """
40
40
  Search for entities by key prefix. <mcp>If the response is too large, make your query more specific.<mcp>
41
41
 
@@ -48,9 +48,9 @@ class Search:
48
48
  :return: A tuple containing (list of matching entities, next page offset)
49
49
  :rtype: tuple
50
50
  """
51
- return self.by_term(key_prefix, None, offset, pages, user=user)
51
+ return self.by_term(key_prefix, None, offset, pages, user=user, praetorian=praetorian)
52
52
 
53
- def by_exact_key(self, key, get_attributes=False) -> {}:
53
+ def by_exact_key(self, key, get_attributes=False, praetorian=False) -> {}:
54
54
  """
55
55
  Get an entity by its exact key.
56
56
 
@@ -58,10 +58,12 @@ class Search:
58
58
  :type key: str
59
59
  :param get_attributes: Whether to also retrieve associated attributes
60
60
  :type get_attributes: bool
61
+ :param praetorian: Whether to search the praetorian partition
62
+ :type praetorian: bool
61
63
  :return: The matching entity or None if not found
62
64
  :rtype: dict or None
63
65
  """
64
- hits, _ = self.by_term(key, exact=True)
66
+ hits, _ = self.by_term(key, exact=True, praetorian=praetorian)
65
67
  hit = hits[0] if hits else None
66
68
  if get_attributes and hit:
67
69
  attributes, _ = self.by_source(key, Kind.ATTRIBUTE.value)
@@ -137,7 +139,7 @@ class Search:
137
139
  return self.by_term(f'dns:{dns_prefix}', kind, offset, pages)
138
140
 
139
141
  def by_term(self, search_term, kind=None, offset=None, pages=100000, exact=False, descending=False,
140
- global_=False, user=False, all_tenants=False) -> tuple:
142
+ global_=False, user=False, all_tenants=False, praetorian=False) -> tuple:
141
143
  """
142
144
  Search for a given kind by term.
143
145
 
@@ -169,6 +171,8 @@ class Search:
169
171
  params |= DESCENDING_FLAG
170
172
  if global_:
171
173
  params |= GLOBAL_FLAG
174
+ if praetorian:
175
+ params |= PRAETORIAN_FLAG
172
176
  if user:
173
177
  params |= USER_FLAG
174
178
  if all_tenants:
@@ -148,6 +148,7 @@ class Kind(Enum):
148
148
  EXACT_FLAG = {'exact': 'true'}
149
149
  DESCENDING_FLAG = {'desc': 'true'}
150
150
  GLOBAL_FLAG = {'global': 'true'}
151
+ PRAETORIAN_FLAG = {'praetorian': 'true'}
151
152
  USER_FLAG = {'user': 'true'}
152
153
  ALL_TENANTS_FLAG = {'allTenants': 'true'}
153
154
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: praetorian-cli
3
- Version: 2.6.1
3
+ Version: 2.6.2
4
4
  Summary: For interacting with the Guard API
5
5
  Home-page: https://github.com/praetorian-inc/praetorian-cli
6
6
  Author: Praetorian
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = praetorian-cli
3
- version = 2.6.1
3
+ version = 2.6.2
4
4
  author = Praetorian
5
5
  author_email = support@praetorian.com
6
6
  description = For interacting with the Guard API
File without changes
File without changes