prancer-basic 3.0.22__tar.gz → 3.0.25__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 (152) hide show
  1. {prancer-basic-3.0.22/src/prancer_basic.egg-info → prancer-basic-3.0.25}/PKG-INFO +1 -1
  2. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/setup.py +1 -1
  3. {prancer-basic-3.0.22 → prancer-basic-3.0.25/src/prancer_basic.egg-info}/PKG-INFO +1 -1
  4. prancer-basic-3.0.25/src/processor/__init__.py +3 -0
  5. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/interpreter.py +1 -0
  6. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/snapshot_aws.py +10 -1
  7. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/snapshot_azure.py +8 -2
  8. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/snapshot_google.py +16 -1
  9. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/crawler/utils.py +18 -6
  10. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/config/remote_utils.py +31 -4
  11. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/utils/cli_validator.py +1 -1
  12. prancer-basic-3.0.22/src/processor/__init__.py +0 -3
  13. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/LICENSE +0 -0
  14. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/MANIFEST.in +0 -0
  15. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/README.md +0 -0
  16. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/setup.cfg +0 -0
  17. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/prancer_basic.egg-info/SOURCES.txt +0 -0
  18. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/prancer_basic.egg-info/dependency_links.txt +0 -0
  19. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/prancer_basic.egg-info/entry_points.txt +0 -0
  20. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/prancer_basic.egg-info/requires.txt +0 -0
  21. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/prancer_basic.egg-info/top_level.txt +0 -0
  22. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/collection_config/__init__.py +0 -0
  23. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/collection_config/config_handler.py +0 -0
  24. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/__init__.py +0 -0
  25. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/comparison_functions.py +0 -0
  26. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/comparisonantlr/__init__.py +0 -0
  27. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/comparisonantlr/comparatorLexer.py +0 -0
  28. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/comparisonantlr/comparatorListener.py +0 -0
  29. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/comparisonantlr/comparatorParser.py +0 -0
  30. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/comparisonantlr/compare_types.py +0 -0
  31. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/comparisonantlr/rule_interpreter.py +0 -0
  32. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/comparisonantlr/test_comparator.py +0 -0
  33. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/rules/__init__.py +0 -0
  34. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/rules/arm/__init__.py +0 -0
  35. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/rules/arm/secret_azure_iac.py +0 -0
  36. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/rules/cloudformation/__init__.py +0 -0
  37. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/rules/cloudformation/secret_aws_iac.py +0 -0
  38. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/rules/common/__init__.py +0 -0
  39. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/rules/common/sensitive_extension.py +0 -0
  40. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/rules/deploymentmanager/__init__.py +0 -0
  41. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/rules/deploymentmanager/secret_gcp_iac.py +0 -0
  42. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/rules/terraform/__init__.py +0 -0
  43. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/comparison/rules/terraform/secret_tf.py +0 -0
  44. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/__init__.py +0 -0
  45. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/arn_parser.py +0 -0
  46. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/git_connector/__init__.py +0 -0
  47. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/git_connector/git_functions.py +0 -0
  48. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/git_connector/git_processor.py +0 -0
  49. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/populate_json.py +0 -0
  50. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/snapshot.py +0 -0
  51. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/snapshot_azure_refactor.py +0 -0
  52. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/snapshot_base.py +0 -0
  53. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/snapshot_custom.py +0 -0
  54. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/snapshot_custom_refactor.py +0 -0
  55. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/snapshot_db.py +0 -0
  56. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/snapshot_exception.py +0 -0
  57. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/snapshot_fs.py +0 -0
  58. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/snapshot_kubernetes.py +0 -0
  59. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/snapshot_utils.py +0 -0
  60. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/special_compliance/__init__.py +0 -0
  61. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/special_compliance/compliances.py +0 -0
  62. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/special_crawler/__init__.py +0 -0
  63. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/special_crawler/azure_crawler.py +0 -0
  64. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/special_crawler/base_crawler.py +0 -0
  65. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/special_node_pull/__init__.py +0 -0
  66. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/special_node_pull/azure_node_pull.py +0 -0
  67. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/special_node_pull/base_node_pull.py +0 -0
  68. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/validation.py +0 -0
  69. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/connector/vault.py +0 -0
  70. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/crawler/__init__.py +0 -0
  71. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/crawler/master_snapshot.py +0 -0
  72. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/database/__init__.py +0 -0
  73. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/database/database.py +0 -0
  74. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/__init__.py +0 -0
  75. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/config/__init__.py +0 -0
  76. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/config/config_utils.py +0 -0
  77. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/config/rundata_utils.py +0 -0
  78. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/file/__init__.py +0 -0
  79. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/file/file_utils.py +0 -0
  80. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/hcl/__init__.py +0 -0
  81. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/hcl/hcl_utils.py +0 -0
  82. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/hcl/parser.py +0 -0
  83. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/hcl/transformer.py +0 -0
  84. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/hcl/yacc.py +0 -0
  85. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/httpapi/__init__.py +0 -0
  86. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/httpapi/http_utils.py +0 -0
  87. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/httpapi/restapi.py +0 -0
  88. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/httpapi/restapi_azure.py +0 -0
  89. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/jinja/__init__.py +0 -0
  90. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/jinja/jinja_utils.py +0 -0
  91. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/json/__init__.py +0 -0
  92. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/json/commentjson.py +0 -0
  93. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/json/json_utils.py +0 -0
  94. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/utils/__init__.py +0 -0
  95. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/utils/cli_generate_azure_vault_key.py +0 -0
  96. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/utils/cli_populate_json.py +0 -0
  97. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/utils/cli_terraform_to_json.py +0 -0
  98. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/utils/compliance_utils.py +0 -0
  99. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/utils/jinjatemplates/__init__.py +0 -0
  100. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/utils/jinjatemplates/fs_connector.json +0 -0
  101. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/utils/jinjatemplates/git_connector.json +0 -0
  102. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/utils/jinjatemplates/mastersnapshot.json +0 -0
  103. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/utils/jinjatemplates/mastertest.json +0 -0
  104. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/yaml/__init__.py +0 -0
  105. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/helper/yaml/yaml_utils.py +0 -0
  106. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/logging/__init__.py +0 -0
  107. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/logging/dburl_kv.py +0 -0
  108. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/logging/log_handler.py +0 -0
  109. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/reporting/__init__.py +0 -0
  110. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/reporting/json_output.py +0 -0
  111. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/__init__.py +0 -0
  112. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/ack_processor.py +0 -0
  113. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/aso_processor.py +0 -0
  114. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/aws_template_processor.py +0 -0
  115. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/azure_template_processor.py +0 -0
  116. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/base/__init__.py +0 -0
  117. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/base/base_template_constatns.py +0 -0
  118. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/base/base_template_processor.py +0 -0
  119. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/google_template_processor.py +0 -0
  120. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/helm_chart_template_processor.py +0 -0
  121. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/json_template_processor.py +0 -0
  122. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/kcc_processor.py +0 -0
  123. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/kubernetes_template_processor.py +0 -0
  124. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/terraform_template_processor.py +0 -0
  125. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/template_processor/yaml_template_processor.py +0 -0
  126. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/__init__.py +0 -0
  127. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/aws/__init__.py +0 -0
  128. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/aws/aws_parser.py +0 -0
  129. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/azure/__init__.py +0 -0
  130. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/azure/azure_parser.py +0 -0
  131. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/base/__init__.py +0 -0
  132. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/base/template_parser.py +0 -0
  133. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/google/__init__.py +0 -0
  134. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/google/google_parser.py +0 -0
  135. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/google/util.py +0 -0
  136. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/helm/__init__.py +0 -0
  137. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/helm/helm_parser.py +0 -0
  138. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/kubernetes/__init__.py +0 -0
  139. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/kubernetes/kubernetes_parser.py +0 -0
  140. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/terraform/__init__.py +0 -0
  141. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/terraform/helper/__init__.py +0 -0
  142. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/terraform/helper/expression/__init__.py +0 -0
  143. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/terraform/helper/expression/base_expressions.py +0 -0
  144. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/terraform/helper/expression/terraform_expressions.py +0 -0
  145. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/terraform/helper/function/__init__.py +0 -0
  146. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/terraform/helper/function/collection_functions.py +0 -0
  147. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/terraform/helper/function/encoding_function.py +0 -0
  148. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/terraform/helper/function/numeric_functions.py +0 -0
  149. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/terraform/helper/function/string_functions.py +0 -0
  150. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/terraform/helper/function/terraform_functions.py +0 -0
  151. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/terraform/helper/module_parser.py +0 -0
  152. {prancer-basic-3.0.22 → prancer-basic-3.0.25}/src/processor/templates/terraform/terraform_parser.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.2
