secator 0.10.1a8__tar.gz → 0.10.1a9__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of secator might be problematic. Click here for more details.

Files changed (190) hide show
  1. {secator-0.10.1a8 → secator-0.10.1a9}/PKG-INFO +1 -1
  2. {secator-0.10.1a8 → secator-0.10.1a9}/pyproject.toml +1 -1
  3. {secator-0.10.1a8 → secator-0.10.1a9}/secator/cli.py +4 -1
  4. {secator-0.10.1a8 → secator-0.10.1a9}/secator/runners/task.py +3 -0
  5. {secator-0.10.1a8 → secator-0.10.1a9}/secator/runners/workflow.py +5 -3
  6. {secator-0.10.1a8 → secator-0.10.1a9}/.docker/Dockerfile.alpine +0 -0
  7. {secator-0.10.1a8 → secator-0.10.1a9}/.docker/Dockerfile.arch +0 -0
  8. {secator-0.10.1a8 → secator-0.10.1a9}/.docker/Dockerfile.debian +0 -0
  9. {secator-0.10.1a8 → secator-0.10.1a9}/.docker/Dockerfile.kali +0 -0
  10. {secator-0.10.1a8 → secator-0.10.1a9}/.docker/Dockerfile.osx +0 -0
  11. {secator-0.10.1a8 → secator-0.10.1a9}/.docker/Dockerfile.ubuntu +0 -0
  12. {secator-0.10.1a8 → secator-0.10.1a9}/.docker/build_all.sh +0 -0
  13. {secator-0.10.1a8 → secator-0.10.1a9}/.dockerignore +0 -0
  14. {secator-0.10.1a8 → secator-0.10.1a9}/.flake8 +0 -0
  15. {secator-0.10.1a8 → secator-0.10.1a9}/.gitignore +0 -0
  16. {secator-0.10.1a8 → secator-0.10.1a9}/CHANGELOG.md +0 -0
  17. {secator-0.10.1a8 → secator-0.10.1a9}/CONTRIBUTING.md +0 -0
  18. {secator-0.10.1a8 → secator-0.10.1a9}/Dockerfile +0 -0
  19. {secator-0.10.1a8 → secator-0.10.1a9}/LICENSE +0 -0
  20. {secator-0.10.1a8 → secator-0.10.1a9}/README.md +0 -0
  21. {secator-0.10.1a8 → secator-0.10.1a9}/SECURITY.md +0 -0
  22. {secator-0.10.1a8 → secator-0.10.1a9}/cloudbuild.yaml +0 -0
  23. {secator-0.10.1a8 → secator-0.10.1a9}/helm/.helmignore +0 -0
  24. {secator-0.10.1a8 → secator-0.10.1a9}/helm/Chart.yaml +0 -0
  25. {secator-0.10.1a8 → secator-0.10.1a9}/helm/templates/redis-service.yaml +0 -0
  26. {secator-0.10.1a8 → secator-0.10.1a9}/helm/templates/redis.yaml +0 -0
  27. {secator-0.10.1a8 → secator-0.10.1a9}/helm/templates/secator-manager.yaml +0 -0
  28. {secator-0.10.1a8 → secator-0.10.1a9}/helm/templates/secator-worker.yaml +0 -0
  29. {secator-0.10.1a8 → secator-0.10.1a9}/helm/values.yaml +0 -0
  30. {secator-0.10.1a8 → secator-0.10.1a9}/scripts/download_cves.sh +0 -0
  31. {secator-0.10.1a8 → secator-0.10.1a9}/scripts/install.sh +0 -0
  32. {secator-0.10.1a8 → secator-0.10.1a9}/scripts/install_asciinema.sh +0 -0
  33. {secator-0.10.1a8 → secator-0.10.1a9}/scripts/install_go.sh +0 -0
  34. {secator-0.10.1a8 → secator-0.10.1a9}/scripts/install_ruby.sh +0 -0
  35. {secator-0.10.1a8 → secator-0.10.1a9}/scripts/msf/exploit_cve.rc +0 -0
  36. {secator-0.10.1a8 → secator-0.10.1a9}/scripts/msf/ftp_anonymous.rc +0 -0
  37. {secator-0.10.1a8 → secator-0.10.1a9}/scripts/msf/ftp_version.rc +0 -0
  38. {secator-0.10.1a8 → secator-0.10.1a9}/scripts/msf/ftp_vsftpd_234_backdoor.rc +0 -0
  39. {secator-0.10.1a8 → secator-0.10.1a9}/scripts/msf/redis.rc +0 -0
  40. {secator-0.10.1a8 → secator-0.10.1a9}/scripts/stories/STORY.md +0 -0
  41. {secator-0.10.1a8 → secator-0.10.1a9}/scripts/stories/aliases.sh +0 -0
  42. {secator-0.10.1a8 → secator-0.10.1a9}/scripts/stories/demo.sh +0 -0
  43. {secator-0.10.1a8 → secator-0.10.1a9}/scripts/stories/fmt.sh +0 -0
  44. {secator-0.10.1a8 → secator-0.10.1a9}/scripts/stories/input.sh +0 -0
  45. {secator-0.10.1a8 → secator-0.10.1a9}/scripts/stories/pipe.sh +0 -0
  46. {secator-0.10.1a8 → secator-0.10.1a9}/scripts/stories/short_demo.sh +0 -0
  47. {secator-0.10.1a8 → secator-0.10.1a9}/secator/.gitignore +0 -0
  48. {secator-0.10.1a8 → secator-0.10.1a9}/secator/__init__.py +0 -0
  49. {secator-0.10.1a8 → secator-0.10.1a9}/secator/celery.py +0 -0
  50. {secator-0.10.1a8 → secator-0.10.1a9}/secator/celery_signals.py +0 -0
  51. {secator-0.10.1a8 → secator-0.10.1a9}/secator/celery_utils.py +0 -0
  52. {secator-0.10.1a8 → secator-0.10.1a9}/secator/config.py +0 -0
  53. {secator-0.10.1a8 → secator-0.10.1a9}/secator/configs/__init__.py +0 -0
  54. {secator-0.10.1a8 → secator-0.10.1a9}/secator/configs/profiles/__init__.py +0 -0
  55. {secator-0.10.1a8 → secator-0.10.1a9}/secator/configs/profiles/aggressive.yaml +0 -0
  56. {secator-0.10.1a8 → secator-0.10.1a9}/secator/configs/profiles/default.yaml +0 -0
  57. {secator-0.10.1a8 → secator-0.10.1a9}/secator/configs/profiles/stealth.yaml +0 -0
  58. {secator-0.10.1a8 → secator-0.10.1a9}/secator/configs/scans/__init__.py +0 -0
  59. {secator-0.10.1a8 → secator-0.10.1a9}/secator/configs/scans/domain.yaml +0 -0
  60. {secator-0.10.1a8 → secator-0.10.1a9}/secator/configs/scans/host.yaml +0 -0
  61. {secator-0.10.1a8 → secator-0.10.1a9}/secator/configs/scans/network.yaml +0 -0
  62. {secator-0.10.1a8 → secator-0.10.1a9}/secator/configs/scans/subdomain.yaml +0 -0
  63. {secator-0.10.1a8 → secator-0.10.1a9}/secator/configs/scans/url.yaml +0 -0
  64. {secator-0.10.1a8 → secator-0.10.1a9}/secator/configs/workflows/__init__.py +0 -0
  65. {secator-0.10.1a8 → secator-0.10.1a9}/secator/configs/workflows/cidr_recon.yaml +0 -0
  66. {secator-0.10.1a8 → secator-0.10.1a9}/secator/configs/workflows/code_scan.yaml +0 -0
  67. {secator-0.10.1a8 → secator-0.10.1a9}/secator/configs/workflows/host_recon.yaml +0 -0
  68. {secator-0.10.1a8 → secator-0.10.1a9}/secator/configs/workflows/subdomain_recon.yaml +0 -0
  69. {secator-0.10.1a8 → secator-0.10.1a9}/secator/configs/workflows/url_bypass.yaml +0 -0
  70. {secator-0.10.1a8 → secator-0.10.1a9}/secator/configs/workflows/url_crawl.yaml +0 -0
  71. {secator-0.10.1a8 → secator-0.10.1a9}/secator/configs/workflows/url_dirsearch.yaml +0 -0
  72. {secator-0.10.1a8 → secator-0.10.1a9}/secator/configs/workflows/url_fuzz.yaml +0 -0
  73. {secator-0.10.1a8 → secator-0.10.1a9}/secator/configs/workflows/url_nuclei.yaml +0 -0
  74. {secator-0.10.1a8 → secator-0.10.1a9}/secator/configs/workflows/url_vuln.yaml +0 -0
  75. {secator-0.10.1a8 → secator-0.10.1a9}/secator/configs/workflows/user_hunt.yaml +0 -0
  76. {secator-0.10.1a8 → secator-0.10.1a9}/secator/configs/workflows/wordpress.yaml +0 -0
  77. {secator-0.10.1a8 → secator-0.10.1a9}/secator/decorators.py +0 -0
  78. {secator-0.10.1a8 → secator-0.10.1a9}/secator/definitions.py +0 -0
  79. {secator-0.10.1a8 → secator-0.10.1a9}/secator/exporters/__init__.py +0 -0
  80. {secator-0.10.1a8 → secator-0.10.1a9}/secator/exporters/_base.py +0 -0
  81. {secator-0.10.1a8 → secator-0.10.1a9}/secator/exporters/console.py +0 -0
  82. {secator-0.10.1a8 → secator-0.10.1a9}/secator/exporters/csv.py +0 -0
  83. {secator-0.10.1a8 → secator-0.10.1a9}/secator/exporters/gdrive.py +0 -0
  84. {secator-0.10.1a8 → secator-0.10.1a9}/secator/exporters/json.py +0 -0
  85. {secator-0.10.1a8 → secator-0.10.1a9}/secator/exporters/table.py +0 -0
  86. {secator-0.10.1a8 → secator-0.10.1a9}/secator/exporters/txt.py +0 -0
  87. {secator-0.10.1a8 → secator-0.10.1a9}/secator/hooks/__init__.py +0 -0
  88. {secator-0.10.1a8 → secator-0.10.1a9}/secator/hooks/gcs.py +0 -0
  89. {secator-0.10.1a8 → secator-0.10.1a9}/secator/hooks/mongodb.py +0 -0
  90. {secator-0.10.1a8 → secator-0.10.1a9}/secator/installer.py +0 -0
  91. {secator-0.10.1a8 → secator-0.10.1a9}/secator/output_types/__init__.py +0 -0
  92. {secator-0.10.1a8 → secator-0.10.1a9}/secator/output_types/_base.py +0 -0
  93. {secator-0.10.1a8 → secator-0.10.1a9}/secator/output_types/error.py +0 -0
  94. {secator-0.10.1a8 → secator-0.10.1a9}/secator/output_types/exploit.py +0 -0
  95. {secator-0.10.1a8 → secator-0.10.1a9}/secator/output_types/info.py +0 -0
  96. {secator-0.10.1a8 → secator-0.10.1a9}/secator/output_types/ip.py +0 -0
  97. {secator-0.10.1a8 → secator-0.10.1a9}/secator/output_types/port.py +0 -0
  98. {secator-0.10.1a8 → secator-0.10.1a9}/secator/output_types/progress.py +0 -0
  99. {secator-0.10.1a8 → secator-0.10.1a9}/secator/output_types/record.py +0 -0
  100. {secator-0.10.1a8 → secator-0.10.1a9}/secator/output_types/stat.py +0 -0
  101. {secator-0.10.1a8 → secator-0.10.1a9}/secator/output_types/state.py +0 -0
  102. {secator-0.10.1a8 → secator-0.10.1a9}/secator/output_types/subdomain.py +0 -0
  103. {secator-0.10.1a8 → secator-0.10.1a9}/secator/output_types/tag.py +0 -0
  104. {secator-0.10.1a8 → secator-0.10.1a9}/secator/output_types/target.py +0 -0
  105. {secator-0.10.1a8 → secator-0.10.1a9}/secator/output_types/url.py +0 -0
  106. {secator-0.10.1a8 → secator-0.10.1a9}/secator/output_types/user_account.py +0 -0
  107. {secator-0.10.1a8 → secator-0.10.1a9}/secator/output_types/vulnerability.py +0 -0
  108. {secator-0.10.1a8 → secator-0.10.1a9}/secator/output_types/warning.py +0 -0
  109. {secator-0.10.1a8 → secator-0.10.1a9}/secator/report.py +0 -0
  110. {secator-0.10.1a8 → secator-0.10.1a9}/secator/rich.py +0 -0
  111. {secator-0.10.1a8 → secator-0.10.1a9}/secator/runners/__init__.py +0 -0
  112. {secator-0.10.1a8 → secator-0.10.1a9}/secator/runners/_base.py +0 -0
  113. {secator-0.10.1a8 → secator-0.10.1a9}/secator/runners/_helpers.py +0 -0
  114. {secator-0.10.1a8 → secator-0.10.1a9}/secator/runners/celery.py +0 -0
  115. {secator-0.10.1a8 → secator-0.10.1a9}/secator/runners/command.py +0 -0
  116. {secator-0.10.1a8 → secator-0.10.1a9}/secator/runners/scan.py +0 -0
  117. {secator-0.10.1a8 → secator-0.10.1a9}/secator/scans/__init__.py +0 -0
  118. {secator-0.10.1a8 → secator-0.10.1a9}/secator/serializers/__init__.py +0 -0
  119. {secator-0.10.1a8 → secator-0.10.1a9}/secator/serializers/dataclass.py +0 -0
  120. {secator-0.10.1a8 → secator-0.10.1a9}/secator/serializers/json.py +0 -0
  121. {secator-0.10.1a8 → secator-0.10.1a9}/secator/serializers/regex.py +0 -0
  122. {secator-0.10.1a8 → secator-0.10.1a9}/secator/tasks/__init__.py +0 -0
  123. {secator-0.10.1a8 → secator-0.10.1a9}/secator/tasks/_categories.py +0 -0
  124. {secator-0.10.1a8 → secator-0.10.1a9}/secator/tasks/bbot.py +0 -0
  125. {secator-0.10.1a8 → secator-0.10.1a9}/secator/tasks/bup.py +0 -0
  126. {secator-0.10.1a8 → secator-0.10.1a9}/secator/tasks/cariddi.py +0 -0
  127. {secator-0.10.1a8 → secator-0.10.1a9}/secator/tasks/dalfox.py +0 -0
  128. {secator-0.10.1a8 → secator-0.10.1a9}/secator/tasks/dirsearch.py +0 -0
  129. {secator-0.10.1a8 → secator-0.10.1a9}/secator/tasks/dnsx.py +0 -0
  130. {secator-0.10.1a8 → secator-0.10.1a9}/secator/tasks/dnsxbrute.py +0 -0
  131. {secator-0.10.1a8 → secator-0.10.1a9}/secator/tasks/feroxbuster.py +0 -0
  132. {secator-0.10.1a8 → secator-0.10.1a9}/secator/tasks/ffuf.py +0 -0
  133. {secator-0.10.1a8 → secator-0.10.1a9}/secator/tasks/fping.py +0 -0
  134. {secator-0.10.1a8 → secator-0.10.1a9}/secator/tasks/gau.py +0 -0
  135. {secator-0.10.1a8 → secator-0.10.1a9}/secator/tasks/gf.py +0 -0
  136. {secator-0.10.1a8 → secator-0.10.1a9}/secator/tasks/gospider.py +0 -0
  137. {secator-0.10.1a8 → secator-0.10.1a9}/secator/tasks/grype.py +0 -0
  138. {secator-0.10.1a8 → secator-0.10.1a9}/secator/tasks/h8mail.py +0 -0
  139. {secator-0.10.1a8 → secator-0.10.1a9}/secator/tasks/httpx.py +0 -0
  140. {secator-0.10.1a8 → secator-0.10.1a9}/secator/tasks/katana.py +0 -0
  141. {secator-0.10.1a8 → secator-0.10.1a9}/secator/tasks/maigret.py +0 -0
  142. {secator-0.10.1a8 → secator-0.10.1a9}/secator/tasks/mapcidr.py +0 -0
  143. {secator-0.10.1a8 → secator-0.10.1a9}/secator/tasks/msfconsole.py +0 -0
  144. {secator-0.10.1a8 → secator-0.10.1a9}/secator/tasks/naabu.py +0 -0
  145. {secator-0.10.1a8 → secator-0.10.1a9}/secator/tasks/nmap.py +0 -0
  146. {secator-0.10.1a8 → secator-0.10.1a9}/secator/tasks/nuclei.py +0 -0
  147. {secator-0.10.1a8 → secator-0.10.1a9}/secator/tasks/searchsploit.py +0 -0
  148. {secator-0.10.1a8 → secator-0.10.1a9}/secator/tasks/subfinder.py +0 -0
  149. {secator-0.10.1a8 → secator-0.10.1a9}/secator/tasks/wpscan.py +0 -0
  150. {secator-0.10.1a8 → secator-0.10.1a9}/secator/template.py +0 -0
  151. {secator-0.10.1a8 → secator-0.10.1a9}/secator/thread.py +0 -0
  152. {secator-0.10.1a8 → secator-0.10.1a9}/secator/utils.py +0 -0
  153. {secator-0.10.1a8 → secator-0.10.1a9}/secator/utils_test.py +0 -0
  154. {secator-0.10.1a8 → secator-0.10.1a9}/secator/workflows/__init__.py +0 -0
  155. {secator-0.10.1a8 → secator-0.10.1a9}/tests/__init__.py +0 -0
  156. {secator-0.10.1a8 → secator-0.10.1a9}/tests/fixtures/h8mail_breach.txt +0 -0
  157. {secator-0.10.1a8 → secator-0.10.1a9}/tests/fixtures/ls.py +0 -0
  158. {secator-0.10.1a8 → secator-0.10.1a9}/tests/fixtures/msfconsole_input.rc +0 -0
  159. {secator-0.10.1a8 → secator-0.10.1a9}/tests/fixtures/nmap_output.xml +0 -0
  160. {secator-0.10.1a8 → secator-0.10.1a9}/tests/integration/__init__.py +0 -0
  161. {secator-0.10.1a8 → secator-0.10.1a9}/tests/integration/inputs.py +0 -0
  162. {secator-0.10.1a8 → secator-0.10.1a9}/tests/integration/outputs.py +0 -0
  163. {secator-0.10.1a8 → secator-0.10.1a9}/tests/integration/setup.sh +0 -0
  164. {secator-0.10.1a8 → secator-0.10.1a9}/tests/integration/teardown.sh +0 -0
  165. {secator-0.10.1a8 → secator-0.10.1a9}/tests/integration/test_addons.py +0 -0
  166. {secator-0.10.1a8 → secator-0.10.1a9}/tests/integration/test_celery.py +0 -0
  167. {secator-0.10.1a8 → secator-0.10.1a9}/tests/integration/test_scans.py +0 -0
  168. {secator-0.10.1a8 → secator-0.10.1a9}/tests/integration/test_tasks.py +0 -0
  169. {secator-0.10.1a8 → secator-0.10.1a9}/tests/integration/test_tasks_categories.py +0 -0
  170. {secator-0.10.1a8 → secator-0.10.1a9}/tests/integration/test_worker.py +0 -0
  171. {secator-0.10.1a8 → secator-0.10.1a9}/tests/integration/test_workflows.py +0 -0
  172. {secator-0.10.1a8 → secator-0.10.1a9}/tests/integration/wordlist.txt +0 -0
  173. {secator-0.10.1a8 → secator-0.10.1a9}/tests/integration/wordlist_dns.txt +0 -0
  174. {secator-0.10.1a8 → secator-0.10.1a9}/tests/integration/wordpress_toolbox/Dockerfile +0 -0
  175. {secator-0.10.1a8 → secator-0.10.1a9}/tests/integration/wordpress_toolbox/Makefile +0 -0
  176. {secator-0.10.1a8 → secator-0.10.1a9}/tests/performance/__init__.py +0 -0
  177. {secator-0.10.1a8 → secator-0.10.1a9}/tests/performance/loadtester.py +0 -0
  178. {secator-0.10.1a8 → secator-0.10.1a9}/tests/performance/test_worker.py +0 -0
  179. {secator-0.10.1a8 → secator-0.10.1a9}/tests/unit/__init__.py +0 -0
  180. {secator-0.10.1a8 → secator-0.10.1a9}/tests/unit/test_celery.py +0 -0
  181. {secator-0.10.1a8 → secator-0.10.1a9}/tests/unit/test_cli.py +0 -0
  182. {secator-0.10.1a8 → secator-0.10.1a9}/tests/unit/test_config.py +0 -0
  183. {secator-0.10.1a8 → secator-0.10.1a9}/tests/unit/test_offline.py +0 -0
  184. {secator-0.10.1a8 → secator-0.10.1a9}/tests/unit/test_runners.py +0 -0
  185. {secator-0.10.1a8 → secator-0.10.1a9}/tests/unit/test_scans.py +0 -0
  186. {secator-0.10.1a8 → secator-0.10.1a9}/tests/unit/test_serializers.py +0 -0
  187. {secator-0.10.1a8 → secator-0.10.1a9}/tests/unit/test_tasks.py +0 -0
  188. {secator-0.10.1a8 → secator-0.10.1a9}/tests/unit/test_tasks_categories.py +0 -0
  189. {secator-0.10.1a8 → secator-0.10.1a9}/tests/unit/test_template.py +0 -0
  190. {secator-0.10.1a8 → secator-0.10.1a9}/tests/unit/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: secator
