apisec-code-bolt 0.1.3__tar.gz → 0.1.4__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 (236) hide show
  1. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/PKG-INFO +1 -1
  2. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/pyproject.toml +1 -1
  3. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/cli/main.py +16 -1
  4. apisec_code_bolt-0.1.4/tests/unit/test_cli_console_url.py +27 -0
  5. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/.gitignore +0 -0
  6. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/README.md +0 -0
  7. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/__init__.py +0 -0
  8. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/__main__.py +0 -0
  9. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/analysis/__init__.py +0 -0
  10. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/analysis/analyzer.py +0 -0
  11. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/analysis/binding_tracker.py +0 -0
  12. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/analysis/call_graph.py +0 -0
  13. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/analysis/call_graph_types.py +0 -0
  14. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/analysis/call_resolver.py +0 -0
  15. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/analysis/capability_tagger.py +0 -0
  16. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/analysis/config_scanner.py +0 -0
  17. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/analysis/data_flow.py +0 -0
  18. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/analysis/dependency_extractor.py +0 -0
  19. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/analysis/flow_analysis.py +0 -0
  20. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/analysis/hof_catalog.py +0 -0
  21. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/analysis/integration_detector.py +0 -0
  22. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/analysis/literal_scanner.py +0 -0
  23. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/analysis/path_normalizer.py +0 -0
  24. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/analysis/read_site_detector.py +0 -0
  25. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/analysis/request_patterns.py +0 -0
  26. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/analysis/sensitivity_classifier.py +0 -0
  27. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/analysis/sink_evidence.py +0 -0
  28. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/analysis/url_prefix_resolver.py +0 -0
  29. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/cli/__init__.py +0 -0
  30. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/cli/exit_codes.py +0 -0
  31. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/cloud/__init__.py +0 -0
  32. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/cloud/apisec_client.py +0 -0
  33. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/cloud/client.py +0 -0
  34. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/core/__init__.py +0 -0
  35. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/core/config.py +0 -0
  36. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/core/credentials.py +0 -0
  37. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/core/discovery.py +0 -0
  38. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/core/log_format.py +0 -0
  39. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/core/manifest.py +0 -0
  40. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/core/repo.py +0 -0
  41. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/core/state.py +0 -0
  42. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/core/telemetry.py +0 -0
  43. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/core/types.py +0 -0
  44. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/fingerprinting/__init__.py +0 -0
  45. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/__init__.py +0 -0
  46. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/_graphql_common.py +0 -0
  47. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/_jwt_common.py +0 -0
  48. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/auth_helpers.py +0 -0
  49. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/base.py +0 -0
  50. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/dotnet/__init__.py +0 -0
  51. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/dotnet/_path_helpers.py +0 -0
  52. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/dotnet/aspnet_plugin.py +0 -0
  53. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/dotnet/grpc_plugin.py +0 -0
  54. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/dotnet/jwt_config_extractor.py +0 -0
  55. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/dotnet/legacy_aspnet_plugin.py +0 -0
  56. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/dotnet/refit_plugin.py +0 -0
  57. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/dotnet/wcf_plugin.py +0 -0
  58. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/java/__init__.py +0 -0
  59. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/java/_annotations.py +0 -0
  60. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/java/_constraints.py +0 -0
  61. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/java/graphql_plugin.py +0 -0
  62. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/java/jaxrs_plugin.py +0 -0
  63. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/java/jwt_config_extractor.py +0 -0
  64. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/java/micronaut_plugin.py +0 -0
  65. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/java/spring_plugin.py +0 -0
  66. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/js/__init__.py +0 -0
  67. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/js/_route_helpers.py +0 -0
  68. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/js/express_plugin.py +0 -0
  69. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/js/fastify_plugin.py +0 -0
  70. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/js/graphql_plugin.py +0 -0
  71. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/js/nestjs_plugin.py +0 -0
  72. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/python/__init__.py +0 -0
  73. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/python/celery_plugin.py +0 -0
  74. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/python/click_plugin.py +0 -0
  75. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/python/django_plugin.py +0 -0
  76. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/python/fastapi/__init__.py +0 -0
  77. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/python/fastapi/plugin.py +0 -0
  78. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/python/flask_plugin.py +0 -0
  79. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/python/graphql_plugin.py +0 -0
  80. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/python/prefect_plugin.py +0 -0
  81. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/python/webhook_plugin.py +0 -0
  82. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/ruby/__init__.py +0 -0
  83. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/ruby/_ts_helpers.py +0 -0
  84. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/ruby/grape_plugin.py +0 -0
  85. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/ruby/graphql_plugin.py +0 -0
  86. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/ruby/rails_plugin.py +0 -0
  87. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/ruby/sinatra_plugin.py +0 -0
  88. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/frameworks/ruby/taint_scanner.py +0 -0
  89. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/__init__.py +0 -0
  90. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/base.py +0 -0
  91. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/csharp/__init__.py +0 -0
  92. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/csharp/language_services.py +0 -0
  93. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/csharp/literals.py +0 -0
  94. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/csharp/parser.py +0 -0
  95. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/csharp/type_resolver.py +0 -0
  96. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/js/__init__.py +0 -0
  97. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/js/language_services.py +0 -0
  98. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/js/parser.py +0 -0
  99. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/jvm/__init__.py +0 -0
  100. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/jvm/language_services.py +0 -0
  101. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/jvm/parser.py +0 -0
  102. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/jvm/type_resolver.py +0 -0
  103. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/python/__init__.py +0 -0
  104. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/python/cbv_extractor.py +0 -0
  105. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/python/constant_resolver.py +0 -0
  106. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/python/cross_file_resolver.py +0 -0
  107. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/python/dynamic_route_detector.py +0 -0
  108. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/python/expression_utils.py +0 -0
  109. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/python/extraction_types.py +0 -0
  110. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/python/language_services.py +0 -0
  111. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/python/parameter_analyzer.py +0 -0
  112. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/python/parser.py +0 -0
  113. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/python/path_resolver.py +0 -0
  114. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/python/router_registry.py +0 -0
  115. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/python/type_resolver.py +0 -0
  116. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/python/visitors.py +0 -0
  117. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/ruby/__init__.py +0 -0
  118. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/ruby/language_services.py +0 -0
  119. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/ruby/parser.py +0 -0
  120. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/parsing/services.py +0 -0
  121. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/query/__init__.py +0 -0
  122. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/query/ast_cache.py +0 -0
  123. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/query/executor.py +0 -0
  124. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/query/handlers.py +0 -0
  125. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/src/apisec_code_bolt/query/manifest_context.py +0 -0
  126. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/conftest.py +0 -0
  127. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/dep_files/Cargo.toml +0 -0
  128. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/dep_files/Gemfile.lock +0 -0
  129. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/dep_files/Pipfile +0 -0
  130. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/dep_files/build.gradle +0 -0
  131. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/dep_files/build.gradle.kts +0 -0
  132. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/dep_files/go.mod +0 -0
  133. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/dep_files/package.json +0 -0
  134. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/dep_files/pom.xml +0 -0
  135. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/dep_files/pyproject_pep621.toml +0 -0
  136. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/dep_files/pyproject_poetry.toml +0 -0
  137. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/dep_files/requirements-dev.txt +0 -0
  138. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/dep_files/requirements.txt +0 -0
  139. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/dep_files/setup.cfg +0 -0
  140. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/dep_files/setup.py +0 -0
  141. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/sample_django/urls.py +0 -0
  142. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/sample_django/views.py +0 -0
  143. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/sample_express/app.ts +0 -0
  144. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/sample_express/middleware/authenticate.ts +0 -0
  145. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/sample_express/routes/auth.ts +0 -0
  146. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/sample_express/routes/users.ts +0 -0
  147. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/sample_fastapi/main.py +0 -0
  148. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/sample_fastapi/routes/__init__.py +0 -0
  149. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/sample_fastapi/routes/users.py +0 -0
  150. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/sample_fastapi/services/__init__.py +0 -0
  151. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/sample_fastapi/services/user_service.py +0 -0
  152. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/sample_flask/app.py +0 -0
  153. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/sample_flask_pydantic/app.py +0 -0
  154. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/sample_grape/api.rb +0 -0
  155. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/sample_nestjs/auth.controller.ts +0 -0
  156. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/sample_nestjs/roles.decorator.ts +0 -0
  157. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/sample_nestjs/roles.guard.ts +0 -0
  158. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/sample_nestjs/users.controller.ts +0 -0
  159. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/sample_sinatra/app.rb +0 -0
  160. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/sample_spring_boot/src/main/java/com/example/demo/config/SecurityConfig.java +0 -0
  161. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/sample_spring_boot/src/main/java/com/example/demo/controller/UserController.java +0 -0
  162. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/sample_spring_boot/src/main/java/com/example/demo/model/User.java +0 -0
  163. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/sample_spring_boot/src/main/java/com/example/demo/service/UserService.java +0 -0
  164. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/sample_spring_boot/src/main/resources/application.properties +0 -0
  165. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/vuln_spring_boot/VULNERABILITIES.md +0 -0
  166. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/vuln_spring_boot/src/main/java/com/example/vulnapi/config/SecurityConfig.java +0 -0
  167. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/vuln_spring_boot/src/main/java/com/example/vulnapi/controller/AdminController.java +0 -0
  168. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/vuln_spring_boot/src/main/java/com/example/vulnapi/controller/OrderController.java +0 -0
  169. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/vuln_spring_boot/src/main/java/com/example/vulnapi/controller/UserController.java +0 -0
  170. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/vuln_spring_boot/src/main/java/com/example/vulnapi/model/Order.java +0 -0
  171. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/vuln_spring_boot/src/main/java/com/example/vulnapi/model/User.java +0 -0
  172. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/vuln_spring_boot/src/main/java/com/example/vulnapi/service/OrderService.java +0 -0
  173. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/vuln_spring_boot/src/main/java/com/example/vulnapi/service/UserService.java +0 -0
  174. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/fixtures/vuln_spring_boot/src/main/resources/application.properties +0 -0
  175. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/integration/__init__.py +0 -0
  176. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/integration/test_cli.py +0 -0
  177. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/integration/test_django_analysis.py +0 -0
  178. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/integration/test_express_analysis.py +0 -0
  179. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/integration/test_fastapi_analysis.py +0 -0
  180. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/integration/test_flask_analysis.py +0 -0
  181. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/integration/test_nestjs_analysis.py +0 -0
  182. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/integration/test_spring_boot_analysis.py +0 -0
  183. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/test_query/__init__.py +0 -0
  184. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/test_query/fixtures/sample_app.py +0 -0
  185. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/test_query/test_auth_indicator_matching.py +0 -0
  186. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/test_query/test_executor.py +0 -0
  187. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/test_query/test_handlers.py +0 -0
  188. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/test_query/test_read_site_origin_types.py +0 -0
  189. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/__init__.py +0 -0
  190. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_aspnet_plugin.py +0 -0
  191. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_benchmark_audit.py +0 -0
  192. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_benchmark_run.py +0 -0
  193. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_call_graph.py +0 -0
  194. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_cbv_extractor.py +0 -0
  195. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_config.py +0 -0
  196. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_constant_resolver.py +0 -0
  197. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_cross_file_resolver.py +0 -0
  198. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_csharp_literals.py +0 -0
  199. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_csharp_type_resolver.py +0 -0
  200. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_data_flow.py +0 -0
  201. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_dependency_parsing.py +0 -0
  202. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_discovery.py +0 -0
  203. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_django_plugin.py +0 -0
  204. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_dynamic_routes.py +0 -0
  205. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_express_nestjs_plugin.py +0 -0
  206. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_fastapi_plugin.py +0 -0
  207. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_fastify_plugin.py +0 -0
  208. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_flow_analysis.py +0 -0
  209. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_grape_plugin.py +0 -0
  210. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_graphql_plugin.py +0 -0
  211. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_grpc_plugin.py +0 -0
  212. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_instrumentation.py +0 -0
  213. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_integration_detection.py +0 -0
  214. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_java_parser.py +0 -0
  215. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_jaxrs_plugin.py +0 -0
  216. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_js_graphql_plugin.py +0 -0
  217. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_jwt_config_extraction.py +0 -0
  218. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_legacy_aspnet_plugin.py +0 -0
  219. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_micronaut_plugin.py +0 -0
  220. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_parameter_analyzer.py +0 -0
  221. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_path_resolver.py +0 -0
  222. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_pydantic_body_inference.py +0 -0
  223. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_python_parser.py +0 -0
  224. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_rails_plugin.py +0 -0
  225. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_refit_plugin.py +0 -0
  226. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_repo_canonical.py +0 -0
  227. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_router_registry.py +0 -0
  228. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_ruby_graphql_plugin.py +0 -0
  229. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_sensitivity_capability.py +0 -0
  230. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_sinatra_plugin.py +0 -0
  231. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_sink_evidence.py +0 -0
  232. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_spring_plugin.py +0 -0
  233. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_telemetry.py +0 -0
  234. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_transformation_tracking.py +0 -0
  235. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_types.py +0 -0
  236. {apisec_code_bolt-0.1.3 → apisec_code_bolt-0.1.4}/tests/unit/test_wcf_plugin.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apisec-code-bolt