2
2
  Name: prancer-basic
3
- Version: 3.0.22
3
+ Version: 3.0.25
4
4
  Summary: Prancer Basic, http://prancer.io/
5
5
  Home-page: https://github.com/prancer-io/cloud-validation-framework
6
6
  Author: Farshid M/Ajey Khanapuri
@@ -18,7 +18,7 @@ LONG_DESCRIPTION = """
18
18
  setup(
19
19
  name='prancer-basic',
20
20
  # also update the version in processor.__init__.py file
21
- version='3.0.22',
21
+ version='3.0.25',
22
22
  description='Prancer Basic, http://prancer.io/',
23
23
  long_description=LONG_DESCRIPTION,
24
24
  license = "BSD",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.2
2
2
  Name: prancer-basic
3
- Version: 3.0.22
3
+ Version: 3.0.25
4
4
  Summary: Prancer Basic, http://prancer.io/
5
5
  Home-page: https://github.com/prancer-io/cloud-validation-framework
6
6
  Author: Farshid M/Ajey Khanapuri
@@ -0,0 +1,3 @@
1
+ # Prancer Basic
2
+
3
+ __version__ = '3.0.25'
@@ -737,6 +737,7 @@ class ComparatorV01:
737
737
  if exists_dir(json_dir):
738
738
  rego_file_name = '%s/%s/%s' % (json_dir, container, rego_file)
739
739
  if exists_file(rego_file_name):
740
+ rego_file_name = rego_file_name.replace(" ", "\ ")
740
741
  pass
741
742
  else:
742
743
  rego_file_name = None
@@ -34,6 +34,7 @@ from processor.helper.httpapi.restapi_azure import json_source
34
34
  from processor.helper.httpapi.restapi_azure import get_client_secret
35
35
  from processor.connector.snapshot_utils import validate_snapshot_nodes
36
36
  from processor.connector.arn_parser import arnparse
37
+ from processor.helper.config.remote_utils import get_value_from_customer_keyvault
37
38
 
38
39
  logger = getlogger()
39
40
  _valid_service_names = Session().get_available_services()
@@ -530,7 +531,10 @@ def get_all_nodes(awsclient, node, snapshot, connector):
530
531
  list_function = getattr(awsclient, list_function_name, None)
531
532
  if list_function and callable(list_function):
532
533
  try:
534
+ function_kwargs = node.get("kwargs", {})
533
535
  list_kwargs = _get_list_function_kwargs(awsclient.meta._service_model.service_name, list_function_name)
536
+ list_kwargs.update(function_kwargs)
537
+ logger.debug("list_kwargs %s", list_kwargs)
534
538
  response = list_function(**list_kwargs)
535
539
  list_of_resources = _get_resources_from_list_function(response, list_function_name, awsclient.meta._service_model.service_name)
536
540
  # print('list_of_resources: ', list_of_resources)
@@ -1140,8 +1144,13 @@ def populate_aws_snapshot(snapshot, container=None):
1140
1144
  if secret_access:
1141
1145
  logger.info('Secret Access key from environment variable, Secret: %s', '*' * len(secret_access))
1142
1146
 
1147
+ isremote = get_from_currentdata('remote')
1143
1148
  # Read the client secrets from the vault
1144
- if not secret_access:
1149
+ if not secret_access and isremote:
1150
+ secret_access = get_value_from_customer_keyvault(access_key)
1151
+
1152
+ # Read the client secrets from the vault
1153
+ if not secret_access and not isremote:
1145
1154
  secret_access = get_vault_data(access_key)
1146
1155
  if secret_access:
1147
1156
  logger.info('Secret Access key from vault Secret: %s', '*' * len(secret_access))
@@ -27,6 +27,7 @@ from processor.database.database import insert_one_document, COLLECTION, get_col
27
27
  DATABASE, DBNAME, sort_field, get_documents
28
28
  from processor.connector.snapshot_utils import validate_snapshot_nodes
29
29
  from processor.templates.azure.azure_parser import AzureTemplateParser
30
+ from processor.helper.config.remote_utils import get_value_from_customer_keyvault
30
31
 
31
32
 
32
33
  logger = getlogger()
@@ -320,9 +321,14 @@ def populate_client_secret(client_id, client_secret, snapshot_user):
320
321
  client_secret = os.getenv(snapshot_user, None)
321
322
  if client_secret:
322
323
  logger.info('Client Secret from environment variable, Secret: %s', '*' * len(client_secret))
323
-
324
+
325
+ isremote = get_from_currentdata('remote')
324
326
  # Read the client secrets from the vault
325
- if not client_secret:
327
+ if not client_secret and isremote:
328
+ client_secret = get_value_from_customer_keyvault(client_id)
329
+
330
+ # Read the client secrets from the vault
331
+ if not client_secret and not isremote:
326
332
  client_secret = get_vault_data(client_id)
327
333
  if client_secret:
328
334
  logger.info('Client Secret from Vault, Secret: %s', '*' * len(client_secret))
@@ -33,6 +33,7 @@ from processor.database.database import insert_one_document, sort_field, get_doc
33
33
  COLLECTION, DATABASE, DBNAME, get_collection_size, create_indexes
34
34
  from processor.helper.httpapi.restapi_azure import json_source
35
35
  from processor.connector.snapshot_utils import validate_snapshot_nodes
36
+ from processor.helper.config.remote_utils import get_value_from_customer_keyvault
36
37
  import requests
37
38
 
38
39
 
@@ -187,6 +188,9 @@ def get_params_for_get_method(response, url_var, project_id):
187
188
 
188
189
  elif item == r"{cloud_run_service}":
189
190
  params[item] = response['metadata']['name']
191
+ elif item == r"{secret}":
192
+ secret_name = response['name']
193
+ params[item] = secret_name.split('/')[-1]
190
194
 
191
195
  return params
192
196
  except Exception as ex:
@@ -715,9 +719,20 @@ def generate_gce(google_data, project, user):
715
719
 
716
720
  if not gce['private_key']:
717
721
  raise Exception("Private key does not exist at given private key path : %s " % private_key_path)
722
+
723
+ isremote = get_from_currentdata('remote')
724
+ if not gce['private_key'] and isremote:
725
+ gce['private_key'] = get_value_from_customer_keyvault(gce['private_key_id'])
726
+ logger.info('Private key from customer keyvault, Secret: %s', '*' * len(gce['private_key']))
718
727
 
728
+ elif not gce['private_key']:
729
+ gce['private_key'] = os.getenv("GCP_PRIVATE_KEY", None)
730
+ if gce['private_key']:
731
+ gce['private_key'] = gce['private_key'].replace("\\n","\n")
732
+ logger.info('Private key from environment variable, Secret: %s', '*' * len(gce['private_key']))
733
+
719
734
  # Read the private key from the vault
720
- if not gce['private_key']:
735
+ if not gce['private_key'] and not isremote:
721
736
  private_key = get_vault_data(gce['private_key_id'])
722
737
  if private_key:
723
738
  gce["private_key"] = private_key.replace("\\n","\n")
@@ -8,12 +8,15 @@ from processor.logging.log_handler import getlogger
8
8
  from processor.helper.httpapi.http_utils import http_get_request, http_post_request
9
9
  from processor.connector.vault import get_vault_data, set_vault_data
10
10
  from processor.connector.snapshot_azure import populate_client_secret
11
+ from processor.helper.config.rundata_utils import get_from_currentdata
11
12
  from oauth2client.service_account import ServiceAccountCredentials
12
13
  from boto3 import client
13
14
  import copy
14
15
  import requests
15
16
  import tempfile
16
17
  import re
18
+ import os
19
+ from processor.helper.config.remote_utils import get_value_from_customer_keyvault
17
20
 
18
21
  logger = getlogger()
19
22
 
@@ -195,13 +198,22 @@ def access_token_from_service_account(private_key_id, private_key, client_email,
195
198
  def get_projects_list(private_key_id, private_key, client_email, client_id, test_user):
196
199
  """ Get google projects list """
197
200
  project_list = []
201
+ isremote = get_from_currentdata('remote')
202
+ if not private_key and isremote:
203
+ private_key = get_value_from_customer_keyvault(private_key_id)
204
+ logger.info('Private key from customer keyvault, Secret: %s', '*' * len(private_key))
205
+
198
206
  if not private_key:
199
- new_private_key = get_vault_data(private_key_id)
200
- else:
201
- new_private_key = private_key
202
-
203
- if new_private_key:
204
- access_token = access_token_from_service_account(private_key_id, new_private_key, client_email, client_id)
207
+ private_key = os.getenv("GCP_PRIVATE_KEY", None)
208
+ if private_key:
209
+ private_key = private_key.replace("\\n","\n")
210
+ logger.info('Private key from environment variable, Secret: %s', '*' * len(private_key))
211
+
212
+ if not private_key and not isremote:
213
+ private_key = get_vault_data(private_key_id)
214
+
215
+ if private_key:
216
+ access_token = access_token_from_service_account(private_key_id, private_key, client_email, client_id)
205
217
  if access_token:
206
218
  hdrs = {"Accept": "application/json", "Authorization": "Bearer %s" % access_token }
207
219
  url = "https://cloudresourcemanager.googleapis.com/v1/projects"
@@ -5,10 +5,12 @@ import datetime
5
5
  import subprocess
6
6
  from urllib import request
7
7
  from inspect import currentframe, getframeinfo
8
-
8
+ from processor.helper.config.rundata_utils import get_from_currentdata
9
9
  from processor.helper.file.file_utils import exists_file, exists_dir, mkdir_path
10
+ from processor.helper.utils.compliance_utils import get_api_server
10
11
  from processor.helper.config.config_utils import COMPLIANCE, CRAWL, CRAWL_AND_COMPLIANCE, framework_dir, config_value, framework_config, \
11
12
  CFGFILE, get_config_data
13
+ from processor.helper.httpapi.http_utils import http_get_request_useragent
12
14
 
13
15
  def console_log(message, cf):
14
16
  """Logger like statements only used till logger configuration is read and initialized."""
@@ -20,10 +22,14 @@ def console_log(message, cf):
20
22
  print(fmtstr)
21
23
 
22
24
 
23
- def remote_config_ini_setup():
25
+ def mastersnapshot_type(masersnapshot_data):
26
+ return masersnapshot_data.get("json", {}).get("type", "")
27
+
28
+ def remote_config_ini_setup(collection_data):
24
29
  """Need the config.ini file to read initial configuration data"""
25
30
  error = False
26
31
  config_ini = None
32
+ mastersnapshot = collection_data["masersnapshots"][0] if collection_data.get("masersnapshots") else {}
27
33
  fwdir = os.getenv('FRAMEWORKDIR', None)
28
34
  if fwdir:
29
35
  if exists_dir(fwdir):
@@ -60,7 +66,7 @@ def remote_config_ini_setup():
60
66
  if not opapresent:
61
67
  console_log("opa binary required, not present in path or current directory, exiting...", currentframe())
62
68
  error = True
63
- if not error:
69
+ if not error and mastersnapshot_type(mastersnapshot) == "helm":
64
70
  helmpresent = check_exe_in_path_and_curdir(config_ini, 'HELM', 'helmexe', 'helm')
65
71
  if not helmpresent:
66
72
  console_log("helm binary required, not present in path or current directory, exiting...", currentframe())
@@ -136,4 +142,25 @@ def create_remote_config(config_ini):
136
142
  cfgparser = configparser.ConfigParser(allow_no_value=True)
137
143
  cfgparser.read_dict(cdata)
138
144
  with open(config_ini, 'w') as configfile:
139
- cfgparser.write(configfile)
145
+ cfgparser.write(configfile)
146
+
147
+
148
+ def get_value_from_customer_keyvault(key):
149
+ value = None
150
+ env = get_from_currentdata('env')
151
+ apitoken = get_from_currentdata('apitoken')
152
+ company = get_from_currentdata('company')
153
+
154
+ apiserver = get_api_server(env, company)
155
+ vaultapi_uri = f'{apiserver}secret/vault/?key_name={key}'
156
+ if vaultapi_uri:
157
+ hdrs = {
158
+ "Content-Type": "application/json",
159
+ "Authorization" : f"Bearer {apitoken}"
160
+ }
161
+ status, data = http_get_request_useragent(vaultapi_uri, headers=hdrs, useragent=True)
162
+ if status and isinstance(status, int) and status == 200:
163
+ if 'data' in data:
164
+ value = data['data'].get("value")
165
+
166
+ return value
@@ -297,7 +297,7 @@ Run prancer for a list of snapshots
297
297
  if status and isinstance(status, int) and status == 200:
298
298
  if 'data' in data:
299
299
  collectionData = data['data']
300
- error, cfg_ini = remote_config_ini_setup()
300
+ error, cfg_ini = remote_config_ini_setup(collectionData)
301
301
  if error:
302
302
  msg = "Unable to setup config.ini, exiting!....."
303
303
  console_log(msg, currentframe())
@@ -1,3 +0,0 @@
1
- # Prancer Basic
2
-
3
- __version__ = '3.0.22'
File without changes
File without changes
File without changes