3
- Version: 0.10.1a8
3
+ Version: 0.10.1a9
4
4
  Summary: The pentester's swiss knife.
5
5
  Project-URL: Homepage, https://github.com/freelabz/secator
6
6
  Project-URL: Issues, https://github.com/freelabz/secator/issues
@@ -4,7 +4,7 @@ build-backend = 'hatchling.build'
4
4
 
5
5
  [project]
6
6
  name = 'secator'
7
- version = "0.10.1a8"
7
+ version = "0.10.1a9"
8
8
  authors = [{ name = 'FreeLabz', email = 'sales@freelabz.com' }]
9
9
  readme = 'README.md'
10
10
  description = "The pentester's swiss knife."
@@ -118,11 +118,12 @@ for config in sorted(ALL_SCANS, key=lambda x: x['name']):
118
118
  @click.option('-r', '--reload', is_flag=True, help='Autoreload Celery on code changes.')
119
119
  @click.option('-Q', '--queue', type=str, default='', help='Listen to a specific queue.')
120
120
  @click.option('-P', '--pool', type=str, default='eventlet', help='Pool implementation.')
121
+ @click.option('--quiet', is_flag=True, help='Quiet mode.')
121
122
  @click.option('--check', is_flag=True, help='Check if Celery worker is alive.')