3
- Version: 0.1.3
3
+ Version: 0.1.4
4
4
  Summary: Static analysis probe for extracting architectural metadata from codebases
5
5
  Project-URL: Homepage, https://apisec.ai
6
6
  Project-URL: Documentation, https://docs.apisec.ai/code-bolt
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "apisec-code-bolt"
7
- version = "0.1.3"
7
+ version = "0.1.4"
8
8
  description = "Static analysis probe for extracting architectural metadata from codebases"
9
9
  readme = "README.md"
10
10
  license = {text = "Proprietary"}
@@ -9,6 +9,7 @@ from __future__ import annotations
9
9
  import sys
10
10
  from pathlib import Path
11
11
  from typing import Any
12
+ from urllib.parse import urlparse
12
13
 
13
14
  import click
14
15
  from rich.console import Console
@@ -482,6 +483,20 @@ def _emit_json_summary(
482
483
  sys.stderr.flush()
483
484
 
484
485
 
486
+ def _console_url(api_url: str, app_id: str) -> str:
487
+ """Map the API URL to the APIsec console (UI) URL for viewing results.
488
+
489
+ Local dev keeps the localhost frontend; cloud environments mirror the API
490
+ host's ``api.`` label as ``cso.`` (e.g. ``api.dev.apisecapps.com`` ->
491
+ ``cso.dev.apisecapps.com``). Falls back to the API host unchanged.
492
+ """
493
+ host = urlparse(api_url).hostname or ""
494
+ if host in ("localhost", "127.0.0.1", "::1"):
495
+ return f"http://localhost:5174/application/{app_id}"
496
+ console_host = "cso." + host[len("api.") :] if host.startswith("api.") else host
497
+ return f"https://{console_host}/application/{app_id}"
498
+
499
+
485
500
  def _run_authenticated_upload(
486
501
  ctx: click.Context,
487
502
  project_path: Path,
@@ -577,7 +592,7 @@ def _run_authenticated_upload(
577
592
  console.print()
578
593
  console.print(
579
594
  Panel(
580
- f"http://localhost:5174/application/{registration.app_id}",
595
+ _console_url(api_url, registration.app_id),
581
596
  title="View Results in APIsec",
582
597
  border_style="cyan",
583
598
  )
@@ -0,0 +1,27 @@
1
+ """Tests for _console_url: derive the APIsec console (UI) URL from the API URL."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import pytest
6
+
7
+ from apisec_code_bolt.cli.main import _console_url
8
+
9
+
10
+ @pytest.mark.parametrize(
11
+ "api_url,expected",
12
+ [
13
+ ("https://api.dev.apisecapps.com", "https://cso.dev.apisecapps.com/application/app-1"),
14
+ ("https://api.apisecapps.com", "https://cso.apisecapps.com/application/app-1"),
15
+ ("http://localhost:8080", "http://localhost:5174/application/app-1"),
16
+ ("http://127.0.0.1:8000", "http://localhost:5174/application/app-1"),
17
+ ],
18
+ )
19
+ def test_console_url_maps_api_host_to_console(api_url: str, expected: str) -> None:
20
+ assert _console_url(api_url, "app-1") == expected
21
+
22
+
23
+ def test_console_url_falls_back_to_api_host_when_no_api_prefix() -> None:
24
+ # No leading `api.` label -> host used as-is (still not localhost).
25
+ assert _console_url("https://scan.example.com", "app-1") == (
26
+ "https://scan.example.com/application/app-1"
27
+ )