122
123
  @click.option('--dev', is_flag=True, help='Start a worker in dev mode (celery multi).')
123
124
  @click.option('--stop', is_flag=True, help='Stop a worker in dev mode (celery multi).')
124
125
  @click.option('--show', is_flag=True, help='Show command (celery multi).')
125
- def worker(hostname, concurrency, reload, queue, pool, check, dev, stop, show):
126
+ def worker(hostname, concurrency, reload, queue, pool, quiet, check, dev, stop, show):
126
127
  """Run a worker."""
127
128
 
128
129
  # Check Celery addon is installed
@@ -152,6 +153,8 @@ def worker(hostname, concurrency, reload, queue, pool, check, dev, stop, show):
152
153
 
153
154
  app_str = 'secator.celery.app'
154
155
  celery = f'{sys.executable} -m celery'
156
+ if quiet:
157
+ celery += ' --quiet'
155
158
 
156
159
  if dev:
157
160
  subcmd = 'stop' if stop else 'show' if show else 'start'
@@ -47,6 +47,9 @@ class Task(Runner):
47
47
  opts['context'] = self.context.copy()
48
48
  opts['reports_folder'] = str(self.reports_folder)
49
49
  opts['enable_reports'] = False # Task will handle reports
50
+ opts['enable_duplicate_check'] = False # Task will handle duplicate check
51
+ opts['has_parent'] = False
52
+ opts['skip_if_no_inputs'] = False
50
53
 
51
54
  # Create task signature
52
55
  task_id = str(uuid.uuid4())
@@ -37,12 +37,14 @@ class Workflow(Runner):
37
37
  # Set hooks and reports
38
38
  self.enable_reports = True # Workflow will handle reports
39
39
  self.enable_hooks = False # Celery will handle hooks
40
+
40
41
  # Get hooks
41
42
  hooks = self._hooks.get(Task, {})
42
43
  opts['hooks'] = hooks
43
44
  opts['context'] = self.context.copy()
44
45
  opts['reports_folder'] = str(self.reports_folder)
45
46
  opts['enable_reports'] = False # Workflow will handle reports
47
+ opts['enable_duplicate_check'] = False # Workflow will handle duplicate check
46
48
  opts['has_parent'] = True
47
49
  opts['skip_if_no_inputs'] = True
48
50
 
@@ -73,8 +75,7 @@ class Workflow(Runner):
73
75
  Returns:
74
76
  tuple (List[celery.Signature], List[str]): Celery signatures, Celery task ids.
75
77
  """
76
- from celery import chain, chord
77
- from secator.celery import forward_results
78
+ from celery import chain, group
78
79
  sigs = []
79
80
  for task_name, task_opts in config.items():
80
81
  # Task opts can be None
@@ -88,7 +89,7 @@ class Workflow(Runner):
88
89
  workflow_opts,
89
90
  run_opts
90
91
  )
91
- sig = chord((tasks), forward_results.s().set(queue='results'))
92
+ sig = group(*tasks)
92
93
  elif task_name == '_chain':
93
94
  tasks = self.get_tasks(
94
95
  task_opts,
@@ -107,6 +108,7 @@ class Workflow(Runner):
107
108
 
108
109
  # Create task signature
109
110
  task_id = str(uuid.uuid4())
111
+ opts['context'] = self.context.copy()
110
112
  sig = task.s(inputs, **opts).set(queue=task.profile, task_id=task_id)
111
113
  self.add_subtask(task_id, task_name, task_opts.get('description', ''))
112
114
  self.output_types.extend(task.output_types)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes